1

几乎这是对问题的附加信息的请求: OpenSSL certificate revocation check in client program using OCSP stapling

我想知道 OpenSSL 是如何实际处理 OCSP 装订响应的。问题是:
1. OpenSSL 是否检查响应的签名、颁发者密钥/名称哈希?
2. 响应是否包括整个证书链的 OCSP 响应?如果是这样,有没有办法知道其中一个验证失败了?
3. 总而言之,我可以简单地依赖响应的“Cert Status:good”字段吗?:)

我担心黑客可能会使用已撤销(被盗)的证书制作 https 服务器,但在握手期间为由同一 CA 颁发者认证的随机网站提供有效的装订 OCSP 响应。OpenSSL 可以处理这种情况吗?

可以在此处找到示例 OCSP 响应 https://www.feistyduck.com/library/openssl-cookbook/online/ch-testing-with-openssl.html#testing-ocsp-stapling

4

1 回答 1

0

文档说回调必须确定SSL_set_tlsext_status_typeOCSP 响应是否可以接受。

这意味着 OpenSSL 库本身不会对 OCSP 响应进行任何验证。但它是开源的,所以我们可以看看。请参阅GitHub 上 s3_clnt.c 的 OpenSSL 源代码

该库将验证 SSL 握手中的消息类型是否正确,长度是否正确且响应是否完整,但根本不检查内容。

如果使用 设置回调,则调用回调,SSL_CTX_set_tlsext_status_cb回调的返回码是唯一用于继续或中止 SSL 握手的东西。

响应数据将是 OCSP 响应的 DER 编码二进制字节。OpenSSL 提供了解析该值并检查其内容的函数。

于 2016-07-20T20:55:48.773 回答