HTTPS 问题
问题:
- 什么是HTTPS?HTTPS 和 HTTP的区别是什么?
- HTTPS 的连接过程?
- HTTPS 的加密方式是什么,对称加密还是非对称加密,为什么这样设计?
- HTTPS 绝对安全吗?
- HTTPS 能被抓包吗?
- 如何防止HTTPS被抓包
HTTP 和 HTTPS 是什么?有什么区别
HTTP:(HyperText Transfer Protocol)超文本传输协议
HTTPS:(HyperText Transfer Protocol Secure)安全超文本传输协议
安全性 | 默认端口 | 加密方式 | |
---|---|---|---|
HTTP | 不安全 | 80 | 明文传输,无加密 |
HTTPS | 安全 | 443 | TLS/SSL加密协议 |
什么是SSL?
SSL 是一种标准协议,目的是通过Web 创建安全的Internet 通道,用于在加密浏览器和服务器之间的通信。
SSL 证书:遵循SSL协议,由受信任的CA认证机构颁布的数字证书。
TLS/SSL 加密的原理是什么?
先了解两个加密方式:
密钥 | 加密速度 | 安全性 | 常见 | |
---|---|---|---|---|
对称加密 | 双方使用相同的密钥 | 快 | 相对低,一旦丢失,就会被破解 | AES |
非对称加密 | 一个使用公钥,一个使用私钥 | 慢 | 相对高,只要私钥不丢失,就不会被破解 | RSA |
HTTPS 的连接过程?
HTTPS 的加密方式是什么,对称加密还是非对称加密,为什么这样设计?
由上图可以看出,HTTPS 连接过程中,分为两个部分:
- 证书验证阶段:非对称加密。保证安全性
- 数据传输阶段:对称加密。保证效率
这样设计的优点是,既能保证安全,又能保证效率。
HTTPS 绝对安全吗?
不是绝对安全的,可以通过中间人攻击。
Charles 等工具是如何实现拦截HTTPS的?
HTTPS使用SSL加密方式,是一种非常安全的机制。目前没有办法对这个协议进行攻击。但是中间人可以通过在建立SSL的时候进行拦截。拦截客户端的请求,利用中间人获取对应的SSL 证书,非对称加密的公钥和私钥,以及对称加密的密钥。有了这些就可以进行拦截。具体如下:
如何防止HTTPS被抓包
根据上面的问题,知道了,HTTPS 被拦截是在SSL证书获取期间,中间人拦截到了,然后将中间人将自己的证书交给了客户端。这样在数据传输过程中,中间人使用自己的证书和拿到的服务器的证书来进行解密和加密。
如果在本地预置一个SSL证书,这样中间人将自己的证书交给客户端的时候,使用本地预置的SSL证书验证,这样就能知道这个证书并不是一个自己的证书,就知道已经被拦截了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端