引言
- 昨天腾讯面试的时候,发现自己对于HTTPs并不是很了解,基本上只知道是加密版本的HTTP,但是具体的通信双方连接建立的具体方式还是不知道!能够使用什么样的加密算法也不是很清楚,今天作为一个补充,好好整理一下!
- BIBM应该是挂了,感觉自己的反应有点大,不应该以一篇文章的评审结果来评判自己,能够通过最好,不能通过也不能否定我整个人,我再根据他的投稿意见继续修改就行了!
- 信息来源——小林coding
正文
HTTPS简介
HTTP的缺陷引入
- HTTP因为是明文传输而且不需要证书认证,存在很多风险,具体如下
- 窃听风险:可以在通信链路上获取通信内容,如果涉及到个人隐私信息可能会泄露
- 篡改风险:可以修改网络传输的内容,强制植入一些垃圾广告,或者修改敏感信息
- 冒充风险:冒充同名网站,盗取个人账号和密码或者资金
HTTPS解决方式——引入SSL/TLS协议
- 具体解决方式主要分为三部分
- 混合加密:实现信息加密
- 摘要算法:防止篡改
- 数字证书:禁止冒充
混合加密==》信息加密==》解决窃听风险
- HTTPS采用了对称加密和非对称加密结合的混合加密方式。
1、对称加密方式说明
- 双方共享相同的密钥对文件进行加密和解密操作。
- 发送方使用密钥对明文进行加密,生成密文
- 接收方使用相同的密钥对密文进行解密,恢复成明文
- 常见的算法
- DES、AES等
- 特性
- 安全性不高,一旦泄露,加密数据面临破解的风险
- 速度快,适合处理大量数据
- 实现原理
- 使用位运算速度快,使用硬件计算,速度回更快
- 使用位运算速度快,使用硬件计算,速度回更快
2、非对称加密方式说明
- 使用一对不同的密钥进行加密和解密的加密算法。密钥分为公钥和私钥。
- 公钥:
- 可以公开给任何人
- 发送过程中,使用公钥对密文进行加密,生成密文
- 私钥:
- 必须保密,私人持有
- 接受过程中,使用自己的私钥对密文进行解密,恢复成明文
- 公钥:
- 常见算法
- RSA加密算法
- ECC加密算法
- 特性
- 安全性高,能够提供身份验证和数据完整性保护
- 加密和解密速度相对较慢,适合处理少量数据
- 实现原理
- 设计大数乘法或者大数模等运算,比较耗时
- 设计大数乘法或者大数模等运算,比较耗时
3、对称密钥加密快的原因
-
运算方式:
- 对称密钥主要是位运算,速度更快,如果使用硬件计算,速度更快
- 非对称密钥计算更加复杂,往往会涉及到大数乘法、大数模等
-
数据容量
- 相同强度下,对称加密需