專利名稱:一種數(shù)字證書細粒度的驗證系統(tǒng)及驗證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字證書合法性驗證粒度問題,在現(xiàn)有的驗證數(shù)字證書是否過期、 作廢和簽發(fā)者是否有效的基礎(chǔ)上,進一歩更細粒度的驗證數(shù)字證書是否為期望的數(shù) 字證書(身份)。
技術(shù)背景數(shù)字證書是證明用戶身份的網(wǎng)上標(biāo)識,在網(wǎng)絡(luò)中識別通訊各方的身份,即在虛 擬社會中解決"我是誰"的問題。通俗的講,數(shù)字證書就好像是網(wǎng)上用戶的身份證, 能夠保證您在網(wǎng)絡(luò)上進行的交易是安全的和可信的。數(shù)字證書主要有如下作用1、 身份認證數(shù)字證書中包括的主要內(nèi)容有證書擁有者的單位信息、證書擁有者的公鑰、 公鑰的有效期、頒發(fā)數(shù)字證書的CA、 CA的數(shù)字簽名等。2、 加密傳輸信息通過數(shù)字證書在網(wǎng)上傳輸數(shù)據(jù),這些數(shù)據(jù)要進行加密,然后以密碼的形式在 Internet上傳輸。發(fā)送方用接收方的公鑰對文件進行加密,接收方用只有自己才有 的私鑰進行解密,得到文件明文。3、 數(shù)字簽名抗否認在現(xiàn)實生活中用公章、簽名等來實現(xiàn)的抗否認,在網(wǎng)上可以借助數(shù)字證書的數(shù) 字簽名來實現(xiàn)。數(shù)字證書被廣泛的使用于軍事、金融、電子政務(wù)和電子商務(wù)領(lǐng)域,用于在因特 網(wǎng)中識別使用者的身份。但現(xiàn)在的數(shù)字證書驗證細粒度十分有限,其只驗證數(shù)字證 書的簽發(fā)者是否有效,證書是否過期或者作廢,滿足上述條件的所有證書都被系統(tǒng) 識別為有效證書。簡單的證書檢驗系統(tǒng),大大限制了其功能,無法滿足日益增長的網(wǎng)絡(luò)數(shù)字證書 的應(yīng)用需要。比如某數(shù)字證書簽發(fā)中心為不同的企業(yè)、單位簽發(fā)了不同的數(shù)字證 書,那么這些數(shù)字證書都在同一個信任域,在實際應(yīng)用中,A企業(yè)的數(shù)字證書能通 過B企業(yè)的信任體系,反之依然。如果某銀行在網(wǎng)絡(luò)上需要為某些VIP用戶定制一 些特定的服務(wù),現(xiàn)有的方式是不得不在證書驗證的基礎(chǔ)上,在應(yīng)用上設(shè)置不同的權(quán) 限,結(jié)構(gòu)繁瑣復(fù)雜,無法發(fā)揮數(shù)字證書的潛在功能。 發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是根據(jù)上文中提到的數(shù)字證書驗證的不足,提出一 種在現(xiàn)有證書有效性驗證的基礎(chǔ)之上,進一步根據(jù)實際應(yīng)用,在更細粒度上驗證證 書的"有效性"的辦法。即根據(jù)數(shù)字證書的實體信息,序列號和指紋等信息將有效 證書分成不同的組(集合),然后在驗證證書合法性后,我們進--歩驗證某證書是否屬于此組(集合),屬于此組(集合)則"合法",否則"不合法"。這樣相當(dāng)于我們 將持有中國人民共和國居民身份證并且民族為少數(shù)民族的學(xué)生歸為一組(集合),然后驗證某學(xué)生是否屬于此組(集合),屬于此組(集合)的學(xué)生優(yōu)先被高校錄取一樣, 我們可以根據(jù)實際需要,將"身份證"按不同的方式分成多種組(集合),以達到區(qū) 別對待的目的。為了解決上面的問題,數(shù)字證書細粒度的驗證方法包括如下步驟一. 創(chuàng)建目標(biāo)組(集合)A此目標(biāo)組是用戶期望的數(shù)字證書的集合,我們以后的步驟將把特定的證書加入 到此集合,然后進行驗證和操作。二. 據(jù)用戶的需求,將滿足某些特定條件的證書劃為此目標(biāo)組A。此特定條件由 如下項組成1>數(shù)字證書的簽發(fā)者為某個特定的簽發(fā)者,比如某CA簽發(fā)的所有證書。 2>數(shù)字證書的證書項滿足特定的要求。證書項由C, L, 0, 0U, CN, ST, GN和OID等關(guān)鍵字段組成(但不限于),ST^江蘇 省"則匹配所有證書項中ST 江蘇省"的證書。證書項可以匹配多個字段,比如ST-"江蘇省",L-"南京市"則匹配所有證書項中 ST-'江蘇省",并且L^南京市"的數(shù)字證書證書項的匹配可以使用正則表達式(如Perl .IH則表達式)進行匹配,比如CN=" 測試^則匹配所有證書中,證書項CN字段以"測試"二字開頭的證書。3>證書序列號為某個或者某幾個指定的值在同一CA體系下,數(shù)字證書序列號有單一性,使用此序列號和前面的數(shù)字證 書簽發(fā)者可以比較精確的匹配到某個證書。當(dāng)添加多個序列號時,所以具體這些序
列號的證書都屬于目標(biāo)組A。4>數(shù)字證書指紋為指定的值數(shù)字證書指紋具有唯一性,任何兩張不同的數(shù)字證書都具有不同的指紋,且無 法創(chuàng)建一個已知指紋的數(shù)字證書。匹配某些特定的指紋將能精確的請目標(biāo)證書加入 到目標(biāo)組A如果以上四項均沒有定義,則匹配所有證書。如果限定了多項,則匹配了所有 限定項的證書才劃入此目標(biāo)組(集合)。三. 定義數(shù)字證書檢驗策略,即對于目標(biāo)組的證書采用對應(yīng)策略操作。 重復(fù)以上一、二和三步可以定義多個目標(biāo)組和相應(yīng)策略,這些策略組成策略鏈。定義缺省策略后,策略鏈建立完成。以上三步定義了策略鏈,下面的步驟則為證書請求時,進行的檢驗過程。具體 分為四. 使用證書鏈檢驗證書的簽名者是否合法,即證書是否過期或者作廢。此檢 査為現(xiàn)有數(shù)字證書系統(tǒng)常規(guī)檢查程序。當(dāng)數(shù)字證書在此檢驗中合法后,繼續(xù)進行下 一步檢査。五. 使用數(shù)字證書相關(guān)工具,解碼得出數(shù)字證書的相關(guān)信息,與策略鏈中的目 標(biāo)組(集合)進行匹配1>檢驗數(shù)字證書簽發(fā)者是否為目標(biāo)組中定義的簽發(fā)者,如果數(shù)字證書的簽發(fā) 者為目標(biāo)組A定義的簽發(fā)者,則視為通過此項檢査,否則視為"無效"。如果組A 中沒有定義簽發(fā)者,則所有證書滿足本條件。2>檢驗數(shù)字證書的證書項是否匹配目標(biāo)組A的定義,比如證書項中L字段包 含"南京"二字或者CN^測試"等,滿足則視為通過此項檢査,否則視為"無效"。 如果組A中沒有對證書項作限定,則所有數(shù)字證書滿足本條件。3>檢驗數(shù)字證書的序列號是否在組A的列表中,如果某證書序列號在組A的 序列號列表中,則視為通過此項檢査,否則視為"無效"。如果組A中沒有對序列 號做限定,則視所有證書滿足本條件。4>檢驗數(shù)字證書指紋是否在組A列表中,如果某證書指紋在組A指紋列表中, 則視為通過此項檢査,否則視為"無效"。如果組A中沒有對指紋做限定,則視所 有證書滿足本條件。當(dāng)某證書通過上面所有檢査項時,被視為合法,即為目標(biāo)組A的成員(元素); 如果有一項或者多項"無效",此證書被視為"無效",即不為目標(biāo)組的成員(元 素)。六.執(zhí)行預(yù)定義的操作如果某證書在前一步(第五步)檢査中,屬于目標(biāo)證書組A,將按第三步定義 的策略進行操作,比如通過,或者不通過。如果某證書在前一步(第五步)檢查中,不屬于目標(biāo)證書組A,將按第三步定 義的缺省策略進行操作。如果策略鏈中有多個策略,則根據(jù)策略鏈依次重復(fù)進行第五步和第六步,直到 策略鏈的木尾。使用此細粒度檢查將能能用戶帶來明顯的便利性?,F(xiàn)有的數(shù)字證書檢驗,同一 簽發(fā)者(CA)簽發(fā)的所有證書都能通過有效性檢査,用戶必須在應(yīng)用上對使用者進行 二次審核,加大了系統(tǒng)復(fù)雜性和應(yīng)用成本。并且一些"無關(guān)"的使用者能夠通過第 一道證書有效性檢查,將給應(yīng)用系統(tǒng)的安全性帶來很大威脅。使用本發(fā)明的細粒度 檢査后,用戶可以定義簽發(fā)者為某CA, 0^企業(yè)A"即可阻止企業(yè)A以外的所有證書 通過驗證,包括此CA為其它公司簽發(fā)的所有證書都被拒于門外。如果使用更細粒 度的檢査,我們還能為企業(yè)A內(nèi)不同的部門,職位分配更加精確的權(quán)限。
圖1為本發(fā)明創(chuàng)造中的設(shè)置策略鏈的歩驟 圖2為本發(fā)明創(chuàng)造中的數(shù)字證書檢驗歩驟具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進一歩描述。 實施例一本實例具體描述在同一CA體系,即同--信任域下,企業(yè)使用數(shù)字證書的實例。 CA_M為江蘇省合法的數(shù)字證書簽發(fā)機構(gòu),CA—M為不同的企業(yè)簽發(fā)數(shù)字 證書,其中A企業(yè)為其客戶,并且所簽發(fā)給A企業(yè)的數(shù)字證書中,實體信息0= 'CAM4000869、其中CAM4000869為CA—M為企業(yè)A設(shè)置的組織機構(gòu)代碼,此代碼具 有唯一性,〔八_14簽發(fā)的證書中,每個企業(yè)的組織機構(gòu)代碼不一樣。A企業(yè)有自己的 辦公0A系統(tǒng),使用數(shù)字證書登陸。步驟如下(1)在企業(yè)A的證書認證系統(tǒng)中創(chuàng)建證書組,組名為0A—A
(2) 定義組0A_A為簽發(fā)者CA_M, 0-"CAM4000869"的所有證書,即數(shù)字證書頒 發(fā)機構(gòu)CA一M為企業(yè)A頒發(fā)的所有證書。(3) 在證書驗證過濾器中使用策略,允許且只允許滿足組0A_A條件的證書才 能通過驗證。當(dāng)某證書請求訪問目標(biāo)服務(wù)時,證書檢驗系統(tǒng)將對證書的簽發(fā)者,有效期和是 否廢除進行檢査,如果此證書無法通過此檢査,將不能訪問目標(biāo)應(yīng)用服務(wù);如果此 證書通過上述檢査,將繼續(xù)檢查簽發(fā)者是否為組0A_A中定義的CA—M和組織機構(gòu)代 理L是否為CAM4000869,如果不滿足,將拒絕訪問請求,如果滿足,將允許其訪問。實施例二本實例描述某企業(yè)內(nèi)部使用數(shù)字證書訪問控制目標(biāo)服務(wù)。在上一實例中,所有持有CA頒發(fā)中心CA_M頒發(fā)的合法證書將可以訪問企業(yè)A 的OA系統(tǒng)。如果企業(yè)A為某加工企業(yè),公司所用圖紙為機要文件,只有公司中層 和高層管理人員才能訪問服務(wù)器上存儲的圖紙。具體操作步驟如下(1) 在企業(yè)A的證書認證系統(tǒng)中創(chuàng)建證書組,組名為OA—A一中層(2) 定義組OA一A—中層為簽發(fā)者為CA一M, 0="CAM4000869:并且將所有中層管 理人員的數(shù)字證書序列號加入到列表中。(3) 在證書驗證過濾器中使用策略,允許滿足組OA—A—中展條件的證書才能通 過驗證。重復(fù)上面的歩驟定義高層管理人員組,步驟如下(4) 在企業(yè)A的證書認證系統(tǒng)中創(chuàng)建證書組,組名為0A—A—高層(5) 定義組OA—八_高層為簽發(fā)者為CA_M, 0=WCAM4000869",并且將所有高層管 理人員的數(shù)字證書序列號加入到列表中。(6) 在證書驗證過濾器中使用策略,允許滿足組OA—A—高層條件的證書才能通 過驗證。以上步驟定義了兩個策略,允許中層和高層人員通過驗證。接下來 (7)設(shè)置缺省策略為拒絕,策略鏈建立完成。 當(dāng)某證書請求訪問目標(biāo)服務(wù)時,將按如下i^驟進行檢査(1) 證書檢驗系統(tǒng)將對證書的簽發(fā)者,有效期和是否廢除進行檢查,如果此證 書無法通過此檢查,將不能訪問目標(biāo)應(yīng)用服務(wù),直接拒絕。(2) 如果此證書通過上述檢査,將繼續(xù)檢查簽發(fā)者是否為組(^_八_中層中定義的 0八_1 和組織機構(gòu)代理和L是否為CAM4000869,并且其序列號是否在(^_六_中層列表 中。如果滿足,則通過檢査,認為合法;如果不滿足,則進入到下一步檢査。(3)繼續(xù)檢査簽發(fā)者是否為組0AJL高層中定義的CA—M和組織機構(gòu)代理和L是 否為CAM4000869,并且其序列號是否在(^_八一高層列表中。如果滿足,則通過檢査, 認為合法;如果不滿足,則按缺省策略拒絕進行操作,不能訪問目標(biāo)服務(wù)。雖然本發(fā)明通過實施例進行了描述,但實施例并非用來限定本發(fā)明。本領(lǐng)域技 術(shù)人員可在本發(fā)明的精神的范圍內(nèi),做出各種變形和改進,所附的權(quán)利要求應(yīng)包括 這
權(quán)利要求
1、一種數(shù)字證書細粒度的驗證系統(tǒng),包括滿足某些特定條件的證書的目標(biāo)組,和對應(yīng)目標(biāo)組的相應(yīng)策略鏈,其特征在于所述的特定條件由如下項一項或幾項組成,數(shù)字證書的簽發(fā)者為某個特定的簽發(fā)者;數(shù)字證書的證書項滿足特定的要求;證書序列號為某個或者某幾個指定的值;數(shù)字證書指紋為指定的值。
2、 一種數(shù)字證書細粒度的驗證方法,建立數(shù)字證書細粒度的驗證系統(tǒng)和策略鏈;使 用證書鏈檢驗證書的簽名者是否合法、過期或者作廢;使用數(shù)字證書相關(guān)工具,解碼得出 數(shù)字證書的相關(guān)信息,與策略鏈中的目標(biāo)組(集合)進行匹配;執(zhí)行預(yù)定義的操作。
3、 根據(jù)權(quán)利要求2所述的數(shù)字證書細粒度的驗證方法,其特征在于,所述的建立數(shù) 字證書細粒度的驗證系統(tǒng)和策略鏈具體步驟步驟一.創(chuàng)建目標(biāo)組(集合)A,此目標(biāo)組是用戶期望的數(shù)字證書的集合,把特定的證書 加入到此集合,然后進行驗證和操作;步驟二.據(jù)用戶的需求,將滿足某些特定條件的證書劃為此目標(biāo)組A,此特定條件由 如下項組成,數(shù)字證書的簽發(fā)者為某個特定的簽發(fā)者,數(shù)字證書的證書項滿足特定的要求, 證書序列號為某個或者某幾個指定的值,數(shù)字證書指紋為指定的值;如果以上四項均沒有 定義,則匹配所有證書,如果限定了多項,則匹配了所有限定項的證書才劃入此目標(biāo)組(集 合);步驟三.定義數(shù)字證書檢驗策略,即對于目標(biāo)組的證書釆用對應(yīng)策略操作 重復(fù)以上一、二和三步可以定義多個目標(biāo)組和相應(yīng)策略,這些策略組成策略鏈,定義 缺省策略后,策略鏈建立完成。
4、 根據(jù)權(quán)利要求2所述的數(shù)字證書細粒度的驗證方法,其特征在于,所述的使用證 書鏈檢驗證書的簽名者是否合法,即證書是否過期或者作廢,此檢查為現(xiàn)有數(shù)字證書系統(tǒng) 常規(guī)檢査程序,當(dāng)數(shù)字證書在此檢驗中合法后,繼續(xù)進行下一步檢查,否則予以拒絕。
5、 根據(jù)權(quán)利要求2所述的數(shù)字證書細粒度的驗證方法,其特征在于,所述的使用數(shù) 字證書相關(guān)工具,解碼得出數(shù)字證書的相關(guān)信息,與策略鏈中的目標(biāo)組(集合)進行匹配 具體步驟步驟l、檢驗數(shù)字證書簽發(fā)者是否為目標(biāo)組中定義的簽發(fā)者,如果數(shù)字證書的簽發(fā)者 為目標(biāo)組A定義的簽發(fā)者,則視為通過此項檢査,否則視為"無效",如果目標(biāo)組A中沒有定義簽發(fā)者,則所有證書滿足本條件;步驟2、檢驗數(shù)字證書的證書項是否匹配目標(biāo)組A的定義,滿足則視為通過此項檢査, 否則視為"無效",如果目標(biāo)組A中沒有對證書項作限定,則所有數(shù)字證書滿足本條件;步驟3、檢驗數(shù)字證書的序列號是否在目標(biāo)組A的列表中,如果某證書序列號在目標(biāo) 組A的序列號列表中,則視為通過此項檢査,否則視為"無效",如果組A中沒有對序列 號做限定,則視所有證書滿足本條件;步驟4、檢驗數(shù)字證書指紋是否在組A列表中,如果某證書指紋在組A指紋列表中, 則視為通過此項檢查,否則視為"無效",如果組A中沒有對指紋做限定,則視所有證書 滿足本條件;當(dāng)某證書通過上面所有檢査項時,被視為合法,即為目標(biāo)組A的成員(元素);如果 有一項或者多項"無效",此證書被視為"無效",即不為目標(biāo)組的成員(元素)。
6、根據(jù)權(quán)利要求2所述的數(shù)字證書細粒度的驗證方法,其特征在于,所述的執(zhí)行預(yù) 定義的操作是指如果某證書在前一步數(shù)字證書的檢査中,屬于目標(biāo)證書組A,將按所述的策略鏈中定 義的策略進行操作,比如通過,或者不通過;如果某證書在前一步數(shù)字證書的檢査中,不屬于目標(biāo)證書組A,將按所述的策略鏈中 定義的缺省策略進行操作;如果策略鏈中有多個策略,則根據(jù)策略鏈依次重復(fù)進行,直到策略鏈的末尾。
全文摘要
本發(fā)明提出了一種在現(xiàn)有證書有效性驗證的基礎(chǔ)之上,在更細粒度上驗證證書的“有效性”的辦法。即根據(jù)數(shù)字證書的實體信息,序列號和指紋等信息將有效證書分成不同的組(集合),然后在驗證證書合法性后,進一步驗證某證書是否屬于此目標(biāo)組(集合),屬于此目標(biāo)組(集合)則“合法”,否則“不合法”。此目標(biāo)組是用戶期望的數(shù)字證書的集合。使用此細粒度檢查將能給用戶帶來明顯的便利性。
文檔編號H04L9/32GK101163012SQ20071019017
公開日2008年4月16日 申請日期2007年11月20日 優(yōu)先權(quán)日2007年11月20日
發(fā)明者莊昱垚, 陳國強 申請人:江蘇先安科技有限公司