新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于USB接口和智能卡的PKI 客戶端設計

        基于USB接口和智能卡的PKI 客戶端設計

        作者: 時間:2013-11-08 來源:網絡 收藏

        b.KEY文件及其文件中的密鑰

        每個DF或MF下有且只有一個KEY文件,在任何情況下密鑰均無法讀出。在KEY文件中可存放多個密鑰,每個密鑰為一條定長記錄。記錄中規定了其標識、版本、算法、屬性及密鑰本身等相關內容。

        在滿足KEY文件的增加權限時,可用Write KEY命令增加一條記錄。只有在滿足某個密鑰的使用權限時才可以使用該密鑰,在滿足某個密鑰的修改權限時才可以修改該密鑰。

        每種密鑰具有其獨立性,用于一種特定功能的密鑰不可作為它用。本設計支持以下幾種密鑰:個人密碼(PIN)、外部認證密鑰、內部認證密鑰、(Crypt密鑰、PIN解鎖密鑰、PIN重裝密鑰、應用維護密鑰等。

        ③ 安全體系。主要是對所傳送的信息進行安全性的檢查和處理,防止非法的竊聽或侵入。安全體系包括3部分:安全狀態、安全屬性和安全機制。安全狀態是指當前所處的一種系統狀態,這種安全狀態是在完成復位應答或完成某個命令后得到的;安全屬性是執行特定的命令所需要的安全條件,只有滿足了這個安全條件,命令才能執行;安全機制是指安全狀態實現轉移所采取的方法和手段,它是與安全狀態和安全屬性相聯系的。

        ④ 命令解釋。根據接收到的命令檢查各項參數是否正確,執行相應的操作。

        IC卡通過與終端之間使用命令與應答的通信機制,即終端,把命令送到1C卡,IC卡接收并處理后發送響應給終端。這種機制包括兩種應用協議數據單元(APDU)——命令應用數據單元與響應應用數據單元。CLA字節代表命令的類型。

        INS字節表示命令編碼,P1和P2為具體命令參數。Lc字節表示數據的長度,只有一個字節表示,取值范圍為1~115。如果Lc為0,表示沒有數據域。

        Le表示期望卡返回的數據長度,由單字節表示,取值范圍為1~115。

        響應應用數據單元也包括兩部分:可能存在的響應數據體(應答體)和兩個狀態字節(應答尾部),其內容為

        基于保密的原因,具體的命令代碼和狀態字節(SWl、SW2)的編碼略。

        (2)算法庫的實現

        算法庫是一個根據不同需要可擴展的函數庫。目前,算法庫里有:

        ◆對稱加密算法——DES算法、3DES算法、RC2、RC4算法;

        ◆摘要(散列值)算法——SHA一1算法、MD5算法;

        ◆非對稱加密算法——RSA算法、DSA算法、ECC算法。

        以上算法全部在設備內實現。

        2.2.2 層的軟件設計

        層軟件主要完成計算機主機和客戶端設備之間的數據傳輸,完成主機與IC卡之間交互的命令及響應。一方面將主機來的USB信息包轉換成符合IS07816--4標準的智能卡可識別的命令,另一方面,根據IS07816--4標準,將智能卡的響應數據轉化成USB數據包,上傳給主機。

        在USB的初始化中,完成終端設備USB的自舉過程。考慮到設備與計算機之間的數據交換具有數量少、傳輸速度不要求很高的特點,因而將其配置為HID類設備,實現在WIN2000、Win Me等環境下免安裝驅動程序的特點。本設備使用了3個端點:端點0用于控制信息的傳輸,端點1用于接收主機發來的數據,端點3用于向主機發送數據。

        USB的消息處理過程是:USB發出中斷請求,單片機響應中斷,首先查看各中斷寄存器,找出產生中斷的事件,然后處理。程序的設計主要集中在中斷處理服務程序上。

        上述2.2.1節和2.2.2節軟件設計為PKI終端設備內軟件設計,整個軟件采用了Keil C51語言編寫。與匯編相比,C語言在功能、結構、可讀性、可維護性上有明顯的優勢。Keil C51提供了豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。最后生成標準的HEX文件,以直接寫入程序存儲器,如Flash中。

        2.2.3應用層軟件設計

        應用層(計算機主機)軟件開發主要是提供底層API庫函數,在此基礎上實現CSP[4](Cryptographic Service Provider,加密服務提供者)軟件設計,為用戶提供符合微軟加密服務要求的中間件。

        應用程序不能直接與CSP進行通信。取而代之,應用程序通過調用由Advapi32.d11和Crypt32.dll模塊所提供的一些CryptoAPI接口函數來與CSP進行通信,從而完成相應的功能。操作系統過濾這些函數調用,并把它們通過C2ryptoSPI(系統編程接口)傳遞給相應的CSP函數。

        整個軟件的實現過程為:首先,根據智能卡COS命令,完成底層API庫函數CLlB。通過對庫函數進行封裝生成PKIKEY類,即PKIKEY.CPP,PKIKEY.H,進而生成CSP所需的DLL文件,最后通過向微軟申請認證,通過后微軟將進行簽名。

        本設計中,可以向客戶提供底層API函數和CSP兩種中間件接口,以支持客戶的二次開發。

        在應用軟件方面,我們設計了客戶端管理工具軟件和管理端管理工具軟件。

        客端管理工具實現的功能:證書的自動注冊注銷,修改用戶密碼等功能。

        管理端管理工具實現的功能:除具有客戶端管理工具的功能外,還提供了格式化設備、清空設備、解鎖用戶密碼、修改管理員密碼等功能。

        2.3 主要技術指標

        操作系統:Windows 98/Me/2000/XP,Mac OS 8/9,Linux.

        證書及標準:PKCS#1l,MS CAPI,PC/SC,X.509 v3證書存儲。

        加密算法:MD5,SHA - l,DES/3DES,RC2,RC4,RSA,DSA,ECC等。

        接口類型:USB V1.1 A型。

        功耗:250 mW。

        3 總 結

        本文提出的設備已經小批量生產。它是整個PKI體系的重要組成部分,可以實現密鑰安全保管、證書管理、簽名、驗證簽名、加/解密和身份認證等功能,具有高穩定性、高安全性、高可靠性、安裝和攜帶方便、操作簡便、運算速度快等特點;可廣泛應用于要求個人身份認證、識別、數據加密、安全存儲等領域,如電子商務、電子政務等,所提供的底層庫函數和CSP軟件以中間件方式極大地方便了客戶的二次開發。總之,本設計思想先進,代表了當前該領域的發展方向,應用前景廣泛。

        參考文獻:

        [1].CSPdatasheethttp://www.dzsc.com/datasheet/CSP_2363263.html.
        [2].RC2datasheethttp://www.dzsc.com/datasheet/RC2_1191068.html.
        [3].SHAdatasheethttp://www.dzsc.com/datasheet/SHA_2043215.html.


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 靖宇县| 靖州| 蓬莱市| 建昌县| 教育| 霍林郭勒市| 名山县| 黄山市| 农安县| 公安县| 鄂温| 麟游县| 奉新县| 临武县| 石狮市| 射阳县| 开鲁县| 河东区| 清涧县| 禹州市| 龙井市| 莫力| 洛阳市| 锡林郭勒盟| 大同市| 大足县| 辽宁省| 永登县| 额济纳旗| 通海县| 遵化市| 峡江县| 林芝县| 龙井市| 安丘市| 古蔺县| 城口县| 岑巩县| 丹巴县| 水富县| 河池市|