HTTPS协议

@wintry大约 3 分钟

HTTPS和HTTP的区别

http和https使用连接方式不同,默认端口也不一样,http是80,https是443。

HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,不安全。

HTTPS使用了SSL/TLS协议进行了加密处理。

SSL/TLS是同一个东西的不同阶段

相关信息

SSL(Secure Sockets Layer) 安全套接层是在上世纪90年代中期,由网景公司设计的。

到了1999年,SSL 因为应用广泛,已经成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。

标准化之后的名称改为 TLS(Transport Layer Security)传输层安全协议。

HTTPS加密方式

HTTPS利用对称加密与非对称加密算法结合的方式

对称加密

通信双方使用同一个密钥,该密钥既用于数据加密(发送方),也用于数据解密(接收方)

特点是速度高,可加密内容较大,用来加密会话过程中的消息(比如DES和AES加密算法)

非对称加密

通信双方使用两个密钥,发送方使用公钥对数据进行加密,数据接收方使用私钥对数据进行解密

速度慢,但能提供更好的身份认证技术,用来加密对称加密的密钥 (比如RSA加密算法)

HTTPS连接建立过程

HTTPS使用携带公钥信息的数字证书来保证公钥的安全性和完整性,并非直接传输公钥信息

image.png

图片来源:https://juejin.cn/post/7067433233876516871open in new window

相关信息

1、客户端发送支持的加密协议版本(TLS)

2、服务器从中筛选合适的加密协议版本

3、服务器端返回证书,证书中有公钥

4、客户端使用根证书验证证书合法性

5、客户端生成对称密钥,通过证书中的公钥加密,发送到服务端

6、服务端使用私钥解密,获取对称密钥,使用对称密钥加密数据

7、客户端解密数据,SSL加密通信建立,开始通信......

HTTPS单向认证和双向认证

HTTPS单项认证

https单向认证至客户端连接到某个域名或IP时,客户端需要验证服务器的身份。

服务器的身份一般通过证书的方式进行验证,服务器的证书一般都会在权威的CA机构进行签名,客户端收到服务器证书后,会获取服务器证书对应的ca机构的证书,并用CA证书进行解密。

https连接及协商过程

https连接抓包过程

HTTPS双向认证

https双向认证指除了客户端需要验证服务器之外,服务器也需要验证客户端

https双向认证流程

https双向认证抓包