本發(fā)明實施例屬于信息安全領(lǐng)域,尤其涉及一種基于MacOSX系統(tǒng)的USB設(shè)備接入方法及裝置。
背景技術(shù):
目前,不同系統(tǒng)可能默認(rèn)支持通過不同協(xié)議的USB設(shè)備接入系統(tǒng),比如,在MacOSX系統(tǒng)下默認(rèn)只支持通過芯片智能卡接口設(shè)備(Chip/Smart Card Interface Devices,CCID)協(xié)議的USB設(shè)備接入系統(tǒng)。
由于USB協(xié)議不僅包括CCID協(xié)議,也包括與人交互設(shè)備(Human Interface Device,HID)、小型計算機(jī)系統(tǒng)接口(Small Computer System Interface,SCSI)等其他協(xié)議,因此,若只支持通過某種協(xié)議的USB設(shè)備接入系統(tǒng),將導(dǎo)致能夠接入系統(tǒng)的USB設(shè)備的類型過少。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種基于MacOSX系統(tǒng)的USB設(shè)備接入方法及裝置,旨在解決現(xiàn)有系統(tǒng)只支持通過CCID協(xié)議的USB設(shè)備接入系統(tǒng),從而導(dǎo)致能夠接入系統(tǒng)的USB設(shè)備的類型過少的問題。
本發(fā)明實施例是這樣實現(xiàn)的,一種MacOSX系統(tǒng),其特征在于,所述MacOSX系統(tǒng)包括:
存儲在指定路徑的PC/SC讀卡器驅(qū)動,所述PC/SC讀卡器驅(qū)動將支持非芯片智能卡接口設(shè)備CCID協(xié)議的設(shè)備模擬為讀卡器,以識別所述支持非CCID協(xié)議的設(shè)備。
本發(fā)明實施例的另一目的在于提供一種基于MacOSX系統(tǒng)的USB設(shè)備接入方法,所述USB設(shè)備接入方法包括:
在檢測到USB設(shè)備插入后,若判斷出USB設(shè)備為不支持CCID協(xié)議的USB設(shè)備,則通過存儲在指定路徑的PC/SC讀卡器驅(qū)動獲取所述不支持CCID協(xié)議的USB設(shè)備的信息;
根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備;
在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
本發(fā)明實施例的另一目的在于提供一種基于MacOSX系統(tǒng)的USB設(shè)備接入裝置,所述USB設(shè)備接入裝置包括:
第一USB設(shè)備的信息獲取單元,用于在檢測到USB設(shè)備插入后,若判斷出USB設(shè)備為不支持CCID協(xié)議的USB設(shè)備,則通過存儲在指定路徑的PC/SC讀卡器驅(qū)動獲取所述不支持CCID協(xié)議的USB設(shè)備的信息;
第一系統(tǒng)支持設(shè)備判斷單元,用于根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備;
第一信息注冊單元,用于在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
在本發(fā)明實施例中,由于所述MacOSX系統(tǒng)包括存儲在指定路徑的PC/SC讀卡器驅(qū)動,而所述PC/SC讀卡器驅(qū)動能夠?qū)⒅С址切酒悄芸ń涌谠O(shè)備CCID協(xié)議的設(shè)備模擬為讀卡器,因此,所述MacOSX系統(tǒng)能夠識別支持非CCID協(xié)議的設(shè)備,從而擴(kuò)大了MacOSX系統(tǒng)能夠識別的設(shè)備的類型。
附圖說明
圖1是本發(fā)明第一實施例提供的一種MacOSX系統(tǒng)的結(jié)構(gòu)圖;
圖2是本發(fā)明第二實施例提供的一種基于MacOSX系統(tǒng)的USB設(shè)備接入方法的流程圖;
圖3是本發(fā)明第三實施例提供的一種基于MacOSX系統(tǒng)的USB設(shè)備接入裝置的結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例中,MacOSX系統(tǒng)包括存儲在指定路徑的PC/SC讀卡器驅(qū)動,所述PC/SC讀卡器驅(qū)動將支持非芯片智能卡接口設(shè)備CCID協(xié)議的設(shè)備模擬為讀卡器,以識別所述支持非CCID協(xié)議的設(shè)備。
為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。
實施例一:
圖1示出了本發(fā)明第一實施例提供的一種MacOSX系統(tǒng)的結(jié)構(gòu)圖,為了便于說明,僅示出了與本實施例相關(guān)的部分:
所述MacOSX系統(tǒng)包括:
PC/SC讀卡器驅(qū)動11,所述PC/SC讀卡器驅(qū)動11存儲在指定路徑,所述PC/SC讀卡器驅(qū)動將支持非芯片智能卡接口設(shè)備(Chip/Smart Card Interface Devices,CCID)協(xié)議的設(shè)備模擬為讀卡器,以識別所述支持非CCID協(xié)議的設(shè)備。
其中,PC/SC是一套程序接口規(guī)范,提供了一個從個人電腦(Personal Computer,PC)到智能卡(SmartCard,SC)的操作接口。PC/SC規(guī)范由微軟公司與世界其它著名的智能卡廠商組成的PC/SC工作組提出,PC/SC體系由三個主要部件組成,分別規(guī)定操作系統(tǒng)廠商、讀寫器(IFD)廠商、智能卡(ICC)廠商的職責(zé)。
由于現(xiàn)有的MacOSX系統(tǒng)并不支持非CCID設(shè)備(即不采用CCID協(xié)議的設(shè)備),因此,為了實現(xiàn)MacOSX系統(tǒng)支持非CCID設(shè)備的功能,需要開發(fā)一個對應(yīng)PC/SC接口的驅(qū)動庫,該P(yáng)C/SC接口的驅(qū)動庫包括能夠?qū)⒅С址荂CID協(xié)議的設(shè)備模擬為讀卡器的PC/SC讀卡器驅(qū)動。
可選地,所述MacOSX系統(tǒng)還包括:調(diào)用密碼設(shè)備的密碼運(yùn)算功能的密碼接口12。
具體地,假設(shè)Tokend為一個密碼接口12,系統(tǒng)可以通過Tokend與對應(yīng)的密碼設(shè)備通信,調(diào)用密碼設(shè)備的密碼運(yùn)算的功能。該Tokend安裝到系統(tǒng)規(guī)定的路徑(如/System/Library/Security/tokend目錄),以便系統(tǒng)調(diào)用Tokend時,直接到規(guī)定的路徑查找。通過增加密碼接口12,便于后續(xù)調(diào)用密碼運(yùn)算功能對相應(yīng)的通信內(nèi)容進(jìn)行加密。
可選地,所述非CCID協(xié)議包括:
與人交互設(shè)備(Human Interface Device,HID)、小型計算機(jī)系統(tǒng)接口(Small Computer System Interface,SCSI)。例如,所述非CCID協(xié)議可以為HID協(xié)議,也可以為SCSI協(xié)議。
本發(fā)明第一實施例中,MacOSX系統(tǒng)包括存儲在指定路徑的PC/SC讀卡器驅(qū)動,由于所述PC/SC讀卡器驅(qū)動能夠?qū)⒅С址切酒悄芸ń涌谠O(shè)備CCID協(xié)議的設(shè)備模擬為讀卡器,因此,本發(fā)明實施例提供的MacOSX系統(tǒng)能夠識別所述支持非CCID協(xié)議的設(shè)備,從而擴(kuò)大了能夠識別的設(shè)備的范圍。
實施例二:
圖2示出了本發(fā)明第二實施例提供的一種基于MacOSX系統(tǒng)的USB設(shè)備接入方法的流程圖,詳述如下:
步驟S21、在檢測到USB設(shè)備插入后,若判斷出USB設(shè)備為不支持芯片智能卡接口設(shè)備CCID協(xié)議的USB設(shè)備,則通過存儲在指定路徑的的PC/SC讀卡器驅(qū)動獲取所述不支持CCID協(xié)議的USB設(shè)備的信息。
由于在USB設(shè)備為不支持CCID協(xié)議的USB設(shè)備時,系統(tǒng)默認(rèn)并不支持該類設(shè)備,因此,需要開發(fā)一個對應(yīng)PC/SC接口的驅(qū)動庫(存儲至少一種驅(qū)動的庫),以通過開發(fā)的驅(qū)動將對應(yīng)的USB設(shè)備模擬為讀卡器。另外,為了便于后續(xù)的調(diào)用,需要將開發(fā)的驅(qū)動庫安裝到系統(tǒng)對應(yīng)的路徑。
該步驟中,系統(tǒng)檢測出USB設(shè)備插入后,判斷該USB設(shè)備是否為不支持芯片智能卡接口設(shè)備(Chip/Smart Card Interface Devices,CCID)協(xié)議的USB設(shè)備,若是,系統(tǒng)將不支持CCID協(xié)議的USB設(shè)備識別為PC/SC讀卡器,再在安裝在指定路徑的PC/SC讀卡器驅(qū)動中查找與所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的PC/SC驅(qū)動,并獲取所述不支持CCID協(xié)議的USB設(shè)備的信息,若否,系統(tǒng)將支持CCID協(xié)議的USB設(shè)備識別為智能卡讀卡器,并通過系統(tǒng)的CCID讀卡器驅(qū)動獲取所述支持CCID協(xié)議的USB設(shè)備的信息。
步驟S22,根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備。
由于USB協(xié)議除了CCID協(xié)議外,還有HID,SCSI等協(xié)議,因此,只有當(dāng)系統(tǒng)開發(fā)并安裝了與支持HID、SCSI協(xié)議的USB設(shè)備對應(yīng)的驅(qū)動之后,系統(tǒng)才會支持HID、SCSI協(xié)議的USB設(shè)備。
在該步驟中,若所述不支持CCID協(xié)議的USB設(shè)備的信息包括所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息,則所述根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備,具體包括:
A1、將獲取的所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息與預(yù)存的標(biāo)準(zhǔn)讀卡器名字和/或復(fù)位信息比較。其中,USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征和復(fù)位信息從驅(qū)動獲取,且USB設(shè)備對應(yīng)的復(fù)位信息符合ISO7816標(biāo)準(zhǔn),包括廠商特征信息字節(jié)。具體地,將USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征與預(yù)存的標(biāo)準(zhǔn)讀卡器名字包括的名字特征比較,和/或,將USB設(shè)備對應(yīng)的復(fù)位信息的廠商特征信息字節(jié)與預(yù)存的標(biāo)準(zhǔn)復(fù)位信息的廠商特征信息字節(jié)比較。由于復(fù)位信息包括廠商特征信息字節(jié),因此,結(jié)合復(fù)位信息判斷USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備能夠使得判斷結(jié)果更準(zhǔn)確。
A2、在獲取的所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息與預(yù)存的標(biāo)準(zhǔn)讀卡器名字和/或復(fù)位信息相同時,判定所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備,否則,判定所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)不支持的USB設(shè)備。
當(dāng)開發(fā)出支持某類協(xié)議的USB設(shè)備的驅(qū)動時,設(shè)置該某類協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字,包括設(shè)置該某類協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字的名字特征,并存儲。在上述A1和A2中,若系統(tǒng)已將USB設(shè)備識別為PC/SC讀卡器(當(dāng)系統(tǒng)已將USB設(shè)備識別為智能卡讀卡器也與上述A1、A2步驟類似),則啟動一個Tokend進(jìn)程并且傳入USB設(shè)備的讀卡器名字和/或復(fù)位信息,Tokend啟動以后,根據(jù)讀卡器名字(由于USB設(shè)備的復(fù)位信息一般都含有廠商特征信息字節(jié),因此還可根據(jù)USB設(shè)備的復(fù)位信息來進(jìn)一步區(qū)分USB設(shè)備)判斷是否是系統(tǒng)自己支持的USB設(shè)備。其中,Tokend是MacOSX系統(tǒng)下原生應(yīng)用如Safari與USB設(shè)備(智能卡設(shè)備)交互的接口。
步驟S23,在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,則向系統(tǒng)注冊設(shè)備上的證書和密鑰(這里的密鑰可能為1個,也可能為2個,比如,當(dāng)加密算法為公鑰加密算法(RSA)時,需要1個公鑰和1個私鑰,此時的密鑰為2個密鑰(密鑰對)),并且返回對應(yīng)的操作接口函數(shù)指針,等待系統(tǒng)進(jìn)行調(diào)用。當(dāng)然,在所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,執(zhí)行的步驟與步驟S23類似,此處不再贅述。
可選地,在步驟S23之后,包括:
B1、接收應(yīng)用訪問請求。當(dāng)完成USB設(shè)備的證書和密鑰的注冊后,若用戶點(diǎn)擊某個應(yīng)用,則系統(tǒng)接收用戶發(fā)出的應(yīng)用訪問請求,例如,當(dāng)用戶插入USB設(shè)備,并點(diǎn)擊Safari瀏覽器,則系統(tǒng)接收到Safari瀏覽器的訪問請求。
B2、判斷所述應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息是否為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息。這里的網(wǎng)絡(luò)信息包括網(wǎng)站信息,比如https網(wǎng)站的信息等。具體地,可預(yù)先設(shè)置需要客戶端認(rèn)證的網(wǎng)絡(luò)信息,當(dāng)接收到應(yīng)用訪問請求后,解析出該應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息,再將解析出的網(wǎng)絡(luò)信息與預(yù)先設(shè)置的需要客戶端認(rèn)證的網(wǎng)絡(luò)信息比較,以判斷解析出的網(wǎng)絡(luò)信息是否為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息。
B3、在所述應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息時,顯示已注冊的證書。具體地,若系統(tǒng)已注冊多個證書,則顯示已注冊的多個證書,比如,以列表的形式顯示系統(tǒng)已注冊的多個證書,以提示用戶選擇證書。
B4、接收用戶發(fā)出的證書選擇指令以及用戶輸入的USB設(shè)備的認(rèn)證口令。該步驟中,可在顯示已注冊證書的時候,同時顯示密鑰輸入框,這樣,用戶在選擇證書后能夠輸入對應(yīng)的密鑰?;蛘?,當(dāng)接收到用戶發(fā)出的證書選擇指令后,系統(tǒng)根據(jù)被選中的證書對應(yīng)的Tokend,提示用戶輸入密鑰。
B5、根據(jù)所述用戶發(fā)出的證書選擇指令、用戶輸入的USB設(shè)備的認(rèn)證口令以及已注冊的證書和USB設(shè)備的認(rèn)證口令判斷用戶是否為合法的用戶。該步驟中,可將用戶選中的證書、輸入的USB設(shè)備的認(rèn)證口令分別與已注冊的證書、USB設(shè)備的認(rèn)證口令比較,若證書與對應(yīng)的USB設(shè)備的認(rèn)證口令都相同,則判定用戶為合法的用戶,否則,判定用戶為不合法的用戶;只有在用戶為合法的用戶時,才能獲得進(jìn)行密碼算法的權(quán)限。
B6、在用戶為合法的用戶時,加密發(fā)送至服務(wù)端的數(shù)據(jù),以使所述服務(wù)端驗證所述用戶的合法性。具體地,當(dāng)USB設(shè)備判斷出用戶為合法的用戶后,USB設(shè)備需要采用用戶的證書對應(yīng)的密鑰中的私鑰加密將要發(fā)送至服務(wù)端(如銀行服務(wù)端)的數(shù)據(jù),并將用戶的證書以及用戶的證書對應(yīng)的密鑰(該密鑰包括公鑰和密鑰)發(fā)送至服務(wù)端,當(dāng)服務(wù)端接收到采用用戶的證書對應(yīng)的密鑰中的私鑰加密的數(shù)據(jù)后,采用密鑰中的公鑰解密所述私鑰加密的數(shù)據(jù),當(dāng)解密出符合要求的數(shù)據(jù)時,服務(wù)端判定當(dāng)前使用USB設(shè)備的用戶為合法的用戶,并與USB設(shè)備建立SSL握手,即USB設(shè)備成功與服務(wù)端建立SSL握手,否則,服務(wù)端拒絕連接,SSL握手失敗。通過USB設(shè)備和服務(wù)端的兩次驗證,提高了判斷用戶合法性的結(jié)果的準(zhǔn)確性。具體地,通過Tokend返回給外面的接口函數(shù)指針調(diào)用USB設(shè)備的密鑰,并通過調(diào)用的密鑰對SSL握手?jǐn)?shù)據(jù)進(jìn)行加密,比如,進(jìn)行RSA簽名等功能,實現(xiàn)服務(wù)端對USB設(shè)備上證書所代表的用戶的認(rèn)證,最終完成安全套接字(SecuritySocketLayer,SSL)握手。其中,使用SSL可以對通訊內(nèi)容進(jìn)行高強(qiáng)度的加密,從而可以有效防止黑客盜取您的用戶名、密鑰和通訊內(nèi)容,保證通訊的安全性。通過上述步驟,使得除了MacOSX系統(tǒng)下的原生應(yīng)用(如Safari)能夠使用CCID設(shè)備(如通過CCID協(xié)議的USB設(shè)備)來進(jìn)行SSL連接外,非CCID協(xié)議的USB設(shè)備也能進(jìn)行SSL連接,從而提高非CCID協(xié)議的USB設(shè)備的通訊內(nèi)容的安全性。
進(jìn)一步地,在USB設(shè)備成功與服務(wù)端建立SSL握手之后,USB設(shè)備接收服務(wù)端發(fā)送的加密算法和密鑰,并采用所述加密算法和密鑰加密發(fā)送至服務(wù)端的的通訊內(nèi)容。
可選地,在B6之后,包括:
在USB設(shè)備移除后,刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。當(dāng)用戶使用完畢拔出USB設(shè)備時,系統(tǒng)檢測到USB設(shè)備移除,則查找到對應(yīng)的Tokend進(jìn)程,并通知該Tokend進(jìn)程退出,然后該Tokend進(jìn)行清理操作并退出,比如,清理已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。
當(dāng)然,由于用戶在使用USB設(shè)備的一段時間內(nèi),可能會再次使用該USB設(shè)備,因此,為了避免后續(xù)仍需注冊相應(yīng)的證書及密鑰,可在刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰之前,判斷USB設(shè)備刪除時間是否小于預(yù)設(shè)時間,若是,不執(zhí)行任何動作,否則,刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。由于在USB設(shè)備刪除時間小于預(yù)設(shè)時間時,不刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,因此,在用戶在小于預(yù)設(shè)時間的時間內(nèi)再次插入USB設(shè)備時,無需再次注冊該USB設(shè)備的證書和密鑰,從而減少了系統(tǒng)的操作,節(jié)省了系統(tǒng)資源。
可選地,C1、若判斷出USB設(shè)備為支持CCID協(xié)議的USB設(shè)備,則通過系統(tǒng)的CCID讀卡器驅(qū)動獲取所述支持CCID協(xié)議的USB設(shè)備的信息。
C2、根據(jù)獲取的所述支持CCID協(xié)議的USB設(shè)備的信息判斷所述支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備。
C3、在所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
上述C1~C3中,USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征和復(fù)位信息從驅(qū)動獲取,且USB設(shè)備對應(yīng)的復(fù)位信息符合ISO7816標(biāo)準(zhǔn),其包括廠商特征信息字節(jié)。具體地,將USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征與預(yù)存的標(biāo)準(zhǔn)讀卡器名字包括的名字特征比較,和/或,將USB設(shè)備對應(yīng)的復(fù)位信息的廠商特征信息字節(jié)與預(yù)存的標(biāo)準(zhǔn)復(fù)位信息的廠商特征信息字節(jié)比較,若相同,則判定所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備,否則,判定所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)不支持的USB設(shè)備。
本發(fā)明第二實施例中,在檢測到USB設(shè)備插入后,若判斷出USB設(shè)備為不支持芯片智能卡接口設(shè)備CCID協(xié)議的USB設(shè)備,則通過存儲在指定路徑的PC/SC讀卡器驅(qū)動獲取所述不支持CCID協(xié)議的USB設(shè)備的信息,根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備,在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。由于在指定路徑安裝了PC/SC讀卡器驅(qū)動,因此,能夠獲取不支持CCID協(xié)議的USB設(shè)備的信息,進(jìn)而根據(jù)獲取的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備,并在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,從而使得系統(tǒng)能夠調(diào)用不支持CCID協(xié)議的USB設(shè)備,擴(kuò)大系統(tǒng)能夠接入的USB設(shè)備的類型。
應(yīng)理解,在本發(fā)明實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
實施例三:
圖3示出了本發(fā)明第三實施例提供的一種基于MacOSX系統(tǒng)的USB設(shè)備接入裝置的結(jié)構(gòu)圖,該基于MacOSX系統(tǒng)的USB設(shè)備接入裝置可應(yīng)用于智能終端中,該智能終端可以包括經(jīng)無線接入網(wǎng)RAN與一個或多個核心網(wǎng)進(jìn)行通信的用戶設(shè)備,該用戶設(shè)備可以是移動電話(或稱為“蜂窩”電話)、具有移動設(shè)備的計算機(jī)等,例如,用戶設(shè)備還可以是便攜式、袖珍式、手持式、計算機(jī)內(nèi)置的或者車載的移動裝置,它們與無線接入網(wǎng)交換語音和/或數(shù)據(jù)。又例如,該移動設(shè)備可以包括智能手機(jī)、平板電腦、個人數(shù)字助理PDA、銷售終端POS或車載電腦等。為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。
該基于MacOSX系統(tǒng)的USB設(shè)備接入裝置包括:
第一USB設(shè)備的信息獲取單元31,用于在檢測到USB設(shè)備插入后,若判斷出USB設(shè)備為不支持CCID協(xié)議的USB設(shè)備,則通過存儲在指定路徑的PC/SC讀卡器驅(qū)動獲取所述不支持CCID協(xié)議的USB設(shè)備的信息。
由于在USB設(shè)備為不支持CCID協(xié)議的USB設(shè)備時,系統(tǒng)默認(rèn)并不支持該類設(shè)備,因此,需要開發(fā)一個對應(yīng)PC/SC接口的驅(qū)動庫(存儲至少一種驅(qū)動的庫),以通過開發(fā)的驅(qū)動將對應(yīng)的USB設(shè)備模擬為讀卡器。另外,為了便于后續(xù)的調(diào)用,需要將開發(fā)的驅(qū)動庫安裝到系統(tǒng)對應(yīng)的路徑。
第一系統(tǒng)支持設(shè)備判斷單元32,用于根據(jù)獲取的所述不支持CCID協(xié)議的USB設(shè)備的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備。
可選地,所述不支持CCID協(xié)議的USB設(shè)備的信息包括所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息,此時,所述第一系統(tǒng)支持設(shè)備判斷單元32包括:
USB設(shè)備的信息比較模塊,用于將獲取的所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息與預(yù)存的標(biāo)準(zhǔn)讀卡器名字和/或復(fù)位信息比較。其中,USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征和復(fù)位信息從驅(qū)動獲取,且USB設(shè)備對應(yīng)的復(fù)位信息符合ISO7816標(biāo)準(zhǔn),包括廠商特征信息字節(jié)。具體地,將USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征與預(yù)存的標(biāo)準(zhǔn)讀卡器名字包括的名字特征比較,和/或,將USB設(shè)備對應(yīng)的復(fù)位信息的廠商特征信息字節(jié)與預(yù)存的標(biāo)準(zhǔn)復(fù)位信息的廠商特征信息字節(jié)比較。由于復(fù)位信息包括廠商特征信息字節(jié),因此,結(jié)合復(fù)位信息判斷USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備能夠使得判斷結(jié)果更準(zhǔn)確。
系統(tǒng)支持設(shè)備判定模塊,用于在獲取的所述不支持CCID協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字和/或復(fù)位信息與預(yù)存的標(biāo)準(zhǔn)讀卡器名字和/或復(fù)位信息相同時,判定所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備,否則,判定所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)不支持的USB設(shè)備。
當(dāng)開發(fā)出支持某類協(xié)議的USB設(shè)備的驅(qū)動時,設(shè)置該某類協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字,包括設(shè)置該某類協(xié)議的USB設(shè)備對應(yīng)的讀卡器名字的名字特征,并存儲。具體地,若系統(tǒng)已將USB設(shè)備識別為PC/SC讀卡器(當(dāng)系統(tǒng)已將USB設(shè)備識別為智能卡讀卡器也與上述USB設(shè)備的信息比較模塊和系統(tǒng)支持設(shè)備判定模塊的執(zhí)行動作類似,此處不再贅述),則啟動一個Tokend進(jìn)程并且傳入USB設(shè)備的讀卡器名字和/或復(fù)位信息,Tokend啟動以后,根據(jù)讀卡器名字(由于USB設(shè)備的復(fù)位信息一般都含有廠商特征信息字節(jié),因此還可根據(jù)USB設(shè)備的復(fù)位信息來進(jìn)一步區(qū)分USB設(shè)備)判斷是否是系統(tǒng)自己支持的USB設(shè)備。
第一信息注冊單元33,用于在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,則向系統(tǒng)注冊設(shè)備上的證書和密鑰(這里的密鑰可能為1個,也可能為2個,比如,當(dāng)加密算法為公鑰加密算法(RSA)時,需要1個公鑰和1個私鑰,此時的密鑰為2個密鑰(密鑰對)),并且返回對應(yīng)的操作接口函數(shù)指針,等待系統(tǒng)進(jìn)行調(diào)用。
可選地,所述基于MacOSX系統(tǒng)的USB設(shè)備接入裝置包括:
應(yīng)用訪問請求接收單元,用于接收應(yīng)用訪問請求。
網(wǎng)絡(luò)信息判斷單元,用于判斷所述應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息是否為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息。這里的網(wǎng)絡(luò)信息包括網(wǎng)站信息,比如https網(wǎng)站的信息等。具體地,可預(yù)先設(shè)置需要客戶端認(rèn)證的網(wǎng)絡(luò)信息,當(dāng)接收到應(yīng)用訪問請求后,解析出該應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息,再將解析出的網(wǎng)絡(luò)信息與預(yù)先設(shè)置的需要客戶端認(rèn)證的網(wǎng)絡(luò)信息比較,以判斷解析出的網(wǎng)絡(luò)信息是否為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息。
證書顯示單元,用于在所述應(yīng)用訪問請求攜帶的網(wǎng)絡(luò)信息為需要客戶端認(rèn)證的網(wǎng)絡(luò)信息時,顯示已注冊的證書。具體地,若系統(tǒng)已注冊多個證書,則顯示已注冊的多個證書,比如,以列表的形式顯示系統(tǒng)已注冊的多個證書,以提示用戶選擇證書。
密鑰接收單元,用于接收用戶發(fā)出的證書選擇指令以及用戶輸入的USB設(shè)備的認(rèn)證口令。具體地,可在顯示已注冊證書的時候,同時顯示密鑰輸入框,這樣,用戶在選擇證書后能夠輸入對應(yīng)的USB設(shè)備的認(rèn)證口令?;蛘?,當(dāng)接收到用戶發(fā)出的證書選擇指令后,系統(tǒng)根據(jù)被選中的證書對應(yīng)的Tokend,提示用戶輸入USB設(shè)備的認(rèn)證口令。
用戶合法性判斷單元,用于根據(jù)所述用戶發(fā)出的證書選擇指令、用戶輸入的USB設(shè)備的認(rèn)證口令以及已注冊的證書和USB設(shè)備的認(rèn)證口令判斷用戶是否為合法的用戶。具體地,可將用戶選中的證書、輸入的USB設(shè)備的認(rèn)證口令分別與已注冊的證書、USB設(shè)備的認(rèn)證口令比較,若證書與對應(yīng)的USB設(shè)備的認(rèn)證口令都相同,則判定用戶為合法的用戶,否則,判定用戶為不合法的用戶。
通訊內(nèi)容加密單元,用于在用戶為合法的用戶時,加密發(fā)送至服務(wù)端的數(shù)據(jù),以使所述服務(wù)端驗證所述用戶的合法性。具體地,當(dāng)USB設(shè)備判斷出用戶為合法的用戶后,USB設(shè)備需要采用用戶的證書對應(yīng)的密鑰中的私鑰加密將要發(fā)送至服務(wù)端(如銀行服務(wù)端)的數(shù)據(jù),并將用戶的證書以及用戶的證書對應(yīng)的密鑰(該密鑰包括公鑰和密鑰)發(fā)送至服務(wù)端,當(dāng)服務(wù)端接收到采用用戶的證書對應(yīng)的密鑰中的私鑰加密的數(shù)據(jù)后,采用密鑰中的公鑰解密所述私鑰加密的數(shù)據(jù),當(dāng)解密出符合要求的數(shù)據(jù)時,服務(wù)端判定當(dāng)前使用USB設(shè)備的用戶為合法的用戶,并與USB設(shè)備建立SSL握手,即USB設(shè)備成功與服務(wù)端建立SSL握手,否則,服務(wù)端拒絕連接,SSL握手失敗。通過USB設(shè)備和服務(wù)端的兩次驗證,提高了判斷用戶合法性的結(jié)果的準(zhǔn)確性。
進(jìn)一步地,在USB設(shè)備成功與服務(wù)端建立SSL握手之后,USB設(shè)備接收服務(wù)端發(fā)送的加密算法和密鑰,并采用所述加密算法和密鑰加密發(fā)送至服務(wù)端的的通訊內(nèi)容。
可選地,所述基于MacOSX系統(tǒng)的USB設(shè)備接入裝置包括:
信息刪除單元,用于在USB設(shè)備移除后,刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。
當(dāng)用戶使用完畢拔出USB設(shè)備時,系統(tǒng)檢測到USB設(shè)備移除,則查找到對應(yīng)的Tokend進(jìn)程,并通知該Tokend進(jìn)程退出,然后該Tokend進(jìn)行清理操作并退出,比如,清理已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。
當(dāng)然,由于用戶在使用USB設(shè)備的一段時間內(nèi),可能會再次使用該USB設(shè)備,因此,為了避免后續(xù)仍需注冊相應(yīng)的證書及密鑰,可在刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰之前,判斷USB設(shè)備刪除時間是否小于預(yù)設(shè)時間,若是,不執(zhí)行任何動作,否則,刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰。由于在USB設(shè)備刪除時間小于預(yù)設(shè)時間時,不刪除已注冊的所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,因此,在用戶在小于預(yù)設(shè)時間的時間內(nèi)再次插入USB設(shè)備時,無需再次注冊該USB設(shè)備的證書和密鑰,從而減少了系統(tǒng)的操作,節(jié)省了系統(tǒng)資源。
可選地,所述基于MacOSX系統(tǒng)的USB設(shè)備接入裝置包括:
第二USB設(shè)備的信息獲取單元,用于若判斷出USB設(shè)備為支持CCID協(xié)議的USB設(shè)備,則通過系統(tǒng)的CCID讀卡器驅(qū)動獲取所述支持CCID協(xié)議的USB設(shè)備的信息。
第二系統(tǒng)支持設(shè)備判斷單元,用于根據(jù)獲取的所述支持CCID協(xié)議的USB設(shè)備的信息判斷所述支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備。
第二信息注冊單元,用于在所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述支持CCID協(xié)議的USB設(shè)備的證書和密鑰,以便系統(tǒng)調(diào)用。
上述第二USB設(shè)備的信息獲取單元、第二系統(tǒng)支持設(shè)備判斷單元、第二信息注冊單元中,USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征和復(fù)位信息從驅(qū)動獲取,且USB設(shè)備對應(yīng)的復(fù)位信息符合ISO7816標(biāo)準(zhǔn),其包括廠商特征信息字節(jié)。具體地,將USB設(shè)備對應(yīng)的讀卡器名字包括的名字特征與預(yù)存的標(biāo)準(zhǔn)讀卡器名字包括的名字特征比較,和/或,將USB設(shè)備對應(yīng)的復(fù)位信息的廠商特征信息字節(jié)與預(yù)存的標(biāo)準(zhǔn)復(fù)位信息的廠商特征信息字節(jié)比較,若相同,則判定所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備,否則,判定所述支持CCID協(xié)議的USB設(shè)備為系統(tǒng)不支持的USB設(shè)備。
本發(fā)明第三實施例中,由于開發(fā)并安裝了PC/SC讀卡器驅(qū)動,因此,能夠獲取不支持CCID協(xié)議的USB設(shè)備的信息,進(jìn)而根據(jù)獲取的信息判斷所述不支持CCID協(xié)議的USB設(shè)備是否為系統(tǒng)支持的USB設(shè)備,并在所述不支持CCID協(xié)議的USB設(shè)備為系統(tǒng)支持的USB設(shè)備時,獲取并注冊所述不支持CCID協(xié)議的USB設(shè)備的證書和密鑰,從而使得系統(tǒng)能夠調(diào)用不支持CCID協(xié)議的USB設(shè)備,擴(kuò)大系統(tǒng)能夠接入的USB設(shè)備的類型。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。