<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>

    6.3 證書撤銷列表

    6.3.1 證書撤銷列表概述

    證書撤銷列表(CRL)用來列出那些已被撤銷或凍結的但并未過期的證書。證書撤銷的原因多種多樣,例如日常的管理撤銷(當證書的主體離開了發放組織,或責任和證書屬性發生了變化),或私鑰被泄密。“凍結”是指CA不再確保證書主體和公鑰之間的綁定。
    X.509 v2證書撤銷列表格式增加了一些可選擴展,在概念上與證書擴展相似。CAs應能產生如下的X.509 v2 CRLs,當驗證證書認證路徑時客戶也應能處理它們。頒發CRLs的CA不一定必須是頒發該撤銷證書的CA。一些CAs只負責發放CRLs。X.509 v2 CRL 包含以下信息:
    · Version 版本;
    · Issuer Signature Algorithm 頒發者簽名算法;
    · Issuer Distinguished Name 頒發者可辨別名;
    · This Update 本次更新;
    · Next Update 下次更新;
    · Revoked Certificates 撤銷的證書,零個或多個以下序列的序列:
    ?Certificate Serial Number 證書序列號,
    ?Revocation Date 撤銷日期,
    ?CRL Entry Extensions CRL Entry擴展(可選);
    · CRL Extensions CRL 擴展(可選);

    6.3.2 CRL字段

    X.509 v2 CRL 的 ASN.1 句法見附錄A。對于簽名計算,簽名的輸入數據是ASN.1 DER 形式的編碼。ASN.1 DER 編碼對每一個元素來說都是標簽,長度,值的編碼系統。以下各項描述了X.509 v2 CRL的使用
    a) Version
    這個字段描述了編碼后的CRL的版本。該字段的值應是1,表明是v2 CRL 。
    b) Signature
    該字段包含簽署CRL的算法的算法標識符。它的內容與證書的signature字段一樣。關于這個字段的信息見6.2.1中關于signature字段的定義。CRL可以被5.2.2.3中標識的任何算法簽名;通常,CA使用同一算法來對證書和CRL簽名。
    c) Issuer Name
    issuer字段提供了簽署CRL的CA的全球唯一標識名。頒發者的名字是X.500 可辨別名。本標準不支持CRL頒發者名字為空的CRL。
    d) This Update
    thisUpdate 字段指定了該CRL的日期。此字段可以是UTCTime或GeneralizedTime。對于本標準,thisUpdate字段遵從證書的validity字段的規則。(見6.2.1)
    e) Next Update
    nextUpdate字段指定了下一個CRL頒發的日期。下一個CRL頒發的日期可以在指定日期之前,但不可在指定日期之后。此字段可以是UTCTime或GeneralizedTime。對于本標準,nextUpdate字段遵從證書的validity字段的規則。(見6.2.1)
    f) Revoked Certificates
    revokedCertificates 字段是一個已經被撤銷的證書的列表。每個被撤銷證書包含:
    1)證書序列號(在userCertificate字段中指出)。它包含被撤銷證書的serialNumber字段的值。它必須與頒發CA的名字一起使用以識別一個已經被撤銷但還未到期的證書。
    2)包含撤銷日期的revocationDate 字段,本字段取值遵從證書的validity字段的規則。(見6.2.1)

    6.3.3 CRL擴展

    ISO/ITU所定義的X.509 v2 CRLs擴展提供了對全部CRLs附加其它信息的方法。每個CRL擴展被設計為critical 或 noncritical。(關鍵的或非關鍵的)如果客戶碰到一個不能處理的關鍵性擴展,將無法對該CRL進行驗證。
    本條描述了應被支持的CRL擴展。當CA能夠產生一個CRL的擴展且客戶能夠處理該擴展時,此CRL擴展才有效。
    a) 機構密鑰標識符
    authorityKeyIdentifier,非關鍵性CRL擴展,標識了CA用來簽署CRL的密鑰。當CA使用多個密鑰時該擴展是有用的;它使得不同的密鑰得以區分(例如,密鑰更新時)。身份的鑒定可基于密鑰標識符或發放者名字和序列號。所有的CRLs都應有密鑰標識名。當發放者擁有多個簽名密鑰時(或多個密鑰對,或是在密鑰更新期間),該擴展是很有用的。當發放CA有多個簽名密鑰對時,在所有的CRL擴展里都應包括該擴展,并且客戶也應能夠找到并驗證CRL驗證路徑。客戶如果要查找證書認證路徑,必須能夠處理 authorityKeyIdentifier的密鑰標識符或證書發放者名加上序列號。
    b) 頒發者別名
    issuerAltName ,非關鍵性CRL擴展字段,包含一個或多個CA別名。別名一旦出現就放置在issuesrAltName里。并非所有的別名格式都要被識別處理,識別不出的別名格式可以被忽略。CA可在CRLs中產生該擴展,然而客戶可以不予處理。
    c) CRL編號
    cRLNumber,非關鍵性擴展字段,是一個單調增加的序列號,該CRL由CA通過特定的CA目錄入口或CRL分布點發放。該擴展可以用來通知證書使用者整個CRL的非固定時間發布,或是便于確定何時某一CRL替代了另一CRL。在CRL中應該包括該擴展。
    d) 頒發分布點
    issuingDistributionPoint 字段是非關鍵性的擴展,決定了一個特定CRL的CRL分布點。一個分布點就是一個用來檢索CRL的目錄入口,它可以與CA的目錄入口不 同。CA要用密鑰對CRL加密。CRL分布點沒有自己的密鑰對。
    另外,issuingDistributionPoint字段指定的CRLs可能只針對終端實體的證書,或者只針對CA證書,或者只針對由于某種特定原因撤銷的證書。最后,該擴展也可以確定一個間接CRL,間接CRL是由與發放被撤銷證書CA不同的CA發放的。間接CRL包含以下組件:
    · distributionPoint,給出了分布點的名字,遵循X.500標識名規則;
    · onlyContainsUserCerts,布爾變量,表明該CRL只包含終端實體證書;
    · onlyContainsCACerts,布爾變量,表明該CRL只包含CA證書;
    · onlySomeReasons,一個ReasonFlag位串,標明CRL中所列證書的撤銷原因;如下:
    ?keyCompromise,表明密鑰泄漏或懷疑密鑰泄漏,
    ?cACompromise,表明該證書撤銷的原因是CA密鑰泄漏,它只用于撤銷CA證書,
    ?affiliationChanged,表明該證書撤銷的原因是證書主體的從屬關系改變了,
    ?superseded,表明該證書已被代替,
    ?certificateHold,表明證書處于凍結狀態,可能會被撤銷,
    ?cessationOfOperation,表明該證書的目的已經不再被需要,但并不是密鑰被泄漏;
    · IndirectCRL,布爾變量,表明這是一個間接CRL。
    客戶應能處理這個字段。
    e) 增量CRL指示符
    deltaCRLIndicator 是一個關鍵CRL擴展,它確定一個增量CRL。對于那些采用非CRL結構存儲撤銷信息的用戶程序來說,增量CRL可以有效地節省處理時間。它允許把變化的信息增加到本地數據庫里,忽略掉那些本地數據庫中已經存在的未改變的信息部分。
    BaseCRLNumber的值表明基礎CRL的CRL序列號,基礎CRL是生成增量CRL的開始點。增量CRL包含基礎CRL和當前CRL之間的變化部分。是否提供增量CRL要由CA來決定。
    客戶可以利用本地CRL和增量CRL合成一個CRL,要注意的是如果本地CRL的CRL序列號小于增量CRL中的BaseCRLNumber,合成的CRL就不正確。如果增量CRL含有一個CRL序號擴展,那么合成的CRL的CRL序號就是該擴展的值。客戶和CA是否支持增量CRL是可選的。
    f) CRL擴展使用總結
    表1總結了標準CRL擴展,表2總結了這些標準CRL擴展的使用。

    6.3.4 CRL Entry擴展

    X.509 v2 CRLs所定義的 Entry擴展提供了獲取CRL每條附加信息的方法。每個CRL Entry擴展被設計為關鍵性或非關鍵性。如果不能處理關鍵性擴展,該CRL的驗證將是無效的。如果是不可識別的非關鍵性CRL Entry擴展,則可以忽略。
    a) 原因代碼
    reasonCode 是非關鍵性CRL Entry擴展,標明了證書撤銷原因。CA應當能夠生成該擴展,但客戶是否要處理reasonCode擴展則是可選的。下面列舉的是reasonCode的取值:
    · unspecified,未使用;
    · keyCompromise,表明密鑰泄漏或懷疑泄漏;
    · cACompromise,表明該證書撤銷的原因是CA密鑰泄漏,它只用于撤銷CA證書;
    · affiliationChanged,表明該證書撤銷的原因是證書主體的從屬關系改變了;
    · superseded,表明該證書已被新的證書代替;
    · cessationOfOperation,表明該證書的功能已經不需要,并不是密鑰泄漏;
    · certificateHold , 表明證書當前不能使用,如果證書的CRL的reasonCode字段是 certificateHold,那么客戶就無法驗證證書認證路徑;
    · removeFromCRL,只與增量CRL 一塊使用,表明應該刪除一個存在的CRLEntry。
    b) 過期日期
    expirationDate ,非關鍵性CRL Entry擴展,表明Entry的過期時間。該擴展不在CRLs中使用,也不被客戶使用。
    c) 指令碼
    instructionCode是非關鍵性CRL Entry擴展,提供了一個注冊過的指令標識符,指令標識符來指出當遇到一個被凍結的證書時要采取何種操作。本擴展不在CRL中使用。
    d) 無效日期
    invalidityDate是非關鍵性CRL Entry擴展,指出知道密鑰泄漏或懷疑泄漏的日期,即證書無效的日期。該日期必須比CRL Entry中的撤銷日期要早。而CRL Entry中的撤銷日期表明的是CA撤銷證書的日期。無論是否可以獲得此信息,都應該鼓勵CAs將此信息與CRL用戶共享。CAs在CRLs中生成該擴展,取值的形式是GeneralizedTime。
    e) 證書發放者
    certificateIssuer和間接CRL一起使用,(間接CRL,是issuingDistributionPoint擴展中有indirectCRL標識符的CRL)。如果該擴展沒有在間接CRL的第一個Entry中標出,那么該證書的發放者默認為CRL發放者。在間接CRL隨后的Entry里,如果沒有給出certificateIssuer,則認為證書發放者與前一個CRL Entry的發放者相同。
    f) CRL Entry擴展使用總結
    表3總結了CRL Entry擴展,表4總結了本標準中CRL Entry擴展的使用。

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

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


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