數字證書的存儲與硬件載體綁定的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出了一種數字證書的存儲與硬件載體綁定的方法,包括以下步驟:從CA獲取數字證書;在硬件載體上安裝數字證書時,獲取硬件載體的識別碼;根據識別碼生成密鑰;根據密鑰對指定文件型數據庫進行加密;將數字證書存儲到由密鑰加密后的文件型數據庫中以完成將數字證書安裝到硬件載體上。根據本發(fā)明的方法,可將數字證書與其所在的硬件載體在第一次安裝時,就被有效地綁定在一起,尤其是與數字證書相關聯(lián)的密鑰對中的私鑰,通過綁定過程,變?yōu)橹荒茉谟布d體上使用,無法在其它硬件載體上使用,讓數字證書具有了近似于硬件USB?Key的安全性。本發(fā)明還提出了一種數字證書的存儲與硬件載體綁定的系統(tǒng)。
【專利說明】數字證書的存儲與硬件載體綁定的方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及數字認證【技術領域】,特別涉及一種數字證書的存儲與硬件載體綁定的方法及系統(tǒng)。
【背景技術】
[0002]現(xiàn)有技術包括:
[0003]文件數字證書,如PKCS12格式、JKS格式。
[0004]支持手機常用接口的USB Key,如micro USB接口或音頻接口。
[0005]基于無線連接,如藍牙或Wifi的USB Key0
[0006]基于手機可替換部件的USB Key,如SD Card Key, SIM卡Key。
[0007]文件數字證書的缺點:
[0008]文件證書的私鑰是以明文形式交付給上層加密應用進行調用,而硬件USB Key則只接受加密運算的調用并不提供私鑰的任何特征,加密運算完成后將運算結果提供給調用者。整個調用過程,數字證書的私鑰或對稱密鑰都是不可見,且不可拷貝導出的。由此可見,文件數字證書的簽名加密方式并不安全可靠。
[0009]因為通常文件證書僅僅采用單一 口令對私鑰進行保護,一旦文件被復制,且用戶口令泄漏,則標識用戶身份的數字證書就會被冒用,產生嚴重的安全問題。所以,文件證書被謹慎的用于風險不高的身份認證、加解密應用場景,而幾乎無法用于具備法律效力合法第三方證書數字簽名應用。
[0010]多接口 USB Key的缺點:
[0011]雙接口或多接口的USB Key—度成為市場上移動設備數字證書安全應用產品的首選。但是由于手機I/o接口標準較多,除了安卓手機使用的Mini和Micro USB接口,還包括蘋果手機4代、5代的dock接口,加上還要支持PC端的USB接口,此類安全設備通常體積較大或需攜帶額外的轉接線,攜帶并不方便。
[0012]無線連接USB Key的缺點:
[0013]無線通訊方案可是藍牙或Wifi,且主要是藍牙。但由于此類產品需要為藍牙供電,不定期的需要為USB Key進行充電。所以一定程度上給用戶使用帶來麻煩。
[0014]內置手機部件USB Key的缺點:
[0015]此類密碼產品不具備通用性。對于替換帶加密芯片的SD Card方式,需要手機支持SD Card擴展。像廣受歡迎的蘋果手機是內置16G,32G或64G存儲,并不支持插入SD Card。對于替換帶價密芯片的SIM卡方案,由于SIM卡發(fā)行是受限的,只能由通信運營商來運作,而我國三大運營商之間存在競爭關系,通訊制式也各不相同。加上用戶到電信營業(yè)廳更換SIM卡的成本巨大,所以此方案更難以市場化。
[0016]綜上所述,文件數字證書雖然成本低,但作為安全工具,自身存在諸多安全問題;基于適配移動設備I/o裝置的USB Key,由于存在多樣性和復雜性,沒有一種方案可以通用,且由于用戶需要攜帶額外裝置用戶體驗很差,加上此類設備較高的硬件成本,難以市場 化。
【發(fā)明內容】
[0017]本發(fā)明的目的旨在至少解決所述技術缺陷之一。
[0018]為此,本發(fā)明的目的在于提出一種數字證書的存儲與硬件載體綁定的方法。該方法有效提升了數字證書自身的安全性。
[0019]本發(fā)明的另一目的在于提出一種數字證書的存儲與硬件載體綁定的系統(tǒng)。
[0020]為達到所述目的,本發(fā)明的實施例提供了一種數字證書的存儲與硬件載體綁定的方法,包括以下步驟:從CA獲取數字證書;在硬件載體上安裝所述數字證書時,獲取所述硬件載體的識別碼;根據所述識別碼生成密鑰;根據所述密鑰對指定文件型數據庫進行加密;將所述數字證書存儲到由所述密鑰加密后的所述文件型數據庫中以完成將所述數字證書安裝到所述硬件載體上。
[0021]根據本發(fā)明實施例的方法,可將數字證書與其所在的硬件載體在第一次安裝時,就被有效地綁定在一起,尤其是與所述數字證書相關聯(lián)的密鑰對中的私鑰,通過所述綁定過程,變?yōu)橹荒茉谒鲇布d體上使用,無法在其它硬件載體上使用,讓數字證書具有了近似于硬件USB Key的安全性。
[0022]另外,根據本發(fā)明上述實施例的數字證書的存儲與硬件載體綁定的方法還可以具有如下附加的技術特征:
[0023]在一些示例中,在所述完成將所述數字證書安裝到所述硬件載體上之后,還包括:當使用所述數字證書時,采集當前硬件載體的識別碼;根據所述當前硬件載體的識別碼生成解密密鑰;根據所述解密密鑰對所述文件型數據庫進行解密;對所述文件型數據庫解密成功后,從所述文件型數據庫中獲取所述數字證書。
[0024]在一些示例中,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合,或者,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在所述硬件載體上的隨機UUID的組合。
[0025]在一些示例中,對所述文件型數據庫進行讀寫操作是通過指定的應用程序進行的。
[0026]在一些示例中,所述證書信息包括:數字證書的頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰和私鑰信息。
[0027]本發(fā)明第二方面的實施例提供了一種數字證書的存儲與硬件載體綁定的系統(tǒng),包括:數字證書獲取模塊,用于從CA獲取數字證書;硬件載體特征采集模塊,用于在硬件載體上安裝所述數字證書時,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,獲取所述硬件載體的識別碼;生成模塊,用于根據所述識別碼生成密鑰;加解密模塊,用于根據所述密鑰對指定文件型數據庫進行加密,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,對所述文件型數據庫進行解密;存儲模塊,用于將所述數字證書存儲到由所述密鑰加密后的所述文件型數據庫中以完成將所述數字證書安裝到所述硬件載體上。
[0028]根據本發(fā)明實施例的系統(tǒng),可將數字證書與其所在的硬件載體在第一次安裝時,就被有效地綁定在一起,尤其是與所述數字證書相關聯(lián)的密鑰對中的私鑰,通過所述綁定過程,變?yōu)橹荒茉谒鲇布d體上使用,無法在其它硬件載體上使用,讓數字證書具有了近似于硬件USB Key的安全性。
[0029]另外,根據本發(fā)明上述實施例的數字證書的存儲與硬件載體綁定的系統(tǒng)還可以具有如下附加的技術特征:
[0030]在一些示例中,還包括:讀取模塊,用于在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,所述加解密模塊對所述文件型數據庫解密成功后,從所述文件型數據庫中獲取所述數字證書。
[0031]在一些示例中,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合,或者,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在所述硬件載體上的隨機UUID的組合。
[0032]在一些示例中,對所述文件型數據庫進行讀寫操作是通過指定的應用程序進行的。
[0033]在一些示例中,所述證書信息包括:數字證書的頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰和私鑰信息。
[0034]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0035]本發(fā)明所述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0036]圖1是根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的方法的流程圖;
[0037]圖2是根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的方法的原理圖;以及
[0038]圖3是根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的系統(tǒng)的結構框圖。
【具體實施方式】
[0039]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0040]在本發(fā)明的描述中,需要理解的是,術語“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。
[0041]在本發(fā)明的描述中,需要說明的是,除非另有規(guī)定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是機械連接或電連接,也可以是兩個元件內部的連通,可以是直接相連,也可以通過中間媒介間接相連,對于本領域的普通技術人員而言,可以根據具體情況理解所述術語的具體含義。
[0042]需要說明的是,在以下描述中,數字證書與硬件載體的綁定,即本說明書中出現(xiàn)的“綁定”指:硬件載體與數字證書相關的密鑰對中的私鑰的“綁定”。
[0043]從技術上說,首先生成了一個由公鑰與私鑰組成的密鑰對,然后基于此密鑰對,力口上數字證書所需的各項信息,按照相應的PKCS標準組成證書簽名請求(CSR),向認證服機構(CA)做出申請。當CA簽名之后,把CA簽了名的數字證書存儲于key、硬盤等硬件載體中。
[0044]因此從技術上說,數字證書是由多個部分組成的,上述術語中的“綁定”的本質含義為:與所述該數字證書相關聯(lián)的密鑰對中的私鑰,只能在成功完成了本發(fā)明所述實施例的數字證書的存儲與硬件載體綁定的所述該硬件載體上才能使用,無法在其它硬件載體上使用。也就是說,綁定的主體是上述所指的“與數字證書相關聯(lián)的密鑰對中的私鑰”。
[0045]硬件載體與數字證書相關的密鑰對中的私鑰“綁定”,具體實現(xiàn)如下:
[0046]以“軟件編譯時寫入的主密鑰”、“硬件特征碼”、“用戶設置的PIN碼”這三個因素,按照特殊的變化進行組合與混淆,生成了一個對稱密鑰。該對稱密鑰被用于對文件數據庫的加解密過程。
[0047]該對稱密鑰每次都是通過程序動態(tài)檢測硬件載體的特征碼之后運算產生,沒有永久存儲于硬件載體中,只在必要的時間短暫地出現(xiàn)在內存中,運算過程完成后即被清除。
[0048]當程序每次需要使用數字證書時,按照上述生成文件數據庫的對稱密鑰的相同的方法,動態(tài)檢測硬件載體的特征碼,再次產生出同一個對稱密鑰,使用它解密并打開文件數據庫,從而得以取得數字證書的各項信息。
[0049]由于該密鑰的每一次出現(xiàn),都以檢測硬件載體的特征碼作為前提,所以當硬件載體的特征碼發(fā)生變化,或者文件數據庫被復制到其他硬件載體上,是無法生成出原來的密鑰的,進而,就無法取得文件數據庫中的任何有效信息。于是,這樣的程序邏輯保證了數字證書只有存儲于最初安裝的硬件載體上才能有效使用。
[0050]通過上述實現(xiàn)過程得到了數字證書只有存儲于最初安裝的硬件載體上才能有效使用的這種關聯(lián)方式即為上述所謂的“綁定”。
[0051]以下結合附圖描述根據本發(fā)明實施例的數字證書的存儲與硬件載體綁定的方法及系統(tǒng)。
[0052]圖1是根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的方法的流程圖。如圖1所示,根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的方法,包括如下步驟:
[0053]步驟SlOl:從CA獲取數字證書。
[0054]具體地,向CA申請數字證書時,CA需要以各種手段認證用戶所申請的信息是否真實有效,認證方式包括且不限于以下手段:
[0055]用戶以實物郵寄的方式向CA提交與申請內容相關的各種文件;
[0056]以視頻、電話、語音、電子郵件等通信手段,向用戶核實信息的真實有效性;
[0057]從先前已通過認證的USB Key硬件證書,生成原始信息和認證碼,為本次認證過程提供證據。
[0058]另外,獲取數字證書的手段,可包括兩種:
[0059]程序直接與CA安全通信,CA經過認證后,直接將數字證書發(fā)送至程序模塊,從而獲取到證書;
[0060]申請后,CA向通過認證了的申請者的其他信息渠道,如電子郵件、手機短信等發(fā)送認證碼,申請者接收到該認證碼之后,把認證碼填寫到程序界面上,程序與CA安全通信,將認證碼發(fā)送至CA,從而通過認證,取得數字證書。
[0061]步驟S102:在硬件載體上安裝數字證書時,獲取硬件載體的識別碼。其中,識別碼包括:硬件載體的處理器編號、硬件載體的產品編號、硬件載體的MAC地址中的一個或多個的組合。具體地,硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合,或者,硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在硬件載體上的隨機UUID的組合。
[0062]也就是說,硬件載體的識別碼(也稱特征碼)的采集,在不同的軟件平臺上,采集來源不盡相同,可能的來源包括且不限于以下列表:
[0063]硬件序列號;
[0064]設備名稱;
[0065]藍牙Mac地址;
[0066]WIFI Mac 地址;
[0067]IMEI ;
[0068]手機型號;
[0069]CPU 編號;
[0070]主板序列號;
[0071]硬盤序列號;
[0072]內存條序列號;
[0073]圖形卡/顯示器序列號;
[0074]電池序列號。
[0075]另外,還可以生成隨機UUID,并與軟件模塊共同永久存儲于硬件載體上,作為硬件載體特征的補充,作為特征碼的一部分。
[0076]硬件載體特征碼可使用以上列表的全部或部分信息。
[0077]步驟S103:根據識別碼生成密鑰。
[0078]步驟S104:根據密鑰對文件型數據庫進行加密;
[0079]步驟S105:將數字證書存儲到加密后的文件型數據庫中以完成將數字證書安裝到硬件載體上。
[0080]需要說明的是,對文件型數據庫進行讀寫操作是通過指定的應用程序進行的。其中,指定的應用程序是通過一個軟件系統(tǒng)來實現(xiàn)的,所謂“指定的應用程序”就是開發(fā)的軟件系統(tǒng),或系統(tǒng)的一部分。其是為了實現(xiàn)本申請的方法而開發(fā)的軟件系統(tǒng),可以使用“本軟件系統(tǒng)”、“本軟件”、“本程序”、或“程序模塊”來表述上述的指定的應用程序。
[0081]具體地說,傳統(tǒng)上,數字證書以二進制文件或文本文件形式保存在計算機上,對文件形式的數字證書而言,以明文或可逆編碼的形式保存了頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰、私鑰等信息。而本發(fā)明實施例的方法中,對上述各項信息(證書信息)存儲于文件型數據庫中,讓證書信息只能通過與上述的文件型數據庫相對應的軟件模塊(即指定的應用程序)讀出,而無法簡單地通過文件等直接讀取,從而顯著地改善了數字證書的安全性。
[0082]本發(fā)明實施例的方法,將數字證書與其硬件載體結合(即綁定)起來,在數字證書安裝(如在硬件載體上第一次安裝數字證書)時,通過采集硬件載體的識別碼,如硬件載體的CPU編號、硬件載體的產品編碼、MAC地址等信息,經過變換成為唯一的識別碼,用于區(qū)別其它的硬件載體。然后將此識別碼與其它因素結合起來,生成唯一的對稱密鑰(即密鑰),使用此密鑰對上述的文件型數據庫加密。
[0083]需要說明的是密鑰只在運算時在硬件載體的內存中臨時出現(xiàn),并不作持久保存。
[0084]進一步地,在完成將數字證書安裝到硬件載體上之后,還包括:
[0085]步驟S106:當使用數字證書時,采集當前硬件載體的識別碼。
[0086]步驟S107:根據當前硬件載體的識別碼生成解密密鑰。
[0087]步驟S108:根據解密密鑰對文件型數據庫進行解密。
[0088]步驟S109:對文件型數據庫解密成功后,從文件型數據庫中獲取數字證書。
[0089]具體地說,數字證書后續(xù)每一次使用時,軟件模塊都會動態(tài)地檢查其所在的運行環(huán)境、采集硬件載體的識別碼,用與安裝數字證書時生成密鑰相同方法,再次生成密鑰,用于解開文件型數據庫的加密信息。如果硬件載體的相關環(huán)境未改變,則密鑰相同,解密成功,順利打開文件型數據庫;若相關環(huán)境已改變,則無法得到第一次使用的密鑰,解密失敗,無法讀取文件型數據庫中保存的數字證書相關的證書信息等。
[0090]根據本發(fā)明實施例的方法,可將數字證書與其所在的硬件載體在第一次安裝時,就被有效地綁定在一起,尤其是與所述數字證書相關聯(lián)的密鑰對中的私鑰,通過所述綁定過程,變?yōu)橹荒茉谒鲇布d體上使用,無法在其它硬件載體上使用,讓數字證書具有了近似于硬件USB Key的安全性。
[0091]結合圖2所示,本發(fā)明實施例的方法,功能和特性與硬件USB Key相同,并可通過標準PKCSll接口對外提供簽名、加解密等運算功能。PKCSll是一組函數接口,調用時并不將私鑰提供給上層應用,而是接收數據進行加密運算并將運算結果返回。
[0092]可與USB Key相同,本發(fā)明實施例的方法支持SO PIN和User PIN。用戶設置UserPIN碼以期對私鑰進行未授權訪問的保護,而用戶輸入的User PIN只是打開密鑰容器的密鑰的一部分。實際的密鑰在密鑰容器初始化時產生,由三部分組成,第一部分是唯一標識硬件載體的兩個或多個特征值,第二部分是特別設定的主密鑰,在軟件編譯時寫入,第三部分才是用戶設置的User PIN碼。這三部分將按照特殊的變化進行組合混淆,最終生成用于加密密鑰容器的加密密鑰。由此可知,本發(fā)明實施例的方法與PKCS12格式文件證書相比更安全可靠,即使受到攻擊導致密鑰容器被拷貝,盜用者也因為設備環(huán)境發(fā)生改變而無法打開密鑰容器。該方法可確保密鑰安全,進而達到近似于硬件加密芯片的安全等級。
[0093]與數字證書相關的文件型數據可采用微型數據庫sqlite,將各種密鑰、證書信息采用AES算法加密保存在數據庫中。每次對于數據庫的存取,都會動態(tài)檢測設備特性,生成解密密鑰,避免了以復制數據庫文件為手段的非授權訪問。
[0094]除了密鑰算法之外,該方法可通過提供標準的PKCSll函數接口,為上層應用提供了基于PKCSll的Helper層,包括了 PKCS7、PKCS12函數庫以及與CA相關的遠程調用函數庫。對于 Andro id 系統(tǒng),USB Key 還提供 了基于 PKCS11 的 JCE/JCA Provider,可方便 An droid開發(fā)者進行簡單方便的調用,而無需了解PKCSll基礎知識。
[0095]再次結合圖2所示,可通過加密的方法與硬件載體進行綁定,以及基于Sqlite的跨平臺微型數據庫,還包含了常見的密碼算法實現(xiàn),如RSA、SM2非對稱密鑰算法,對稱密鑰算法 AES、DES、3DES、SM1、SM2 等。
[0096]根據本發(fā)明實施例的方法,具有如下優(yōu)點:
[0097]提升了數字證書的安全性,數字證書還可部署在便攜式平板電腦或手持式計算設備上,使得硬件載體本身具有了與USB Key相同的功能,與各種附加硬件的方案相比,大幅減少了實現(xiàn)、部署、運營與維護成本。
[0098]本發(fā)明進一步實施例提供了一種數字證書的存儲與硬件載體綁定的系統(tǒng)。如圖3所示,根據本發(fā)明一個實施例的數字證書的存儲與硬件載體綁定的系統(tǒng)300包括:數字證書獲取模塊310、硬件載體特征采集模塊320、生成模塊330、加解密模塊340和存儲模塊350。
[0099]具體地,數字證書獲取模塊310用于從CA獲取數字證書。硬件載體特征采集模塊320用于在硬件載體上安裝所述數字證書時,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,獲取所述硬件載體的識別碼。生成模塊330用于根據識別碼生成密鑰。加解密模塊存儲模塊340用于根據所述密鑰對指定文件型數據庫進行加密,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,對所述文件型數據庫進行解密;存儲模塊350用于將所述數字證書存儲到由所述密鑰加密后的所述文件型數據庫中以完成將所述數字證書安裝到所述硬件載體上。對文件型數據庫進行讀寫操作是通過指定的應用程序進行的。
[0100]其中,硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合,或者,硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、頂E1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在硬件載體上的隨機UUID的組合。
[0101]也就是說,識別碼包括但不限于:
[0102]I)硬件序列號
[0103]2)設備名稱
[0104]3)藍牙Mac地址[0105]4) WIFI Mac 地址
[0106]5) IMEI
[0107]6)手機型號
[0108]7) CPU 編號
[0109]8)主板序列號
[0110]9)硬盤序列號
[0111]10)內存條序列號
[0112]11)圖形卡/顯示器序列號
[0113]12)電池序列號
[0114]另外,程序還可以生成隨機UUID,與軟件模塊共同永久存儲于硬件載體上,UUID作為硬件載體特征的補充,作為所述識別碼的一部分。
[0115]所述硬件載體識別碼可能使用以上列舉或列舉之外中的一個或多個的組合。
[0116]證書信息包括:數字證書的頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰和私鑰信息。
[0117]本發(fā)明實施例的數字證書的存儲與硬件載體綁定的系統(tǒng)300,還包括:讀取模塊(圖中未示出),讀取模塊,用于在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,所述加解密模塊對所述文件型數據庫解密成功后,從所述文件型數據庫中獲取所述數字證書。
[0118]具體地說,傳統(tǒng)上,數字證書以二進制文件或文本文件形式保存在計算機上,對文件形式的數字證書而言,以明文或可逆編碼的形式保存了頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰、私鑰等信息。而本發(fā)明實施例的系統(tǒng)中,對上述各項信息(證書信息)存儲于文件型數據庫中,讓證書信息只能通過與上述的文件型數據庫相對應的軟件模塊(即指定的應用程序)讀出,而無法簡單地通過文件等直接讀取,從而顯著地改善了數字證書的安全性。
[0119]本發(fā)明實施例的系統(tǒng),將數字證書與其硬件載體結合(即綁定)起來,在數字證書安裝(如在硬件載體上第一次安裝數字證書)時,通過采集硬件載體的識別碼,如硬件載體的CPU編號、硬件載體的產品編碼、MAC地址等信息,經過變換成為唯一的識別碼,用于區(qū)別其它的硬件載體。然后將此識別碼與其它因素結合起來,生成唯一的對稱密鑰(即密鑰),使用此密鑰對上述的文件型數據庫加密。
[0120]需要說明的是密鑰只在運算時在硬件載體的內存中臨時出現(xiàn),并不作持久保存。
[0121]數字證書后續(xù)每一次使用時,軟件模塊都會動態(tài)地檢查其所在的運行環(huán)境、采集硬件載體的識別碼,用與安裝數字證書時生成密鑰相同方法,再次生成密鑰,用于解開文件型數據庫的加密信息。如果硬件載體的相關環(huán)境未改變,則密鑰相同,解密成功,順利打開文件型數據庫;若相關環(huán)境已改變,則無法得到第一次使用的密鑰,解密失敗,無法讀取文件型數據庫中保存的數字證書相關的證書信息等。
[0122]根據本發(fā)明實施例的系統(tǒng),可將數字證書與其所在的硬件載體在第一次安裝時,就被有效地綁定在一起,尤其是與所述數字證書相關聯(lián)的密鑰對中的私鑰,通過所述綁定過程,變?yōu)橹荒茉谒鲇布d體上使用,無法在其它硬件載體上使用,讓數字證書具有了近似于硬件USB Key的安全性。[0123]結合圖2所示,本發(fā)明實施例的系統(tǒng),功能和特性與硬件USB Key相同,可并通過標準PKCSll接口對外提供簽名、加解密等運算功能。PKCSll是一組函數接口,調用時并不將私鑰提供給上層應用,而是接收數據進行加密運算并將運算結果返回。
[0124]可與USB Key相同,本發(fā)明實施例的系統(tǒng)支持SO PIN和User PIN。用戶設置UserPIN碼以期對私鑰進行未授權訪問的保護,而用戶輸入的User PIN只是打開密鑰容器的密鑰的一部分。實際的密鑰在密鑰容器初始化時產生,由三部分組成,第一部分是唯一標識硬件載體的兩個或多個特征值,第二部分是特別設定的主密鑰,在軟件編譯時寫入,第三部分才是用戶設置的User PIN碼。這三部分將按照特殊的變化進行組合混淆,最終生成用于加密密鑰容器的加密密鑰。由此可知,本發(fā)明實施例的系統(tǒng)與PKCS12格式文件證書相比更安全可靠,即使受到攻擊導致密鑰容器被拷貝,盜用者也因為設備環(huán)境發(fā)生改變而無法打開密鑰容器。該系統(tǒng)可確保密鑰安全,進而達到近似于硬件加密芯片的安全等級。
[0125]與數字證書相關的文件型數據可采用微型數據庫sqlite,將各種密鑰、證書信息采用AES算法加密保存在數據庫中。每次對于數據庫的存取,都會動態(tài)檢測設備特性,生成解密密鑰,避免了以復制數據庫文件為手段的非授權訪問。
[0126]除了密鑰算法之外,該系統(tǒng)可通過提供標準的PKCSll函數接口,為上層應用提供了基于PKCSll的Helper層,包括了 PKCS7、PKCS12函數庫以及與CA相關的遠程調用函數庫。對于 Andro id 系統(tǒng),USB Key 還提供 了基于 PKCS11 的 JCE/JCA Provider,可方便 An droid開發(fā)者進行簡單方便的調用,而無需了解PKCSll基礎知識。
[0127]再次結合圖2所示,可通過加密的方法與硬件載體進行綁定,以及基于Sqlite的跨平臺微型數據庫,還包含了常見的密碼算法實現(xiàn),如RSA、SM2非對稱密鑰算法,對稱密鑰算法 AES、DES、3DES、SM1、SM2 等。
[0128]根據本發(fā)明實施例的系統(tǒng),具有如下優(yōu)點:
[0129]提升了數字證書的安全性,數字證書還可部署在便攜式平板電腦或手持式計算設備上,使得硬件載體本身具有了與USB Key相同的功能,與各種附加硬件的方案相比,大幅減少了實現(xiàn)、部署、運營與維護成本。
[0130]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對所述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0131]盡管已經示出和描述了本發(fā)明的實施例,對于本領域的普通技術人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權利要求及其等同限定。
【權利要求】
1.一種數字證書的存儲與硬件載體綁定的方法,其特征在于,包括以下步驟: 從CA獲取數字證書; 在硬件載體上安裝所述數字證書時,獲取所述硬件載體的識別碼; 根據所述識別碼生成密鑰; 根據所述密鑰對指定文件型數據庫進行加密; 將所述數字證書存儲到由所述密鑰加密后的所述文件型數據庫中以完成將所述數字證書安裝到所述硬件載體上。
2.根據權利要求1所述的數字證書的存儲與硬件載體綁定的方法,其特征在于,在所述完成將所述數字證書安裝到所述硬件載體上之后,還包括: 當使用所述數字證書時,采集當前硬件載體的識別碼; 根據所述當前硬件載體的識別碼生成解密密鑰; 根據所述解密密鑰對所述文件型數據庫進行解密; 對所述文件型數據庫解密成功后,從所述文件型數據庫中獲取所述數字證書。
3.根據權利要求1所述的數字證書的存儲與硬件載體綁定的方法,其特征在于,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合, 或者,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFIMac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在所述硬件載體上的隨機UUID的組合。
4.根據權利要求1所述的數字證書的存儲與硬件載體綁定的方法,其特征在于,對所述文件型數據庫進行讀寫操作是通過指定的應用程序進行的。
5.根據權利要求1所述的數字證書的存儲與硬件載體綁定的方法,其特征在于,所述證書信息包括:數字證書的頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰和私鑰信息。
6.一種數字證書的存儲與硬件載體綁定的系統(tǒng),其特征在于,包括: 數字證書獲取模塊,用于從CA獲取數字證書; 硬件載體特征采集模塊,用于在硬件載體上安裝所述數字證書時,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,獲取所述硬件載體的識別碼; 生成模塊,用于根據所述識別碼生成密鑰; 加解密模塊,用于根據所述密鑰對指定文件型數據庫進行加密,以及在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,對所述文件型數據庫進行解密; 存儲模塊,用于將所述數字證書存儲到由所述密鑰加密后的所述文件型數據庫中以完成將所述數字證書安裝到所述硬件載體上。
7.根據權利要求6所述的數字證書的存儲與硬件載體綁定的系統(tǒng),其特征在于,還包括:讀取模塊,用于在所述完成將所述數字證書安裝到所述硬件載體上之后且在使用所述數字證書時,所述加解密模塊對所述文件型數據庫解密成功后,從所述文件型數據庫中獲取所述數字證書。
8.根據權利要求6所述的數字證書的存儲與硬件載體綁定的系統(tǒng),其特征在于,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFI Mac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合, 或者,所述硬件載體的識別碼包括:硬件序列號、設備名稱、藍牙Mac地址、WIFIMac地址、ME1、設備型號、CPU編號、主板序列號、硬盤序列號、內存條序列號、圖形卡/顯示器序列號和電池序列號的一個或者多個的組合以及與預先通過程序生成并保存在所述硬件載體上的隨機UUID的組合。
9.根據權利要求6所述的數字證書的存儲與硬件載體綁定的系統(tǒng),其特征在于,對所述文件型數據庫進行讀寫操作是通過指定的應用程序進行的。
10.根據權利要求6所述的數字證書的存儲與硬件載體綁定的系統(tǒng),其特征在于,所述證書信息包括:數字證 書的頒發(fā)機構、頒發(fā)日期、證書序列號、證書主題、證書擴展項、公鑰和私鑰信息。
【文檔編號】G06F21/73GK103684786SQ201310671316
【公開日】2014年3月26日 申請日期:2013年12月10日 優(yōu)先權日:2013年12月10日
【發(fā)明者】徐蕤, 彭昌雄, 李兆森 申請人:北京天威誠信電子商務服務有限公司