据我所知,通过SSL,浏览器获取安全网站的公钥并通过公钥加密rsa算法,这两个建立会话密钥,然后通过一些对称算法继续通信,因为对称密钥加密/解密更快。 SSL使用哪种对称密钥算法? DES? AES?或其他什么?
答案 0 :(得分:22)
当客户端连接到服务器时,它会协商使用所谓的密码套件(加密,密钥交换,身份验证算法的组合)。每个SSL客户端或服务器都有一个允许的密码套件列表,在握手期间,客户端和服务器就要使用的密码套件进行协商。有时会发生这样的情况,即没有共同点(密码集不相交)并且无法建立连接。
SSL支持的对称算法包括DES,3DES,ARCFOUR,AES,Camellia,RC2,IDEA,SEED,NULL(无加密)。
答案 1 :(得分:5)
在连接建立(“握手”)期间,客户端和服务器决定使用“密码套件”。密码套件陈述了所使用的算法(非对称密钥协商,对称加密和完整性检查)。详细信息,客户端发送它支持的密码套件列表,服务器选择其中一个,它也支持。通常,服务器选择客户端发送的第一个套件(换句话说,客户端消息中套件的顺序是“偏好顺序”,服务器通常会尊重客户端的偏好)。
例如,密码套件TLS_RSA_WITH_3DES_EDE_CBC_SHA
表示会话密钥将通过RSA传输(非对称加密,使用服务器证书中的RSA公钥),数据将使用3DES对称加密,并且完整性检查将使用SHA-1哈希函数。请参阅TLS specification以获取标准密码套件列表(其他套件稍后添加,特别是一些使用AES)。
答案 2 :(得分:2)
包括RC4和DES在内的几种可能性甚至不加密。不是我熟悉的领域,但我假设客户和服务器协商找到一个可以使用的区域
答案 3 :(得分:0)
如果您在Firefox下使用HTTPS,则单击URL栏中的小“锁”图标,它将弹出带有连接详细信息的弹出窗口。例如,在服务器上,我使用firefox连接了128位AES。
由于TLS连接会协商连接,因此不同的Web浏览器当然可以给出不同的结果。