我想了解一些事情。
我用xca生成密钥,这是openssl的UI。
我已经创建了一个CA,然后为https生成一个服务器证书,并使用这个CA对生成的证书进行签名。新创建的证书是CA的子证书(据我所知)。我把CN作为域,生成一个新的4096位长度的私钥,导出crt和包含私钥的密钥pem。在本例中上载和配置nginx。
现在我通过https访问这个站点。在Firefox中单击连接信息时,我看到:
连接加密:高级加密(TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,128位密钥)
铬:
您与domain.tld的连接是用128位加密加密的.<...>
问题:
我的私钥是4096位。为什么要使用128位呢?
在这128位中使用的是4096位中的哪一位?
如果只使用长度的1/32,为什么我要生成一个4096位键?
我想了解这个过程是如何工作的。
发布于 2014-02-17 14:46:16
4096位RSA密钥及其相关证书在建立连接和密钥协议期间提供身份验证,允许客户端验证它们确实连接到您的服务器,而不是自称是您的服务器的中间人。
然而,RSA算法比具有类似安全特性的对称算法(如AES )慢数量级,而且可以加密的数据量有限。因此,它不用于保护实际传输的数据,而是在客户机和服务器之间商定对称算法的会话密钥。
在这种情况下,会话密钥是使用临时椭圆曲线Diffie-Hellman (ECDHE)算法商定的,该算法允许客户端和服务器派生随机共享密钥,而无需传输密钥本身。此密钥为128位,并与Galois/计数器模式中的对称AES加密算法一起使用。
https://stackoverflow.com/questions/21840269
复制相似问题