漏洞总结:Erlang OTP OCSP 响应者证书验证缺陷 漏洞概述 在 Erlang OTP 的 模块中,OCSP (Online Certificate Status Protocol) 响应者的证书验证逻辑存在安全缺陷。根据 RFC 6960 标准,指定的 OCSP 响应者必须持有由 CA(证书颁发机构)直接颁发的证书。然而,原有的验证逻辑仅检查了颁发者 DN(Distinguished Name)匹配和 扩展密钥用法(EKU),却未验证 CA 对响应者证书的加密签名。 这导致攻击者可以伪造一个带有 CA 主题 DN 和 OCSPSigning EKU 的自签名证书,该伪造证书会被系统误认为是合法的指定响应者,从而可能绕过证书状态检查。 影响范围 受影响文件: 受影响函数: 中的 分支。 修复方案 1. 增加签名验证: 在 函数的 分支中,增加了 调用。该调用用于验证响应者证书确实是由 CA 签名的。 2. 补充测试用例: 在测试套件 中添加了 测试用例,覆盖了合法的(CA签名)和伪造的(自签名)指定响应者证书场景,确保伪造证书被正确拒绝。 关键代码片段 1. 修复后的验证逻辑 ( ) 在 分支中增加了 调用: 2. 测试代码 ( ) 测试用例验证了合法证书被接受,而伪造证书被拒绝: