專利名稱:一種提供加密服務(wù)的方法以及使用該方法的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及提供加密服務(wù)的技術(shù)領(lǐng)域,以及使用加解密、簽名、驗(yàn)證等信息安全技術(shù)的應(yīng)用領(lǐng)域。具體來(lái)說(shuō),本發(fā)明涉及一種用于提供加密服務(wù)的方法以及使用該加密服務(wù)方法的系統(tǒng),通過(guò)所述的方法和系統(tǒng),可以向用戶提供加解密、簽名、驗(yàn)證等有關(guān)信息安全的服務(wù)。
背景技術(shù):
因特網(wǎng)的出現(xiàn)使信息技術(shù)產(chǎn)生了飛躍。因特網(wǎng)提供了一個(gè)簡(jiǎn)單易用與平臺(tái)無(wú)關(guān)的信息交換平臺(tái),且具有投資低、傳播速度快的優(yōu)點(diǎn)。隨著信息系統(tǒng)與信息交換手段使用的發(fā)展與普及,越來(lái)越多的廠商和公司開(kāi)始在網(wǎng)上開(kāi)展基于Web的信息交換業(yè)務(wù),但是如何保證網(wǎng)上通信的安全成為人們通過(guò)網(wǎng)絡(luò)進(jìn)行信息傳播時(shí)所必須要考慮的問(wèn)題。隨著對(duì)信息安全性和秘密性的日益增長(zhǎng)的需求,信息的安全保護(hù)也日益受到人們的重視。
當(dāng)前,各種信息安全技術(shù)層出不窮,一些公司和個(gè)人紛紛推出自己的信息安全產(chǎn)品。但是很多信息安全產(chǎn)品的開(kāi)發(fā)都是采用垂直的開(kāi)發(fā)方式,即開(kāi)發(fā)商自己開(kāi)發(fā)最基礎(chǔ)的密碼算法,然后再以此為基礎(chǔ)開(kāi)發(fā)安全服務(wù)管理程序。這些基礎(chǔ)的密碼服務(wù)有的用軟件實(shí)現(xiàn),有的用硬件實(shí)現(xiàn),如IC卡或USB卡。但是上述方法存在以下缺陷1)代碼的重用率很低,造成人力、物力資源的浪費(fèi)。
2)通用性差,因?yàn)榛A(chǔ)的密碼算法、模塊和協(xié)議很難定義、編碼和調(diào)試,自己開(kāi)發(fā)的密碼算法很難符合我國(guó)的密碼算法標(biāo)準(zhǔn)。
3)代碼的可移植性差,從而限制了應(yīng)用程序的使用范圍。
4)實(shí)現(xiàn)基礎(chǔ)密碼服務(wù)的軟件很容易被破解。
而用IC卡或USB卡實(shí)現(xiàn)的密碼服務(wù),安全性有所提高,但仍存在以下缺陷1)攻擊者可通過(guò)修改IC卡或USB-Key在操作系統(tǒng)中的驅(qū)動(dòng)程序?qū)崿F(xiàn)攻擊密碼操作的過(guò)程。
2)由于外部設(shè)備的易攜帶性,可能引發(fā)其本身的不安全性。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明的目的在于提出一種用于提供加密服務(wù)的方法,即,提供通用的基礎(chǔ)加密服務(wù)的方法,以及一種使用該方法的系統(tǒng),所述方法和系統(tǒng)通過(guò)使用具有存儲(chǔ)及加解密功能的安全芯片(TPM)將簽名/交換密鑰的生成與使用過(guò)程保護(hù)起來(lái),從而保證了所提供的加密服務(wù)的安全性。
根據(jù)本發(fā)明第一方面,提出一種用于提供加密服務(wù)的方法,所述方法包括步驟加密應(yīng)用程序接口模塊從用戶接收加密服請(qǐng)求并將所述加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;加密服務(wù)提供模塊訪問(wèn)安全芯片并判斷安全芯片是否得到授權(quán);在安全芯片得到授權(quán)時(shí),加密服務(wù)提供模塊根據(jù)所接收到的加密服務(wù)請(qǐng)求,在安全芯片中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密,從而利用解密的加密服務(wù)所需的密鑰向用戶提供加密服務(wù)。
根據(jù)本發(fā)明第二方面,提出一種用于提供加密服務(wù)的系統(tǒng),其特征在于所述系統(tǒng)包括加密應(yīng)用程序接口模塊,用于從用戶接收加密服務(wù)請(qǐng)求并將加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;加密服務(wù)提供模塊,用于訪問(wèn)安全芯片,并在安全芯片得到授權(quán)時(shí)根據(jù)所接收的加密服務(wù)請(qǐng)求利用安全芯片向用戶提供加密服務(wù);安全芯片,用于在其中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密。
由于本發(fā)明中的加密服務(wù)提供模塊利用安全芯片提供了強(qiáng)密鑰加密功能,通過(guò)在安全芯片中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密,從而利用解密的加密服務(wù)所需的密鑰向用戶提供如密鑰的生成、數(shù)據(jù)的加/解密、簽名、驗(yàn)證,哈希操作、密鑰管理等加密服務(wù)。這從根本上保證了加密服務(wù)提供模塊密鑰的安全性,并極大的提高了加密服務(wù)提供模塊的運(yùn)行效率。為基于因特網(wǎng)的電子商務(wù)應(yīng)用中的信息交換以及主機(jī)的信息安全提供了安全保證,實(shí)現(xiàn)了信息保密性、數(shù)據(jù)完整性、簽名驗(yàn)證等重要服務(wù)。
結(jié)合附圖,從以下的詳細(xì)說(shuō)明中,本發(fā)明的上述目的、優(yōu)點(diǎn)和特征將變得顯而易見(jiàn),其中圖1是示出了用于提供加密服務(wù)的系統(tǒng)的示意圖;圖2是示出了根據(jù)本發(fā)明實(shí)施例的用于提供加密服務(wù)的系統(tǒng)中的加密服務(wù)提供模塊的啟用的流程圖;圖3是示出了用于提供加密服務(wù)的系統(tǒng)中密鑰的創(chuàng)建過(guò)程的流程圖;圖4是示出了在用于提供加密服務(wù)的系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行加/解密操作的流程圖;圖5是示出了根據(jù)本發(fā)明實(shí)施例的密鑰的交換過(guò)程的流程圖;圖6是示出了根據(jù)本發(fā)明實(shí)施例的數(shù)字簽名的流程圖。
具體實(shí)施例方式
下面將參考附圖來(lái)具體描述本發(fā)明的實(shí)施例。應(yīng)該指出,所描述的實(shí)施例僅是為了說(shuō)明的目的,其并不構(gòu)成對(duì)本發(fā)明所請(qǐng)求保護(hù)的范圍的限制。
圖1是示出了用于提供加密服務(wù)的系統(tǒng)的示意圖。參考圖1,用于提供加密服務(wù)的系統(tǒng)包括微軟加密應(yīng)用程序接口模塊(MicrosoftCryptoAPI)10,用于從用戶接收加密服務(wù)請(qǐng)求并將加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;加密服務(wù)提供模塊(CSP)20,用于訪問(wèn)安全芯片,并在安全芯片得到授權(quán)時(shí)根據(jù)所接收的加密服務(wù)請(qǐng)求利用安全芯片向用戶提供加密服務(wù);以及安全芯片(TPM(可信平臺(tái)模塊))30,用于在其中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密。其中安全芯片30安裝在一主機(jī)上,微軟加密應(yīng)用程序接口模塊10以及加密服務(wù)提供模塊20可以和安全芯片安裝在同一主機(jī)上,或分別安裝在不同主機(jī)上。為了便于描述,并未在附圖中示出主機(jī)。
所述加密服務(wù)提供模塊20,例如,可以包括以下模塊加/解密模塊201,消息摘要模塊202,簽名/驗(yàn)證模塊203以及密鑰產(chǎn)生與管理模塊204,從而可以提供相應(yīng)的加密服務(wù)。加密服務(wù)提供模塊20全面符合微軟的Microsoft CryptoAPI標(biāo)準(zhǔn),上層的應(yīng)用程序并不能直接調(diào)用加密服務(wù)提供模塊20,而是通過(guò)微軟加密應(yīng)用程序接口模塊10的引擎接口模塊來(lái)訪問(wèn)加密服務(wù)提供模塊20,所以加密服務(wù)提供模塊20可以獨(dú)立于任何特定的應(yīng)用程序,即,是通用的。本發(fā)明中的加密服務(wù)提供模塊20可以由軟件實(shí)現(xiàn),其由一個(gè)動(dòng)態(tài)鏈接庫(kù)文件和一個(gè)簽名文件組成,簽名文件保證主機(jī)的操作系統(tǒng)識(shí)別加密服務(wù)提供模塊20,操作系統(tǒng)定期認(rèn)證簽名確保加密服務(wù)提供模塊20沒(méi)被篡改過(guò)。而動(dòng)態(tài)鏈接庫(kù)中包含了一系列密碼服務(wù)程序的具體實(shí)現(xiàn)。真正執(zhí)行密碼操作的是安全芯片30,它能夠生成、存儲(chǔ)和保護(hù)可能產(chǎn)生的公共密鑰、私人密鑰或會(huì)話密鑰。加密服務(wù)提供模塊20的動(dòng)態(tài)鏈接庫(kù)文件和簽名文件與操作系統(tǒng)相關(guān)聯(lián)。當(dāng)在主機(jī)上安裝加密服務(wù)提供模塊20時(shí),服務(wù)提供者20的安裝文件將自動(dòng)修改系統(tǒng)的配置文件,同時(shí)加密服務(wù)提供模塊20的相關(guān)的配置信息將存儲(chǔ)在注冊(cè)表的本地主機(jī)位置。
當(dāng)用戶需要提供一種加密服務(wù)時(shí),通過(guò)微軟加密應(yīng)用程序接口模塊10向加密服務(wù)提供模塊20發(fā)出請(qǐng)求,加密服務(wù)提供模塊20通過(guò)安全芯片30的軟件協(xié)議棧TSS(TCG(可信計(jì)算組)軟件協(xié)議棧)(未示出)訪問(wèn)安全芯片30。
在提供加密服務(wù)的系統(tǒng)能夠向用戶提供加密服務(wù)之前,安全芯片TPM30首先自身生成一根密鑰。所述根密鑰是一切密鑰的包裹密鑰,即加密保護(hù)密鑰。安全芯片30將根密鑰存儲(chǔ)在其內(nèi)部。由于安全芯片30已經(jīng)生成根密鑰,所以,在使用加密服務(wù)提供模塊20時(shí),必須要判斷安全芯片30是否經(jīng)過(guò)授權(quán),從而在安全芯片30得到授權(quán)時(shí),得到安全芯片30已經(jīng)生成的根密鑰。只能使用特別提供的管理程序擁有特別的權(quán)限才能修改授權(quán)信息。因此根密鑰的安全性決定了加密服務(wù)提供模塊20的安全性。
加密服務(wù)提供模塊20創(chuàng)建并封裝了以下一些密碼類(lèi)密鑰庫(kù)類(lèi)加密服務(wù)提供模塊負(fù)責(zé)管理自己的密鑰庫(kù),該密鑰庫(kù)可作為加密服務(wù)提供模塊為每個(gè)用戶創(chuàng)建的永久性密鑰的倉(cāng)庫(kù)。每個(gè)密鑰庫(kù)可有一個(gè)或多個(gè)存儲(chǔ)特定用戶所有密鑰對(duì)的密鑰容器。在用戶與加密服務(wù)提供模塊建立聯(lián)系之前,用戶必須有一個(gè)密鑰庫(kù),該密鑰庫(kù)存儲(chǔ)在注冊(cè)表的當(dāng)前用戶位置。操作系統(tǒng)成功安裝加密服務(wù)提供模塊并創(chuàng)建密鑰庫(kù)后,就可以與應(yīng)用程序取得連接。應(yīng)用程序通過(guò)加密服務(wù)提供模塊名稱調(diào)用加密服務(wù)提供模塊聯(lián)系指令。一旦連接成功,由操作系統(tǒng)將加密服務(wù)提供模塊裝入內(nèi)存。
密鑰容器類(lèi)加密服務(wù)提供模塊通常為用戶提供兩組密鑰。一組密鑰稱為交換密鑰,其包括交換密鑰的公鑰/私鑰,通常用于加密要導(dǎo)出的密鑰,這樣導(dǎo)出的密鑰可以安全存放或與其它用戶交換。另一組稱為簽名密鑰,其包括數(shù)字簽名密鑰的公鑰/私鑰,通常用于創(chuàng)建數(shù)字簽名。
加密類(lèi)用來(lái)加密、解密,包括公鑰密碼算法的實(shí)現(xiàn)。
消息摘要類(lèi)用來(lái)存儲(chǔ)消息摘要的信息及實(shí)現(xiàn)消息摘要的安全加密算法。
密鑰類(lèi)是有關(guān)密鑰的身份識(shí)別類(lèi),包括密鑰的種類(lèi)和規(guī)格信息等。
簽名類(lèi)用來(lái)實(shí)現(xiàn)摘要信息的密碼數(shù)字簽名與驗(yàn)證。
加密服務(wù)管理類(lèi)用來(lái)管理、調(diào)度和協(xié)調(diào)加密服務(wù)提供模塊中的密碼類(lèi)與微軟的CryptoAPI及安全芯片的軟件協(xié)議棧三者之間的信息溝通。同時(shí)分析并且過(guò)濾上層安全應(yīng)用的呼叫請(qǐng)求,將分析后的命令送交其他處理模塊或安全芯片,并將處理后的結(jié)果返回。
雖然,加密服務(wù)提供模塊20可以用軟件實(shí)現(xiàn),但是本發(fā)明并不限于此,例如,加密服務(wù)提供模塊也可以用硬件實(shí)現(xiàn)。
下面結(jié)合圖2至圖6對(duì)當(dāng)用戶通過(guò)微軟加密應(yīng)用程序接口模塊10向加密服務(wù)提供模塊加密服務(wù)提供模塊20請(qǐng)求提供所需的加密服務(wù)時(shí),加密服務(wù)提供模塊20所執(zhí)行的操作分別進(jìn)行描述。
首先參考圖2,圖2示出了根據(jù)本發(fā)明實(shí)施例的用于提供加密服務(wù)的系統(tǒng)中的加密服務(wù)提供模塊的啟用的流程圖。
在步驟S110,加密服務(wù)提供模塊20連接本地主機(jī)的安全芯片30,判斷安全芯片30是否經(jīng)過(guò)授權(quán)。如果未經(jīng)過(guò)授權(quán),則在步驟S112提示安全芯片30未經(jīng)授權(quán)。否則在步驟S114獲取安全芯片30的授權(quán)信息后,得到根密鑰。根密鑰將對(duì)以后生成的所有私鑰進(jìn)行保護(hù)。
圖3示出了用于提供加密服務(wù)的系統(tǒng)中密鑰的創(chuàng)建過(guò)程的流程圖。首先在步驟S210,用戶通過(guò)微軟加密應(yīng)用程序接口模塊10向加密服務(wù)提供模塊20請(qǐng)求獲得簽名/交換密鑰以及在步驟S212微軟加密應(yīng)用程序接口模塊10將該請(qǐng)求傳送給加密服務(wù)提供模塊20。在步驟S214,啟用加密服務(wù)提供模塊20,其所執(zhí)行的步驟與圖1相同。然后,在步驟S216,加密服務(wù)提供模塊20將需要生成密鑰的相關(guān)信息(例密鑰長(zhǎng)度、簽名密鑰或交換密鑰等)傳遞給安全芯片30。在步驟S218加載根密鑰,安全芯片30在步驟S2220生成簽名/交換密鑰,并利用加載的根密鑰對(duì)生成的簽名/交換密鑰中的私鑰進(jìn)行加密。然后,將簽名/交換密鑰保存在XML文件(或其他存儲(chǔ)介質(zhì))中。其中簽名/交換密鑰中的私鑰已被根密鑰加密保護(hù)。并修改注冊(cè)表中的對(duì)應(yīng)內(nèi)容,將XML文件中簽名/交換密鑰的UUID(通用唯一標(biāo)識(shí)符)引用(或其他能作為索引的標(biāo)識(shí))存放到注冊(cè)表中。最后,在步驟S222,加密服務(wù)提供模塊20通過(guò)微軟加密應(yīng)用程序接口模塊10將生成的加密的簽名/交換密鑰傳送給發(fā)出請(qǐng)求的用戶。
所以加密服務(wù)提供模塊20中的簽名/交換密鑰是主機(jī)的安全芯片30生成的,并且私鑰被根密鑰加密保護(hù)。由于簽名/交換密鑰以及根密鑰都是在安全芯片30中生成,避免了在內(nèi)存中生成和在外部設(shè)備中生成時(shí)被攻擊的隱患,同時(shí)避免了外部設(shè)備的易攜帶性,而引發(fā)的本身的不安全性。因此,加密服務(wù)提供模塊20生成簽名/交換密鑰的過(guò)程得到了保護(hù),創(chuàng)建的簽名/交換密鑰是完全安全可靠的。
又由于加密服務(wù)提供模塊20的簽名/交換密鑰的私鑰由根密鑰加密保護(hù),因此可以把他們持久存儲(chǔ)在XML文件(或其他存儲(chǔ)介質(zhì))中。加密服務(wù)提供模塊20在注冊(cè)表中存放簽名/交換密鑰在XML文件中的UUID引用。因此增加了加密服務(wù)提供模塊20使用密鑰的靈活性。
圖4是示出了用于提供加密服務(wù)的系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行加/解密過(guò)程的流程圖。如圖4所示,首先在步驟S310,用戶通過(guò)微軟加密應(yīng)用程序接口模塊10向加密服務(wù)提供模塊20請(qǐng)求進(jìn)行數(shù)據(jù)的加密或解密操作,微軟加密應(yīng)用程序接口模塊10在步驟S312將該請(qǐng)求傳送給加密服務(wù)提供模塊20。在步驟S314,啟用加密服務(wù)提供模塊20,其所執(zhí)行的步驟與圖1相同。在步驟S316和步驟S318,加密服務(wù)提供模塊20分別將加密的交換密鑰和根密鑰加載到安全芯片30中。在步驟S320,安全芯片30用根密鑰對(duì)加密的交換密鑰進(jìn)行解密。從而在得到了解密后的交換密鑰之后,加密服務(wù)提供模塊20在步驟S322使用解密的交換密鑰完成數(shù)據(jù)的加解密功能。加密服務(wù)提供模塊在步驟S324通過(guò)微軟加密應(yīng)用程序接口模塊10將完成的數(shù)據(jù)加密或解密操作傳送給用戶。
加密服務(wù)提供模塊20在使用交換密鑰時(shí),由于交換密鑰的私鑰被根密鑰加密保護(hù),而根密鑰又被安全芯片30所加密保護(hù),因此將使用的交換密鑰與根密鑰一并委托給安全芯片30進(jìn)行操作使用。這避免了在內(nèi)存中操作而泄密的可能,增加了密鑰使用的安全性。
圖5是示出了根據(jù)本發(fā)明實(shí)施例的密鑰的交換過(guò)程的流程圖。密鑰的交換包括導(dǎo)入、導(dǎo)出簽名/交換密鑰。其中,公鑰不需要加密可直接導(dǎo)出。當(dāng)需要導(dǎo)出簽名/交換密鑰的私鑰時(shí),必須使用目的主機(jī)加密服務(wù)提供模塊的交換密鑰的公鑰進(jìn)行加密,加密的過(guò)程不是在主機(jī)內(nèi)存中完成,而是在安全芯片中完成,因此轉(zhuǎn)移的私鑰也是被加密保護(hù)的,是安全的。下面參考附圖5中的步驟S410到S420具體描述密鑰的導(dǎo)出過(guò)程。1)如果需要導(dǎo)出公鑰,按照微軟CSP規(guī)范定義的結(jié)構(gòu)塊進(jìn)行導(dǎo)出。2)如果需要導(dǎo)出私鑰,為了保證私鑰的安全性,私鑰需要被加密導(dǎo)出。假定有裝有本發(fā)明所述用于提供加密服務(wù)的系統(tǒng)的A主機(jī)和B主機(jī)。A主機(jī)的簽名密鑰是SK_A,B主機(jī)的交換密鑰是XK_B?,F(xiàn)在B主機(jī)向A主機(jī)的微軟加密應(yīng)用程序接口模塊請(qǐng)求A主機(jī)的簽名密鑰,則在步驟S410按照微軟CSP規(guī)范定義的結(jié)構(gòu)塊導(dǎo)出B主機(jī)加密服務(wù)提供模塊提供的交換密鑰XK_B的公鑰。并在步驟S412導(dǎo)入交換密鑰XK_B公鑰到A主機(jī)加密服務(wù)提供模塊中。A主機(jī)加密服務(wù)提供模塊在步驟S414向安全芯片請(qǐng)求需要導(dǎo)出的簽名密鑰SK_A。在步驟S416將簽名密鑰SK_A、根密鑰及交換密鑰XK_B一起傳遞給A主機(jī)的安全芯片,由安全芯片先用根密鑰對(duì)簽名密鑰SK_A的私鑰解密,再用交換密鑰XK_B的公鑰對(duì)已解密過(guò)的簽名密鑰SK_A私鑰進(jìn)行加密。然后在步驟S418和S420導(dǎo)出加密后的簽名密鑰SK_A的私鑰。此時(shí),A主機(jī)加密服務(wù)提供模塊提供的簽名密鑰的私鑰被B主機(jī)的加密服務(wù)提供模塊交換密鑰的公鑰加密。這些操作都在安全芯片中完成,從而保證了簽名密鑰SK_A導(dǎo)出的安全性。
下面參考附圖5中的步驟S422到S426具體描述密鑰的導(dǎo)入過(guò)程。1)如果需要導(dǎo)入公鑰,按照微軟CSP規(guī)范定義的結(jié)構(gòu)塊進(jìn)行導(dǎo)入。2)如果需要導(dǎo)入私鑰,則假定有裝有本發(fā)明所述用于提供加密服務(wù)的系統(tǒng)的A主機(jī)和B主機(jī)。A主機(jī)的簽名密鑰是SK_A,B主機(jī)的交換密鑰是XK_B。現(xiàn)在B主機(jī)向A主機(jī)的微軟加密應(yīng)用程序接口模塊請(qǐng)求A主機(jī)的簽名密鑰,則按照步驟S410至S420導(dǎo)出的簽名密鑰SK_A的私鑰,已被交換密鑰XK_B的公鑰加密。在步驟S422由B主機(jī)的安全芯片請(qǐng)求導(dǎo)入簽名密鑰SK_A私鑰。B主機(jī)加密服務(wù)提供模塊將簽名密鑰SK_A、交換密鑰XK_B及B主機(jī)的根密鑰一并傳遞給B主機(jī)的安全芯片。安全芯片在步驟S424先用根密鑰對(duì)交換密鑰XK_B的私鑰解密。然后用交換密鑰XK_B的私鑰對(duì)SK_A的私鑰進(jìn)行解密。最后由根密鑰對(duì)簽名密鑰SK_A的私鑰進(jìn)行加密,從而在步驟S426,B主機(jī)的加密服務(wù)提供模塊得到導(dǎo)入的由根密鑰加密的簽名密鑰SK_A私鑰信息。
由此得到了簽名密鑰SK_A的私鑰,并被B主機(jī)根密鑰加密。這些操作都在安全芯片中完成,沒(méi)有泄露任何安全信息,保證了簽名密鑰SK_A導(dǎo)入的安全性。
但是如果在B主機(jī)中沒(méi)有安裝安全芯片,則B主機(jī)加密服務(wù)提供模塊使用交換密鑰XK_B的私鑰對(duì)簽名密鑰SK_A的私鑰直接進(jìn)行解密,從而得到簽名密鑰SK_A的私鑰。由于在內(nèi)存中操作,安全性得不到保證。但這提供了一種與無(wú)安全芯片的主機(jī)進(jìn)行交互的一種方法。
圖6是示出了根據(jù)本發(fā)明實(shí)施例的數(shù)字簽名的流程圖。如圖6所示,首先在步驟S510,用戶通過(guò)微軟加密應(yīng)用程序接口模塊10向加密服務(wù)提供模塊20請(qǐng)求對(duì)數(shù)據(jù)進(jìn)行數(shù)字簽名,以及微軟加密應(yīng)用程序接口模塊10在步驟S512將該請(qǐng)求傳送給加密服務(wù)提供模塊20。在步驟S514,啟用加密服務(wù)提供模塊20,其所執(zhí)行的步驟與圖1相同。在步驟S516和S518,由加密服務(wù)提供模塊20將簽名密鑰和根密鑰分別加載到安全芯片30中。由安全芯片30在步驟S520利用根密鑰對(duì)加密的簽名密鑰的私鑰進(jìn)行解密。從而在步驟S522,使用解密的簽名密鑰的私鑰對(duì)數(shù)據(jù)進(jìn)行簽名操作。并在步驟S524將數(shù)字簽名操作的結(jié)果傳送給用戶。
加密服務(wù)提供模塊在使用簽名密鑰時(shí),由于簽名密鑰的私鑰被根密鑰加密保護(hù),而根密鑰又被安全芯片所加密保護(hù),因此將使用的簽名密鑰與根密鑰一并委托給安全芯片進(jìn)行操作使用。同樣避免了在主機(jī)內(nèi)存中操作而泄密的可能,增加了密鑰使用的安全性。
加密服務(wù)提供模塊中的哈希操作也可以由安全芯片執(zhí)行,加快了哈希操作的速度。因此,在保證加密服務(wù)提供模塊的安全性同時(shí)提高了效率。
而對(duì)于簽名驗(yàn)證的操作則可以由加密服務(wù)提供模塊直接使用簽名密鑰的公鑰在內(nèi)存中進(jìn)行驗(yàn)證操作。
因此本發(fā)明中公開(kāi)的所述提供的基礎(chǔ)密碼服務(wù)的系統(tǒng)是建立一個(gè)與具體安全應(yīng)用無(wú)關(guān)的通用安全框架,利用安全芯片保護(hù)密鑰及加密操作,可保證安全性。它比用純軟件實(shí)現(xiàn)的密碼服務(wù)技術(shù)更高效,通用性更好;比用普通加密卡實(shí)現(xiàn)的密碼服務(wù)技術(shù)更安全、更可靠。它有助于減少軟件開(kāi)發(fā)時(shí)間和增強(qiáng)產(chǎn)品的安全度,從而有力地推動(dòng)信息安全事業(yè)的發(fā)展。
盡管參考特定的優(yōu)選實(shí)施例示出并描述了本發(fā)明,本領(lǐng)域的技術(shù)人員能夠理解的是,在不脫離由所附的權(quán)利要求所限定的本發(fā)明精神和范圍的前提下,可以進(jìn)行多種形式和細(xì)節(jié)的改變。
權(quán)利要求
1.一種用于提供加密服務(wù)的方法,其特征在于所述方法包括步驟a)加密應(yīng)用程序接口模塊從用戶接收加密服務(wù)請(qǐng)求并將所述加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;b)加密服務(wù)提供模塊訪問(wèn)安全芯片并判斷安全芯片是否得到授權(quán);c)在安全芯片得到授權(quán)時(shí),加密服務(wù)提供模塊根據(jù)所接收到的加密服務(wù)請(qǐng)求,在安全芯片中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密,從而利用解密的加密服務(wù)所需的密鑰向用戶提供加密服務(wù)。
2.如權(quán)利要求1所述的用于提供加密服務(wù)的方法,其特征在于所述安全芯片生成一根密鑰并利用該根密鑰對(duì)加密服務(wù)所需的密鑰進(jìn)行加密或?qū)用艿募用芊?wù)所需的密鑰進(jìn)行解密。
3.如權(quán)利要求1所述的用于提供加密服務(wù)的方法,其特征在于所述加密服務(wù)提供模塊符合微軟加密應(yīng)用程序接口標(biāo)準(zhǔn)。
4.如權(quán)利要求2所述的用于提供加密服務(wù)的方法,其特征在于當(dāng)在步驟a)中從用戶接收的加密服務(wù)請(qǐng)求是生成簽名/交換密鑰的請(qǐng)求時(shí),則所述步驟c)包括加密服務(wù)提供模塊根據(jù)所述生成簽名/交換密鑰請(qǐng)求將生成簽名/交換密鑰的相關(guān)信息傳送給安全芯片;安全芯片根據(jù)生成簽名/交換密鑰的相關(guān)信息在其中生成所請(qǐng)求的簽名/交換密鑰,并利用其根密鑰對(duì)生成的簽名/交換密鑰的私鑰進(jìn)行加密;加密服務(wù)提供模塊將所請(qǐng)求的加密的簽名/交換密鑰提供給用戶。
5.如權(quán)利要求2所述的用于提供加密服務(wù)的方法,其特征在于當(dāng)在步驟a)從用戶接收的加密服務(wù)請(qǐng)求是利用交換密鑰進(jìn)行加/解密操作的請(qǐng)求時(shí),所述步驟c)包括加密服務(wù)提供模塊根據(jù)所述加/解密操作的請(qǐng)求,通過(guò)利用安全芯片的根密鑰在安全芯片中對(duì)加密的交換密鑰的私鑰進(jìn)行解密,從而利用解密后的交換密鑰執(zhí)行加/解密操作,并將結(jié)果提供給用戶。
6.如權(quán)利要求2所述的用于提供加密服務(wù)的方法,其特征在于當(dāng)在步驟a)從用戶接收的加密服務(wù)請(qǐng)求是數(shù)字簽名請(qǐng)求時(shí),所述步驟c)包括加密服務(wù)提供模塊根據(jù)所述數(shù)字簽名請(qǐng)求,將加密的簽名密鑰傳送到安全芯片中,并通過(guò)利用安全芯片的根密鑰在安全芯片中對(duì)加密的簽名密鑰的私鑰進(jìn)行解密,從而利用解密后的簽名密鑰的私鑰對(duì)數(shù)據(jù)進(jìn)行簽名操作,并將簽名操作的結(jié)果提供給用戶。
7.如權(quán)利要求2所述的用于提供加密服務(wù)的方法,其特征在于在步驟a)從用戶接收到的加密服務(wù)請(qǐng)求是簽名驗(yàn)證請(qǐng)求時(shí),所述步驟c)包括加密服務(wù)提供模塊根據(jù)所述簽名驗(yàn)證請(qǐng)求,利用在安全芯片中生成的簽名密鑰的公鑰對(duì)簽名進(jìn)行驗(yàn)證并將驗(yàn)證結(jié)果提供給用戶。
8.如權(quán)利要求2所述的用于提供加密服務(wù)的方法,其特征在于在步驟a)從用戶接收到的加密服務(wù)請(qǐng)求是進(jìn)行主機(jī)之間的簽名/交換密鑰的私鑰的交換請(qǐng)求時(shí),所述步驟c)包括加密服務(wù)提供模塊根據(jù)所述交換請(qǐng)求,在安全芯片中對(duì)簽名/交換密鑰的私鑰加密后進(jìn)行已加密的簽名交換/密鑰的私鑰的交換。
9.一種用于提供加密服務(wù)的系統(tǒng),其特征在于所述系統(tǒng)包括加密應(yīng)用程序接口模塊,用于從用戶接收加密服務(wù)請(qǐng)求并將加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;加密服務(wù)提供模塊,用于訪問(wèn)安全芯片,并在安全芯片得到授權(quán)時(shí)根據(jù)所接收的加密服務(wù)請(qǐng)求利用安全芯片向用戶提供加密服務(wù);安全芯片,用于在其中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密。
10.如權(quán)利要求9所述的用于提供加密服務(wù)的系統(tǒng),其特征在于所述安全芯片生成一根密鑰并利用該根密鑰對(duì)加密服務(wù)所需的密鑰進(jìn)行加密或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密。
11.如權(quán)利要求9所述的用于提供加密服務(wù)的系統(tǒng),其特征在于所述的加密服務(wù)提供模塊符合微軟加密應(yīng)用程序接口標(biāo)準(zhǔn)。
12.如權(quán)利要求10所述的用于提供加密服務(wù)的系統(tǒng),其特征在于在接收的加密服務(wù)請(qǐng)求是生成簽名/交換密鑰的請(qǐng)求時(shí),加密服務(wù)提供模塊根據(jù)所述生成簽名/交換密鑰請(qǐng)求將生成簽名/交換密鑰的相關(guān)信息傳送給安全芯片;由安全芯片在其中生成所請(qǐng)求的簽名/交換密鑰,并利用其根密鑰對(duì)生成的簽名/交換密鑰的私鑰進(jìn)行加密;以及加密服務(wù)提供模塊將所請(qǐng)求的加密的簽名/交換密鑰提供給用戶。
13.如權(quán)利要求10所述的用于提供加密服務(wù)的系統(tǒng),其特征在于當(dāng)接收的加密服務(wù)請(qǐng)求是利用交換密鑰進(jìn)行加/解密操作的請(qǐng)求時(shí),所述加密服務(wù)提供模塊根據(jù)所述加/解密操作的請(qǐng)求,通過(guò)利用安全芯片的根密鑰在安全芯片中對(duì)加密的交換密鑰的私鑰進(jìn)行解密,從而利用解密后的交換密鑰執(zhí)行加/解密操作,并將加/解密操作結(jié)果提供給用戶。
14.如權(quán)利要求10所述的用于提供加密服務(wù)的系統(tǒng),其特征在于當(dāng)接收的加密服務(wù)請(qǐng)求是數(shù)字簽名請(qǐng)求時(shí),加密服務(wù)提供模塊根據(jù)所述數(shù)字簽名請(qǐng)求,將簽名密鑰傳送到安全芯片中,并通過(guò)利用安全芯片的根密鑰對(duì)加密的簽名密鑰的私鑰進(jìn)行解密,從而利用解密后的簽名密鑰的私鑰對(duì)數(shù)據(jù)進(jìn)行簽名操作,并將簽名操作的結(jié)果提供給用戶。
15.如權(quán)利要求10所述的用于提供加密服務(wù)的系統(tǒng),其特征在于當(dāng)接收的加密服務(wù)請(qǐng)求是所述簽名驗(yàn)證請(qǐng)求時(shí),加密服務(wù)提供模塊根據(jù)所述簽名驗(yàn)證請(qǐng)求,利用在安全芯片中生成的簽名密鑰的公鑰對(duì)簽名進(jìn)行驗(yàn)證,并將驗(yàn)證結(jié)果提供給用戶。
16.如權(quán)利要求10所述的用于提供加密服務(wù)的系統(tǒng),其特征在于在接收的加密服務(wù)請(qǐng)求是進(jìn)行主機(jī)之間的簽名交換/密鑰的私鑰的交換請(qǐng)求時(shí),所述加密服務(wù)提供模塊根據(jù)所述交換請(qǐng)求,在安全芯片中對(duì)簽名/交換密鑰的私鑰加密后進(jìn)行已加密的簽名交換/密鑰的私鑰的交換。
全文摘要
本發(fā)明提出一種用于提供加密服務(wù)的方法,所述方法包括步驟加密應(yīng)用程序接口模塊從用戶接收加密服務(wù)請(qǐng)求并將所述加密服務(wù)請(qǐng)求傳送給加密服務(wù)提供模塊;加密服務(wù)提供模塊訪問(wèn)安全芯片并判斷安全芯片是否得到授權(quán);在安全芯片得到授權(quán)時(shí),加密服務(wù)提供模塊根據(jù)所接收到的加密服務(wù)請(qǐng)求,在安全芯片中生成加密服務(wù)所需的密鑰并對(duì)生成的加密服務(wù)所需的密鑰進(jìn)行加密,和/或?qū)用芎蟮募用芊?wù)所需的密鑰進(jìn)行解密,從而利用解密的加密服務(wù)所需的密鑰向用戶提供加密服務(wù)。以及提出一種用于提供加密服務(wù)的系統(tǒng)。由于加密服務(wù)者通過(guò)利用安全芯片的密鑰加密功能,保證了所提供的加密服務(wù)的安全性。
文檔編號(hào)H04L9/10GK1859088SQ20051007016
公開(kāi)日2006年11月8日 申請(qǐng)日期2005年5月8日 優(yōu)先權(quán)日2005年5月8日
發(fā)明者郭軼尊, 韋衛(wèi) 申請(qǐng)人:聯(lián)想(北京)有限公司