4701浏覽量

TLS / SSL密碼套件的強化建議

來源: 時間:2020-12-08
爲了保護正在傳輸的數據,TLS / SSL使用一(yī)個或多個密碼套件。密碼套件是認證,加密和消息認證碼(MAC)算法的組合。所有這些都在協商(shāng)TLS / SSL連接的安全設置以及數據的安全傳輸時使用。

以下(xià)一(yī)些是密碼套件可以使用的算法的示例。


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

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

禁用SSL 2.0和SSL 3.0

SSL 2.0是1995年第一(yī)個公開(kāi)發布的SSL版本。此版本的SSL包含許多導緻SSL 3.0引入的安全問題。SSL 3.0于1996年發布,完全重新設計了協議。

由于SSL2.0中(zhōng)出現的問題,協議使用起來不安全,應該完全禁用。
由于POODLE(Padding Oracle On Downgraded Legacy.Encryption)漏洞,SSL 3.0使用起來也不安全,應該被禁用以避免攻擊者檢索到安全連接的明文。此外(wài),Elliptic Curve Cryptography不能與SSL3.0一(yī)起使用。

Internet Explorer 6是唯一(yī)仍然使用SSL3.0的浏覽器。因此,除非仍然需要支持舊(jiù)版Internet Explorer 6浏覽器,否則應禁用SSL 3.0,如稍後所述。

禁用TLS 1.0和1.1

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

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

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

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

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

根據所讨論的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


下(xià)表将上面的密碼套件字符串分(fēn)解爲優先順序(最佳密鑰交換算法/最強加密優先)。


密鑰交換算法 認證算法 批量加密算法 Mac算法
#1 橢圓曲線Diffie-Hellman(ECDH) 橢圓曲線數字簽名算法(ECDSA) Galois計數器模式下(xià)的AES 256(AES256-GCM) SHA384
#2 橢圓曲線Diffie-Hellman(ECDH) RSA Galois計數器模式下(xià)的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計數器模式下(xià)的AES 128(AES128-GCM) SHA256
#6 橢圓曲線Diffie-Hellman(ECDH) RSA Galois計數器模式下(xià)的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客戶端中(zhōng)提供最強的加密(Galois計數器模式中(zhōng)的AES僅在TLS 1.2中(zhōng)受支持)。此外(wài),如果服務器和TLS / SSL客戶端都支持它,則字符串還提供Perfect Forward Secrecy(SSLSessionTicket必須設置s才能off在Apache HTTP Server中(zhōng)使用)。


聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層