携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情
昨天只是介绍了一下 HTTP 协议的概念以及它的原理,今天接着简单总结一下 HTTP 的“升级版”——HTTPS 协议。
HTTPS 协议
在昨天介绍 HTTP 协议时有提到,HTTP 协议是以明文的方式发送内容,不提供任何方式的数据加密,所以不能进行一些敏感信息的传输,一旦被第三方截取,可以直接读懂其中的信息。为了解决 HTTP 协议的这一缺陷,就诞生了 HTTPS 协议(安全套接字层超文本传输协议)。HTTPS 协议在 HTTP 协议的基础上加入了 SSL/TLS 协议,SSL/TLS 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS 协议是由 SSL/TLS + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。HTTPS 协议的主要作用可分为两种:建立一个信息安全通道,保证数据传输的安全;确认网站的真实性。
HTTPS 的一些特点
- HTTPS 协议需要到 CA 申请证书,一般免费证书较少,需要一些费用;
- HTTPS 是具有安全性的 SSL/TLS 加密传输协议;
- HTTPS 端口是 443,HTTP 端口是 80,二者的连接方式也完全不一样;
使用 HTTPS 进行通信的步骤
- 客户在客户端使用 HTTPS 的 URL 访问 Web 服务器,要求与 Web 服务器建立 SSL 连接;
- Web 服务器收到客户端请求后,会将网站的证书信息(内含公钥)发送一份给客户端;
- 客户端的浏览器与 Web 服务器开始协商 SSL/TLS 连接的安全等级,即信息加密的等级;
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥进行加密并发送给网站;
- Web 服务器利用自己的私钥解密出会话密钥;
- Web 服务器利用会话密钥加密与客户端之间的通信。
需要注意的是, HTTPS 并非绝对安全,掌握根证书的机构、加密算法等的组织或个人,同样可以进行中间人形式的攻击, 但 HTTPS 仍是现行架构下最安全的解决方案,它增加了中间人攻击的成本。
本来还打算再接着延申一下有关于 CA 证书以及数字证书、数字签名的相关内容,这些其实之前在准备软考的时候接触过,当时备考,完全死记来着,虽有一些理解,但也过去这么久了。所以也算是温故一下,但感觉那部分内容有点多,一时也不知道该从哪说起,下次一定....
希望本文能够帮到你,如有错误,望指正!
我向你敬礼啊,Salute!