【高阶技术知识】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;如下图所示:
【高阶技术知识】HTTPS协议

HTTPS协议

Scratch HTTPs