我需要支持Diffie Hellman加密,现在为了进行测试,我需要创建一个具有DH密钥参数的证书,例如。密钥长度-2048等。
现在,我了解DH不适用于自签名证书,因此,基本上,我需要创建由某个受信任的第三方颁发的包含DH密钥参数的证书。
我进行了很多搜索,但似乎找不到正确的方向,没有哪里可以找到使用DH参数创建证书的方法。
有人能指出我正确的方向吗?预先感谢!
我需要支持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的一部分,我建议您使用现成的成熟库作为编程语言。