數字證書(CA)應用技術簡介

本文介紹了數字證書的相關的概念和標準。
一、 什麼是CA

  CA(Certificate Authority)是數字證書認證中心的簡稱,是指發放、管理、廢除數字證書的機構。CA的作用是檢查證書持有者身份的合法性,並簽發證書(在證書上簽字),以防證書被僞造或篡改,以及對證書和密鑰進行管理。

  數字證書實際上是存於計算機上的一個記錄,是由CA簽發的一個聲明,證明證書主體("證書申請者"擁有了證書後即成爲"證書主體")與證書中所包含的公鑰的惟一對應關係。證書包括證書申請者的名稱及相關信息、申請者的公鑰、簽發證書的CA的數字簽名及證書的有效期等內容。數字證書的作用是使網上交易的雙方互相驗證身份,保證電子商務的安全進行。

    CA是基於非對稱加密體系建立的電子商務安全認證機構。

    二、 什麼是對稱加密

  我們先來看一下什麼是對稱加密:

  對稱加密採用的是對稱算法,也是傳統常用的算法。其主要特點是:加解密雙方在加解密過程中要使用完全相同的一個密鑰。它最廣泛使用的是DES算法。

    DES(Data Encryption Standard) 算法是美國政府機關爲了保護信息處理中的計算機數據而使用的一種加密方式,是一種常規密碼體制的密碼算法,目前已廣泛用於電子商務系統中。64位DES的算法詳細情況已在美國聯邦信息處理標準(FIPS PUB46)上發表。該算法輸入的是64比特的明文,在64比特密鑰的控制下產生64比特的密文;反之輸入64比特的密文,輸出64比特的明文。64比特的密鑰中含有8個比特的奇偶校驗位,所以實際有效密鑰長度爲56比特。隨着研究的發展,DES算法在基本不改變加密強度的條件下,發展了許多變形DES。Triple-DES 是DES算法擴展其密鑰長度的一種方法,可使加密密鑰長度擴展到128比特(112比特有效)或192比特(168比特有效)。其基本原理是將128比特的密鑰分爲64比特的兩組,對明文多次進行普通的DES加解密操作,從而增強加密強度。

  對稱算法最主要的問題是:由於加解密雙方都要使用相同的密鑰,因此在發送、接收數據之前,必須完成密鑰的分發。因而,密鑰的分發便成了該加密體系中的最薄弱因而風險最大的環節。各種基本的手段均很難保障安全地完成此項工作。從而,使密鑰更新的週期加長,給他人破譯密鑰提供了機會。在對稱算法中,儘管由於密鑰強度增強,跟蹤找出規律破獲密鑰的機會大大減小了,但密鑰分發的困難問題幾乎無法解決。如,設有n方參與通信,若n方都採用同一個對稱密鑰,一旦密鑰被破解,整個體系就會崩潰;若採用不同的對稱密鑰則需n(n-1)個密鑰,密鑰數與參與通信人數的平方數成正比。這便使大系統密鑰的管理幾乎成爲不可能。

    什麼是RSA:

  RSA是一種公開密鑰加密體系,RSA算法最初是爲了解決DES算法密鑰的工發難題。它的應用原理是:
  先由密鑰管理中心產生一對公鑰(public-key)和私鑰(Private-key),稱爲密鑰對。方法如下:在離線方式下,先產生兩個足夠大的強質數p、q。可得p與q的乘積爲n=p×q。再由p和q算出另一個數z=(p-1)×(q-1),然後再選取一個與z互素的奇數e,稱e爲公開指數;從這個e值可以找出另一個值d,並能滿足e×d=1 mod (z)條件。由此而得到的兩組數(n,e)和(n,d)分別被稱爲公開密鑰和祕密密鑰,或簡稱公鑰和私鑰。

  對於明文M,用公鑰 (n,e) 加密可得到密文C。
  C = M mod (n)
  對於密文C,用私鑰(n,d)解密可得到明文M。
  M = C mod (n)

  同法,也可定義用私鑰(n,d)先進行解密後,然後用公鑰(n,e)進行加密(用於簽名)。

    p、q、z由密鑰管理中心負責保密。在密鑰對一經產生便自動將其銷燬或者爲了以後密鑰恢復的需要將其存入離線的安全黑庫裏面;如密鑰對是用戶自己離線產生的,則p、q、z的保密或及時銷燬由用戶自己負責。在本系統中,這些工作均由程序自動完成。在密鑰對產生好後,公鑰則通過簽證機關CA以證書的形式向用戶分發;經加密後的密態私鑰用PIN卡攜帶分發至用戶本人。

    基於RSA算法上建構的體系稱爲非對稱加密體系,用非對稱加密體系,可建立起一套優秀的安全體系結構--稱爲公鑰體系結構。

  以下介紹公鑰體系結構中的一些基本概念與結構組成。

    密鑰對、證書和CA
  1) 密鑰對

    在基於公鑰體系的安全系統中,密鑰是成對生成的,每對密鑰由一個公鑰和一個私鑰組成。在實際應用中,私鑰由擁有者自己保存,而公鑰則需要公佈於衆。爲了使基於公鑰體系的業務能夠廣泛應用,一個基礎性關鍵的問題就是公鑰的分發與管理。

    公鑰本身並沒有什麼標記,僅從公鑰本身不能判別公鑰的主人是誰。

    在很小的範圍內,比如A和B這樣的兩人小集體,他們之間相互信任,交換公鑰,在互聯網上通訊,沒有什麼問題。這個集體再稍大一點,也許彼此信任也不成問題,但從法律角度講這種信任也是有問題的。如再大一點,信任問題就成了一個大問題。

  2) 證書

    互聯網絡的用戶羣決不是幾個人互相信任的小集體,在這個用戶羣中,從法律角度講用戶彼此之間都不能輕易信任。所以公鑰加密體系採取了另一個辦法,將公鑰和公鑰的主人名字聯繫在一起,再請一個大家都信得過有信譽的公正、權威機構確認,並加上這個權威機構的簽名,這就形成了證書。

    由於證書上有權威機構的簽字,所以大家都認爲證書上的內容是可信任的;又由於證書上有主人的名字等身份信息,別人就很容易地知道公鑰的主人是誰。

  3) CA

    CA也擁有一個證書(內含公鑰),當然,它也有自己的私鑰,所以它有簽字的能力。網上的公衆用戶通過驗證CA的簽字從而信任CA,任何人都應該可以得到CA的證書(含公鑰),用以驗證它所簽發的證書。

    如果用戶想得到一份屬於自己的證書,他應先向CA提出申請。在CA判明申請者的身份後,便爲他分配一個公鑰,並且CA將該公鑰與申請者的身份信息綁在一起,併爲之簽字後,便形成證書發給那個用戶(申請者)。

  如果一個用戶想鑑別另一個證書的真僞,他就用CA的公鑰對那個證書上的簽字進行驗證(如前所述,CA簽字實際上是經過CA私鑰加密的信息,簽字驗證的過程還伴隨使用CA公鑰解密的過程),一經驗證通過,該證書就被認爲是有效的。

    CA除了簽發證書之外,它的另一個重要作用是證書和密鑰的管理。

    由此可見,證書就是用戶在網上的電子個人身份證,同日常生活中使用的個人身份證作用一樣。CA相當於網上公安局,專門發放、驗證身份證。

    三、 "X.509標準"是什麼

  在和CA進行接觸時,我們常常會聽到一個名詞: X.509。它是國際標準化組織CCITT(即國際電話委員會)建議作爲X.500目錄檢索的一部分提供安全目錄檢索服務,是一種行業標準或者行業解決方案,在X.509方案中,默認的加密體制是公鑰密碼體制。爲進行身份認證,X.509標準及公共密鑰加密系統提供了數字簽名的方案。用戶可生成一段信息及其摘要(亦稱作信息"指紋")。用戶用專用密鑰對摘要加密以形成簽名,接收者用發送者的公共密鑰對簽名解密,並將之與收到的信息"指紋"進行比較,以確定其真實性。

  此問題的解決方案即X.509標準與公共密鑰證書。本質上,證書由公共密鑰加密鑰擁有者的用戶標識組成,整個字塊有可信賴的第三方簽名。典型的第三方即用戶所信賴的CA。

    X.509證書的格式

  X.509是一種非常通用的證書格式。所有的證書都符合ITU-T X.509國際標準;因此(理論上)爲一種應用創建的證書可以用於任何其他符合X.509標準的應用。在一份證書中,必須證明公鑰及其所有者的姓名是一致的。對X.509證書來說,認證者總是 CA或由CA指定的人,一份X.509證書是一些標準字段的集合,這些字段包含有關用戶或設備及其相應公鑰的信息。X.509標準定義了證書中應該包含哪些信息,並描述了這些信息是如何編碼的(即數據格式),所有的X.509證書包含以下數據:

  1、X.509版本號:指出該證書使用了哪種版本的X.509標準,版本號會影響證書中的一些特定信息。目前的版本是3。

  2、證書持有人的公鑰:包括證書持有人的公鑰、算法(指明密鑰屬於哪種密碼系統)的標識符和其他相關的密鑰參數。

  3、證書的序列號:由CA給予每一個證書分配的唯一的數字型編號,當證書被取消時,實際上是將此證書序列號放入由CA簽發的CRL(Certificate Revocation List證書作廢表,或證書黑名單表)中。這也是序列號唯一的原因。

  4、主題信息:證書持有人唯一的標識符(或稱DN-distinguished name)這個名字在 Internet上應該是唯一的。DN由許多部分組成,看起來象這樣:

  CN=Bob Allen, OU=Total Network Security Division
  O=Network Associates, Inc.
  C=US

    這些信息指出該科目的通用名、組織單位、組織和國家或者證書持有人的姓名、服務處所等信息。

  5、證書的有效期:證書起始日期和時間以及終止日期和時間;指明證書在這兩個時間內有效。

  6、認證機構:證書發佈者,是簽發該證書的實體唯一的CA的X.500名字。使用該證書意味着信任簽發證書的實體。(注意:在某些情況下,比如根或頂級CA證書,發佈者自己簽發證書)

  7、發佈者的數字簽名:這是使用發佈者私鑰生成的簽名,以確保這個證書在發放之後沒有被撰改過。

  8、簽名算法標識符:用來指定CA簽署證書時所使用的簽名算法。算法標識符用來指定CA簽發證書時所使用的公開密鑰算法和HASH算法。

    四、 "X.500協議"是什麼

  X.500是由CCITT在X.400的基礎上推廣的新版本,是一個將局部名錄服務連接起來,構成全球分佈式的名錄服務系統的協議 。X.500組織起來的數據就象一個很全的電話號碼簿,或者說一個X.500系統象是一個分門別類的圖書館。而某一機構建立和維護的名錄數據庫只是全球名錄數據庫的一部分。

  X.500基本上是用來查詢有關人員的信息(如郵政地址、電話號碼、電子郵件地 址等)的一種服務。可以檢索的字段有:姓名、人員所在機構名、所在機構的部門名稱以及國家名稱。

    在X.500協議中,本地的X.500客戶程序又叫名錄用戶代理(DUA)。

  X.500的服務大部分是交互作用的,在你查詢時它會給你一些聯機幫助,來幫助你使用它。

    由於X.500比X.400更加實用,所以X.500將成爲今後的全球檢索數據庫的流行趨勢。

    X.500目錄服務(X.500 Directory Service)

  X.500目錄服務是一種用於開發一個單位(或組織)內部人員目錄的標準方法,這個目錄可以成爲全球目錄的一部分,這樣在世界任何一個角落,只要能和Internet相連的地方,任何人都可以查詢這個單位中人員的信息,可以通過人名,部門,單位(或組織)來進行查詢,許多公司或組織都提供X.500目錄,這個目錄象我們通常知道的目錄一樣有一個樹型結構,它的結構如下:國家,單位(或組織),部門和個人。

  在X.500中每個本地目錄叫做目錄系統代理(DSA),一個DSA代表一個或多個單位(或組織),而DSA之間以目錄信息樹(DIT)連接。用於訪問一個或多個DSA的用戶程序稱爲DUA,它包括whois,finger和其它用於提供圖形用戶界面的程序。X.500在全球目錄服務(GDS)中作爲分佈計算機環境的一部分實現。一些大學也以輕載目錄訪問協議(LDAP)爲基礎使用X.500作爲電子郵件服務和姓名查詢的方法。

  在CA系統中,X.500目錄服務器用於發佈用戶的證書和黑名單信息,用戶可通過LDAP協議查詢自己或其他人的證書和下載黑名單信息。LDAP是X.500目錄訪問協議的一個子集。支持這個協議的服務器,可以讓普通用戶使用支持LDAP功能的Web瀏覽器,進行有關電子郵件用戶登錄住處方面的查詢,查詢的用戶屬性包括姓名、電話號碼、電子郵件地址、工作機構、所在部門和地址信息等。系統管理員可以通過LDAP客戶程序遠程進行目錄管理操作,如添加、刪除和修改用戶賬戶信息等。

    五、 什麼是LDAP

  LDAP的英文全稱是Lightweight Directory Access Protocol,輕量級目錄訪問協議。它是基於X.500標準的,但是簡單多了並且可以根據需要定製。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。

  LDAP不是數據庫而是用來訪問存儲在信息目錄(也就是LDAP目錄)中的信息的協議。也就是說"通過使用LDAP,可以在信息目錄的正確位置讀取(或存儲)數據",LDAP主要是優化數據讀取的性能。

    LDAP協議是跨平臺的和標準的協議,因此應用程序就不用爲LDAP目錄放在什麼樣的服務器上操心了。實際上,LDAP得到了業界的廣泛認可,因爲它是Internet的標準。LDAP最大的優勢是:可以在任何計算機平臺上,用很容易獲得的而且數目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定製應用程序爲它加上LDAP的支持。

    六、 什麼是OCSP

  OCSP(Online Certificate status Protocol)在線證書狀態協議,是IETF頒佈的用於檢查數字證書在某一交易時間是否有效的標準。在OCSP之前,用戶沒有一種方便的途徑來複查證書的有效性。OCSP使經理們可以實時進行這類檢查,從而節省了時間和資金,它爲電子商務提供了一種檢驗數字證書有效性的途徑,比下載和處理證書撤銷清單(CRL)的傳統方式更快、更方便和更具獨立性。

    由證書機構簽發的CRL是一張無效證書及其持有者的名單。這種CRL處理方式要求用戶配置客戶PC來處理來自證書機構的CRL。由於證書機構沒有經常簽發CRL,或由於撤銷證書的數量很大及用戶基礎很大,所以CRL常常會越變越大。當它們體積過於龐大變得難於使用時就帶來了另一個問題,即每次CRL分發會大量消耗網絡帶寬和客戶機處理能力。此外,業務夥伴可能需要幾天的時間才能收到有關撤銷證書的通知,從而增加了破壞安全性的可能。

  OCSP實時在線地向用戶提供證書狀態,其結果是它比CRL處理快得多,並避免了令人頭痛的邏輯問題和處理開銷。

  爲立即檢查證書是否被撤銷,用戶的客戶機必須形成請求,並將請求轉發到一個OCSP應答器,即網絡中保存最新撤銷信息的服務器應用程序。應答器回答下列三個有關證書有效性信息中的一個:"?quot;、"撤銷"或"不知道"。儘管HTTP是最通用的方式,但OCSP請求是獨立於協議的。

  證書機構或其他實體向作爲公共密鑰基礎設施的可信體系組成部分的可信賴機構提供OCSP應答器。對於使用OCSP應答器的用戶來說,獲得這一信息的最佳途徑是使證書機構將信息直接輸入到應答器中。根據證書機構與OCSP應答器之間的關係,證書機構可以轉發即時的通知或證書撤銷信息,並且這些信息可以立即提供給用戶。

  一項關鍵的決定涉及到是否使用在數據庫中保存實際證書和狀態信息的應答器。經常被稱之爲信息庫的這類應答器,使各機構可以訪問更多的有關證書和其狀態的信息,因此用戶可以做出有關交易夥伴可信度的更有依據的業務決定。這種方式的代價是付出維護證書數據庫的費用。除了OCSP之外,信息庫還支持供客戶機應用使用的輕量級目錄訪問協議(LDAP)。

  OCSP使各機構可以很容易地將多個應答器連接起來,方便企業對企業的交易。這意味着如果一家機構請求從應答器得到該證書的狀態,但該應答器沒有某一證書信息的話,應答器可以從其它應答器中獲得這一信息。建立這種應答器網絡可以賦予貿易伙伴驗證"國外"證書和在Internet共同開展業務的更多的靈活性。

  OCSP給證書認證過程帶來了效率並節省了費用,增強了用戶交易的安全性。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章