HTTPS协议
这里会涉及一些关于加密算法,简单了解一下
- 单向散列加密(不能解码,用与校验 数据是否被篡改,数字签名用到了这一点)
- MD5
- SHA
- 对称加密
- DES
- 3DES
- AES
- 如何解决密钥配送问题(私下协商、网络传输(通过非对称加密解决,当然也有密钥配送中心)
传输效率高、加解密速度快,但不安全
- 非对称加密
- RSA
- 公钥私钥 密钥对
- 解决密钥派送问题
传输效率低、加解密速度慢,但安全性能高
对称加密缺点:不能很好解决密钥派送问题(密钥会被窃听),即不安全
-
混合密码系统(集对称加密的高小和非对称加密的安全为一体),HTTPS所用的SSL/TLS用到了混合密码系统
- 生成一个会话密钥(对称加密用于加密msg)
- 非对称加密的公钥对这个这个会话密钥进行加密
-
数字签名
- (生成签名,由消息的发送者完成)msg被篡改,通过发送方生成一个密钥对,对msg进行单向散列(私钥)生成一个签名
- 区别于上面的加密,数字签名是由发送方生成密钥对
- 将msg和公钥以及签名一齐发送给接收方,用于校验msg是否被篡改
- (生成签名,由消息的发送者完成)msg被篡改,通过发送方生成一个密钥对,对msg进行单向散列(私钥)生成一个签名
-
证书
- 由CA颁发 或 自己搭建一个OpenSSL自己签发证书(个人成立认证机构)
- 主要用于防止 公钥被篡改,用于验证公钥的合法性
公钥可能被拦截、伪造
HTTPS协议
一、HTTPS的作用
http是明文传输(plaintext),明文传输导致的问题
容易被窃听、篡改、冒充
https的作用:
- 所有的信息通过加密传播,第三方无法窃听
- 具有校验机制,一旦被篡改,通信双方会立刻发现
- 配备身份证书,防止身份被冒充
其实现就是通过大名鼎鼎的SSL/TLS协议
,该协议位于会话层(介于应用层和传输层之间,别忘了还有个表示层)
TCP协议仅保证了传输数据不丢包,但未保证数据传输过程不被篡改,窃听
二、SSL/TLS协议
HTTPS在HTTP基础上适用SSL/TLS协议 加密报文,对窃听和中间攻击人提供合理的防护
SSL/TLS也可以加在其他协议上
- FTP ->FTPS
- SMTP->SMTPS
TLS(Transport Layer Security):传输层安全协议
- 前身为SSL(Secure Socket Layer):安全套接层
TLS/SSL主要解决了数据保密性、数据的完整性以及完成身份认证
- 保密性;通过混合加密系统解决
- 完整性:数字签名(单向散列)
- 身份认证:通过证书解决
接下来的学习都以TLS1.2为例子
三、HTTPS通信过程
主要分为3大阶段
- TCP的3次握手
- TLS的连接(SSL的连接)
- HTTP请求与响应
TLS 1.2的连接(ECDHE密钥交换算法)
TLS1.2的连接大概有10个步骤