011-【CS253】【網(wǎng)絡(luò)安全】【W(wǎng)eb Security】【斯坦福大學(xué)】【中

今天的課程主要講解了TLS(傳輸層安全)的相關(guān)內(nèi)容。首先,講了SQL注入的問題,即用戶能夠修改查詢語句,從而訪問到不應(yīng)該看到的數(shù)據(jù)。解決方案之一是使用參數(shù)化SQL,另一種是使用ORM(對(duì)象關(guān)系映射)。接下來,講解了TLS的核心問題,即HTTP的不安全性,包括隱私、完整性和身份驗(yàn)證。最后,展示了一個(gè)示例,說明了如何在網(wǎng)絡(luò)攻擊者存在的情況下實(shí)現(xiàn)安全通信。
1. TLS是一種加密協(xié)議,當(dāng)與HTTP一起使用時(shí)稱為HTTPS。
2. Diffie-Hellman密鑰交換是一種匿名的協(xié)議,可以確保被動(dòng)監(jiān)聽者無法獲取任何信息。
3. 匿名Diffie-Hellman密鑰交換缺乏身份驗(yàn)證,可能會(huì)導(dǎo)致中間人攻擊。
4. 通過使用簽名方案,可以為Diffie-Hellman密鑰交換添加身份驗(yàn)證,確保通信雙方可以安全地派生共享密鑰。
5. 在身份驗(yàn)證的Diffie-Hellman密鑰交換中,服務(wù)器使用私鑰對(duì)傳輸?shù)男畔⑦M(jìn)行簽名,客戶端使用公鑰驗(yàn)證簽名的有效性。
6. 證書頒發(fā)機(jī)構(gòu)(Certificate Authorities)是為網(wǎng)站所有者頒發(fā)數(shù)字證書的機(jī)構(gòu),用于驗(yàn)證特定主體名字擁有特定公鑰的所有權(quán)。
7. 證書頒發(fā)機(jī)構(gòu)通過簽署證書來確認(rèn)網(wǎng)站的公鑰,并通過證書來證明該公鑰屬于特定的主體名字。
8. 瀏覽器會(huì)信任一小部分證書頒發(fā)機(jī)構(gòu),當(dāng)服務(wù)器發(fā)送公鑰和證書時(shí),瀏覽器會(huì)驗(yàn)證證書是否由信任的證書頒發(fā)機(jī)構(gòu)簽署。
9. 證書中最重要的字段是“common name”,瀏覽器會(huì)將其與訪問的URL進(jìn)行比較,以確定證書是否屬于所訪問的網(wǎng)站。
10. 瀏覽器可以查看其信任的證書頒發(fā)機(jī)構(gòu)列表,并可以手動(dòng)添加或刪除信任的機(jī)構(gòu)。
11. 在Diffie-Hellman交換過程中,服務(wù)器會(huì)向客戶端發(fā)送證書,并使用CA的公鑰進(jìn)行驗(yàn)證。
12. Let's Encrypt是一個(gè)免費(fèi)的證書頒發(fā)機(jī)構(gòu),發(fā)行的證書有效期較短。
13. TLS 1.3替代了之前的版本,之前的版本存在嚴(yán)重問題,不再被瀏覽器信任。
14. 在TLS中,瀏覽器通過檢查證書的頒發(fā)者、過期日期和域名等信息來決定是否顯示鎖定圖標(biāo)。
15. TLS 1.3具有前向保密性,即使服務(wù)器的密鑰被泄露,也無法解密過去的通信記錄。
16. HTTPS可以保護(hù)通信內(nèi)容的安全性,但仍然可以通過IP地址和DNS請(qǐng)求等信息來判斷用戶訪問的網(wǎng)站。
17. 大部分大型網(wǎng)站都擁有自己的IP地址,因此通過IP地址可以判斷用戶訪問的網(wǎng)站。
18. 客戶端可以通過客戶端證書來進(jìn)行身份認(rèn)證,但目前很少有人使用這種方式。
19. 近年來,使用HTTPS的網(wǎng)站數(shù)量逐漸增加,主要得益于瀏覽器廠商的推動(dòng)和免費(fèi)證書的提供。
20. 證書頒發(fā)機(jī)構(gòu)(CA)的安全性對(duì)整個(gè)互聯(lián)網(wǎng)的安全性至關(guān)重要,一旦CA被攻破,所有網(wǎng)站的安全性都將受到威脅。
21. HTTP Strict Transport Security (HSTS) 是一種解決TLS剝離攻擊的方法,通過讓服務(wù)器告訴瀏覽器始終使用HTTPS,無論用戶輸入什么都可以保證安全。
22. HSTS通過發(fā)送一個(gè)名為Strict Transport Security的HTTP頭來實(shí)現(xiàn),該頭部指定了瀏覽器應(yīng)該記住此偏好的時(shí)間。
23. HSTS的第一次信任模型意味著如果用戶輸入HTTP,那么對(duì)于一個(gè)站點(diǎn)的第一次請(qǐng)求有可能是未加密的,因?yàn)闉g覽器在接收到帶有HSTS頭部的服務(wù)器響應(yīng)之前無法預(yù)先知道應(yīng)該使用HTTPS。
24. 預(yù)加載列表是解決第一次信任問題的一種方式,允許瀏覽器在從服務(wù)器接收到HSTS頭部之前就硬編碼網(wǎng)站的URL,使其只能使用HTTPS。
25. 某些頂級(jí)域名(TLD)已將整個(gè)TLD添加到預(yù)加載列表中,確保該TLD下的所有域名都被強(qiáng)制使用HTTPS。