
原标题:HTTPS 安全最佳实践(一)之SSL/TLS部署

SSL/TLS 是一种简单易懂的技术,它很容易部署及运行。但想要部署的安全通常是不容易的。这也使系统管理员和开发者不得不去了解 SSL 和 TLS 相关的技术,掌握如何配置一个安全的 web 服务器或应用。无疑会耗费很大的精力去看相关的技术文档,乏味且宽泛。
本篇文档的目的在于如何让系统管理员或开发者用尽可能少的时间部署一个安全的 web 站点或应用,即 SSL 和 TLS 部署最佳实践。
1 证书和私钥
在TLS中,所有的安全性都从服务器的密码标识开始;需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是要有一个有效的和强大的证书,这将授予私有密匙作为一个特定主机名的权利。没有这两个基本的构建块,就没有其他东西可以安全了。
1.1 使用 2048 位私钥
对于大多数的 web 站点,提供一个 2048 的 RSA key 是足够安全的。RSA 的公钥算法是被普遍支持的,这使得这个类型的 key 作为默认是足够安全的。对于 2048 位,这些 key 提供了大约 112 位的安全性。如果您想要比这更多的安全性,请注意 RSA key 的伸缩性不太好。想要获得 128 位的安全性,你需要 3072 位 RSA key,这会很大的影响性能。ECDSA key 提供了一种提供更好安全性和更好性能的替代方法。对于 256 位,ECDSA key 提供 128 位安全性。少数古董客户端不支持 ECDSA,但现代客户端是支持的。如果您不介意管理这样一个设置的开销,那么您可以同时部署 RSA 和 ECDSA 密钥。
1.2 保护你的私钥
把你的私钥视为一项重要的资产,尽可能最大的使用你的私钥,限制最小的员工的访问。建议的政策包括以下内容:
在可信计算机上用足够的熵生成私有密钥。一些 CA 为您提供生成私钥的功能,请尽量不要这样做。
密码保护 key 最初就不要存储在备份系统中。私钥密码在生产环境中起不了什么作用,因为有知识的攻击者总是能够从进程内存中检索密钥。有硬件设备(被称为硬件安全模块,或 HSMs),即使在服务器折衷的情况下,也可以保护私有密匙,但是它们是昂贵的,因此仅适用于具有严格安全性需求的组织。
妥协后,撤销旧证书并生成新密钥。
每年更新证书,如果您可以自动化过程,则更频繁。大多数网站都应该假定不可靠的妥协证书被撤销; 因此,具有较短使用寿命的证书在实践中更加安全。
除非保持相同的密钥对于公钥密钥很重要,否则每当获得新证书时,还应该生成新的私钥。
1.3 覆盖您的域名
确保您的证书涵盖您希望与网站一起使用的所有名称。您的目标是避免无效的证书警告,这会混淆用户,削弱他们的信心。
即使您期望只使用一个域名,请记住,您无法控制用户到达该网站的方式或其他人如何链接到该网站。在大多数情况下,您应该确保该证书与 www 前缀有关(例如,它适用于 example.com 和
)。经验法则是,安全的 Web 服务器应该具有对配置为指向它的每个 DNS 名称有效的证书。
通配符证书能满足更广泛的需求,但如果准备将密钥暴露给更多的人员,特别是跨团队或部门,则避免使用它们。换句话说,访问私钥的人越少越好。还要注意,证书共享会创建一个可以被滥用的将漏洞从一个网站或服务器传输到使用相同证书的所有其他站点和服务器(即使底层私钥不同,只要证书域名匹配)的绑定。
1.5 从可信 CA 获取证书
选择对其证书业务和安全性可靠和认真的认证中心(CA)。选择 CA 时,请考虑以下条件:
安全状态所有CA都经过定期审核,但有些则比其他 CA 更为严重。弄清哪些在这方面做的更好并不容易,但一个选择是检查他们的安全历史,更重要的是,他们如何反应妥协,如果他们从错误中学到了经验,这将更有利。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-63856-1.html
经济下行压力大是最好的借口
当初在西湖边忽悠外国老人