011-【CS253】【网络安全】【Web Security】【斯坦福大学】【中

今天的课程主要讲解了TLS(传输层安全)的相关内容。首先,讲了SQL注入的问题,即用户能够修改查询语句,从而访问到不应该看到的数据。解决方案之一是使用参数化SQL,另一种是使用ORM(对象关系映射)。接下来,讲解了TLS的核心问题,即HTTP的不安全性,包括隐私、完整性和身份验证。最后,展示了一个示例,说明了如何在网络攻击者存在的情况下实现安全通信。
1. TLS是一种加密协议,当与HTTP一起使用时称为HTTPS。
2. Diffie-Hellman密钥交换是一种匿名的协议,可以确保被动监听者无法获取任何信息。
3. 匿名Diffie-Hellman密钥交换缺乏身份验证,可能会导致中间人攻击。
4. 通过使用签名方案,可以为Diffie-Hellman密钥交换添加身份验证,确保通信双方可以安全地派生共享密钥。
5. 在身份验证的Diffie-Hellman密钥交换中,服务器使用私钥对传输的信息进行签名,客户端使用公钥验证签名的有效性。
6. 证书颁发机构(Certificate Authorities)是为网站所有者颁发数字证书的机构,用于验证特定主体名字拥有特定公钥的所有权。
7. 证书颁发机构通过签署证书来确认网站的公钥,并通过证书来证明该公钥属于特定的主体名字。
8. 浏览器会信任一小部分证书颁发机构,当服务器发送公钥和证书时,浏览器会验证证书是否由信任的证书颁发机构签署。
9. 证书中最重要的字段是“common name”,浏览器会将其与访问的URL进行比较,以确定证书是否属于所访问的网站。
10. 浏览器可以查看其信任的证书颁发机构列表,并可以手动添加或删除信任的机构。
11. 在Diffie-Hellman交换过程中,服务器会向客户端发送证书,并使用CA的公钥进行验证。
12. Let's Encrypt是一个免费的证书颁发机构,发行的证书有效期较短。
13. TLS 1.3替代了之前的版本,之前的版本存在严重问题,不再被浏览器信任。
14. 在TLS中,浏览器通过检查证书的颁发者、过期日期和域名等信息来决定是否显示锁定图标。
15. TLS 1.3具有前向保密性,即使服务器的密钥被泄露,也无法解密过去的通信记录。
16. HTTPS可以保护通信内容的安全性,但仍然可以通过IP地址和DNS请求等信息来判断用户访问的网站。
17. 大部分大型网站都拥有自己的IP地址,因此通过IP地址可以判断用户访问的网站。
18. 客户端可以通过客户端证书来进行身份认证,但目前很少有人使用这种方式。
19. 近年来,使用HTTPS的网站数量逐渐增加,主要得益于浏览器厂商的推动和免费证书的提供。
20. 证书颁发机构(CA)的安全性对整个互联网的安全性至关重要,一旦CA被攻破,所有网站的安全性都将受到威胁。
21. HTTP Strict Transport Security (HSTS) 是一种解决TLS剥离攻击的方法,通过让服务器告诉浏览器始终使用HTTPS,无论用户输入什么都可以保证安全。
22. HSTS通过发送一个名为Strict Transport Security的HTTP头来实现,该头部指定了浏览器应该记住此偏好的时间。
23. HSTS的第一次信任模型意味着如果用户输入HTTP,那么对于一个站点的第一次请求有可能是未加密的,因为浏览器在接收到带有HSTS头部的服务器响应之前无法预先知道应该使用HTTPS。
24. 预加载列表是解决第一次信任问题的一种方式,允许浏览器在从服务器接收到HSTS头部之前就硬编码网站的URL,使其只能使用HTTPS。
25. 某些顶级域名(TLD)已将整个TLD添加到预加载列表中,确保该TLD下的所有域名都被强制使用HTTPS。