本發(fā)明涉及公鑰基礎(chǔ)設(shè)施領(lǐng)域,尤其涉及一種用于創(chuàng)建證書測試庫的方法和裝置。
背景技術(shù):
公鑰基礎(chǔ)設(shè)施(pki)是一種遵循標(biāo)準(zhǔn)的利用公鑰加密技術(shù)為電子商務(wù)的開展提供一套安全基礎(chǔ)平臺的技術(shù)和規(guī)范,其通過認(rèn)證機(jī)構(gòu)(ca)利用證書把用戶的公鑰和用戶的標(biāo)識信息捆綁在一起,在網(wǎng)絡(luò)上驗證用戶的身份。國際電信聯(lián)盟(itu-t)制定的數(shù)字證書標(biāo)準(zhǔn)x.509詳細(xì)定義了pki中的證書。
安全套接層(ssl)協(xié)議及其繼任者傳輸層安全(tls)協(xié)議是pki中采用的為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,用于在實際的數(shù)據(jù)傳輸開始前,對通信雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。實現(xiàn)或遵循ssl/tls協(xié)議的部分或全部的應(yīng)用通常被稱作ssl/tls實現(xiàn),例如,openssl、nss、gnutls等。ssl/tls實現(xiàn)在對用戶進(jìn)行身份認(rèn)證時首先需要對用戶的證書進(jìn)行有效性驗證。從而,ssl/tls實現(xiàn)能否正確地驗證證書的有效性對ssl/tls實現(xiàn)的身份認(rèn)證功能非常重要。
通常,使用證書測試庫來測試ssl/tls實現(xiàn)能否正確地驗證證書的有效性,其中,該證書測試庫包括多個證書和該多個證書各自的表示有效或無效的有效性指示。然而,在創(chuàng)建該證書測試庫時,該多個證書各自的有效性指示是由操作人員對該多個證書檢查而確定的。
因此,目前創(chuàng)建證書測試庫的方式需要付出較大的人力。
技術(shù)實現(xiàn)要素:
考慮到現(xiàn)有技術(shù)的上述問題,本發(fā)明的實施例提供一種用于創(chuàng)建證書測 試庫的方法和裝置,其能夠在付出較少人力的情況下創(chuàng)建證書測試庫。
按照本發(fā)明實施例的一種用于創(chuàng)建證書測試庫的方法,包括:利用多個具有對公鑰基礎(chǔ)設(shè)施(pki)的證書進(jìn)行驗證的功能的實現(xiàn),對多個公鑰基礎(chǔ)設(shè)施的證書中的每一個證書進(jìn)行驗證;根據(jù)所述多個實現(xiàn)對所述多個證書各自的驗證結(jié)果,設(shè)置所述多個證書各自的表示是否有效的有效性指示;以及,創(chuàng)建證書測試庫,所述證書測試庫包括至少一個證書和所述至少一個證書各自的所述有效性指示,所述至少一個證書是所述多個證書中其所述有效性指示為有效或無效的證書。
其中,設(shè)置所述多個證書各自的表示是否有效的有效性指示包括:如果所述多個實現(xiàn)對所述多個證書中的任一證書的驗證結(jié)果都表示所述任一證書是有效的,則設(shè)置所述任一證書的所述有效性指示為有效;如果所述多個實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為無效;以及,如果所述多個實現(xiàn)中的一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是有效的,以及,所述多個實現(xiàn)中的另一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為有效性未知。
其中,所述方法還包括:如果所述多個證書中的某些證書的所述有效性指示為有效性未知,則根據(jù)預(yù)定的規(guī)則,判斷所述某些證書中的每一個證書是否有效;以及,基于判斷結(jié)果,設(shè)置所述某些證書各自的所述有效性指示。
其中,所述方法還包括:如果所述多個證書中的一個或若干證書的所述有效性指示為有效性未知,則呈現(xiàn)所述一個或若干證書以供技術(shù)人員檢查其是否有效;以及,當(dāng)接收到指示所述一個或若干證書各自是有效或無效的檢查結(jié)果時,根據(jù)所接收的檢查結(jié)果,設(shè)置所述一個或若干證書各自的所述有效性指示。
其中,所述多個實現(xiàn)包括遵循安全套接層(ssl)協(xié)議的實現(xiàn)和/或遵循傳輸安全層(tls)協(xié)議的實現(xiàn)。
按照本發(fā)明實施例的一種用于創(chuàng)建證書測試庫的裝置,包括:驗證模塊,用于利用多個具有對公鑰基礎(chǔ)設(shè)施(pki)的證書進(jìn)行驗證的功能的實現(xiàn),對多個公鑰基礎(chǔ)設(shè)施的證書中的每一個證書進(jìn)行驗證;設(shè)置模塊,用于根據(jù)所述多個實現(xiàn)對所述多個證書各自的驗證結(jié)果,設(shè)置所述多個證書各自的表示是否有效的有效性指示;以及,創(chuàng)建模塊,用于創(chuàng)建證書測試庫,所述證書測 試庫包括至少一個證書和所述至少一個證書各自的所述有效性指示,所述至少一個證書是所述多個證書中其所述有效性指示為有效或無效的證書。
其中,所述設(shè)置模塊用于:如果所述多個實現(xiàn)對所述多個證書中的任一證書的驗證結(jié)果都表示所述任一證書是有效的,則設(shè)置所述任一證書的所述有效性指示為有效;如果所述多個實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為無效;以及,如果所述多個實現(xiàn)中的一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是有效的,以及,所述多個實現(xiàn)中的另一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為有效性未知。
其中,所述裝置還包括:判斷模塊,用于如果所述多個證書中的某些證書的所述有效性指示為有效性未知,則根據(jù)預(yù)定的規(guī)則,判斷所述某些證書中的每一個證書是否有效,其中,所述設(shè)置模塊還用于基于判斷結(jié)果,設(shè)置所述某些證書各自的所述有效性指示。
其中,所述裝置還包括呈現(xiàn)模塊,用于如果所述多個證書中的一個或若干證書的所述有效性指示為有效性未知,則呈現(xiàn)所述一個或若干證書以供技術(shù)人員檢查其是否有效,其中,所述設(shè)置模塊還用于當(dāng)接收到指示所述一個或若干證書各自是有效或無效的檢查結(jié)果時,根據(jù)所接收的檢查結(jié)果,設(shè)置所述一個或若干證書各自的所述有效性指示。
其中,所述多個實現(xiàn)包括遵循安全套接層(ssl)協(xié)議的實現(xiàn)和/或遵循傳輸安全層(tls)協(xié)議的實現(xiàn)。
從以上的描述可以看出,本發(fā)明實施例的方案在創(chuàng)建證書測試庫時,利用多個具有對pki的證書進(jìn)行驗證的功能的實現(xiàn)對證書的驗證結(jié)果來獲知大部分證書或全部證書是有效的或無效的,從而,與現(xiàn)有技術(shù)相比,本發(fā)明實施例的方案在創(chuàng)建證書測試庫時只需要付出較少的人力或甚至不需付出人力。
附圖說明
本發(fā)明的其它特征、特點、優(yōu)點和益處通過以下結(jié)合附圖的詳細(xì)描述將變得更加顯而易見。其中:
圖1示出了按照本發(fā)明的一個實施例的用于創(chuàng)建證書測試庫的方法的流 程圖。
圖2示出了按照本發(fā)明的另一個實施例的用于創(chuàng)建證書測試庫的方法的流程圖。
圖3示出了按照本發(fā)明的一個實施例的用于創(chuàng)建證書測試庫的裝置的示意圖。
圖4示出了按照本發(fā)明的一個實施例的用于創(chuàng)建證書測試庫的設(shè)備的示意圖。
具體實施方式
下面,將參照附圖詳細(xì)描述本發(fā)明的各個實施例。
現(xiàn)在參見圖1,其示出了按照本發(fā)明的一個實施例的用于創(chuàng)建證書測試庫的方法的流程圖。圖1所示的方法100可以由具有計算能力的任何設(shè)備(例如但不局限于,臺式計算機(jī)、筆記本電腦、服務(wù)器等)來實現(xiàn)。
如圖1所示,在步驟s102,獲取多個證書c。例如但不局限于,從網(wǎng)絡(luò)上獲取該多個證書c,基于數(shù)字證書標(biāo)準(zhǔn)x.509通過合成的方式獲取該多個證書c等等。本實施例對獲取該多個證書c的方式不做任何限制。本實施例中的證書是指pki中的證書。
在步驟s104,利用多個ssl/tls實現(xiàn)對所獲取的多個證書c中的每一個證書進(jìn)行有效性驗證。其中,該多個ssl/tls實現(xiàn)可以是其驗證證書的有效性的能力已經(jīng)得到確認(rèn)和/或尚未得到確認(rèn)的任何實現(xiàn)。
在步驟s106,根據(jù)該多個ssl/tls實現(xiàn)對該多個證書c各自的驗證結(jié)果,設(shè)置該多個證書c各自的表示是否有效的有效性指示。
例如,如果該多個ssl/tls實現(xiàn)對該多個證書c中的任一證書ci的驗證結(jié)果都表示證書ci有效,則設(shè)置該證書ci的有效性指示為有效。例如,假設(shè)該多個ssl/tls實現(xiàn)包括五個實現(xiàn)s1、s2、s3、s4和s5,在這種情況下,如果實現(xiàn)s1對證書ci的驗證結(jié)果表示有效,實現(xiàn)s2對證書ci的驗證結(jié)果表示有效,實現(xiàn)s3對證書ci的驗證結(jié)果表示有效,實現(xiàn)s4對證書ci的驗證結(jié)果表示有效,以及,實現(xiàn)s5對證書ci的驗證結(jié)果表示有效,則設(shè)置該證書ci的有效性指示為有效。
例如,如果該多個ssl/tls實現(xiàn)對證書ci的驗證結(jié)果都表示證書ci無效,則設(shè)置該證書ci的有效性指示為無效。
例如,如果該多個ssl/tls實現(xiàn)的一部分實現(xiàn)對證書ci的驗證結(jié)果都表示證書ci有效,以及,該多個ssl/tls實現(xiàn)的另一部分實現(xiàn)對證書ci的驗證結(jié)果都表示證書ci無效,則設(shè)置該證書ci的有效性指示為有效性未知。
試驗表明,在經(jīng)過以上的步驟s102-s106之后,已經(jīng)能夠獲知該多個證書c中的大部分證書或全部證書是有效的或無效的。對于經(jīng)過以上的步驟s102-s106之后仍不能確定是有效還是無效的證書,繼續(xù)執(zhí)行下面的步驟。
在步驟s108,如果該多個證書c中存在其有效性指示為有效性未知的一個或若干證書cp,則利用預(yù)定的規(guī)則來判斷證書cp中的每一個證書是否有效。
在步驟s110,根據(jù)步驟108的判斷結(jié)果,設(shè)置證書cp各自的有效性指示。例如,如果步驟108的判斷結(jié)果表明證書cp中的任一證書cj有效,則設(shè)置證書cj的有效性指示為有效。例如,如果步驟s108的判斷結(jié)果表明證書cj無效,則設(shè)置證書cj的有效性指示為無效。例如,如果步驟s108的判斷結(jié)果表明不能確定證書cj是否有效,則設(shè)置證書cj的有效性指示為有效性未知。
在步驟s112,如果在步驟s110之后,該多個證書cp中仍存在其有效性指示為有效性未知的證書ck,則呈現(xiàn)證書ck,以便由技術(shù)人員來檢查證書ck是否有效。
在技術(shù)人員檢查出證書ck是否有效之后,輸入表示證書ck是否有效的檢查結(jié)果
在步驟s114,在接收到所輸入的表示證書ck是否有效的檢查結(jié)果之后,基于所接收的檢查結(jié)果來設(shè)置證書ck的有效性指示。
在步驟s116,創(chuàng)建證書測試庫,其包括該多個證書c和該多個證書c各自的有效性指示。
從以上的描述可以看出,本實施例的方案在創(chuàng)建證書測試庫時,利用多個ssl/tls實現(xiàn)對證書的驗證結(jié)果來獲知大部分證書或全部證書是有效的或無效的,從而,本實施例的方案在創(chuàng)建證書測試庫時只需要付出較少的人 力或甚至不需付出人力。
其他變型
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,雖然在上面的實施例中,方法100包括步驟s112和s114以基于技術(shù)人員的檢查結(jié)果來設(shè)置證書的有效性指示,然而,本發(fā)明并不局限于此。在本發(fā)明的其它一些實施例中,方法100也可以不包括步驟s112和s114。在方法100不包括步驟s112和s114的情況下,所創(chuàng)建的證書測試庫包括證書p和證書p各自的有效性指示,其中,證書p是證書c中其有效性指示為有效或無效的證書。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,雖然在上面的實施例中,方法100包括步驟s108和s110,然而,本發(fā)明并不局限于此。在本發(fā)明的其它一些實施例中,方法100也可以不包括步驟s108和s110。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,雖然在上面的實施例中,方法100包括步驟s108、s110、s112和s114,然而,本發(fā)明并不局限于此。在本發(fā)明的其它一些實施例中,方法100也可以不包括步驟s108、s110、s112和s114。在方法100不包括步驟s108、s110、s112和s114的情況下,所創(chuàng)建的證書測試庫包括證書t和證書t各自的有效性指示,其中,證書t是證書c中其有效性指示為有效或無效的證書。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本實施例的方案不但適用于ssl/tls協(xié)議的情形,也適用于能對pki的證書進(jìn)行驗證的除了ssl/tls協(xié)議之外的其它安全協(xié)議。
現(xiàn)在參見圖2,其示出了按照本發(fā)明的另一實施例的用于創(chuàng)建證書測試庫的方法的流程圖。圖2所示的方法200可以由具有計算能力的任何設(shè)備來實現(xiàn)。
如圖2所示,方法200可以包括步驟s202、步驟s204和步驟s206。在步驟s202,利用多個具有對pki的證書進(jìn)行驗證的功能的實現(xiàn),對多個pki的證書中的每一個證書進(jìn)行驗證。在步驟s204,根據(jù)所述多個實現(xiàn)對所述多個證書各自的驗證結(jié)果,設(shè)置所述多個證書各自的表示是否有效的有效性指示。在步驟s206,創(chuàng)建證書測試庫,所述證書測試庫包括至少一個證書和所述至少一個證書各自的所述有效性指示,所述至少一個證書是所述多個 證書中其所述有效性指示為有效或無效的證書。
在一個方面,步驟s204可以包括:如果所述多個實現(xiàn)對所述多個證書中的任一證書的驗證結(jié)果都表示所述任一證書是有效的,則設(shè)置所述任一證書的所述有效性指示為有效;如果所述多個實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為無效;以及,如果所述多個實現(xiàn)中的一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是有效的,以及,所述多個實現(xiàn)中的另一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為有效性未知。
在另一個方面,方法200還可以包括步驟s208和步驟s210。在步驟s208,如果所述多個證書中的某些證書的所述有效性指示為有效性未知,則根據(jù)預(yù)定的規(guī)則,判斷所述某些證書中的每一個證書是否有效的步驟s208。在步驟s210,基于步驟s208的判斷結(jié)果,設(shè)置所述某些證書各自的所述有效性指示。
在又一個方面,方法200還可以包括:如果在步驟s204之后或在步驟s210之后,所述多個證書中的一個或若干證書的所述有效性指示為有效性未知,則呈現(xiàn)所述一個或若干證書以供技術(shù)人員檢查其是否有效的步驟s212;以及,當(dāng)接收到指示所述一個或若干證書各自是有效或無效的檢查結(jié)果時,根據(jù)所接收的檢查結(jié)果,設(shè)置所述一個或若干證書各自的所述有效性指示的步驟s214。
在再一個方面,所述多個實現(xiàn)可以包括遵循ssl協(xié)議的實現(xiàn)和/或遵循tls協(xié)議的實現(xiàn)。
現(xiàn)在參見圖3,其示出了按照本發(fā)明的一個實施例的用于創(chuàng)建證書測試庫的裝置的示意圖。圖3所示的裝置300可以利用軟件、硬件(例如集成電路或dsp等)或軟硬件結(jié)合的方式來實現(xiàn)。
圖3所示,裝置300可以包括驗證模塊302、設(shè)置模塊304和創(chuàng)建模塊306。驗證模塊302用于利用多個具有對公鑰基礎(chǔ)設(shè)施(pki)的證書進(jìn)行驗證的功能的實現(xiàn),對多個公鑰基礎(chǔ)設(shè)施的證書中的每一個證書進(jìn)行驗證。設(shè)置模塊304用于根據(jù)所述多個實現(xiàn)對所述多個證書各自的驗證結(jié)果,設(shè)置所述多個證書各自的表示是否有效的有效性指示。創(chuàng)建模塊306用于創(chuàng)建證書測 試庫,所述證書測試庫包括至少一個證書和所述至少一個證書各自的所述有效性指示,所述至少一個證書是所述多個證書中其所述有效性指示為有效或無效的證書。
在一個方面,設(shè)置模塊304可以用于:如果所述多個實現(xiàn)對所述多個證書中的任一證書的驗證結(jié)果都表示所述任一證書是有效的,則設(shè)置所述任一證書的所述有效性指示為有效;如果所述多個實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為無效;以及,如果所述多個實現(xiàn)中的一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是有效的,以及,所述多個實現(xiàn)中的另一部分實現(xiàn)對所述任一證書的驗證結(jié)果都表示所述任一證書是無效的,則設(shè)置所述任一證書的所述有效性指示為有效性未知。
在另一個方面,裝置300還可以包括判斷模塊308。判斷模塊308用于如果所述多個證書中的某些證書的所述有效性指示為有效性未知,則根據(jù)預(yù)定的規(guī)則,判斷所述某些證書中的每一個證書是否有效,以及,其中,設(shè)置模塊304還用于基于判斷模塊308的判斷結(jié)果,設(shè)置所述某些證書各自的所述有效性指示。
在又一個方面,裝置300還可以包括呈現(xiàn)模塊310,其用于如果在設(shè)置模塊304根據(jù)所述多個實現(xiàn)的驗證結(jié)果設(shè)置所述多個證書的有效性指示之后或者在設(shè)置模塊304基于判斷模塊308的判斷結(jié)果設(shè)置所述某些證書的所述有效性指示之后,所述多個證書中的一個或若干證書的所述有效性指示為有效性未知,則呈現(xiàn)所述一個或若干證書以供技術(shù)人員檢查其是否有效,其中,設(shè)置模塊304還用于當(dāng)接收到指示所述一個或若干證書各自是有效或無效的檢查結(jié)果時,根據(jù)所接收的檢查結(jié)果,設(shè)置所述一個或若干證書各自的所述有效性指示。
在再一個方面,所述多個實現(xiàn)可以包括遵循ssl協(xié)議的實現(xiàn)和/或遵循tls協(xié)議的實現(xiàn)。
現(xiàn)在參見圖4,其示出了按照本發(fā)明一個實施例的用于創(chuàng)建證書測試庫的設(shè)備的示意圖。如圖4所示,用于創(chuàng)建證書測試庫的設(shè)備400可以包括用于存儲可執(zhí)行指令的存儲器410和與存儲器410連接的處理器420,其中,處理器420可以執(zhí)行圖2所示的方法200所包括的各個步驟。
本發(fā)明的實施例還提供一種種計算機(jī)程序產(chǎn)品,包括機(jī)器可讀介質(zhì),其上存儲有可執(zhí)行指令,當(dāng)該可執(zhí)行指令被執(zhí)行時,使得機(jī)器執(zhí)行圖2所示的方法200所包括的各個步驟。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上面公開的各個實施例可以在不偏離發(fā)明實質(zhì)的情況下做出各種變形和修改。因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)由所附的權(quán)利要求書來限定。