HTTPS
1、概念
HTTPS(HyperText Transfer Protocol over Secure Socket Layer)超文本传 输安全协议, 近两年Google、Baidu、Facebook 等这样的互联网巨头,不谋 而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全 站 HTTPS,这也是未来互联网发展的趋势
为鼓励全球网站的 HTTPS 实现,一些互联网公司都提出了自己的要求
- Google 已调整搜索引擎算法,让采用 HTTPS 的网站在搜索中排名更靠前
- 从 2017 年开始,Chrome 浏览器已把采用 HTTP 协议的网站标记为不安全 网站
- 苹果要求 2017 年 App Store 中的所有应用都必须使用 HTTPS 加密连接
- 当前国内炒的很火热的微信小程序也要求必须使用 HTTPS 协议;
- 新一代的 HTTP/2 协议的支持需以 HTTPS 为基础
1.2 作用
- 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安 全;
- 对网站服务器进行真实身份认证。
1.3 使用特征
我们经常会在Web的登录页面和购物结算界面等使用HTTPS通信。
- 使用HTTPS通信时,不再用 http:// ,而是改用 https:// 。另外,
- 当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个 带锁的标记。
2、架构图
HTTPS并非是应用层一个新的协议,通常 HTTP 直接和 TCP 通信,HTTPS则先 和安全层(SSL/TLS)通信,然后安全层再和 TCP 层通信。
SSL/TLS协议就是为了解决上面提到的HTTP存在的问题而生的,下面我们来看 一下它是怎么解决的:
- 所有的信息都是加密传输的,第三方无法窃听
- 配备身份验证(服务端程序),防止身份被冒充
- 具有校验机制,一旦被篡改,通信双方会立刻发现
3、HTTPS工作原理
HTTPS是身披SSL/TLS外壳的HTTP
TLS全称传输层安全协议Transport Layer Security Protocol,TLS/SSL是一种加 密通道的规范
TLS协议是由TLS记录协议(TLS record Protocol)和TLS握手协议(TLS handshake Protocol)这两层协议叠加而成的
- 记录协议:TLS Record protocol
- TLS记录协议位于TLS握手协议的下层,是负责使用对称密码对消息进行 加密通信的部分
- 加密使用的密钥是通过握手协议在服务器和客户端之间协商决定的
- 握手协议:TLS Handshaking Protocols由TLS Change Ciper Spec Protocol(密码规格变更协议)和TLS Alert Protocol(警告协议)组成
- 负责在客户端和服务器之间协商决定密码算法和共享密钥。
- 密码规格变更协议负责向通信对象传达变更密码方式的信号,当协议中 途发生错误时,就会通过警告协议传达给对方。
- 警告协议是TLS握手协议负责在发送错误时将错误传达给对方。
4、对称加密算法
4.1 定义:
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解
密,这种加密方法称为对称加密,也称为单密钥加密。
4.2 要素:
原文、秘钥、算法
秘钥:在密码学中是一个定长的字符串、需要根据加密算法确定其长度
4.3 工作过程:
加密:明文 + 密钥 -> 密文
解密:密文 + 密钥 -> 明文
4.4 特点
- 优点:算法公开、计算量小、加密速度快、加密效率高。
- 缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。
缺陷:
加密和解密同用一个密钥,加密和解密都会用到密钥,没有密钥就无法对密
码解密,反过来说,任何人只要持有密钥就能解密。
改进:比如服务器为每一个客户端请求的TCP连接生成一个唯一的key
缺陷:
- 不同的客户端、服务器数量庞大,所以双方都需要维护大量的密钥,维护成本很高
- 因每个客户端、服务器的安全级别不同,密钥极易泄露
5、非对称加密算法
5.1 简介:
非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
非对称加密算法需要两个密钥:公开密钥(public key) 和私有密(private key)
公开密钥和私有密钥是一对
5.2 特点:
如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。由于其算法复杂,而使得加密、解密速度没有对称加密解密的速度快。有两 种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密 钥了,这样安全性就大了很多
公钥是公开的(也就是黑客也会有公钥),所以第 4 步私钥加密的信息,如 果被黑客截获,其可以使用公钥进行解密,获取其中的内容。
5.3 对称加密和非对称加密
非对称加密既然也有缺陷,那我们就将对称加密,非对称加密两者结合起来,
取其精华、去其糟粕,发挥两者的各自的优势。
解决问题:
通过对称加密和非对称加密的组合使用,解决内容可能被窃听的问题
存在缺陷:
解决报文可能遭篡改问题
解决通信方身份可能被伪装的问题
6、数字签名
6.1 数字签名有两种功能:
- 能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。
- 数字签名能确定消息的完整性,证明数据是否未被篡改过。
6.2 数字签名如何生成
将要发送的数据先用Hash算法(摘要算法、散列算法)生成消息摘要,然后用 发送者的私钥加密生成数字签名,与原文一起传送给接收者
6.3 校验数字签名流程
接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对 收到的原文产生一个摘要信息,与上一步得到的摘要信息对比。如果相同,则 说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改 过,因此数字签名能够验证信息的完整性。
本文作者:志旋
本文链接:https://www.cnblogs.com/wuzhixuan/p/15696014.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步