SSL和TLS注意事項《漏洞防護》

  • 2019 年 12 月 27 日
  • 筆記

SSL全稱為安全套接字層,TLS全稱為傳輸層安全性,這兩個概念通常情況下可以互換使用,實際上SSL相當於TLS,現在web瀏覽器和大多數的web框架都支持不同版本的SSL和TLS,使用的基本要求是能夠訪問公鑰基礎設施以獲取證書。能夠保安在現證書協議狀態。一檢查證書的吊銷狀態,協議版本支持的最低配置以及每個版本的協議選擇。

傳輸層安全的主要好處是能夠保護數據在客戶端,如瀏覽器。和Web服務器之間傳輸時不被泄露或更改。SSL/TLS的服務器驗證組件向客戶端提供服務器的身份驗證。如果配置了客戶端證書那麼在客戶端也能夠起到相同的作用,但是在實踐中後端證書不會替代基於用戶名和密碼的後端身份驗證模型。Hai提供了兩個常被忽略的額外好處,完整性保護和重放防護。TLS通訊數據流中包含內置空間,用來防止對加密數據進行分改,此外內置組件還能夠防止不對捕獲的數據流進行重放攻擊,需要指出的是在傳輸過程中,為了數據提供上述防護,但不會為客戶端和服務器內的數據提供任何安全防護處。SSL雖然有很多好處,如果使用不當可能出現嚴重的漏洞。

一、盡量在任何地方使用SSL進行安全傳輸。

無論內網還是外網都應該使用SSL/TLS等有效的傳輸層安全進制。大量的數據露露表明攻擊者能夠進入內部網絡,並使用修改器來獲取內部網絡上的傳輸未加密的數據。比如登錄頁面及後續的認證界面如果使用非SSL攻擊者能夠修改初始登錄頁面的登錄表單,導致用戶登錄憑證被發送到任意位置,攻擊者還可以查看已驗證的頁面中未加密會話ID,從而危害已驗證的用戶會話。

二、不要為HTTPS頁面提供HTTP訪問。

所有提供安全頁面,不要提供非安全協議的訪問方式,如果用戶無意將驗證的頁面改成非認證頁面並提交,那麼響應以及其中敏感數據將通過明文為方式返回給用戶。

三、不要混合SSL內容與非SSL內容。

通過SSL傳輸的頁面不得包含非SSL傳輸的任何內容。額,攻擊者可以攔截未加密傳輸的數據,並將惡意內容注入用戶頁面。此外,如果cookie未設置secure屬性。就可以通過未加密數據竊取用戶cookie。

四、Cookie使用Secure屬性。

必須所有用戶Cookie設置Secure屬性。以保證cookie只能通過HTTPS的方式進行傳輸。如果未設置該屬性,攻擊者可以欺騙用戶的瀏覽器。向網站上的未加密頁面提交請求已獲取用戶cookie。服務器未配置HTTP的訪問方式。這種攻擊行為也是可行的,因為攻擊者監視的是請求消息而不關心服務器的響應內容。

五、不要將敏感數據放在URL中。

應該數據不得通過URL參數傳輸,因為即使在傳輸過程中使用了安全協議,對於參數和值進行了加密,但是仍可以通過下面兩種方式獲取。1、在瀏覽器的瀏覽記錄中。2、通過Referer頭將敏感信息暴露給第三方網站。

六、防止敏感數據緩存。

儘管安全協議對傳輸中的數據提供了加密,但不能解決客戶端或代理服務器上潛在的數據泄露問題。不應該讓這些節點緩存或保留敏感數據。

七、使用HSTS

HSTS這個性的安全增強功能,一旦支持該規格的瀏覽器收到響應頭。瀏覽器會阻止指定域下的任何HTTP通信。而使用HTTPS進行通信。

八、使用HPKP

HPKP一種安全機制,用於HTTPS網站抵禦攻擊者使用錯誤的或者欺詐性的證書冒充合法證書。