HTTPS
HTTPS 可以认为是HTTP + TLS, 在tcp的基础上多了一个加密通道
HTTPS使用非对称加密来加密密钥,使用对称加密来加密内容。
通信流程 非对称加密与对称加密
非对称加密:加密的密钥和解密的密钥不一致,有两种情况 1.公钥加密,私钥解密2.私钥加密,公钥解密。
对称加密:加密的密钥和解密的密钥是一样的。
非对称加密的速度比对称加密的速度要慢很多。
http使用的是不安全的明文传输,而https比http安全就在多了一个加密通道对传输内容进行加密,那么是如何加密的呢?
1.客户端请求服务端,获取公钥。
2.服务端生成公私钥,自己保存私钥(SK),将公钥(PK)和证书发给客户端。
3.客户端生成随机字符串key,通过公钥(PK)加密后发送给服务端
4.服务端拿到加密后的内容后,用自己的私钥(SK)进行解密,得到key,后续的过程都是通过密钥(key)来进行对称加密来传输。
从以上的步骤可以看出,传输对称加密的密钥使用的是非对称加密,而传输实际内容使用的是对称加密。
HTTPS的使用成本
- 证书费用以及更新维护
- HTTPS降低用户的访问速度(多了一层,但是合理优化和部署,对速度的影响是可以接受的,但是优化本身也是成本)
- 消耗cpu资源,需要增加大量机器(非对称密钥交换)
HTTPS对性能的影响
降低用户访问速度,增加服务器资源小号
如何影响?
- 协议交互所增加的网络RTT(往返时延,发请求->接收响应之后)
- 加解密的计算耗时
https握手:
- tcp三次握手建立连接
- TLS完全握手(阶段1,加密,证书 阶段2,密钥协商)
- 一般增加7个rtp(CA域名解析命中缓存的情况就稍好一点)
计算耗时:
- 浏览器计算耗时 30ms 一致性交换
- 服务端计算耗时 密钥交换,加解密耗时
- 优化,比较贴近于网络底层(一般的优化包含,tcp pass open 硬件加速,需要对整个网络知识才能hold住这个方面的优化)
HTTPS常见问题
-
https加密 是不是要在电脑上安装证书/保存密码?
因为是明文
不会进行身份验证
在数据传输的任何一个环节中都能看到
https利用tls协议进行传输,不用自己下载证书
(你会用世界顶级算力花费几十年看看隔壁老王在几十年前做了什么?) -
https不就是在http后面加个s,很难么?
难又不难
证书,卸载,流量转发,负载均衡,浏览器适配,refer传递等等
对于一个小型站点来说,小白用一天可以完成改造 -
https解决了所有的劫持问题么?
https解决了中间人攻击
但不能解决所有https的劫持问题
比如https网站里面加载了http资源
没有绝对的安全但是可以降低风险
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具