在TLS中,所有安全都始于服务器的加密身份,这需要强大的私钥来防止攻击者冒充攻击。拥有一个有效且强大的证书也很重要,该证书授予私钥代表特定的主机名。对于大多数网站,2048位RSA密钥提供的安全性就足够了。RSA公钥算法被广泛使用,使其成为安全的默认选择。对于2048位RSA密钥,这提供了大约112位密钥。如果您想要更高的安全性,RSA密钥不能很好地扩展。例如,要得到一个128位的密钥,你需要一个3072位的RSA密钥,这显然要慢一些。椭圆曲线数字签名算法(ECDSA)向您展示了更好的安全性和更好的性能。以ECDSA256为例,ECDSA密钥提供了一个128位的密钥。如何保护私钥(1)私钥必须在具有足够熵的可信计算机上生成。(2)从一开始就对密钥进行密码保护,以防止存储在备份系统中的攻击。私钥密码在实际操作中不会有太多的安全保障,因为威胁者可以随时从进程内存中取回密钥。借助硬件设备(硬件安全模块,简称HSM),即使服务器被攻破,私钥也能得到保护,但这些设备价格昂贵,因此仅适用于对安全性要求严格的机构。(3)被攻击后,吊销旧证书,生成新密钥。(4)每年更新证书。建议您的设备可以自动执行此过程,因此寿命较短的证书在实践中更安全。(5)除非有特殊情况,每当获得新证书时,都应生成相应的新私钥。确保您的证书涵盖您使用的网站确保您的证书涵盖您使用的网站以避免无效证书警告。即使您只有一个域名,也应确保证书与www前缀相关,例如example.com和www.example.com。安全Web服务器的每个DNS名称都应配置有有效证书。此外,能够访问私钥的人越少越好。获得证书的可靠CA在选择CA时,请注意以下五个方面:(1)必须定期审查所有CA的安全状态;(2)选择以CA为主要业务并提供各种功能支持的机构;(3)您选择的CA应该提供证书撤销列表(CRL)和在线证书状态协议(OCSP)撤销支持;使用强大的证书签名算法;证书的安全性取决于用于签署证书的私钥的强度和签名中使用的哈希Chi函数的强度。事实证明,大多数证书都依赖于SHA1哈希函数,但现在已证明这是不安全的。因此,目前的趋势是过渡到SHA256。到2016年底,网站将不再支持SHA1证书。TLS服务器配置为使用完整的证书链。无效的证书链会使服务器证书无效并导致浏览器发出安全警告。在大多数SSL和TLS部署中,只有服务器证书需要两个或更多证书才能建立完全信任。链。使用的SSL/TLS安全协议系列中有五种协议:SSL2、SSL3、TLS1.0、TLS1.1和TLS1.2。SSL2和SSL3非常过时,不推荐使用。理论上也不应该使用TLS1.0,但在实践中经常使用。截至目前,TLS1.1和1.2都没有任何安全问题,但只有1.2提供了现代加密算法。因此TLS1.2应该是使用的主要协议,因为它是唯一提供现代身份验证加密(也称为AEAD)的版本。选择密码套件密码套件是用于在SSL/TLS握手期间协商安全设置的算法组合。在ClientHello和ServerHello消息交换之后,客户端发送支持的密码套件的优先列表。然后服务器使用从列表中选择的密码套件进行响应。密码套件是以下各项的组合:密钥交换算法(RSA、DH、ECDH、PSK);身份验证算法(RSA、DSA);批量加密算法(AES、Camellia、ARIA);消息验证码算法(SHA-256);有几种必须禁止的过时密码原语:(1)匿名Diffie-Hellman(ADH)套件不提供身份验证。(2)NULL密码套件不提供加密。(3)导出的密码套件在连接协商期间不安全,但也可用于具有更强套件的服务器(FREAK攻击)。(4)成套使用弱密码(通常为40位和56位)很容易被攻击。(5)RC4不安全。(6)3DES运行缓慢,易受攻击。在SSL3及以后的协议版本中,客户端首先提交支持的密码套件列表,服务器从列表中选择一个用于连接。然而,并不是所有的服务器都可以执行这个操作,有些服务器总是会从客户端列表中选择第一个支持的套件,因此服务器主动选择可用的密码套件对于提高安全性非常重要。Useforwardsecrecy前向安全性或前向保密性(英文:ForwardSecrecy,缩写:FS),有时也称为PerfectForwardSecrecy,缩写:PFS,是密码学中通信协议的安全属性,指的是长期使用的妥协主密钥的修改不会导致过去会话密钥的泄露。[2]前向保密保护过去的通信免于将来暴露密码或密钥。如果系统是前向安全的,即使系统受到主动攻击,也可以在主密钥泄露时保证历史通信的安全。使用强大的密钥交换算法保证数据传输和存储的安全。通常,传输的数据被加密存储或传输。接收方收到数据后,解密密文,恢复明文。常用的加密算法主要有对称密钥加密算法和非对称密钥加密算法。在安全数据通信中,通信双方必须分别拥有加密密钥和解密密钥。一旦通信密钥被泄露或破解,其加密的信息就会被泄露。因此,如何安全地交换或协商通信密钥就成为一个至关重要的问题,而如何保证密钥的安全,尤其是安全的密码交换,则成为电子商务安全信息交换的核心问题。2015年,研究人员发现了SSL加密安全漏洞LogJam。LogJam漏洞会影响任何支持DHE_EXPORT密码的服务器和所有浏览器,包括新版本的IE、Chrome、Firefox、Safari等。然后他们评估学术黑客可以破解768位密钥,而国家支持的黑客可以破解1,024位密钥。因此,出于安全考虑,如果部署DHE,至少要配置一个2048位的密钥。正确部署前的验证可能按照本文方法部署时,很多软硬件配置都有新版本。建议您先对自己的SSL/TLS进行综合评估,以确保安全运行。推荐大家使用这个链接进行测试。实际部署注意事项避免盲目追求太高的安全性使用太短的密码肯定是不安全的,但使用太长的密码也不一定安全,比如会导致操作复杂。对于大多数网站,使用强度超过2048位的RSA密钥和使用强度超过256位的ECDSA密钥会浪费CPU资源并会损害用户体验。同样,增加临时密钥交换的强度对DHE到2048位和ECDHE到256位几乎没有好处,使用高于128位的加密也没有什么好处。使用会话复用机制是因为SSL握手的非对称操作,不管是RSA还是ECDHE,都会消耗性能。因此,为了提高性能,对于之前握手过的SSL连接,尽可能减少握手往返时间和操作。SSL提供了2种不同的会话多路复用机制。(1)sessionid会话复用;(2)sessionticket会话复用,sessionid会话复用有两个缺点,一个是服务器会积累大量的会话,尤其是在实际使用中,会话老化时间配置为几个小时,消耗很大服务器内存。使用广域网优化广域网优化(WANoptimization),也称为广域网加速,是通过一些优化技术提供高性能的远程数据访问,从而提高应用程序在广域网上的性能。缓存公共内容当通过TLS进行通信时,浏览器可能会将所有流量视为敏感数据。因此,它们通常使用内存来缓存某些资源,但一旦浏览器关闭,所有内容都可能丢失。为了提高性能并启用某些资源的长期缓存,可以将公共资源(例如图像)标记为公共。启用OCSPStaplingOCSP(OnlineCertificateStatusProtocol)通常由CA提供,实时在线验证证书是否合法有效,以便客户端根据OCSP向CA的验证地址发送查询请求证书中的信息以检查证书是否有效。高效的。OCSPStapling,顾名思义,就是将查询OCSP接口的工作交给服务器。除了直接查询OCSP信息外,服务器还可以只执行少量查询并缓存响应。当客户端向服务器发起TLS握手请求时,服务器将证书的OCSP信息连同证书链一起发送给客户端,从而避免了客户端验证带来的阻塞问题。由于无法伪造OCSP响应,因此此过程不会产生额外的安全问题。尽可能使用支持硬件加速AES的CPU使用快速加密原语,如果您真的想进一步提高性能,请考虑使用ECDSA密钥。HTTP的加密对整个网站进行加密,加密问题可能是当今主要的安全问题之一,例如:(1)没有TLS的网站(2)有TLS但没有实现TLS的网站(3)混合使用TLS和非TLS-TLS内容站点,有时甚至在同一页面内(4)编程站点破坏TLS以删除混合内容即使您加密整个站点,某些资源仍可能从第三方站点未加密地检索。混合内容页面是通过TLS传输但包含不通过TLS传输的资源(例如JavaScript文件、图像、CSS文件)的页面。此类页面非常不安全,这些未受保护的JavaScript资源可能会被中间人攻击所利用,例如劫持整个用户会话。了解第三方服务大多数网站通过从另一台服务器下载的JavaScript代码激活第三方服务,例如GoogleAnalytics。包含第三方代码的站点会创建隐式信任链接,从而有效地让另一方完全控制您的站点。虽然第三方连接可能不是恶意的,但这些服务背后的供应商可能会受到损害。安全设置Cookie为了在保持性能的同时保持安全,站点需要TLS,并且所有cookie在创建时都明确标记为安全。否则,它可能会被MITM攻击者利用。建议您为您的Cookie添加加密完整性验证。安全HTTP压缩CRIME攻击可以利用压缩过程中的漏洞来解密部分安全连接。禁用TLS压缩可以防止这种攻击。另请注意,TIME和BREACH攻击可能会利用HTTP压缩。与TLS压缩不同,HTTP压缩是必需的且无法关闭。因此,为了应对这些攻击,需要更改应用程序代码。配置HTTP严格传输安全(HSTS)要激活HSTS保护,您可以向您的网站添加新的响应标头。之后,支持HSTS的浏览器执行它。它通过自动将所有明文链接转换为安全链接来实现这一点。建议您添加对HSTS的支持,这是对TLS安全最重要的保障。为了获得更好的安全性,请考虑使用HSTS预加载,它将HSTS配置嵌入到浏览器中。只要在有效期内,浏览器就会直接强制发起HTTPS请求。部署内容安全策略(CSP)敏感内容处理由于基于云的应用程序平台的使用越来越多,您必须谨慎处理敏感内容,以确保所有敏感内容仅对接收者可用。
