evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

智能密碼鑰匙用通用數據總線傳輸數據的方法

TIME:2019-03-20 14:19  click: 180 次 來源: 未知

智能密碼鑰匙採用通用數據總線進行數據傳輸的方法,顺利获得如下過程實現。

(1)主機應用程式顺利获得磁盤設備發送INQUIRY SCSI命令識別智能密碼鑰匙。在智能密碼鑰匙接入計算機系統時,操作系統會向智能密碼鑰匙發送取描述符指令,該指令主要是取得該硬件的廠商和產品及序列號信息。在加載時,操作系統第一时间要向其發送一個INQUIRY命令包,其中關鍵是將DeviceType域設置為DIRECT _ACCESS_DEVICE,則智能密碼鑰匙就表現為磁盤設備,同時,在其中賦以廠商和產品字符串,以後在程序中就可以根據這兩個標誌來識別智能密碼鑰匙。在這裏主要利用idVendor idProduct iManufacturer iSerialNumber域定義生產商、產品ID及硬件序列號。這時iManufacturer iSerialNumber是指向一個字符串的索引,這個字符串就是下面所提到的取字符串描述符的命令。

(2)當操作系統處理完設備描述符後,將會發送取配置描述符的命令,該命令主要含有配置描述符、接口描述符、端點描述符和字符串描述符。

本發明中,實現磁盤類設備的關鍵在於處理接口描述符,其中關鍵的域是bInterfaceClass和bInterfaceProtocol,在本發明中bInterfaceClass的值為08H,該值表示智能密碼鑰匙的類是MESS STORAGE,bInterfaceProtocol的值是50H,表示智能密碼鑰匙的通信協議選擇BULK-ONLY協議。將該描述符處理完後,操作系統會自動加載驅動,接着由MESS STORAGE生成磁盤物理設備對象,再由磁盤驅動加載成磁盤設備。字符串描述符主要给予第一步中取設備描述符需要的字符串,iManufacturer和iSerialNumber等只是索引,該索引指向本次字符串描述符中所發送的字符串。這三個域分別是字符串的字節數、描述符類型和字符串。經過以上幾步,智能密碼鑰匙的初始化就完成了。

此外,顺利获得READCAPS取得智能密碼鑰匙能力。操作系統顺利获得該SCSI命令來取得智能密碼鑰匙容量等信息,只需將SCSI命令包的DataBuf域填充一個READ_CAPACITY_DATA結構的數據,就完成了智能密碼鑰匙能力的處理。其中,LogicalBlockAddress域表示邏輯塊的數量,BytesPerBlock域表示塊大小,這個塊的大小是一次通信的最小數據量,根據軟件保護產品的特點,可將這個數據設置為256、128或更低,智能密碼鑰匙的總容量就是這兩個數量的乘積。

(3)智能密碼鑰匙初始化完畢後,應用程式可顺利获得API來與智能密碼鑰匙通信,當程序與智能密碼鑰匙通信時,智能密碼鑰匙在接收到的CBW數據包中解析出SCSI數據包。

當上層應用程式顺利获得ReadFile對智能密碼鑰匙讀取數據時,系統磁盤驅動程序將該命令轉換為相應的SCSI命令READ10並傳遞到下層。由於處理該命令與標準磁盤不同,只實現部分協議,無需考慮偏移與長度等信息,只需考慮DataBuf域,該域含了自定義的通信協議,即向智能密碼鑰匙發送命令時由智能密碼鑰匙返回的用戶數據。

(4)智能密碼鑰匙根據SCSI命令來進行處理,最後返回一個狀態包CSW給應用程式,這樣就完成了應用程式與智能密碼鑰匙的一次通信過程。

智能密碼鑰匙根據通用串行總線通信協議,把數據包逐步解析成用戶數據包,並根據用戶數據包執行相關指令,包括密碼運算與自定義處理。在此過程中,顺利获得解析數據包內的指令與數據,鑑別使用者的身份,從而確定對智能密碼鑰匙內數據讀寫的權限。

(5)當上層應用程式顺利获得WriteFile對智能密碼鑰匙寫入數據時,系統磁盤驅動程序將該命令轉換為相應的SCSI命令WRITE10並傳遞到下層。由於處理該命令與標準磁盤不同,只實現部分協議,不需要考慮偏移和長度等信息,只需考慮DataBuf域,該域含了自定義的通信協議,即向智能密碼鑰匙發送命令時的用戶數據。

另外,主機程序直接與智能密碼鑰匙交互,顺利获得智能密碼鑰匙內的操作系統控制,而不是直接顺利获得文件系統操作智能密碼鑰匙中的文件。

上一篇:智能密碼鑰匙基於非對稱密碼算法的PIN傳輸 下一篇:密鑰是什麼