网页应用程序安全自动扫描服务Detectify安全研究员Frans Rosén发现,TLS-SNI-01以及TLS-SNI-02在特定的情况下,允许黑客取得他人网站的HTTPS认证
证书颁发认证机构Let’s Encrypt表示,由于太多共享托管以及基础设施服务违反TLS-SNI验证,即日起停止通过TLS-SNI验证取得认证,并对通过的验证进行更新,Let’s Encrypt鼓励使用者,尽量更换成HTTP或是DNS验证。
网页应用程序安全自动扫描服务Detectify安全研究员Frans Rosén发现,1 月 9 日向 Let’s Encrypt 报告的TLS-SNI-01 验证存在风险,同时被视为其继任机制的TLS-SNI-02验证也具有同样问题,Let’s Encrypt也随即停用TLS-SNI验证。
TLS-SN I是 Let’s Encrypt 3个自动化认证管理环境(Automatic Certificate Management Environment,ACME)请求 TLS 认证协定的方法之一。而 Frans Rosén 发现,TLS-SNI-01 和 TLS-SNI-02 在特定的情况下,允许黑客取得他人的网站 HTTPS 认证。
黑客可以找到指向托管服务的独立网域名称,为该域名添加未授权的认证,以假乱真。例如一间拥有fakecert.com 网域的公司,将其位置指向一个位置非 fakecert.com 的云端服务,而黑客就有机会在该云端服务启用一个全新的帐号,并用新帐号为 fakecert.com 添加 HTTPS 服务器,再使用 Let’s Encrypt 的 TLS-SNI-01 验证服务认证 HTTPS,让假网站看起来跟真的一样。
而这个风险发生的原因并非是 TLS-SNI 验证程式上的漏洞,而是流程控制问题。不少托管服务不验证网域的所有权,尤其是托管服务提供多个使用者共用同一 IP 时,更可能让有心人士利用 Let’s Encrypt,并通过TLS-SNI-01 验证机制取得他人的网站认证,无论是 AWS 的 CloudFront 或是 Heroku 都存在这样的风险。
Frans Rosén 建议 3 个方法减少相关的风险,首先便是停用 TLS-SNI-01,再来是设置 .acme.invalid 入黑名单,最后为使用其他取得验证的方法。Let’s Encrypt 目前也停止通过 TLS-SNI-01 机制发放认证,要求使用者转而使用 HTTP-01 或是 DNS-01。
来自:ithome