每种Cipher的名字里包含了四部分信息,分别是 密钥交换算法,用于决定客户端与服务器之间在握手的过程中如何认证,用到的算法包括RSA,Diffie-Hellman,ECDH,PSK等 加密算法,用于加密消息流,该名称后通常会带有两个数字,分别表示密钥的长度和初始向量的长度,比如DES 56/56, RC2 56/128, RC4 128/128, AES 128/128, AES 256/256 报文认证信息码(MAC)算法,用于创建报文摘要,确保消息的完整性(没有被篡改),算法包括MD5,SHA等。 PRF(伪随机数函数),用于生成“master secret”。 比如: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ,从其名字可知,它是: 基于TLS协议的; 使用ECDHE、RSA作为密钥交换算法; 加密算法是AES(密钥和初始向量的长度都是256); MAC算法(这里就是哈希算法)是SHA。 比如: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA “TLS” 自然是指TLS协议 “ECDHE” 是说使用带有短暂性密钥的椭圆曲线Diffie-Hellman密钥交换(也就是说要为每个会话创建新密钥并且事后也不会记下来) “RSA”表明用 RSA 非对称加密保护TLS握手的安全 “AES_128_CBC” 是说在密码块链接模式中用带有128位密钥的AES 非对称加密保护真正的数据交换 “SHA” 表明用 SHA 安全哈希算法。 |
|