專利名稱:一種訪問終端智能密鑰裝置的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊領(lǐng)域,特別涉及一種訪問終端智能密鑰裝置的方法和系統(tǒng)。
背景技術(shù):
智能密鑰裝置是一種USB接口設(shè)備,它采用雙因子認(rèn)證模式,使用方便、成本較低。它內(nèi)置單片機(jī)或智能密鑰裝置芯片,可以存儲用戶密鑰或數(shù)字證書,利用智能密鑰裝置內(nèi)置的密碼算法可以實(shí)現(xiàn)對用戶身份的認(rèn)證。智能密鑰裝置具有電子郵件加密、數(shù)字簽名、安全證書、安全網(wǎng)絡(luò)登錄和訪問SSL安全網(wǎng)絡(luò)等功能,具有保證用戶的私鑰永遠(yuǎn)不離開硬件的特征,并且還具有物理上防攻擊的特性,安全性極高。
PC/SC(Personal Computer-個人計算機(jī)/Smart Card-智能卡)規(guī)范是由微軟公司與世界其它著名的智能密鑰裝置廠商組成的PC/SC工作組提出的。PC/SC規(guī)范是一個基于Windows平臺的標(biāo)準(zhǔn)用戶接口程序,它提供了一個從個人電腦到智能密鑰裝置的整合環(huán)境,雖然到目前為止,Windows是唯一支持PC/SC規(guī)范的操作系統(tǒng)平臺,但由于Windows的影響力,PC/SC規(guī)范也為智能密鑰裝置業(yè)界所接受。
由于終端的引入可以在盡可能低的成本下,擴(kuò)展主機(jī)程序的應(yīng)用范圍,因此銀行廣泛使用終端來部署主機(jī)上的應(yīng)用程序。目前,智能密鑰裝置被廣泛地應(yīng)用在銀行系統(tǒng)中,銀行人員只要將智能密鑰裝置連接到與主機(jī)相連的終端上,主機(jī)就可以訪問遠(yuǎn)程智能密鑰裝置,進(jìn)行相應(yīng)業(yè)務(wù)操作,就如同訪問本地終端上連接的智能密鑰裝置一樣。Windows操作系統(tǒng)內(nèi)置了PC/SC驅(qū)動程序,主機(jī)程序無需任何修改就可以直接使用符合PC/SC規(guī)范的智能密鑰裝置。但是這種方式只限于符合PC/SC規(guī)范的智能密鑰裝置?,F(xiàn)在的智能密鑰裝置能夠?qū)崿F(xiàn)的功能多樣而獨(dú)特,越來越多的軟/硬件開發(fā)人員使用自行開發(fā)的驅(qū)動程序來操作智能密鑰裝置,以使該智能密鑰裝置具有特別功能,或者將智能密鑰裝置設(shè)計為非PC/SC規(guī)范的,利用系統(tǒng)集成的對應(yīng)的驅(qū)動程序來操作智能密鑰裝置,來避免在操作系統(tǒng)中安裝驅(qū)動程序,方便部署。在這些情況下,主機(jī)就無法直接使用Windows的PC/SC規(guī)范訪問遠(yuǎn)程終端。
發(fā)明內(nèi)容為了解決主機(jī)程序無法訪問使用非PC/SC驅(qū)動程序驅(qū)動的智能密鑰裝置的問題,本發(fā)明實(shí)施例提出了一種訪問終端智能密鑰裝置的方法,所述方法包括以下步驟步驟A終端監(jiān)測程序監(jiān)測到智能密鑰裝置與終端建立了連接,發(fā)送消息給主機(jī)設(shè)備接口程序;步驟B所述主機(jī)設(shè)備接口程序?qū)⑺鱿l(fā)送給主機(jī)程序;步驟C所述主機(jī)程序收到所述消息后,通過所述主機(jī)設(shè)備接口程序發(fā)送驅(qū)動指令給終端設(shè)備接口程序;步驟D所述終端設(shè)備接口程序根據(jù)所述驅(qū)動指令對所述智能密鑰裝置進(jìn)行操作,并將操作結(jié)果發(fā)送給所述主機(jī)設(shè)備接口程序,所述主機(jī)設(shè)備接口程序?qū)⒃摻Y(jié)果發(fā)送給所述主機(jī)程序;步驟E重復(fù)執(zhí)行步驟C和步驟D,直到所述主機(jī)程序完成工作。
所述終端監(jiān)測程序通過消息機(jī)制監(jiān)測終端是否有智能密鑰裝置插拔事件信息,如果有,則發(fā)送消息通知給所述主機(jī)。
所述主機(jī)設(shè)備接口程序內(nèi)置在主機(jī)的系統(tǒng)程序中。
所述主機(jī)設(shè)備接口程序?yàn)橐粋€動態(tài)庫。
所述主機(jī)設(shè)備接口程序?yàn)樘摂M的驅(qū)動程序。
所述主機(jī)設(shè)備接口程序?yàn)橐粋€獨(dú)立的可執(zhí)行程序。
所述終端設(shè)備接口程序能夠訪問不符合PC/SC規(guī)范的智能密鑰裝置。
本發(fā)明實(shí)施例還提供了一種訪問終端智能密鑰裝置的系統(tǒng),所述系統(tǒng)包括主機(jī)端、終端和智能密鑰裝置,所述主機(jī)端包括主機(jī)程序模塊和主機(jī)設(shè)備接口模塊,所述終端包括終端設(shè)備接口模塊和監(jiān)測模塊;所述主機(jī)程序模塊用于向終端分配資源、發(fā)送驅(qū)動指令、處理終端返回的結(jié)果和撤銷分配給終端的資源;所述主機(jī)設(shè)備接口模塊用于虛擬出驅(qū)動設(shè)備,轉(zhuǎn)發(fā)和傳送所述主機(jī)程序模塊發(fā)送的驅(qū)動指令;所述終端設(shè)備接口模塊用于與主機(jī)端進(jìn)行通信,讀取智能密鑰裝置內(nèi)的數(shù)據(jù)和向主機(jī)端返回讀取出的數(shù)據(jù);所述監(jiān)測模塊用于監(jiān)測終端是否有智能密鑰裝置插拔事件信息,如果有,則發(fā)送消息通知給主機(jī)端;
所述智能密鑰裝置是非PC/SC規(guī)范的智能密鑰裝置或使用私有驅(qū)動程序來驅(qū)動的智能密鑰裝置。
所述主機(jī)設(shè)備接口模塊包括虛擬驅(qū)動單元和主機(jī)通信單元,所述終端設(shè)備接口模塊包括終端通信單元和驅(qū)動單元;所述虛擬驅(qū)動單元用于虛擬出一個驅(qū)動設(shè)備,向所述主機(jī)程序模塊報告驅(qū)動設(shè)備的種類,接收所述主機(jī)程序模塊發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給所述主機(jī)通信單元;所述主機(jī)通信單元用于與所述終端通信單元進(jìn)行通信,接收所述虛擬驅(qū)動單元發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給所述終端通信單元;所述終端通信單元用于與所述主機(jī)通信單元進(jìn)行通信,接收所述主機(jī)通信單元發(fā)送的驅(qū)動指令,接收智能密鑰裝置內(nèi)的數(shù)據(jù)和所述監(jiān)測模塊發(fā)送的指令;所述驅(qū)動單元用于驅(qū)動非PC/SC規(guī)范的智能密鑰裝置,并讀取智能密鑰裝置內(nèi)的數(shù)據(jù)。
有益效果由于虛擬驅(qū)動單元虛擬出一個驅(qū)動設(shè)備,并向主機(jī)報告驅(qū)動設(shè)備的種類,所以主機(jī)能夠訪問使用非PC/SC規(guī)范的智能密鑰裝置,而且主機(jī)程序不用作任何修改,主機(jī)程序仍然是直接訪問主機(jī)的驅(qū)動程序,主機(jī)程序的任務(wù)沒有任何改變。
圖1是本發(fā)明實(shí)施例訪問終端智能密鑰裝置的方法流程圖;圖2是本發(fā)明實(shí)施例智能密鑰裝置與終端建立連接時,主機(jī)與終端的通信流程圖;圖3是本發(fā)明實(shí)施例智能密鑰裝置與終端斷開連接時,主機(jī)與終端的通信流程圖;圖4是本發(fā)明實(shí)施例訪問終端智能密鑰裝置的系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明,但不作為對本發(fā)明的限定。
參見圖1,本發(fā)明實(shí)施例一種訪問終端智能密鑰裝置的方法具體包括以下步驟步驟101主機(jī)程序向主機(jī)虛擬驅(qū)動設(shè)備程序發(fā)送驅(qū)動指令,讀取智能密鑰裝置中的數(shù)據(jù)。
步驟102主機(jī)虛擬驅(qū)動設(shè)備程序?qū)Ⅱ?qū)動指令發(fā)送給主機(jī)通信程序。
步驟103主機(jī)通信程序?qū)⑹盏降尿?qū)動指令通過網(wǎng)絡(luò)發(fā)送給終端通信程序。
步驟104終端通信程序?qū)Ⅱ?qū)動指令發(fā)送給終端驅(qū)動程序。
步驟105終端驅(qū)動程序通過USB協(xié)議讀取連接在終端上的智能密鑰裝置中的數(shù)據(jù)。
終端收到驅(qū)動指令時,終端處理器從驅(qū)動程序存儲器中調(diào)出驅(qū)動程序,驅(qū)動程序?qū)Ⅱ?qū)動指令轉(zhuǎn)換為硬件描述指令,終端驅(qū)動程序?qū)⒂布枋鲋噶钔ㄟ^USB協(xié)議發(fā)送給智能密鑰裝置,智能密鑰裝置微處理器執(zhí)行硬件描述指令內(nèi)容,并將執(zhí)行結(jié)果返回給終端。終端驅(qū)動程序可以讀取非PC/SC規(guī)范的智能密鑰裝置。
步驟106從智能密鑰裝置中讀取的數(shù)據(jù)通過USB協(xié)議發(fā)送給終端通信程序。
步驟107終端通信程序?qū)⒅悄苊荑€裝置中的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送給主機(jī)通信程序。
步驟108主機(jī)通信程序?qū)⒅悄苊荑€裝置中的數(shù)據(jù)存儲在數(shù)據(jù)存儲器中。
步驟109數(shù)據(jù)存儲器通過數(shù)據(jù)總線將智能密鑰裝置中的數(shù)據(jù)發(fā)送給主機(jī)程序。
步驟110主機(jī)程序處理智能密鑰裝置中的數(shù)據(jù),并判斷工作是否完成,如果是,則執(zhí)行步驟111,否則執(zhí)行步驟101。
步驟111主機(jī)程序待機(jī)。
另外,當(dāng)智能密鑰裝置與終端連接和斷開時,主機(jī)也會與終端進(jìn)行通信。
1.智能密鑰裝置與終端建立連接,主機(jī)與終端進(jìn)行通信包括以下具體步驟,參見圖2步驟201主機(jī)開機(jī),操作系統(tǒng)加載所有驅(qū)動程序,向主機(jī)虛擬驅(qū)動設(shè)備程序發(fā)送詢問指令,詢問驅(qū)動設(shè)備種類。
步驟202主機(jī)虛擬驅(qū)動設(shè)備程序向主機(jī)返回驅(qū)動設(shè)備的描述信息。
步驟203主機(jī)收到描述信息,獲知驅(qū)動設(shè)備的種類,并加載該驅(qū)動設(shè)備的驅(qū)動程序。
步驟204終端監(jiān)測程序監(jiān)測到智能密鑰裝置連接到終端的消息。
步驟205終端監(jiān)測程序?qū)⒅悄苊荑€裝置連接到終端的消息發(fā)送給終端通信程序。
步驟206終端通信程序通過網(wǎng)絡(luò)將智能密鑰裝置連接到終端的消息發(fā)送給主機(jī)通信程序。
步驟207主機(jī)通信程序?qū)⑹盏降闹悄苊荑€裝置連接到終端的消息發(fā)送給主機(jī)程序。
2.智能密鑰裝置與終端斷開連接,主機(jī)與終端進(jìn)行通信包括以下具體步驟,參見圖3步驟301智能密鑰裝置從終端上被拔出。
步驟302終端監(jiān)測程序?qū)⒅悄苊荑€裝置與終端斷開連接的消息發(fā)送給終端通信程序。
步驟303終端通信程序通過網(wǎng)絡(luò)將智能密鑰裝置與終端斷開連接的消息發(fā)送給主機(jī)通信程序。
步驟304主機(jī)通信程序?qū)⑹盏降闹悄苊荑€裝置與終端斷開連接的消息發(fā)送給主機(jī)程序。
步驟305主機(jī)程序收到智能密鑰裝置與終端斷開連接的消息后,撤銷分配給終端的資源。
參見圖4,本發(fā)明實(shí)施例還提供了一種訪問終端智能密鑰裝置的系統(tǒng),系統(tǒng)包括主機(jī)端、終端和智能密鑰裝置,主機(jī)端包括主機(jī)程序模塊和主機(jī)設(shè)備接口模塊,終端包括終端設(shè)備接口模塊和監(jiān)測模塊;主機(jī)程序模塊用于向終端分配資源、發(fā)送驅(qū)動指令、處理終端返回的結(jié)果和撤銷分配給終端的資源;主機(jī)設(shè)備接口模塊用于虛擬出驅(qū)動設(shè)備,轉(zhuǎn)發(fā)和傳送主機(jī)程序模塊發(fā)送的驅(qū)動指令;終端設(shè)備接口模塊用于與主機(jī)端進(jìn)行通信,讀取智能密鑰裝置內(nèi)的數(shù)據(jù)和向主機(jī)端返回讀取出的數(shù)據(jù);監(jiān)測模塊用于監(jiān)測終端是否有智能密鑰裝置插拔事件信息,如果有,則發(fā)送消息通知給主機(jī)端;智能密鑰裝置是非PC/SC規(guī)范的智能密鑰裝置或使用私有驅(qū)動程序來驅(qū)動的智能密鑰裝置。
主機(jī)設(shè)備接口模塊包括虛擬驅(qū)動單元和主機(jī)通信單元,終端設(shè)備接口模塊包括終端通信單元和驅(qū)動單元;虛擬驅(qū)動單元用于虛擬出一個驅(qū)動設(shè)備,向主機(jī)程序模塊報告驅(qū)動設(shè)備的種類,接收主機(jī)程序模塊發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給主機(jī)通信單元;主機(jī)通信單元用于與終端通信單元進(jìn)行通信,接收虛擬驅(qū)動單元發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給終端通信單元;終端通信單元用于與主機(jī)通信單元進(jìn)行通信,接收主機(jī)通信單元發(fā)送的驅(qū)動指令,接收智能密鑰裝置內(nèi)的數(shù)據(jù)和監(jiān)測模塊發(fā)送的指令;驅(qū)動單元用于驅(qū)動非PC/SC規(guī)范的智能密鑰裝置,并讀取智能密鑰裝置內(nèi)的數(shù)據(jù)。
以上所述的實(shí)施例只是本發(fā)明較優(yōu)選的具體實(shí)施方式
的一種,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進(jìn)行的通常變化和替換都應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種訪問終端智能密鑰裝置的方法,其特征在于,所述方法包括以下步驟步驟A終端監(jiān)測程序監(jiān)測到智能密鑰裝置與終端建立了連接,發(fā)送消息給主機(jī)設(shè)備接口程序;步驟B所述主機(jī)設(shè)備接口程序?qū)⑺鱿l(fā)送給主機(jī)程序;步驟C所述主機(jī)程序收到所述消息后,通過所述主機(jī)設(shè)備接口程序發(fā)送驅(qū)動指令給終端設(shè)備接口程序;步驟D所述終端設(shè)備接口程序根據(jù)所述驅(qū)動指令對所述智能密鑰裝置進(jìn)行操作,并將操作結(jié)果發(fā)送給所述主機(jī)設(shè)備接口程序,所述主機(jī)設(shè)備接口程序?qū)⒃摻Y(jié)果發(fā)送給所述主機(jī)程序;步驟E重復(fù)執(zhí)行步驟C和步驟D,直到所述主機(jī)程序完成工作。
2.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述終端監(jiān)測程序通過消息機(jī)制監(jiān)測終端是否有智能密鑰裝置插拔事件信息,如果有,則發(fā)送消息通知給所述主機(jī)。
3.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述主機(jī)設(shè)備接口程序內(nèi)置在主機(jī)的系統(tǒng)程序中。
4.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述主機(jī)設(shè)備接口程序?yàn)橐粋€動態(tài)庫。
5.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述主機(jī)設(shè)備接口程序?yàn)樘摂M的驅(qū)動程序。
6.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述主機(jī)設(shè)備接口程序?yàn)橐粋€獨(dú)立的可執(zhí)行程序。
7.如權(quán)利要求
1所述的訪問終端智能密鑰裝置的方法,其特征在于,所述終端設(shè)備接口程序能夠訪問不符合PC/SC規(guī)范的智能密鑰裝置。
8.一種訪問終端智能密鑰裝置的系統(tǒng),其特征在于,所述系統(tǒng)包括主機(jī)端、終端和智能密鑰裝置,所述主機(jī)端包括主機(jī)程序模塊和主機(jī)設(shè)備接口模塊,所述終端包括終端設(shè)備接口模塊和監(jiān)測模塊;所述主機(jī)程序模塊用于向終端分配資源、發(fā)送驅(qū)動指令、處理終端返回的結(jié)果和撤銷分配給終端的資源;所述主機(jī)設(shè)備接口模塊用于虛擬出驅(qū)動設(shè)備,轉(zhuǎn)發(fā)和傳送所述主機(jī)程序模塊發(fā)送的驅(qū)動指令;所述終端設(shè)備接口模塊用于與主機(jī)端進(jìn)行通信,讀取智能密鑰裝置內(nèi)的數(shù)據(jù)和向主機(jī)端返回讀取出的數(shù)據(jù);所述監(jiān)測模塊用于監(jiān)測終端是否有智能密鑰裝置插拔事件信息,如果有,則發(fā)送消息通知給主機(jī)端;所述智能密鑰裝置是非PC/SC規(guī)范的智能密鑰裝置或使用私有驅(qū)動程序來驅(qū)動的智能密鑰裝置。
9.如權(quán)利要求
8所述的訪問終端智能密鑰裝置的系統(tǒng),其特征在于,所述主機(jī)設(shè)備接口模塊包括虛擬驅(qū)動單元和主機(jī)通信單元,所述終端設(shè)備接口模塊包括終端通信單元和驅(qū)動單元;所述虛擬驅(qū)動單元用于虛擬出一個驅(qū)動設(shè)備,向所述主機(jī)程序模塊報告驅(qū)動設(shè)備的種類,接收所述主機(jī)程序模塊發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給所述主機(jī)通信單元;所述主機(jī)通信單元用于與所述終端通信單元進(jìn)行通信,接收所述虛擬驅(qū)動單元發(fā)送的驅(qū)動指令,并將驅(qū)動指令發(fā)送給所述終端通信單元;所述終端通信單元用于與所述主機(jī)通信單元進(jìn)行通信,接收所述主機(jī)通信單元發(fā)送的驅(qū)動指令,接收智能密鑰裝置內(nèi)的數(shù)據(jù)和所述監(jiān)測模塊發(fā)送的指令;所述驅(qū)動單元用于驅(qū)動非PC/SC規(guī)范的智能密鑰裝置,并讀取智能密鑰裝置內(nèi)的數(shù)據(jù)。
專利摘要
本發(fā)明公開了一種訪問終端智能密鑰裝置的方法和系統(tǒng),屬于數(shù)據(jù)通訊領(lǐng)域。為了解決主機(jī)程序無法訪問使用非PC/SC驅(qū)動程序驅(qū)動的智能密鑰裝置的問題,本發(fā)明提出了一種訪問終端智能密鑰裝置的方法,方法包括終端監(jiān)測程序監(jiān)測到智能密鑰裝置與終端建立了連接,發(fā)送消息給主機(jī)設(shè)備接口程序;主機(jī)設(shè)備接口程序?qū)⑾l(fā)送給主機(jī)程序;主機(jī)程序收到消息后,通過主機(jī)設(shè)備接口程序發(fā)送驅(qū)動指令給終端設(shè)備接口程序;終端設(shè)備接口程序根據(jù)驅(qū)動指令對智能密鑰裝置進(jìn)行操作,并將操作結(jié)果發(fā)送給主機(jī)設(shè)備接口程序,主機(jī)設(shè)備接口程序?qū)⒃摻Y(jié)果發(fā)送給主機(jī)程序。本發(fā)明還提供了一種訪問終端智能密鑰裝置的系統(tǒng),系統(tǒng)包括主機(jī)端、終端和智能密鑰裝置。
文檔編號H04L9/00GK1996327SQ200610169762
公開日2007年7月11日 申請日期2006年12月28日
發(fā)明者陸舟, 于華章 申請人:北京飛天誠信科技有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan