HTTPS协议
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使用携带公钥信息的数字证书来保证公钥的安全性和完整性,并非直接传输公钥信息
图片来源:https://juejin.cn/post/7067433233876516871
相关信息
1、客户端发送支持的加密协议版本(TLS)
2、服务器从中筛选合适的加密协议版本
3、服务器端返回证书,证书中有公钥
4、客户端使用根证书验证证书合法性
5、客户端生成对称密钥,通过证书中的公钥加密,发送到服务端
6、服务端使用私钥解密,获取对称密钥,使用对称密钥加密数据
7、客户端解密数据,SSL加密通信建立,开始通信......
HTTPS单向认证和双向认证
HTTPS单项认证
https单向认证至客户端连接到某个域名或IP时,客户端需要验证服务器的身份。
服务器的身份一般通过证书的方式进行验证,服务器的证书一般都会在权威的CA机构进行签名,客户端收到服务器证书后,会获取服务器证书对应的ca机构的证书,并用CA证书进行解密。
HTTPS双向认证
https双向认证指除了客户端需要验证服务器之外,服务器也需要验证客户端