<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    7.3 響應

    本條規定了確定響應的ASN.1規范。根據所使用的傳輸機制(HTTP、SMTP、LDAP等),實際的消息格式可能會發生相應的變化。

    7.3.1 響應語法

    一個OCSP響應至少由一個指明先前請求的處理狀態的responseStatus字段構成。如果responseStatus的值是某個錯誤條件,則不設置responseBytes。

    OCSPResponse ::= SEQUENCE {
    
          responseStatus         OCSPResponseStatus,
    
          responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
    
    OCSPResponseStatus ::= ENUMERATED {
    
           successful            (0),  --響應被有效確認
    
           malformedRequest      (1),  --非法確認請求
    
           internalError         (2),  --發布者內部錯誤
    
           tryLater              (3),  --稍候重試
    
           sigRequired           (4),  --必須對請求簽名
    
           unauthorized          (5)--請求未被授權
    
       }

    responseBytes的值由一個對象標識符和響應語法組成,該響應語法由按照OCTECT STRING編碼的OID來標識。

    ResponseBytes ::= SEQUENCE {

       responseType   OBJECT IDENTIFIER,
    
       response       OCTET STRING }

    對于基本的OCSP響應器, responseType應為id-pkix-ocsp-basic.

    id-pkix-ocsp OBJECT IDENTIFIER ::= { id-ad-ocsp }

    id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 }

    OCSP響應器應能產生id-pkix-ocsp-basic類型的響應。相應地,OCSP 客戶端應有能力接受和處理此類響應。

    response的值應為BasicOCSPResponse的DER編碼。

      BasicOCSPResponse       ::= SEQUENCE {
    
      tbsResponseData        ResponseData,
    
      signatureAlgorithm     AlgorithmIdentifier,
    
      signature             BIT STRING,
    
      certs                 [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }

    signature的值應該基于DER編碼的ResponseData哈希值計算得到。

      ResponseData ::= SEQUENCE {
    
      version              [0] EXPLICIT Version DEFAULT v1,
    
      responderID              ResponderID,
    
      producedAt               GeneralizedTime,
    
      responses                SEQUENCE OF SingleResponse,
    
      responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
    
      ResponderID ::= CHOICE {
    
      byName               [1] Name,
    
      byKey                [2] KeyHash }

    KeyHash ::= OCTET STRING – 響應器公開密鑰的SHA-1哈希

    (不包括tag和length字段)

      SingleResponse ::= SEQUENCE {
    
      certID                       CertID,
    
      certStatus                   CertStatus,
    
      thisUpdate                   GeneralizedTime,
    
      nextUpdate           [0]     EXPLICIT GeneralizedTime OPTIONAL,
    
      singleExtensions     [1]     EXPLICIT Extensions OPTIONAL }

    CertStatus ::= CHOICE {

       good         [0]     IMPLICIT NULL,
    
       revoked      [1]     IMPLICIT RevokedInfo,
    
       unknown      [2]     IMPLICIT UnknownInfo }

    RevokedInfo ::= SEQUENCE {

       revocationTime              GeneralizedTime,
    
       revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }

    UnknownInfo ::= NULL –此處可用枚舉替代

    7.3.2 響應語法的注解

    7.3.2.1 時間

    thisUpdate和nextUpdate兩個字段定義了有效時間間隔。這個時間間隔是和CRLs中的{thisUpdate,nextUpdate}間隔相對應。NextUpdate值比本地系統時間早的響應應被認為無效。ThisUpdate值比本地系統時間晚的響應也應被認為無效。未提供nextUpdate值的響應和未提供nextUpdate值的CRL意義相同。

    producedAt時間是響應被簽名的時間。

    7.3.2.2 授權的響應器

    對證書狀態信息簽名的密鑰和簽發證書的密鑰不必相同。但必須確保對該信息進行簽名的實體是經過授權的。因此,證書的簽發者直接對OCSP響應簽名,或明確地指派授權給另一個實體對OCSP響應簽名。CA通過在OCSP響應器證書的extendedKeyUsage擴展中包含id-kp-OCSPSigning來指派OCSP響應器對響應進行簽名。OCSP響應器證書必須直接由CA發布,該CA還發布了需要驗證狀態的證書。

    id-kp-OCSP Signing OBJECT IDENTIFIER ::= {id-kp 9}

    依賴于OCSP響應的系統或應用必須能夠檢測并使用上述的id-ad-ocspSigning值,它們可以提供一種方法在本地配置一個或多個OCSP簽名權威實體以及信任這些權威實體的CA。如果用來驗證響應上的簽名所需的證書不能滿足以下任何標準,響應必須被拒絕:

    a) 本地配置的OCSP簽名權威實體中包含了與待驗證狀態的證書相匹配的證書;

    b) 或是簽發待驗證狀態證書的CA證書;

    c) 在extendedKeyUsage擴展中含有id-ad-ocsp Signing值,并且由簽發待驗證狀態證書的CA發布。

    附加的接受或拒絕標準可以應用于響應自身,或應用于驗證響應簽名的證書。

    7.3.2.2.1 授權響應器的撤銷檢查

    既然一個授權權威OCSP響應器可以為一個或多個CA提供狀態信息,OCSP客戶端就需要知道如何去檢查授權權威響應器的證書是否已被撤銷。CA可任選以下三種方法之一來解決這個問題:

    a) CA可指定OCSP客戶端在響應器證書的整個生存期內信任該響應器。 CA 通過在響應器證書中包含id-pkix-ocsp-nocheck擴展來完成該指定。這應該是一個非關鍵性的擴展。擴展值應為空。至少對于證書的有效期而言,發布這樣一個證書的CA應認識到響應器密鑰的泄密同用來簽發CRL的CA密鑰的泄密所帶來的后果一樣嚴重。CA可以選擇發布一種有效期很短并且經常更新的證書,也就是短生命周期的證書。

    id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 }

    b) CA 可以指定如何檢查響應器證書是否已被撤銷。假如是使用CRLs或CRL分布點來檢查的話,就能夠使用CRL的分布點來完成,假如是用其它的方法來檢查,就要用到權威實體信息訪問(AuthorityInfoAccess擴展)。在RFC2459中有這兩種機制的詳細說明。

    c) CA可選擇不指定檢查響應器證書是否已被撤銷的方法。在此情況下,將遵循OCSP客戶端的本地安全策略來決定是否做這項檢查工作。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类