TLS / SSL密碼強化的建議


TLS / SSL密碼強化的建議

傳輸層安全性(TLS)及其前身安全套接字層(SSL)是廣泛使用的協議,旨在通過身份驗證,加密和完整性來保護客戶端和服務器之間的數據傳輸安全。

與常見假設相反,TLS / SSL不僅是網站和Web應用程序中廣泛使用的技術(使用HTTP協議),而且TLS / SSL也被其他一些服務和協議廣泛使用,包括但不限於電子郵件服務器( SMTP,POP和IMAP協議),FTP服務器,聊天服務器(XMPP協議),虛擬專用網絡(TLS / SSL VPN),網絡設備。

為了保護正在傳輸的數據,TLS / SSL使用一個或多個密碼套件密碼套件是認證,加密和消息認證碼(MAC)算法的組合。所有這些都在協商TLS / SSL連接的安全設置以及數據的安全傳輸時使用。

以下一些是密碼套件可以使用的算法的示例。

功能 算法
密鑰交換 RSA,Diffie-Hellman,ECDH,SRP,PSK
認證 RSA,DSA,ECDSA
批量密碼 RC4,3DES,AES
消息驗證 HMAC-SHA256,HMAC-SHA1,HMAC-MD5

除了在若干監管標准中的要求之外,主要瀏覽器在沒有TLS的情況下將站點標記為“不安全”,它也可能被視為服務網站和Web應用程序的要求。然而,獲得正確的TLS實施可能會比預期的要簡單一些。最糟糕的是,糟糕的TLS配置可能會提供虛假的安全感,同時使網站和Web應用程序容易受到一系列攻擊。

許多常見的TLS配置錯誤在於密碼套件選擇不當。舊的或過時的密碼套件,尤其是那些遭受各種攻擊的密碼套件,可能允許攻擊者在傳輸過程中成功攔截或篡改秘密數據。以下是要對TLS / SSL實施進行的推薦配置列表。

禁用SSL 2.0和SSL 3.0

SSL 2.0是1995年第一個公開發布的SSL版本。此版本的SSL包含許多導致SSL 3.0引入的安全問題。SSL 3.0於1996年發布,完全重新設計了協議。

由於SSL2.0中出現的問題,協議使用起來不安全,應該完全禁用。
由於POODLE(Padding Oracle On Downgraded Legacy.Encryption)漏洞,SSL 3.0使用起來也不安全,應該被禁用以避免攻擊者檢索到安全連接的明文。此外,Elliptic Curve Cryptography(本文稍后將討論)不能與SSL3.0一起使用。

Internet Explorer 6是唯一仍然使用SSL3.0的瀏覽器。因此,除非仍然需要支持舊版Internet Explorer 6瀏覽器,否則應禁用SSL 3.0,如稍后所述。

禁用TLS 1.0和1.1

除非需要支持舊版瀏覽器,否則還應禁用TLS 1.0和1.1。PCI DSS規定自2018年6月30日起不再使用TLS 1.0,並強烈建議禁用TLS 1.1; 因為這些協議可能會受到FREAK,POODLE,BEAST和CRIME等漏洞的影響。

除非需要支持舊版瀏覽器,否則還應禁用TLS 1.0和1.1。PCI DSS規定自2018年6月30日起不再使用TLS 1.0,並強烈建議禁用TLS。如果仍然支持TLS 1.0是業務需求,強烈建議禁用TLS 1.0壓縮以避免CRIME攻擊

此外,禁用弱密碼也很重要。應禁用DES和RC4等弱密碼。DES可以在幾個小時內被破壞,而RC4被發現比以前想象的要弱。雖然可能已經建議過去使用RC4來緩解BEAST攻擊,但鑒於對RC4密碼的最新攻擊,微軟再次發布了一個建議還值得注意的是,PCI DSS也禁止使用RC4批量密碼。

禁用TLS 1.0和1.1可能會影響以下用戶代理(及其舊版本)(不同操作系統上的特定用戶代理版本可能會有所不同)。

  • Android 4.3
  • Chrome 29
  • Firefox 26
  • Internet Explorer 10
  • Java 6u45,7u25
  • OpenSSL 0.9.8y
  • Safari 6.0

組態

根據您的業務用例(例如,需要支持舊版瀏覽器和法規要求),您可能需要選擇稍微不同的密碼套件配置。Mozilla的SSL配置生成器可以用於獲得根據您的要求使用不同的瀏覽器“配置文件”(現代,中間和舊配置文件)的最佳TLS配置。

以下是現代配置文件的細分(最老的兼容客戶端:Firefox 27,Chrome 30,Windows 7上的Internet Explorer 11,Edge,Opera 17,Safari 9,Android 5.0和Java 8)

根據所討論的Web服務器(例如Apache HTTP Server,Nginx ...),啟用/禁用TLS協議和支持的TLS密碼套件的語法會略有不同。

Nginx的

# Enable TLSv1.2, disable SSLv3.0, TLSv1.0 and TLSv1.1
ssl_protocols TLSv1.2;

# Enable modern TLS cipher suites
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';

# The order of cipher suites matters
ssl_prefer_server_ciphers on;

Apache HTTP Server

# Enable TLSv1.2, disable SSLv3.0, TLSv1.0 and TLSv1.1
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1

# Enable modern TLS cipher suites
SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

# The order of cipher suites matters
SSLHonorCipherOrder     on

# Disable TLS compression
SSLCompression          off

# Necessary for Perfect Forward Secrecy (PFS)
SSLSessionTickets       off

下表將上面的密碼套件字符串分解為優先順序(最佳密鑰交換算法/最強加密優先)。

   -  此處 提供了有關OpenSSL支持的密碼的更多信息
訂購 密鑰交換算法 認證算法 批量加密算法 Mac算法
#1 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) Galois計數器模式下的AES 256(AES256-GCM) SHA384
#2 橢圓曲線Diffie-Hellman(ECDH) RSA Galois計數器模式下的AES 256(AES256-GCM) SHA384
#3 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) ChaCha20(CHACHA20) POLY1305
#4 橢圓曲線Diffie-Hellman(ECDH) RSA ChaCha20(CHACHA20) POLY1305
#5 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) Galois計數器模式下的AES 128(AES128-GCM) SHA256
#6 橢圓曲線Diffie-Hellman(ECDH) RSA Galois計數器模式下的AES 128(AES128-GCM) SHA256
#7 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) AES 256(AES256) SHA384
#8 橢圓曲線Diffie-Hellman(ECDH) RSA AES 256(AES256) SHA384
#9 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) AES 128(AES128) SHA256
#10 橢圓曲線Diffie-Hellman(ECDH) RSA AES 128(AES128) SHA256

該字符串在現代瀏覽器和TLS / SSL客戶端中提供最強的加密(Galois計數器模式中的AES僅在TLS 1.2中受支持)。此外,如果服務器和TLS / SSL客戶端都支持它,則字符串還提供Perfect Forward Secrecy(SSLSessionTicket必須設置s才能off在Apache HTTP Server中使用)。







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM