HTTPS与网络安全核心概念总结
1. 起点:为什么我的HTTPS网站提示“不安全”?
-
核心原因:混合内容 (Mixed Content)。
-
解释:虽然主页面是通过安全的HTTPS加载的,但页面中包含了通过不安全的HTTP加载的资源(如图片、脚本、API请求等)。
-
浏览器策略:
-
被动内容 (如图片):通常会加载,但地址栏会显示“不安全”警告。
-
主动内容 (如API请求、脚本):现代浏览器(Chrome, Firefox等)为了安全,会直接阻止,导致网站功能异常。这就是为什么有的浏览器只警告,有的浏览器请求失败。
-
-
快速解决方案:
-
演示用:临时修改浏览器设置,允许加载不安全内容。
-
根本解决:使用Nginx等反向代理,将内部的HTTP服务通过一个安全的HTTPS路径暴露出来,然后修改前端代码调用该代理地址。
-
2. 核心原理:HTTP vs. HTTPS (明信片 vs. 加密保险箱)
-
HTTP (超文本传输协议):像寄一张明信片。内容是明文的,从寄件人到收件人途中的所有中间环节(WiFi路由器、运营商等)都能看到全部内容。
-
HTTPS (安全的HTTP):像寄一个加密的保险箱。在发送前,内容就被锁起来了。中间环节只能看到包裹要去哪(服务器IP和域名),但无法窥探里面的具体内容。
3. 流量如何被“中途截取”?
-
误区:“截取”不等于通信中断,而是**“窥探”和“篡改”**。
-
原理:您的网络请求并非直线连接到服务器,而是经过多个“中转站”(路由器)。黑客的目标就是让自己成为其中一个中转站。
-
常见方法:
-
设置恶意WiFi:在公共场所提供免费WiFi,您连接后,所有流量都先经过黑客的设备。
-
ARP欺骗:在同一个局域网(如公司、咖啡馆)内,欺骗您的设备和路由器,让自己成为中间的“传话人”。
-
DNS劫持:污染DNS服务器,当您访问
www.银行.com时,给您一个指向黑客服务器的假IP地址。
-
4. HTTPS的魔法:握手、加密与认证
-
混合加密机制:结合了两种加密方式的优点。
-
核心目的总结:公钥和私钥(非对称加密)的核心目的,就是为了让通信双方能安全地协商出一个只有彼此知道的“会话密钥”(对称加密密钥)。
-
非对称加密 (公钥/私钥):慢但安全。用于在握手阶段安全地交换“会話密钥”。
-
对称加密 (会话密钥):快但密钥分发困难。用于在握手后加密所有实际的业务数据。
-
-
握手流程揭秘:
-
浏览器向服务器请求连接。
-
服务器返回其证书,内含公钥。
-
浏览器验证证书的合法性(由受信任的机构签发),然后随机生成一个本次通信专用的“会话密钥”。
-
浏览器用服务器的公钥加密这个**“会话密钥”**,并发送给服务器。
-
服务器用自己的私钥解密,得到“会话密钥”。
-
至此,双方都拥有了只有他们知道的“会话密钥”。后续所有通信(请求和响应)都用这个密钥进行对称加密。
-
-
关键问题解答:
-
黑客有公钥,为何无法解密服务器返回的数据?
因为服务器返回的数据是用**“会话密钥”**加密的,而不是公钥。黑客没有会话密钥,所以无法解密。
-
黑客为何不能自己生成会话密钥去攻击?
因为他无法冒充服务器。如果他想进行“中间人攻击”,就必须伪造服务器的证书。而伪造的证书无法通过浏览器的身份验证,浏览器会弹出严重的安全警告,从而阻止攻击。
-
5. 实践篇:Python模拟HTTPS请求与会话管理
-
底层细节的抽象:
-
在使用Python的
requests库时,我们不需要手动处理TLS握手、生成会话密钥等复杂过程。这些都由库及其依赖的底层加密套件(如OpenSSL)自动完成。 -
程序员只需要调用
requests.get('https://...'),就能享受到安全的连接。
-
-
会话过期的原因:
-
现代Web应用普遍使用有时效性的身份令牌 (Token) 来管理会话,以提高安全性。
-
您从浏览器复制的请求头中,包含了这样一个短效的令牌(通常在
Cookie或Authorization头中)。当它过期后,服务器自然会拒绝请求。
-
-
模拟“自动刷新”机制:
-
浏览器能保持登录状态,是因为它实现了**“Refresh Token (刷新令牌)”**机制。
-
流程:
-
登录时,服务器同时返回一个短效的
Access Token和一个长效的Refresh Token。 -
平时请求API时使用
Access Token。 -
当服务器返回
401 Unauthorized错误(表示Access Token过期)时,程序自动调用刷新接口,用Refresh Token去换取一个新的Access Token。 -
用新的
Access Token重新发送刚才失败的请求。
-
-
在Python中,需要编写相应的逻辑来捕获
401错误,并调用刷新接口,从而实现自动化的、持久的会话。
-
希望这份总结能对您有所帮助!
1万+

被折叠的 条评论
为什么被折叠?



