【高阶技术知识】HTTPS协议
简介
加密基础知识
加密传输的两种方式:PSK或者Certificate(即公共证书)。
加密的作用:加密前的数据称为明文(plaintext),加密的作用是使得加密后的数据看上去符合随机分布。
Public Key
公共证书加密,是非对称加密。
证书会分为两个部分:公钥和私钥。公钥加密的数据,只有私钥能够解密;私钥加密的数据,只有公钥能够解密。
通过将公钥释放出去,而保留私钥,能够确保:1.只有一个人能够使用私钥加密数据,并用公钥解密出来;因此,接收方如果成功使用公钥解密数据,意味着它只能来自于唯一的发送方。2.能够有多个发送方使用公钥加密数据,但只有一个接收方能够解密数据;因此,发送方能够确保数据只被目标接受者解密。
RSA和Diffie-Hellman使用非对称加密。
在通常的HTTPs服务器中,服务器持有私钥,访问者持有公钥。
PKI(Public Key Infrastructure, 公钥结构)
即证书颁发机构认证证书的使用方式。
Cipher Suite: 加密组件,即将多种加密方式的组合。映射表:
CipherSuite | Key Exchange | Cipher | Hash |
---|---|---|---|
TLS_PSK_WITH_RC4_128_SHA | PSK | RC4_128 | SHA |
TLS_PSK_WITH_3DES_EDE_CBC_SHA | PSK | 3DES_EDE_CBC | SHA |
TLS_PSK_WITH_AES_128_CBC_SHA | PSK | AES_128_CBC | SHA |
TLS_PSK_WITH_AES_256_CBC_SHA | PSK | AES_256_CBC | SHA |
TLS_DHE_PSK_WITH_RC4_128_SHA | DHE_PSK | RC4_128 | SHA |
TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA | DHE_PSK | 3DES_EDE_CBC | SHA |
TLS_DHE_PSK_WITH_AES_128_CBC_SHA | DHE_PSK | AES_128_CBC | SHA |
TLS_DHE_PSK_WITH_AES_256_CBC_SHA | DHE_PSK | AES_256_CBC | SHA |
TLS_RSA_PSK_WITH_RC4_128_SHA | RSA_PSK | RC4_128 | SHA |
TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA | RSA_PSK | 3DES_EDE_CBC | SHA |
TLS_RSA_PSK_WITH_AES_128_CBC_SHA | RSA_PSK | AES_128_CBC | SHA |
TLS_RSA_PSK_WITH_AES_256_CBC_SHA | RSA_PSK | AES_256_CBC | SHA |
PSK
即对称加***,旧称:Symmetric Key. 全称:Pre-Shared Key.优点:1.依赖当前支持的cipher suite 2.无需公共证书。
RFC文档:https://tools.ietf.org/html/rfc4279
通常用在小型私有网络中,PSK的存储方式通常由:密码明文,**(指纹),16进制字符串
使用python3库cryptography学习加密知识
TLS协议
TLSv1.3协议RFC文档:https://tools.ietf.org/html/rfc8446
TLSv1.2
使用curl测试,https://www.baidu.com作为测试目标;
目前客户端的curl能够使用TLSv1.3发起ClientHello,但是baidu响应的协议是TLSv1.2;如下图所示: