我正在开发一个系统,它包括一个移动应用程序和一个可以相互交谈的嵌入式设备。我在用以前称为极地SSL。
问题是嵌入式设备在大约7秒内执行TLS握手,这对我们的用例来说太大了。
身份验证不是问题,我使用的是1024 RSA。其他算法(如Diffie-Hellman或ECC)能加快速度吗?
编辑:
一步一步握手次数:
. Performing the SSL/TLS handshake:
hello request...0ms
client hello...30ms
server hello...0ms
server cert...0ms
server key exchange...4490ms
cert request...0ms
server hello done...0ms
client cert...0ms
client key exchange...3310ms
verify cert...0ms
client change cipher spec...0ms
client finished...10ms
server change cipher spec...0ms
server finished...0ms
flush buffers...0ms
hs wrapup...0ms
-------------------------------------------
-----------------hs done!------------------
-------------------------------------------
total: 7861发布于 2016-04-06 13:20:18
主要的瓶颈是密钥交换,在那里完成了异步加密。
使用rsa密钥交换,是目前为止最快的方法。这样,它只需计算客户端密钥交换,避免服务器密钥交换计算。此外,您可以通过更改证书大小来控制客户端密钥交换时间。
发布于 2019-07-11 15:17:14
请注意,尽管RSA-2048加密比RSA-1024加密花费更长的时间,但RSA-1024太接近已公开显示为可破坏的大小。每个人都认为美国国安局经常破坏RSA-1024的“有趣”派对,而这样做的代价一直在下降,直到有一天,学者们将证明它的能力。上一次学者做演示是在2009年,当时他们破坏了RSA-768,所以今天能够在公共云(没有定制硬件)上破坏RSA-1024是可行的。
还请注意,如果不使用DHE或ECDHE,所有记录的通信量都可以在使用证书的私钥后解密,即使证书已过期且无用。因此,您必须将证书的私钥永远保密。
我会尝试测试P-256ECDHE,既来自mbedTLS,也来自熊市市8266 8266。如果可以的话,甚至是Curve25519 ECDHE。
https://security.stackexchange.com/questions/119505
复制相似问题