SSL 旨在保护您的网站免受中间人攻击。
但是,如果有人能够做到这一点,那不能只是从 CA 请求新证书,然后修改从 CA 发送到服务器的流量(显然无法加密)以通过 CA 要求的任何测试所有权验证?
SSL 旨在保护您的网站免受中间人攻击。
但是,如果有人能够做到这一点,那不能只是从 CA 请求新证书,然后修改从 CA 发送到服务器的流量(显然无法加密)以通过 CA 要求的任何测试所有权验证?
能够 MitM 证书颁发机构可能并不像您想象的那么简单。你不知道他们使用什么机器来评估所有权,希望他们不会通过星巴克 wifi 这样做。
证书适用于域名,而不是机器或 IP 地址,因此所有权通常不会通过测试某个 HTTP 服务器给出的响应来验证。例如,看看Mozilla 对 CA 的要求,
如果满足或超过以下要求,我们认为验证证书签名请求是可以接受的:
- 证书订户提供的所有信息在包含在证书中之前,必须使用独立的信息源或替代通信渠道进行验证;
- 对于用于对电子邮件进行数字签名或加密的证书,CA 采取合理措施来验证提交请求的实体是否控制与证书中引用的电子邮件地址相关联的电子邮件帐户或已获得电子邮件帐户持有人的授权代表账户持有人行事;
- 对于要用于启用 SSL 的服务器的证书,CA 采取合理措施来验证提交证书签名请求的实体是否已注册证书中引用的域或已被域注册人授权执行代表注册人;
- 对于要用于并标记为扩展验证的证书,CA 遵守 1.4 版或更高版本的扩展验证证书的颁发和管理指南。
因此,您需要对 CA 和 DNS 服务器之间的连接进行 MitM 攻击,或者破坏站点的 DNS(更有可能)。
证书颁发者承诺只为您的域名颁发证书给可以证明他们控制该域的人
我猜一个人在中间攻击 HTTP 和 SMTP 可以用来欺骗发行者,从而获得攻击者无权获得的“域控制验证”证书,然后可以使用这个欺诈性证书来冒充您的网站在针对 HTTPS 流量的中间人攻击中。如果 HTTP 和 SMTP 服务器不同,则需要两次 MITM 攻击。
在地址栏中显示长长的绿色消息的扩展验证证书(如银行使用的)需要更多的步骤,而不仅仅是证明对域名的控制,并且可能不会那么容易以欺诈方式获得。
HPKP(HTTP 公钥固定)是通过 HTTP 响应标头传递的安全策略,它:
- 允许主机向用户代理提供关于它将来应该从主机接受哪些加密身份的信息
- 保护主机网站免受可能颁发流氓证书的证书颁发机构的安全威胁
- 允许主机向加密身份提供一组指纹,用户代理 (UA) 应该接受这些指纹以供站点前进
- 是一种首次使用时的信任 (TOFU) 机制,UA 必须与主机建立至少一个安全会话才能接收完整的标头。收到标头后,UA 将根据标头中包含的指令缓存并应用策略
回答您的问题:实施 HPKP 的主机可防止黑客使用新的/流氓 SSL 证书。
HPKP 可能很容易设置,但应该小心完成,备份是“必不可少的”:
- 最理想的解决方案是包含当前 TLS 证书的指纹和至少一个备份
- 备份可以是证书签名请求 (CSR) 的指纹,从而避免购买备份证书的需要
- 如果证书的私钥被泄露,可以使用 CSR 来请求签署新的公钥(为此,必须使用全新的 RSA 密钥对创建 CSR 并离线安全存储)
- 由于 CSR 的指纹已经在 HPKP 标头中,因此可以毫无问题地切换到新证书
- 使用此方法,如果任何 CA 被泄露,即使是您自己的 CA,为您的域颁发的任何流氓证书都不会被收到 HPKP 标头的浏览器接受
- 因为流氓证书的指纹没有被浏览器接收和缓存,它会被拒绝并且不允许连接到该站点
这意味着如果您的所有备份都丢失了,那么:
您只有在当前证书到期之前才能向所有访问者发布新政策!
也许这就是目前没有多少网站实施 HPKP 的原因(在securityheaders.io中扫描一些示例,您可能会发现大多数在线银行都没有,例如JP Morgan),但它确实专门解决/解决了您的问题提出的问题。
证书安全的基础是第三方(颁发者)证明证书已交付给在域上具有适当权限的人。
如果作为客户我信任颁发者,我可以信任它签署的任何证书。
可能的欺诈行为是:
有人带着虚假文件证明他拥有该域。可以做到,但发行人必须非常谨慎,因为这部分是他们真正的工作,如果他们很容易被骗,没有人会再信任他们
有人破解发行者并获得允许证书签名的有效私钥。严肃的证书颁发者的安全规则往往使这变得非常困难,而且被盗的证书很可能很快就会被吊销
事实上,人们普遍认为获得假证书的成本是不值得的。在现实生活中,还有很多其他更简单的方法可以在网络上窃取信息。永远不要忘记用5 美元的扳手
可以做什么……
当然,当您想到政府机构时,情况可能会有所不同。真假我没有真凭实据,但我认为是国家安全真的很担心,他们可以要求第三方域名的有效证书进行合法拦截。