我最近学到了关于ocsp的一些知识。 我通过以下命令检查网站的ocsp装订:
$openssl s_client -connect www.stackoverflow.com:443 -status -servername www.stackoverflow.com
我发现自己的网站和stackoverflow以及其他一些小网站都有ocsp设置。他们在命令响应中有OCSP Response Data
字段。
但是当我查看google.com,github.com,facebook.com等大型网站时,他们没有这样的字段。我得到OCSP response: no response sent
。
那他们为什么不使用呢?
答案 0 :(得分:2)
为了保护您的用户,您必须使用OCSP must staple
作为Web服务器。但即使在这种情况下,您也需要考虑所提供的OCSP响应通常在多天内有效,因此攻击者可以在证书被撤销之前获得服务器证书的OCSP有效状态,并将其作为OCSP装订在针对Web客户端的MitM攻击期间的状态(当然,攻击者必须与攻击证书并且证书已被撤销的攻击者相同)。因此,不支持OCSP装订且需要OCSP的浏览器将受到保护。支持OCSP装订的浏览器不会。这是OCSP装订不最终选择的原因之一。在某些情况下,它是一种不太安全的方法来避免安全漏洞,以及其他一些无用的情况。当然,即使在互联网上获得更多信任也不是一件坏事。
因此,像谷歌这样的大公司提供其他方法来保护他们的客户和用户使用他们的浏览器:他们希望为其用户提供更安全的体验,与其他浏览器相比,因为他们的目标是为了获得更多用户。为此,Google Chrome实施了专有的CRLSets机制。
同样的公司和其他公司也希望促进人们获得(重新)互联网信任的其他方式。例如,一些公司跟随谷歌推广 Certificate Transparency 机制。 因此,从政治上讲,在他们的网站上实施OCSP装订并为互联网建立另一种信任机制是一个坏主意。
我读过有关证书撤销的最佳论文以及保护用户的方法,请访问:https://arstechnica.com/information-technology/2017/07/https-certificate-revocation-is-broken-and-its-time-for-some-new-tools/
答案 1 :(得分:0)
我的回答是:可能是因为在响应中节省了更多的字节。
对于google.com,亚历山大的回答(特别粗体文字)可能是正确的,但不适用于Facebook。
OCSP装订响应将出现在每个TLS连接中,这需要很多字节。如果没有OCSP主要存在作为回应,为什么会发生?!客户端在几天内向原始服务器和缓存响应发送OCSP验证请求。对于google和facebook等热门网站,用户每天会多次查看网页,通常会在客户端缓存OCSP响应,并且不需要OCSP请求(例如,只有2%的客户需要实际的OCSP请求)。
因此,对于这些热门网站,删除OCSP装订(并为98%的请求节省了一百个字节)是比2%的请求更快地建立网站更好的选择。