當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于USB接口和智能卡的PKI客戶端設(shè)計

1 概 述
    計算機、網(wǎng)絡(luò)、通信技術(shù)的迅猛發(fā)展,使人們的生活和生產(chǎn)方式發(fā)生了深刻變化。高科技在給人們的工作和生活帶來方便、舒適的同時,也給人們增添了許多困擾。安全問題首當其沖。PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)被譽為現(xiàn)代信息社會安全的基石,也是電子商務(wù)與電子政務(wù)的關(guān)鍵技術(shù)。它能夠為所有網(wǎng)絡(luò)應(yīng)用透明地提供加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書管理功能,能夠提供認證、訪問控制、數(shù)據(jù)完整性、機密性和不可否認性等核心安全服務(wù)。通常PKI系統(tǒng)主要由認證
機構(gòu)、證書庫、密鑰備份及恢復(fù)系統(tǒng)、證書作廢處理系統(tǒng)、PKI應(yīng)用接口系統(tǒng)等部分組成。
    PKI的基礎(chǔ)是基于非對稱加密算法的,每個用戶需要有一個能夠確保其安全的場所,用以存放一些個人密鑰(Private Key)、被其直接信任的CA(root CA)名字和證書,以及其他一些重要數(shù)據(jù)。智能卡(Smart Card)具有安全性高、保密性好的特點,為密鑰的存儲管理提供了良好的介質(zhì)。智能卡具有嵌入卡片內(nèi)部的CPU和存儲器,同時還有一系列的安全機制來保證內(nèi)部數(shù)據(jù)的安全。利用智能卡卡上CPU的計算能力,可以在卡上進行密鑰對的生成和進行卡上的簽名和驗證運算;同時,利用智能卡出色的安全機制,能夠?qū)Υ鎯υ谄渲械臄?shù)據(jù)提供強有力的安全保證,這樣在用戶私鑰的整個生命周期內(nèi),都處在智能卡的保護之下。另外,為了提高設(shè)備使用的靈活性和方便性,采用了USB接口技術(shù),充分發(fā)揮了USB接口的即插即用、總線供電等優(yōu)點,使開發(fā)的設(shè)備具有可攜帶性、靈活性和方便性,可以在各種場合中進行簽名和驗證。


2 PKl客戶端設(shè)備的研制
    PKI客戶端設(shè)備是一個全功能、可操作PKI系統(tǒng)的必要組成部分。主要提供以下一些功能[1.2]:
    ① 密鑰的產(chǎn)生、更新和保護;
    ② 進行加解密或數(shù)字簽名操作;
    ③ 證書管理,包括證書的申請、安裝、存儲及驗證等;
    ④ 與主機、外圍設(shè)備和系統(tǒng)軟件有良好接口,方便用戶開發(fā)相應(yīng)的高層軟件。
2.1 客戶端設(shè)備的硬件實現(xiàn)
    要實現(xiàn)本客戶端設(shè)備,在硬件上必須具有智能卡芯片和USB芯片。作為智能卡芯片必須具備至少32 KB用戶數(shù)據(jù)區(qū)(EEPROM)和32 KB程序存儲區(qū)及1 KB的RAM;另外必須具備協(xié)處理器,能夠進行至少1024位模冪運算,此外必須具備良好的物理安全性,以確保除了通過本系統(tǒng)外,沒有其他途徑可以獲取智能卡中RAM、EE-PROM、ROM、寄存器的數(shù)據(jù)。而作為USB芯片,只需具備4個端口和滿足USB協(xié)議1.1即可。當然,如果能夠把這兩種芯片的功能集成在一起成一顆芯片,會進一步提高安全性和進一步降低設(shè)備的尺寸。經(jīng)過反復(fù)比較篩選,我們選用了Atmel公司的同時具備IC卡和USB接口功能的單一芯片AT90S6464C—USB。本芯片還具備硬件隨機數(shù)發(fā)生器、硬件實現(xiàn)DES和3DES算法、內(nèi)置RSA、ECC算法等。
    其硬件實現(xiàn)只需要加一個振蕩電路即可。另外,為了指示USB的讀寫操作,加了一個指示燈。在讀寫操作時指示燈亮。
