欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種安全讀卡器及其工作方法

文檔序號:8259461閱讀:320來源:國知局
一種安全讀卡器及其工作方法
【技術領域】
[0001]本發(fā)明涉及信息安全領域,尤其涉及一種安全讀卡器及其工作方法。
【背景技術】
[0002]在現(xiàn)有技術中,讀卡器作為上位機和卡片之間的通訊通道,在接收到上位機發(fā)送的包含指令的數(shù)據(jù)包時,獲取數(shù)據(jù)包中的指令,將獲取到的指令發(fā)送給卡片,接收卡片返回的數(shù)據(jù)并發(fā)送給上位機。由于讀卡器與卡片之間只能傳輸明文的APDU(Applicat1nProtocol Data Unit,應用協(xié)議數(shù)據(jù)單元),而上位機與卡片之間的通訊數(shù)據(jù)有時會包含敏感信息,如PIN或密鑰信息等,在通訊過程中存在安全隱患,并且在上位機與卡片的通訊過程中,讀卡器僅起到轉(zhuǎn)接的作用,敏感信息均是從上位機輸入的,而上位機的環(huán)境存在木馬等危險因素,也增加了通訊的風險。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是為了克服現(xiàn)有技術的缺陷,提供一種安全讀卡器及其工作方法。
[0004]本發(fā)明方法是通過下述技術方案實現(xiàn)的:
[0005]本發(fā)明提供的一種安全讀卡器的工作方法,其基本實施過程為:所述讀卡器上電初始化后,使能總中斷,并在完成USB枚舉之后進入主循環(huán)流程,所述主循環(huán)流程包括以下步驟:
[0006]步驟S1:判斷是否接收到上位機發(fā)送的USB數(shù)據(jù)包,是則執(zhí)行步驟S2,否則重新執(zhí)行主循環(huán)流程;
[0007]步驟S2:根據(jù)所述USB數(shù)據(jù)包中的預設字節(jié)判斷所述USB數(shù)據(jù)包中包含的指令的類型,若為第一預設通道指令則執(zhí)行步驟S3,若為其他通道指令則執(zhí)行通用讀卡器的常規(guī)操作后,重新執(zhí)行主循環(huán)流程;
[0008]步驟S3:根據(jù)所述USB數(shù)據(jù)包中的預設標識判斷所述第一預設通道指令是否需要在安全通道中傳輸,若不需要在安全通道中傳輸則執(zhí)行步驟S4,若需要在安全通道中傳輸則執(zhí)行步驟S5 ;
[0009]步驟S4:將所述第一預設通道指令直接發(fā)送給卡片,執(zhí)行步驟S8 ;
[0010]步驟S5:檢查安全通道是否已建立,是則執(zhí)行步驟S6,否則執(zhí)行步驟S7 ;
[0011]步驟S6:將所述第一預設通道指令通過安全通道發(fā)送給卡片,執(zhí)行步驟S8 ;
[0012]步驟S7:建立與卡片之間的安全通道,將所述第一預設通道指令通過安全通道發(fā)送給卡片,執(zhí)行步驟S8 ;
[0013]步驟S8:根據(jù)卡片的返回結果設置返回數(shù)據(jù)和返回狀態(tài),并將返回數(shù)據(jù)和返回狀態(tài)返回給所述上位機,重新執(zhí)行主循環(huán)流程。
[0014]上述主循環(huán)流程的步驟S5之前,還可以包括:判斷所述第一預設通道指令的類型,若所述第一預設通道指令為建立安全通道指令,則建立與卡片之間的安全通道,設置返回狀態(tài),并將返回狀態(tài)返回給所述上位機,重新執(zhí)行主循環(huán)流程,否則執(zhí)行所述步驟S5 ;此時,上述主循環(huán)流程的步驟S7還可以替換為,設置返回狀態(tài)為安全通道未建立,并將返回狀態(tài)返回給所述上位機,重新執(zhí)行主循環(huán)流程。
[0015]上述主循環(huán)流程中,所述判斷是否接收到上位機發(fā)送的USB數(shù)據(jù)包,可以具體包括:檢查USB接收標志是否被置位,是則接收到上位機發(fā)送的USB數(shù)據(jù)包,否則未接收到上位機發(fā)送的USB數(shù)據(jù)包;此時,上述主循環(huán)流程的步驟SI中,當接收到上位機發(fā)送的USB數(shù)據(jù)包時,還包括復位所述USB接收標志;所述方法中還包括:當USB中斷被觸發(fā)時,所述讀卡器獲取上位機發(fā)送的USB數(shù)據(jù)包,置位所述USB接收標志。
[0016]上述主循環(huán)流程中,所述根據(jù)所述USB數(shù)據(jù)包中的預設字節(jié)判斷所述USB數(shù)據(jù)包中包含的指令的類型,可以具體包括:判斷所述USB數(shù)據(jù)包中的第一個字節(jié),若為預設數(shù)據(jù)則所述USB數(shù)據(jù)包中包含的指令為第一預設通道指令,否則所述USB數(shù)據(jù)包中包含的指令為其他通道指令。
[0017]上述主循環(huán)流程中,所述根據(jù)所述USB數(shù)據(jù)包中的預設標識判斷所述第一預設通道指令是否需要在安全通道中傳輸,可以具體包括:判斷所述USB數(shù)據(jù)包中的第十一個字節(jié)的高位端第6個比特,若所述比特為第一預設值則所述第一預設通道指令不需要在安全通道中傳輸,若所述比特為第二預設值則所述第一預設通道指令需要在安全通道中傳輸。
[0018]上述主循環(huán)流程中,所述檢查安全通道是否已建立,可以具體包括:檢查安全通道標志是否被置位,是則安全通道已建立,否則安全通道未建立;此時,上述主循環(huán)流程的步驟S7中,所述建立與卡片之間的安全通道之后,還包括置位所述安全通道標志;所述步驟S2中,還包括:若所述USB數(shù)據(jù)包中包含的指令為第三預設通道指令,且所述第三預設通道指令為給卡片下電指令,則對卡片下電,并復位所述安全通道標志。
[0019]進一步地,所述讀卡器進入上述主循環(huán)流程之前,還可以包括:檢查并記錄卡槽狀態(tài),上報卡槽狀態(tài)給所述上位機;更進一步地,上述主循環(huán)流程的步驟Si之前還可以包括:檢查并記錄卡槽狀態(tài),判斷與上次記錄的卡槽狀態(tài)是否相同,若相同則執(zhí)行步驟SI,若不相同則上報卡槽狀態(tài)給所述上位機后執(zhí)行步驟SI ;或者上述主循環(huán)流程的步驟S8中,所述將返回數(shù)據(jù)和返回狀態(tài)返回給所述上位機之后,還可以包括:檢查并記錄卡槽狀態(tài),判斷與上次記錄的卡槽狀態(tài)是否相同,若相同則重新執(zhí)行主循環(huán)流程,若不相同則上報卡槽狀態(tài)給所述上位機后重新執(zhí)行主循環(huán)流程;再進一步地,當判斷出與上次記錄的卡槽狀態(tài)不同之后,還可以包括:若檢查并記錄的卡槽狀態(tài)為無卡,則復位所述安全通道標志;
[0020]或者,進一步地,所述讀卡器進入上述主循環(huán)流程之前,還可以包括:檢查并記錄卡槽狀態(tài),置位上報卡槽狀態(tài)標志;此時,上述主循環(huán)流程的步驟Si之前,還包括判斷所述上報卡槽狀態(tài)標志是否被置位,若被置位則上報卡槽狀態(tài)給所述上位機,復位所述上報卡槽狀態(tài)標志,執(zhí)行步驟SI,若未被置位則執(zhí)行步驟SI ;或者,所述步驟S8中,所述將返回數(shù)據(jù)和返回狀態(tài)返回給所述上位機之后,還包括判斷所述上報卡槽狀態(tài)標志是否被置位,若被置位則上報卡槽狀態(tài)給所述上位機,復位所述上報卡槽狀態(tài)標志,重新執(zhí)行主循環(huán)流程,若未被置位則重新執(zhí)行主循環(huán)流程;更進一步地,上述主循環(huán)流程的步驟SI之前,還可以包括:檢查并記錄卡槽狀態(tài),判斷與上次記錄的卡槽狀態(tài)是否相同,若相同則執(zhí)行步驟Si,若不相同則置位所述上報卡槽狀態(tài)標志后執(zhí)行步驟SI ;或者,上述主循環(huán)流程的步驟S8中,所述將返回數(shù)據(jù)和返回狀態(tài)返回給所述上位機之后,還可以包括檢查并記錄卡槽狀態(tài),判斷與上次記錄的卡槽狀態(tài)是否相同,若相同則重新執(zhí)行主循環(huán)流程,若不相同則置位所述上報卡槽狀態(tài)標志后重新執(zhí)行主循環(huán)流程;再進一步地,當判斷出與上次記錄的卡槽狀態(tài)不同之后,還可以包括:若檢查并記錄的卡槽狀態(tài)為無卡,則復位所述安全通道標志。
[0021]上述主循環(huán)流程中,所述建立與卡片之間的安全通道,可以具體包括:與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰;所述將所述第一預設通道指令通過安全通道發(fā)送給卡片,具體包括:用所述數(shù)據(jù)密鑰加密所述第一預設通道指令中的敏感信息,用所述會話密鑰計算包含敏感信息密文的第一預設通道指令的消息認證碼,用所述認證密鑰加密包含敏感信息密文的第一預設通道指令,將所述消息認證碼和包含敏感信息密文的第一預設通道指令的密文發(fā)送給卡片。
[0022]所述與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰之前,還包括:獲取所述讀卡器中預置的初始密鑰;所述與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰,具體為:根據(jù)所述初始密鑰與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰;
[0023]或者,所述與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰之前,還包括:獲取所述讀卡器中保存的初始密鑰;所述與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰,具體為:根據(jù)所述初始密鑰與卡片協(xié)商生成數(shù)據(jù)密鑰、認證密鑰和會話密鑰;此時,上述主循環(huán)流程的步驟S2中,還包括:若所述USB數(shù)據(jù)包中包含的指令為第二預設通道指令,且所述第二預設通道指令為下載密鑰指令,則保存所述下載密鑰指令中的初始密鑰。
[0024]所述第一預設通道指令包括登陸指令;所述登陸指令需要在安全通道中傳輸;當所述USB數(shù)據(jù)包中包含的第一預設通道指令為所述登陸指令時,所述將所述第一預設通道指令通過安全通道發(fā)送給卡片之前,還包括:判斷PIN的來源,若來源于默認PIN則獲取讀卡器中預置的默認PIN,添加獲取的默認PIN到所述登陸指令中,若來源于鍵盤輸入則獲取用戶輸入的PIN,添加獲取的PIN到所述登陸指令中。
[0025]所述第一預設通道指令包括輸入密鑰信息指令;所述輸入密鑰信息指令需要在安全通道中傳輸;當所述USB數(shù)據(jù)包中包含的第一預設通道指令為所述輸入密鑰信息指令時,所述將所述第一預設通道指令通過安全通道發(fā)送給卡片之前,還包括:判斷密鑰信息的來源,若來源于卡片則獲取卡片中存儲的密鑰信息,顯示獲取的密鑰信息,當接收到用戶確認信息時添加獲取的密鑰信息到所述輸入密鑰信息指令中,若來源于鍵盤輸入則獲取用戶輸入的密鑰信息,顯示獲取的密鑰信息,當接收到用戶確認信息時添加獲取的密鑰信息到所述輸入密鑰信息指令中。
[0026]所述第一預設通道指令包括修改用戶數(shù)據(jù)指令;所述修改用戶數(shù)據(jù)指令需要在安全通道中傳輸;當所述USB數(shù)據(jù)包中包含的第一預設通道指令為所述修改用戶數(shù)據(jù)指令時,所述將所述第一預設通道指令通過安全通道發(fā)送給卡片之前,還包括:判斷更新前的PIN和更新后的PIN的來源,當更新前的PIN來源于默認PIN時,獲取讀卡器中預置的默認PIN,添加獲取的PIN到所述修改用戶數(shù)據(jù)指令中,當更新前的PIN來源于用戶輸入時,獲取用戶輸入的PIN,添加獲取的PIN到所述修改用戶數(shù)據(jù)指令中,當更新后的PIN來源于默認PIN時,獲取讀卡器中預置的默認PIN,添加獲取的PIN到所述修改用戶數(shù)據(jù)指令中,當更新后的PIN來源于用戶輸入時,獲取用戶輸入的PIN,添加獲取的PIN到所述修改用戶數(shù)據(jù)指令中。
[0027]所述第一預設通道指令包括獲取用戶名稱指令;所述獲取用戶名稱指令不需要在安全通道中傳輸;當所述USB數(shù)據(jù)包中包含的第一預設通道指令為所述獲取用戶名稱指令時,所述步驟S4中,所述將所述第一預設通道指令直接發(fā)送給卡片之后,還包括:顯示卡片返回的用戶名稱。
[0028]本發(fā)明提供的一種安全讀卡器,其基本實施過程為:所述安全讀卡器包括初始化模塊和功能模塊,所述初始化模塊與所述功能模塊相連,所述初始化模塊用于在所述安全讀卡器上電后進行初始化,使能總中斷,以及進行USB枚舉,所述功能模塊用于在所述初始化模塊完成USB枚舉后執(zhí)行主循環(huán)流程;
[0029]所述功能模塊具體包括:
[0030]數(shù)據(jù)包接收判斷單元,用于判斷是否接收到上位機發(fā)送的USB數(shù)據(jù)包;
[0031]指令類型判斷單元,用于當所述數(shù)據(jù)包接收判斷單元判斷出接收到上位機發(fā)送的USB數(shù)據(jù)包時,根據(jù)所述USB數(shù)據(jù)包中的預設字節(jié)判斷所述USB數(shù)據(jù)包中包含的指令的類型;
[0032]安全傳輸標識判斷單元,用于當所述指令類型判斷單元判斷出所述USB數(shù)據(jù)包中包含的指令為第一預設通道指令時,根據(jù)所述USB數(shù)據(jù)包中的預設標識判斷所述第一預設通道指令是否需要在安全通道中傳輸;
[0033]安全通道檢查單元,用于當所述安全傳輸標識判斷單元判斷出所述第一預設通道指令需要在安全通道中傳輸時,檢查安全通道是否已建立;
[0034]安全通道建立單元,用于當所述安全通道檢查單元檢查到安全通道未建立時,建立與卡片之間的安全通道;
[0035]安全傳輸單元,用于當所述安全通道檢查單元檢查到安全通道已建立時,或者當所述安全通道建立單元建立與卡片之間的安全通道之后,將所述第一預設通道指令通過安全通道發(fā)送給卡片,接收卡片的返回結果;
[0036]直接傳輸單元,用于當所述安全傳輸標識判斷單元判斷出所述第一預設通道指令不需要在安全通道中傳輸時,將所述第一預設通道指令直接發(fā)送給卡片,接收卡片的返回結果;
[0037]上報單元,用于根據(jù)所述安全傳輸單元和所述直接傳輸單元接收到的卡片的返回結果設置返回數(shù)據(jù)和返回狀態(tài),并將返回數(shù)據(jù)和返回狀態(tài)返回給所述上位機;
[0038]常規(guī)操作執(zhí)行單元,用于當所述指令類
當前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
镇原县| 衡东县| 磴口县| 集安市| 额敏县| 嘉义市| 瑞丽市| 安西县| 彭州市| 图片| 霞浦县| 南溪县| 南皮县| 靖江市| 隆安县| 闽侯县| 荔波县| 炉霍县| 博野县| 新绛县| 砀山县| 小金县| 资源县| 乡宁县| 合水县| 横山县| 勃利县| 绥中县| 肇州县| 巴中市| 内乡县| 玉环县| 瓮安县| 余江县| 琼结县| 中方县| 北碚区| 台东县| 合阳县| 万山特区| 喀喇沁旗|