亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        具有安全功能的數(shù)據加卸載卡

        2011-06-05 11:01:24翟正軍
        電子設計工程 2011年19期
        關鍵詞:程序設備

        姬 進,翟正軍

        (西北工業(yè)大學 計算機學院,陜西 西安 710072)

        在數(shù)據加卸載系統(tǒng)上,對數(shù)據卡的安全性主要有以下幾個方面的要求:

        1)因為數(shù)據的重要性,出于保密的考慮,不希望數(shù)據卡上的內容被隨意查看;

        2)為了防止重要數(shù)據被誤操作,希望數(shù)據卡只有在內部管理軟件下才可以進行讀寫操作;

        基于上面兩點的安全性考慮,本數(shù)據卡采用加密密鑰來實現(xiàn)數(shù)據卡的安全加卸載?;舅悸肥钱敂?shù)據卡連接到主機后,數(shù)據卡與數(shù)據加卸載管理軟件實現(xiàn)交互,管理軟件向設備發(fā)送密鑰來取得對數(shù)據卡的操作權。

        1 USB批量傳輸協(xié)議分析

        本數(shù)據卡是基于USB2.0接口的數(shù)據存儲系統(tǒng),USB主機和設備之間進行數(shù)據傳輸主要有4種傳輸方式:控制傳輸、批量傳輸、中斷傳輸和等時傳輸[1]。批量傳輸適合大量突發(fā)性傳輸,所以本數(shù)據卡主要采用USB批量傳輸協(xié)議(Bulk-Only),下面先對批量傳輸協(xié)議作簡要介紹。

        Bulk-Only傳輸協(xié)議僅使用Bulk批量端點來進行命令、數(shù)據和狀態(tài)的傳輸。命令、數(shù)據及狀態(tài)的傳輸流程為:

        當主機詢查到有設備插入USB總線后,向設備首先發(fā)送USB標準請求,通過獲得設備的描述符得到設備的信息,進而對設備進行配置。當主機對設備枚舉成功后,就可以和設備通過輸入輸出端口進行通信。

        支持Bulk-Only傳輸方式的海量存儲設備,除了具有默認的控制端口0之外,只需要具有兩個BULK端口(BULK IN,BULK OUT)就可以完成和主機的通信。

        主機和設備之間通過傳送CBW (Command Block Wrapper)指令和 CSW(Command Status Wrapper)狀態(tài)字[2],以及DATA來完成數(shù)據的存儲和讀取。

        CBW命令的結構如下定義:

        dCBWSignature是CBW包標記,表明這是一個CBW包;dCBWTag是命令塊標記,設備會將這個字段填入CSW的dCSWTag字段,以回應主機的命令;dCBWDataTransferLength是數(shù)據傳輸長度,指明在數(shù)據傳輸階段的傳輸數(shù)據長度;bmCBWFlags規(guī)定了數(shù)據的傳輸方向;bCBWLUN指明了命令塊被發(fā)送的邏輯單元號;bCBWCBLength指定了CBWCB的長度;CBWCB指定了設備執(zhí)行的子命令,USB批量傳輸協(xié)議主要使用的是SCSI命令,由設備解析,對數(shù)據卡的讀寫操作主要是SCSI命令的Read10和Write12。CBWCB的第一個字節(jié)是操作碼(OperationCode),程序將根據相應的操作碼進行SCSI命令的識別,在SCSI中規(guī)定Read10的操作碼是28H,Write12的操作碼是2AH,后面15個字節(jié)不同命令的會有不同的定義,例如Read10和Write12中分別定義了讀的邏輯起始地址和寫的邏輯起始地址。

        CSW命令的結構如下:

        dCSWSignature是CSW包標記,表明這是一個CSW包;dCSWTag此值與CBW包的dCBWTag相同,表明這是對相應CBW的響應;dCSWDataResidue是實際數(shù)據傳輸量與CBW包中規(guī)定的數(shù)據傳輸長度的差值;bCSWStatus表明命令執(zhí)行成功與否。

        海量存儲設備接收到CBW命令字后,分解出CBW命令中包含的信息,并對指令信息進行處理,同時向機返回狀態(tài)字CSW。其過程如圖1所示。

        圖1 主機與海量存儲設備通信流程Fig.1 Communication between host and mass storage device

        2 數(shù)據卡硬件設計

        本數(shù)據卡的硬件組成如圖2所示,主要有3部分模塊組成:USB接口模塊、控制器和NAND FLASH[3],其中USB接口模塊主要連接主機和控制器,NAND FLASH作為數(shù)據卡的存儲介質,控制器則協(xié)調這兩個模塊,以實現(xiàn)數(shù)據的存取。

        圖2 數(shù)據卡硬件組成Fig.2 Hardware components of card

        USB接口的VCC通過電壓轉換芯片向控制器供電,數(shù)據線D+和D-與控制器對應引腳相連,實現(xiàn)數(shù)據通信。控制器的CLE與NAND FLASH的CLE相連,實現(xiàn)命令鎖存使能;控制器的ALE與NAND FLASH的ALE相連,實現(xiàn)地址鎖存使能;控制器的CE#與NAND FLASH的CE#相連,實現(xiàn)有效片選,該信號低電平有效;控制器的WE#與NAND FLASH的WE#相連,實現(xiàn)有效寫使能,該信號低電平有效;控制器的RE#與NAND FLASH相連,實現(xiàn)有效讀使能,該信號也是低電平有效;R/B#信號與NAND FLASH的R/B#相連,該信號是NAND FLASH輸出信號,反映NAND FLASH的工作狀態(tài),低電平表示器件忙,高電平表示當前器件沒有操作;數(shù)據線I/O[7:0]實現(xiàn)NAND FLASH與控制器的數(shù)據交換。

        控制器解析USB接口模塊的命令,根據命令做出相應的操作,對于本數(shù)據卡,控制器要對NAND FLASH進行讀、寫、損耗均衡、壞塊管理等操作,只有通過控制器的協(xié)調調度,才可以實現(xiàn)對FLASH上的數(shù)據的有效管理。因此在對數(shù)據卡進行安全功能的設計的時候,也把重點放在了控制器這一部分,在控制器固件程序上實現(xiàn)安全管理功能。

        3 數(shù)據卡軟件設計

        3.1 程序狀態(tài)機設計

        由前面對USB批量傳輸協(xié)議的分析可知一次USB批量傳輸協(xié)議的傳輸過程可以分為3個過程:主機發(fā)送CBW命令、數(shù)據包的傳輸和設備向主機發(fā)送CSW命令[4]。

        根據USB批量傳輸協(xié)議和數(shù)據卡安全功能設計的考慮,對控制器的固件程序設計了如圖3所示的狀態(tài)圖。

        圖3 程序狀態(tài)機Fig.3 Program state machine

        對于一次數(shù)據傳輸過程,設備首先處于READ_CBW狀態(tài),在READ_CBW狀態(tài)中,固件程序首先進行一系列的初始化工作。設備將接受端點設為接收狀態(tài),表明允許接受主機的CBW命令,設備設置CBW的接收緩存,設置接受的數(shù)據大小,最后設置回調函數(shù),該回調函數(shù)的功能主要是當數(shù)據接收完成后通知程序進行下一步工作。

        當READ_CBW狀態(tài)執(zhí)行完成后,程序將進入WAIT_CBW狀態(tài),在該狀態(tài)程序主要是等待設備端點接收CBW,當新的CBW接收后,在READ_CBW設置的回調函數(shù)會執(zhí)行,相關的信號量會增加,程序會轉向下一個狀態(tài)PROCESS_CBW,如果在WAIT_CBW狀態(tài)的時候設備收到控制端點的復位或者其他錯誤信息的時候,設備將重新返回到READ_CBW,重新接收新的CBW。

        進入PROCESS_CBW狀態(tài)后,設備將完成與主機的數(shù)據交互。程序將解析CBW的CBWCB字段,根據該字段的信息做出相應的響應,對于SCSI命令的Read10,程序根據字段中邏輯地址和數(shù)據長度會讀取NAND FLASH的數(shù)據,并將數(shù)據通過端點發(fā)送給主機,對于Write12命令,設備將接受主機發(fā)送的數(shù)據,并根據該字段中的邏輯地址將數(shù)據寫入NAND FLASH中。在進行讀寫操作中,還將涉及對FLASH的損耗均衡和壞塊管理[5]等操作。在該狀態(tài)時如果出現(xiàn)一些錯誤,比如CBW指令解析時出現(xiàn)錯誤,程序將中斷這次數(shù)據交互過程,重新回到READ_CBW狀態(tài),等待新的CBW重新到來。

        如果PROCESS_CBW狀態(tài)成功執(zhí)行,程序將進入SEND_CSW狀態(tài),程序根據PROCESS_CBW狀態(tài)執(zhí)行的相關情況,填寫CSW中的相應字段,并且設置發(fā)送緩存以及回調函數(shù),該回調函數(shù)與READ_CBW中的回調函數(shù)類似,通知程序CSW發(fā)送完成。

        SEND_CSW狀態(tài)成功執(zhí)行后,程序進入WAIT_CSW狀態(tài),等待CSW的成功發(fā)送,最后重新返回READ_CBW狀態(tài)。如果在該狀態(tài)執(zhí)行過程中出現(xiàn)復位或者錯誤,程序也將回到READ_CBW狀態(tài),重新開始下一次傳輸。

        3.2 數(shù)據卡安全功能設計

        數(shù)據卡的安全功能主要涉及對數(shù)據卡的讀和寫操作,要防止主機對數(shù)據卡的直接讀寫操作。

        對于本數(shù)據卡的加載和卸載過程都是在主機管理軟件的管理下嚴格執(zhí)行的,在其他非法情況下,數(shù)據卡將不對主機提供查看和寫入操作,從而提高數(shù)據卡的安全性能。

        固件程序中定義了CBWCB的標準的SCSI命令和自定義的安全命令以及這些命令對應的響應函數(shù)。自定義的安全命令是為了實現(xiàn)數(shù)據卡的安全功能,主要是設置密鑰命令SETPASSWORD和驗證密鑰VERIFYPASSWORD命令。CBWCB的命令識別主要根據CBWCB的操作碼來加以區(qū)別,不同的操作碼將對應不同的處理流程。自定義命令可以通過操作系統(tǒng)的DeviceIoControl函數(shù)向設備發(fā)送這些自定義的命令。

        自定義CBWCB結構如下:

        operationCode標識CBWCB操作碼,keyLength表示密鑰的長度,encodeType標識密鑰的加密方式[6],主機管理軟件將采用encodeType標識的加密方式對密鑰進行加密,數(shù)據卡將根據encodeType標識的加密方式對密鑰進行解密。

        增加自定義命令后處理過程如圖4所示,狀態(tài)WAIT_CBW將等待新的CBW被正確接收,當接收到新CBW后,根據CBW的CBWCB的操作碼對其進行處理。

        圖4 安全管理處理流程Fig.4 Safety management flow chart

        如果CBWCB是自定義命令SETPASSWORD和VERIFYPASSWORD時,程序轉入PROCESS_CBW狀態(tài),對于SETPASSWORD命令,在PROCESS_CBW狀態(tài)中將接收指定長度的密鑰,并用encodeType標識的加密算法對密鑰進行解密,最后將解密密文存儲在FLASH內的特定區(qū)域上,更新以前舊的密文;如果接收到VERIFYPASSWORD時,狀態(tài)PROCESS_CBW將從FLASH的特定區(qū)域上讀取密文,并且與主機發(fā)送下來的密文對比,如果匹配成功,程序將設備的驗證狀態(tài)置為驗證通過。

        如果CBWCB的操作碼為READ10或Write12時,進一步判斷數(shù)據卡是否已經驗證通過,如果驗證通過,則轉入狀態(tài)PROCESS_CBW對READ10或Write12作進一步操作,如果沒有驗證通過,則狀態(tài)轉回READ_CBW繼續(xù)等待新的CBW。這樣在沒有通過驗證的設備上,設備將不會向主機提供讀和寫的操作,這樣保證了對數(shù)據卡的安全訪問。

        4 結束語

        本數(shù)據卡采用基于USB2.0接口的NAND FLASH作為存儲介質,設計了USB批量傳輸?shù)墓碳绦驙顟B(tài)機,并在狀態(tài)機的基礎之上設計了數(shù)據卡的安全功能以實現(xiàn)數(shù)據卡的安全存儲,在和上層管理軟件的配合下,使用良好。通過和其他方法比較,該方法控制簡單、可靠性高。

        [1]劉建存,廖峰等.USB接口技術[M].北京:國防工業(yè)出版社,2004.

        [2]Universal Serial Bus.Mass storage class Reversion1.0[EB/OL].(1998-10-22).http://www.usb.org.

        [3]王成儒,李英偉.USB2.0原理與工程開發(fā)[M].北京:北京工業(yè)出版社,2004.

        [4]邊海龍,賈少華.USB2.0設備設計與開發(fā)[M].北京:人民郵電出版社,2004.

        [5]Gal E,Toledos.Algorithms and data structures for flash memories[J].ACM Computing Survey,2005,37(2):138-163.

        [6]盧開澄.計算機密碼學[M].3版.北京:清華大學出版社,2003.

        猜你喜歡
        程序設備
        諧響應分析在設備減振中的應用
        試論我國未決羈押程序的立法完善
        人大建設(2019年12期)2019-05-21 02:55:44
        基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
        基于MPU6050簡單控制設備
        電子制作(2018年11期)2018-08-04 03:26:08
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        500kV輸變電設備運行維護探討
        創(chuàng)衛(wèi)暗訪程序有待改進
        如何在設備采購中節(jié)省成本
        亚洲三区av在线播放| 8888四色奇米在线观看| 精品国产高清一区二区广区| 蜜桃网站在线免费观看视频| 久久这里都是精品99| 久热re这里精品视频在线6| 亚洲中文字幕无码永久在线| 偷拍区亚洲区一区二区| 男女啪啪动态视频在线观看| 免费人成在线观看视频高潮| 成人白浆超碰人人人人| 欧美日韩免费一区中文字幕| 少妇一区二区三区精选| 色爱情人网站| 熟女人妻在线视频| 日韩在线视精品在亚洲| 久久亚洲综合亚洲综合| 深夜爽爽动态图无遮无挡| 欧美人与动人物牲交免费观看 | 无码国产日韩精品一区二区| 日韩中文字幕熟女人妻| 亚洲精品少妇30p| 国产精品熟妇视频国产偷人| 国产一区二区三区视频大全| 久草福利国产精品资源| 一个人午夜观看在线中文字幕 | 青青草免费观看视频免费| 很黄很色很污18禁免费| 人妻丰满熟妇av无码处处不卡| 亚洲第一免费播放区| 中文字幕在线乱码av| 国产精品久久国产精品99| 欧美黑人性色黄在线视频| 亚洲精品国产第一区三区| 国产一二三四2021精字窝| 亚洲中久无码永久在线观看同| 亚洲av中文无码乱人伦在线咪咕| 国内自拍视频一区二区三区| 性裸交a片一区二区三区| 国产精品九九九久久九九| 在线观看一区二区三区视频|