这几乎是对该问题的其他信息的要求: OpenSSL certificate revocation check in client program using OCSP stapling
我想知道OpenSSL如何实际处理OCSP装订响应。问题是:
1. OpenSSL是否检查响应的签名,发行者密钥/名称哈希值?
2.响应是否包括整个证书链的OCSP响应?如果是这样,有没有办法知道其中一个验证失败了?
总而言之,我可以简单地依靠“证书状态:良好”的响应字段吗? :)
我担心的是,黑客可能会使用已撤销(被盗)的证书来制作https服务器,但在握手期间,会为同一个CA颁发者认证的随机网站提供有效的装订OCSP响应。 OpenSSL可以处理这种情况吗?
可以在此处找到示例OCSP响应 https://www.feistyduck.com/library/openssl-cookbook/online/ch-testing-with-openssl.html#testing-ocsp-stapling
答案 0 :(得分:0)
SSL_set_tlsext_status_type
的{{3}}表示回调必须确定OCSP响应是否可以接受。
这意味着OpenSSL库本身不会对OCSP响应进行任何验证。但它是开源的,所以我们可以看一下。 见Documentation
库将验证SSL握手中的消息类型是否正确,并且长度是否正确且响应是否完整,但根本不检查内容。
如果使用SSL_CTX_set_tlsext_status_cb
设置回调,则调用回调,并且回调中的返回码是用于继续或中止SSL握手的唯一用法。
响应数据将是OCSP响应的DER编码二进制字节。 OpenSSL提供了解析此值并检查其内容的函数。