TLS握手-对称方案

时间:2018-11-08 15:03:28

标签: encryption cryptography encryption-symmetric encryption-asymmetric

据我所知,TLS既可以使用对称加密也可以使用非对称加密。 非对称方案用于交换密钥,但是什么时候使用什么对称方案?

2 个答案:

答案 0 :(得分:1)

  

非对称方案用于交换密钥

和数字签名。

在密钥交换期间,对称方案用于使用约定的对称密钥进行数据传输。

这称为Hybrid cryptosystem

答案 1 :(得分:0)

是的,您是对的。非对称算法通常比对称算法慢。但是,对称算法需要共享的密钥来加密和解密消息。因此,TLS允许客户端和服务器使用非对称机制交换共享密钥。如果没有非对称算法,则无法以安全的方式在两方之间交换共享机密。一旦双方都拥有共享密钥,就使用对称算法对客户端和服务器之间的所有后续通信进行加密,该算法比非对称算法快得多。

在非常高的级别上,建立TLS连接的步骤如下:

  1. 客户端->请求安全会话
  2. 服务器->发送证书和链式证书
  3. 客户端->验证证书
  4. 客户端->生成用于对称加密的随机密钥
  5. 客户端->使用服务器公钥对生成的密钥进行加密,并将加密后的值发送到服务器
  6. 服务器->使用其自己的私钥解密客户端发送的密钥

此后,将使用对称算法对服务器与客户端之间的所有后续通信进行加密。

将使用哪种特定算法由服务器和客户端支持的密码套件确定。在建立连接期间,要使用的密码套件由客户端首选项确定。

典型的密码套件名称如下:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

这里

ECDHE -密钥交换算法

ECDSA -用于对密钥进行签名的数字签名算法

AES_128_GCM -具有128位密钥的分组密码和模式

ECDHE 代表“椭圆曲线Diffie Hellman短暂”。椭圆变体(第一个E)用于表演,而暂时性变体(最后一个E)用于向前保密。前向保密性意味着,如果攻击者继续通过TLS记录所有通信,并且在以后的某个时间点以某种方式获得了私钥,则他/她将无法解密过去记录的通信。

ECDSA 用于认证(验证)共享机密。 ECDSA比其他认证算法(例如HMAC)更弱和更慢。但是它用于共享密钥身份验证,因为它不需要验证者知道用于创建身份验证标签的秘密密钥。服务器可以很好地使用其私钥来验证消息的完整性。

AES_128_GCM -一旦双方(通常是浏览器和Web服务器)之间共享了公共密钥,就使用对称块密码算法对双方之间的消息交换进行加密。在这种特定情况下,将使用具有128位密钥和GCM身份验证模式的分组密码AES。

如果在浏览器中打开HTTPS网站,则可以使用浏览器实用程序查看使用的密码套件。例如,在Firefox中,您可以在页面信息的“安全性”标签下看到详细信息,如下所示:

enter image description here