分类: 云计算
2022-03-07 14:29:49
什么是加密套件
加密套件(CipherList)是指在ssl通信中,服务器和客户端所使用的加密算法的组合。在ssl握手初期,客户端将自身支持的加密套件列表发送给服务器;在握手阶段,服务器根据自己的配置从中尽可能的选出一个套件,作为之后所要使用的加密方式。这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法等。
加密的组成
每种加密套件的名字里包含了四部分信息,分别是
第一部分是密钥交换,用于决定客户端与服务器之间在握手的过程中如何认证。使用非对称加密算法来生成会话密钥,因为非对称算法不会将重要数据在通信中传输。用到的算法包括RSA,Diffie-Hellman,ECDH,PSK等
第二部分是加密算法,主要是对传输的数据进行加密传输用的。一般有对称加和非对称加密,但是非对称加密算法太耗性能,再者有些非对称加密算法有内容长度的限制,所以真正要传输的数据会使用对称加密来进行加密。算法名称后通常会带有两个数字,分别表示密钥的长度和初始向量的长度,比如DES 56/56, RC2 56/128, RC4 128/128, AES 128/128, AES 256/256
第三部分是会话校验(MAC)算法,为了防止握手本身被窜改(这里极容易和证书签名算法混淆)。算法包括MD5,SHA等。ssl证书申请可以在蔚可云申请。
第四部分是PRF(伪随机数函数),用于生成“master secret”。
例1:
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
从其名字可知,它是:
基于TLS协议的;
使用ECDHE、RSA作为密钥交换算法;
加密算法是AES(密钥和初始向量的长度都是256);
MAC算法(这里就是哈希算法)是SHA。
例2:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
“TLS” 自然是指TLS协议
“ECDHE” 是说使用带有短暂性密钥的椭圆曲线Diffie-Hellman密钥交换(也就是说要为每个会话创建新密钥并且事后也不会记下来)
“RSA”表明用 RSA 非对称加密保护TLS握手的安全
“AES_128_CBC” 是说在密码块链接模式中用带有128位密钥的AES 非对称加密保护真正的数据交换
“SHA” 表明用 SHA 安全哈希算法。