【问题标题】:Is it ok to return certificate status without OCSP(Online Certificate Status Protocol)是否可以在没有 OCSP(在线证书状态协议)的情况下返回证书状态
【发布时间】:2019-02-14 08:00:18
【问题描述】:


我使用 Node.js 和一些支持 RSA 签名、验证和生成 X.509 的加密库创建了证书颁发机构服务器。当我使用在线证书状态协议(OCSP)添加证书吊销功能时,我想到了为什么我必须使用 OCSP 发送请求并接收响应,因为我只想知道的不是 OCSP 请求/响应对象,而只是证书状态(良好或已撤销。)

请求不是 OCSP 响应对象(.PEM 或其他东西)而是请求证书状态值(如 HTTP 状态代码(200:OK,400:NOT FOUND))是否有意义?

【问题讨论】:

    标签: x509 pki ocsp


    【解决方案1】:

    OCSP(在线证书状态协议)是一种标准协议,用于获取由RFC6960统治的证书的当前状态

    协议定义了交换的消息,包括内容、编码、内容类型和 HTTP 响应代码。

    如果您想构建一个通用的 PKI,那么定义您自己的协议是没有意义的,因为当前没有客户端会使用它(浏览器、移动设备、软件工具等),但希望您有一个标准OCSP 服务。

    但是,如果您要为内部 PKI 构建自己的客户端工具,那么拥有一个非常简单的状态查询服务(例如 200 GOOD、401 REVOKED、404 UNKNOWN)可能会很有用。但在那种情况下,不要称它为 OCSP

    【讨论】:

      【解决方案2】:

      OCSP 使用 CA 签名的对象进行响应的原因是,依赖方知道该对象,因此证书状态是真实的。

      如果您的新状态服务收到“序列号为 123456789 的证书的状态是什么”的查询并返回简单的 HTTP 响应,则客户端将无法验证该响应;使得执行替换攻击并发出 200 GOOD 响应变得非常简单,而实际上证书的私钥已被泄露并且应该发送 401 REVOKED。

      您无法通过通过 HTTPS 响应来解决此问题,因为这将导致永久递归状态检查。

      如果状态服务器的证书由不使用您的协议的 CA 颁发,您可以使用 HTTPS,而是使用 OCSP 或 CRL 分发点等替代方案。但这只会使整个解决方案更加复杂,而不是简化状态检查问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-29
        • 1970-01-01
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多