分类: 网络与安全
2017-03-07 11:07:15
本文由沃通翻译整理,英文原文:transport-layer-security-tls-for-external-facing-services
注: 本版本为ALPHA版。如果有任何反馈请发送到地址。
传输层安全(TLS)是一个保证通信的应用程序,用户,通信服务之间的隐私的协议。当服务器和客户端进行通信时,配置好的TLS确保没有第三方可以窃听或篡改任何消息。
本指南是支持公共部门服务的配置,能够接收来自未知客户或服务的输入连接。具体来说,它涵盖了经营一个公共网站的情况和使用简单邮件传输协议(SMTP)。
本指南不涉及虚拟专用网络(VPN)TLS使用。关于这一主题的指南将会在即将出版的出版物中提出。
在写这篇文章的时候,TLS的当前版本是1.2版。1.2版本在1.0的版本的上进行了安全性改进。所有版本的SSL(TLS的前身)在现在都被认为是不安全的。
在公网中,有不少关于配置TLS的好的资源。在可能的情况下,本文参考了这些资源而不是重复他们所表达的好意见。
为Web服务器部署TLS
用户访问一个有组织的公共数据服务器时需要有信心。他们需要相信他们正在访问一个合法的服务。并且他们的通信是私人的,不受干扰的。TLS协议正式提供了这种安全。
TLS在Web服务器中通过HTTPS而被熟知–是在TLS上的HTTP
选择协议版本,加密算法和参数。
有许多配置选项影响服务器的安全性和通信的安全性。不幸的是,根据您的用户基础的不同,选择最安全的配置可能意味着一些用户无法连接到您的服务器。为此,您可能需要在安全性和用户之间找到一个平衡点。在Mozilla的建议中,根据需要支持的浏览器版本,可以分为几个TLS配置描述(现代','中间',和'老')。使用'老'的配置是危险的,应该避免,因为这将意味着支持不安全的SSL协议。
您应该配置网络服务器最近的版本的协议和更安全的选项。服务器还应使配置不能恢复到初始的旧标准。Mozilla的指南提供了一些好的建议和关于如何配置你的Web服务器的优先级逻辑。
在网络服务中,用户只能访问已知(维护)的终端用户设备,然后它应该部署一个严格的加密配置文件。在这些情况下,我们建议你用一个以下TLS配置进行配置。
安全配置建议
有一些很好的指南提供了HTTPS配置建议
Google - Webmasters: Secure Your Site with HTTPS
Mozilla Security/Server Side TLS
除了上面提到的指南,CESG推荐以下数字公共服务:
发布服务器只使用HTTPS。
当你访问HTTP时自动帮你跳转到HTTPS版本。
使用支持Web框架的TLS库最新版本。如果不及时修补漏洞,根据库中的漏洞,会被迅速利用。
遵循Qualys公司的安全应用设计指南。详情请见下文的第四章 [Qualys - SSL/TLS Deployment Best Practices](}.
启用HTTP严格安全传输(HSTS)帮助浏览器安全连接到您的服务器。应采取至少一个下列步骤:
1.当网站尝试访问HTTPS时添加HSTS的标头。这可以使得以后浏览器只申请访问HTTPS(直到标头到有效期为止)。
2.添加您的网站至HSTS预读列表,这样新浏览器在访问时会自动从HTTP跳转至HTTPS。
Chrome的预读列表包含了许多其他浏览器的预读列表。
服务器证书应获得于可靠和信誉良好的来源(见下文)。
使用EV证书可以进一步提高客户对服务器的合法性的信心。
确保你可以及时吊销证书。当你选择好CA的时候你就应该可以这样做。
当用户的浏览器不能提供相应的TLS算法时,应该提醒并且提供相应的升级操作系统于浏览器的信息以帮助用户进行升级。
部署TLS邮件服务器
E-mail是在不可信的载体上传输的如互联网。因此其完整性和保密性应该受到保护。虽然邮件加密和保持邮件完整性在个人E-mail中是可行的(如使用PGP和S/MIME)。这只能依赖于保护消息的保密性,如果发送者和接收者使用电子邮件客户端必须拥有所需的信任基础设施。但是让所有的通讯都满足条件是不可能的,因此我们建议面向Internet的邮件服务器(特别是那些作为邮件传输代理)配置支持TLS并且使用STARTTLS方法作为他们的邮件服务器之间运输。以下部分提供了TLS与SMTP的使用建议。
SMTP安全介绍
SMTP服务器作为邮件传输代理(MTA)之间的连接通常使用TCP端口25 。当链接方使用STARTTLS命令时,两MTA之间的SMTP连接将会加密。当双方都配置好了,这将不安全的SMTP连接变成安全的,随后的SMTP命令将会在一个安全的链接发送。我们推荐使用STARTTLS支持所有的面向Internet的MTA与英国公共部门。
选择协议版本,加密算法和参数
我们建议您的邮件服务器配置的加密配置文件如下。由于连接方未知的状况,有必要支持比较弱的加密配置文件和协议,如果你一定要从一些地方接收电子邮件甚至需要支持明文收发或传输的电子邮件。
在与你定期交换信息的的人当中(如其他公共部门的组织),可以配置连接使得TLS会一直使用邮件服务器提供的证书进行身份验证验证双方身份。
安全配置建议
为了TLS连接被建立,连接到您的服务需要通过验证了X.509v3的证书验证服务器的身份。这意味着你的服务器将需要一个由权威签署的一方连接到您的服务器承认和信任的证书。如果您使用的是基于云的电子邮件提供商,或使用PSN邮件中继路由外部电子邮件,那么这应该已经为你做好了同时很容易测试出来。然而,如果你经营自己的MTA,你应该遵循下面的建议,选择一个CA和强大的参数去申请一个证书。
为了避免您的域名被冒用(如垃圾邮件或网络钓鱼),你应该配置SPF,DKIM和DMARC帮助其他邮件服务器记录你的域名。
选择证书颁发机构(CA)
TLS使用X.509v3证书密码验证去验证一个或两个通信方的身份。如果连接方能够验证所提出的证书是由它的信任,那么安全通信应建立。因此,重要的是要选择一个可以连接到您的服务的那些广泛信任的CA。如果选择一个不太常见的CA,您的服务所提出的证书可能无法通过连接方验证,而另一方可以选择不继续会话。
为了验证服务器提交的证书,网络浏览器或邮件服务器可以使用它自己的可信根目录存储,或者它可以引用操作系统所信任的CA库。如果你选择的CA不在可信任的CA库当中,你需要可能的网络浏览器或邮件服务器寻找支持你选择的CA并且连到你的服务器中。
申请证书
为了有一个由CA签名的X.509证书,你通常会生成自己的私人密钥,并发送证书到证书签名请求(CSR)的CA签署,直到你得到您的私人密钥。在你申请私钥和签名请求时你需要选择几个参数。主要是选择是否支持RSA证书和密钥,或椭圆曲线密码体制(ECC);也可以提供可接受的安全。一些电子邮件和Web服务器同时支持ECC和RSA,并且根据TLS协商连接方选择合适的证书。
如果一个RSA证书生成,我们推荐使用以下参数:
2048位的RSA与SHA256。
如果一个ECC证书生成,我们推荐你使用以下参数:
ECDSA-256 与在 P-256 曲线上的SHA256。
测试
基于可用于TLS配置选项的范围广泛,我们建议公共部门机构应该使用自动扫描定期测试配置的Web服务器和邮件服务器。有大量的公开可用的工具来帮助测试配置你的网站或邮件服务器的TLS。下列工具,也许会帮上你的忙:
Check TLS services from
这些扫描将确定最常见的情况和配置问题。他们不应该被看成深入测试技术的代替品,但是如果你已经使用了这些工具去确定问题,那么那些深入测试技术者就有更多时间去寻找你的服务器中单独并且独特的缺陷。
需要注意的是,虽然其他人测试你收到电子邮件安全与否是可能的,但是不经过你的合作让别人测试你的服务来服务器的邮件安全是不可能的(你要发送一封电子邮件给一个测试服务,如由checktls。COM提供)。
TLS加密文件者优先
支不支持传统的浏览器或应用程序并不是一个问题。我们建议你为了TLS选择下面的两个密码之中的一种
TLS的组合1 B型
TLS的基础型
取决于设备和基础设施的支持,部署TLS的组合1 B型可能无法实现。一个合适的替代品是TLS的基础型。这档由RFC兼容的TLS使用下表中给出的算法:
根据这些简介我们可以看到他们之间的差别,如通过使用GCM模式而不是CBC模式,或使用PFS与否。
其他信息
本指南是由CESG,英国国家技术权威的信息保障。CESG提供了英国政府机构的建议和英国政府的服务。此指南是提供给观众使用的。他提供了我们可能遇到的具体的例子。它应该被用来帮助告知风险管理决策,但是他不应该用于做决定。他不是详尽的,不是针对个人的需求的,也不作为任何指定的技术的认可。它不是一个独立的专家咨询。用户应该确保他们使用来自CESG的指南时采取适当的技术和法律咨询。
本指南无任何明示或暗示的任何保证,本文不为此文章的完整性,内容,质量,准确性做任何保证。如果因此造成了任何损失或招致的某人产生了任何费用,CESG将不会对此负责。