如何使用DH参数生成证书

问题描述 投票:0回答:1

我需要支持Diffie Hellman加密,现在为了进行测试,我需要创建一个具有DH密钥参数的证书,例如。密钥长度-2048等。

现在,我了解DH不适用于自签名证书,因此,基本上,我需要创建由某个受信任的第三方颁发的包含DH密钥参数的证书。

我进行了很多搜索,但似乎找不到正确的方向,没有哪里可以找到使用DH参数创建证书的方法。

有人能指出我正确的方向吗?预先感谢!

encryption cryptography ssl-certificate tls1.2 diffie-hellman
1个回答
0
投票

我需要支持Diffie Hellman加密

DH是密钥交换(或密钥协议)协议,而不是加密。 DH用于安全地生成两方之间的公用密钥,其他算法本身用于加密。

我需要使用DH密钥参数创建证书,例如键长-2048等

证书中没有类似DH参数的内容。

DH只是使用公钥的方式之一。您可以生成具有指定长度(例如2048位)的DH公钥并执行DH交换,但它与证书参数无关。 (您不是要生成密钥对,而不是证书吗?)。>

确实,DH密钥交换需要其他参数(p,g),但是这些参数是协议的一部分,而不是证书的一部分。在TLS中,甚至DH参数也可以是随机的,并且可以通过证书的公钥进行身份验证-这称为临时Diffie-Hellman密钥交换。

您可以分别生成DH参数(p,g):

 openssl dhparam -out dhparams.pem 4096

有人可以指出我正确的方向吗?

现在,我假设您想使用DH建立加密通道(TLS)。最简单的方法是为该库的SSL指定允许的参数。这是一个example httpd configuration,您可以在其中执行DH密钥交换。每个合理的SSL框架或服务器都可以选择设置参数。

如果您想自己进行DH密钥交换(不作为TLS的一部分,我建议您使用现成的成熟库作为编程语言。

© www.soinside.com 2019 - 2024. All rights reserved.