【学习笔记】SSL密码套件的选择

往期介绍了TLS/SSL中4种密码套件,分别是Key Exchang、Authentication、Encryption和Hashing,每种密码套件下又包含多种协议。

当我们部署SSL证书时,我们需要选择自己支持哪种密码套件。我们可能想要用最安全的,但我们的潜在客户可能使用的是过时的软件或者设备。

因此,本期将每个协议进行划分,分别是Avoid(未来可能有风险)、Accept(如果客户用的是过时的)和Prefer(最安全的)

1、Key Exchange Protocols

  • Avoid:PSK RSA DH ECDH
    • 因为不提供前向保密(forward secrecy)(前向保密指长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。能够保护过去进行的通讯不受密码或密钥在未来暴露的威胁,整体提高我们的部署安全)
  • Accept:DHE
    • 但前提是密钥大小>=2048位
    • 如果必须接受RSA,那么要求的密钥大小要>=2048位(现在的ssl证书如果用RSA密钥,一般是2048位的)
  • Perfer:ECDHE(Elliptic Curve Diffie-Hellman Ephemeral)
    • 前向保密(现在很多设备要求不用前向保密密码,这样他们就能拿走你的私钥,解密种子值,得到你用来保护数据的密钥)
  • Avoid:NULL
    • NULL = Don't do Key Exchange(no confidentiality or integrity)没有密码,一般用做测试(比如TLS_NULL_WITH_NULL_NULL

2、Authentication Protocols

  • Avoid:PSK DSS RSA<2048
  • Accept:RSA>=2048
    • 2048+位的RSA密钥被认为是安全的
  • Perfer:ECDSA(目前最安全的)
    • 相同的部署下,RSA>=2048或者ECDSA我们都可以选择支持
  • Avoid:EXPORT
    • 限制加密密钥大小在40位(比如TLS_RSA_EXPORT_WITH_RC_40_MD5
      • 1996年之前,加密>40位密钥被认为是一种武器
      • Netscape有2个版本 - US版和国际版(美版没有将密钥限制在40位,但是国际版限制了,大多数人选择国际版,因为似乎能接触更多网站)
      • EXPORT在2006年被TLS v1.1正式弃用

3、Encryption Protocols

  • Avoid:DES RC4 3DES
  • Accept:AES-CBC
    • 如果用的是TLS 1.1或更高版本,可以用AES-CBC(可以防范填充的预言攻击,padded oracle attack)
  • Perfer:AEC-GCM CHACHA20
    • 因为AEAD密码(同时同步进行加密和MAC)是未来
  • Avoid:NULL
    • NULL = Don't Encrypt(例如TLS_DHE_PSK_WITH_NULL_SHA256

4、Hashing Protocols

  • Avoid:MD5
    • 虽然技术上能使用MD5(结合HMAC),但未来被证明无效后就会从支持的密码里删除
  • Accept:SHA
    • SHA-HMAC如今还是被认为是安全的
    • SHA签名被认为是不安全的
  • Perfer:SHA256 SHA384 Poly1305
    • 三者间谁用了AEAD密码,就选谁
      • 例如:AES-GCM或者CHACHA20加密

参考文献

1、网站:Practical Networking.net:Practical TLS

相关推荐
JoySSLLian16 小时前
IP SSL证书:一键解锁IP通信安全,高效抵御网络威胁!
网络·人工智能·网络协议·tcp/ip·ssl
小白电脑技术1 天前
飞牛绑定免费二级域名ccwu.cc后部署SSL证书教程
网络协议·https·ssl
2401_865854881 天前
腾讯云应用防火墙和阿里云的有什么区别
安全·ssl
七夜zippoe2 天前
网络安全实战:从TLS/SSL到JWT与OAuth2.0的完整防御体系构建
网络·安全·web安全·ssl·tls
hjhcos3 天前
【宝塔】局域网IP申请SSL证书,解决浏览器本地环境可以访问摄像头,发布环境不能访问摄像头的问题
网络协议·tcp/ip·ssl
奇遇0.004873 天前
tryhackme-公钥密码学基础
密码学·tryhackme
卓码软件测评3 天前
【第三方软件测试测评机构:使用LoadRunner测试HTTPS/SSL协议应用的配置和证书处理 】
网络协议·测试工具·https·测试用例·ssl
危笑ioi3 天前
docker部署jenkins/gitlab/nexus3/nginx配置端口转发与ssl
nginx·docker·gitlab·jenkins·ssl
零零发聊技术4 天前
Python使用requests请求时ssl验证失败
python·ssl
delphi 三层源码框架4 天前
delphi发送SSL 465端口邮件
ssl·delphi·发送邮件·indy 465端口