2.2 客戶端設(shè)備的軟件設(shè)計
    PKI客戶端系統(tǒng)的軟件設(shè)計包括計算機主機的軟件設(shè)計和硬件設(shè)備中的軟件設(shè)計,具體的層次結(jié)構(gòu)如圖1所示。

    智能卡層的軟件設(shè)計,主要完成COS(Chip Operation System)軟件和加密算法;USB接口層的軟件設(shè)計,主要完成主機和智能卡之間的信息傳遞;應(yīng)用層的軟件設(shè)計,主要完成底層的API函數(shù)和CSP軟件,為用戶提供開發(fā)接口支持。下面詳細介紹各部分的設(shè)計。
2.2.1 智能卡層軟件設(shè)計
    主要包括兩個模塊:卡內(nèi)操作系統(tǒng)COS和算法庫。這是實現(xiàn)PKI客戶端設(shè)備的關(guān)鍵部分。
(1)卡內(nèi)操作系統(tǒng)COS的設(shè)計
    智能卡內(nèi)設(shè)計了一個小型的操作系統(tǒng)COS. COS的主要功能是:控制智能卡與外界信息進行交換,管理智能卡存儲器中的文件系統(tǒng),并在智能卡內(nèi)完成各種命令的處理。COS的基本功能必須遵循ISO7816—4標準[3]。
    COS系統(tǒng)是由傳輸管理、文件管理、安全體系、命令解釋四個功能模塊組成的。
    ① 傳輸管理。按ISO7816—3標準,監(jiān)督卡與終端之間的通信,保證數(shù)據(jù)正確地傳輸,防止與終端之間通信數(shù)據(jù)被非法竊取和篡改。
    ②文件管理。文件管理模塊用來管理智能卡芯片內(nèi)存儲的各種數(shù)據(jù),如證書、密鑰和其他用戶信息等。
    智能卡芯片內(nèi)的文件分為MF、DF和EF三種。MF(主文件)是所有文件的根文件;DF文件是目錄文件,根據(jù)DF可以區(qū)分存在于智能卡上的不同應(yīng)用;EF是基本文件,用來存儲具體的數(shù)據(jù)和記錄,也是COS命令所要操作的具體對象。本設(shè)計中,EF分為四種類對象:密鑰、證書、認證對象和數(shù)據(jù)對象。其中認證對象中保存識別用戶身份的PIN碼。EF的存放分為文件頭和文件體兩個部分。文件頭中包含文件的標識符、訪問權(quán)限和文件體的指針;而文件體中存放具體數(shù)據(jù)。
    對IC卡的操作,是通過命令的方式實現(xiàn)的。實際上是通過命令對IC卡內(nèi)文件的操作。增加功能即是增加文件,所以,下面著重就文件系統(tǒng)進行說明。
    a.文件的空間結(jié)構(gòu)
    每個文件在EEPROM中的存放格式為

    COS整個的文件空間劃分如下:
    ◆當建立完.MF之后,COS自動將整個EEPROM空間都分配給它。MF的文件頭長度為13字節(jié)十文件名長
度(5~16字節(jié))。
    ◆每個DF所占空間=DF文件頭空間(等同于MF)+DF下所有的文件空間之和。
    ◆二進制結(jié)構(gòu)文件的空間=文件頭空間(13字節(jié))+EF所申請的空間。
    ◆定長記錄和循環(huán)定長記錄文件的空間=文件頭空間(13字節(jié))+記錄數(shù)×記錄長度。   
    ◆變長記錄結(jié)構(gòu)文件的空間=文件頭空間(13字節(jié))+建立時申請的空間。
    ◆安全基本文件的空間一文件頭空間(13字節(jié))+密鑰個數(shù)×(25字節(jié))。
    b.KEY文件及其文件中的密鑰
    每個DF或MF下有且只有一個KEY文件,在任何情況下密鑰均無法讀出。在KEY文件中可存放多個密鑰,每個密鑰為一條定長記錄。記錄中規(guī)定了其標識、版本、算法、屬性及密鑰本身等相關(guān)內(nèi)容。
    在滿足KEY文件的增加權(quán)限時,可用Write KEY命令增加一條記錄。只有在滿足某個密鑰的使用權(quán)限時才可以使用該密鑰,在滿足某個密鑰的修改權(quán)限時才可以修改該密鑰。
    每種密鑰具有其獨立性,用于一種特定功能的密鑰不可作為它用。本設(shè)計支持以下幾種密鑰:個人密碼(PIN)、外部認證密鑰、內(nèi)部認證密鑰、(Crypt密鑰、PIN解鎖密鑰、PIN重裝密鑰、應(yīng)用維護密鑰等。
    ③ 安全體系。主要是對所傳送的信息進行安全性的檢查和處理,防止非法的竊聽或侵入。安全體系包括3部分:安全狀態(tài)、安全屬性和安全機制。安全狀態(tài)是指當前智能卡所處的一種系統(tǒng)狀態(tài),這種安全狀態(tài)是在智能卡完成復(fù)位應(yīng)答或完成某個命令后得到的;安全屬性是智能卡執(zhí)行特定的命令所需要的安全條件,只有滿足了這個安全條件,命令才能執(zhí)行;安全機制是指安全狀態(tài)實現(xiàn)轉(zhuǎn)移所采取的方法和手段,它是與安全狀態(tài)和安全屬性相聯(lián)系的。
    ④ 命令解釋。根據(jù)接收到的命令檢查各項參數(shù)是否正確,執(zhí)行相應(yīng)的操作。
    IC卡通過USB接口與終端之間使用命令與應(yīng)答的通信機制,即終端,把命令送到1C卡,IC卡接收并處理后發(fā)送響應(yīng)給終端。這種機制包括兩種應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)——命令應(yīng)用數(shù)據(jù)單元與響應(yīng)應(yīng)用數(shù)據(jù)單元。
    命令應(yīng)用數(shù)據(jù)單元包含兩部分:固定的4字節(jié)命令頭和長度可變的命令體,其內(nèi)容為

    CLA字節(jié)代表命令的類型。
    INS字節(jié)表示命令編碼,P1和P2為具體命令參數(shù)。Lc字節(jié)表示數(shù)據(jù)的長度,只有一個字節(jié)表示,取值范圍為1~115。如果Lc為0,表示沒有數(shù)據(jù)域。
    Le表示期望卡返回的數(shù)據(jù)長度,由單字節(jié)表示,取值范圍為1~115。
    響應(yīng)應(yīng)用數(shù)據(jù)單元也包括兩部分:可能存在的響應(yīng)數(shù)據(jù)體(應(yīng)答體)和兩個狀態(tài)字節(jié)(應(yīng)答尾部),其內(nèi)容為

    基于保密的原因,具體的命令代碼和狀態(tài)字節(jié)(SWl、SW2)的編碼略。
(2)算法庫的實現(xiàn)
    算法庫是一個根據(jù)不同需要可擴展的函數(shù)庫。目前,算法庫里有:
    ◆對稱加密算法——DES算法、3DES算法、RC2、RC4算法;
    ◆摘要(散列值)算法——SHA一1算法、MD5算法;
    ◆非對稱加密算法——RSA算法、DSA算法、ECC算法。
    以上算法全部在設(shè)備內(nèi)實現(xiàn)。
2.2.2 USB接口層的軟件設(shè)計
    USB接口層軟件主要完成計算機主機和客戶端設(shè)備之間的數(shù)據(jù)傳輸,完成主機與IC卡之間交互的命令及響應(yīng)。一方面將主機來的USB信息包轉(zhuǎn)換成符合IS07816--4標準的智能卡可識別的命令,另一方面,根據(jù)IS07816--4標準,將智能卡的響應(yīng)數(shù)據(jù)轉(zhuǎn)化成USB數(shù)據(jù)包,上傳給主機。
    在USB的初始化中,完成終端設(shè)備USB的自舉過程??紤]到設(shè)備與計算機之間的數(shù)據(jù)交換具有數(shù)量少、傳輸速度不要求很高的特點,因而將其配置為HID類設(shè)備,實現(xiàn)在WIN2000、Win Me等環(huán)境下免安裝驅(qū)動程序的特點。本設(shè)備使用了3個端點:端點0用于控制信息的傳輸,端點1用于接收主機發(fā)來的數(shù)據(jù),端點3用于向主機發(fā)送數(shù)據(jù)。
    USB的消息處理過程是:USB發(fā)出中斷請求,單片機響應(yīng)中斷,首先查看各中斷寄存器,找出產(chǎn)生中斷的事件,然后處理。程序的設(shè)計主要集中在中斷處理服務(wù)程序上,如圖2所示。

    上述2.2.1節(jié)和2.2.2節(jié)軟件設(shè)計為PKI終端設(shè)備內(nèi)軟件設(shè)計,整個軟件采用了Keil C51語言編寫。與匯編相比,C語言在功能、結(jié)構(gòu)、可讀性、可維護性上有明顯的優(yōu)勢。Keil C51提供了豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。最后生成標準的HEX文件,以直接寫入程序存儲器,如Flash中。
2.2.3應(yīng)用層軟件設(shè)計
    應(yīng)用層(計算機主機)軟件開發(fā)主要是提供底層API庫函數(shù),在此基礎(chǔ)上實現(xiàn)CSP[4](Cryptographic Service Provider,加密服務(wù)提供者)軟件設(shè)計,為用戶提供符合微軟加密服務(wù)要求的中間件。應(yīng)用層軟件結(jié)構(gòu)如圖3所示。

    應(yīng)用程序不能直接與CSP進行通信。取而代之,應(yīng)用程序通過調(diào)用由Advapi32.d11和Crypt32.dll模塊所提供的一些CryptoAPI接口函數(shù)來與CSP進行通信,從而完成相應(yīng)的功能。操作系統(tǒng)過濾這些函數(shù)調(diào)用,并把它們通過C2ryptoSPI(系統(tǒng)編程接口)傳遞給相應(yīng)的CSP函數(shù)。
    整個軟件的實現(xiàn)過程為:首先,根據(jù)智能卡COS命令,完成底層API庫函數(shù)CLlB。通過對庫函數(shù)進行封裝生成PKIKEY類,即PKIKEY.CPP,PKIKEY.H,進而生成CSP所需的DLL文件,最后通過向微軟申請認證,通過后微軟將進行簽名。
    本設(shè)計中,可以向客戶提供底層API函數(shù)和CSP兩種中間件接口,以支持客戶的二次開發(fā)。
    在應(yīng)用軟件方面,我們設(shè)計了客戶端管理工具軟件和管理端管理工具軟件。
    客戶端管理工具實現(xiàn)的功能:證書的自動注冊注銷,修改用戶密碼等功能。
    管理端管理工具實現(xiàn)的功能:除具有客戶端管理工具的功能外,還提供了格式化設(shè)備、清空設(shè)備、解鎖用戶密碼、修改管理員密碼等功能。
2.3 主要技術(shù)指標
    操作系統(tǒng):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 總 結(jié)
    本文提出的PKI客戶端設(shè)備已經(jīng)小批量生產(chǎn)。它是整個PKI體系的重要組成部分,可以實現(xiàn)密鑰安全保管、證書管理、簽名、驗證簽名、加/解密和身份認證等功能,具有高穩(wěn)定性、高安全性、高可靠性、安裝和攜帶方便、操作簡便、運算速度快等特點;可廣泛應(yīng)用于要求個人身份認證、識別、數(shù)據(jù)加密、安全存儲等領(lǐng)域,如電子商務(wù)、電子政務(wù)等,所提供的底層庫函數(shù)和CSP軟件以中間件方式極大地方便了客戶的二次開發(fā)??傊?,本設(shè)計思想先進,代表了當前該領(lǐng)域的發(fā)展方向,應(yīng)用前景廣泛。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