新聞中心

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

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

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

        計算機、網絡、通信技術的迅猛發展,使人們的生活和生產方式發生了深刻變化。高科技在給人們的工作和生活帶來方便、舒適的同時,也給人們增添了許多困擾。安全問題首當其沖。PKI(Public Key Infrastructure,公鑰基礎設施)被譽為現代信息社會安全的基石,也是電子商務與電子政務的關鍵技術。它能夠為所有網絡應用透明地提供加密和數字簽名等密碼服務所必需的密鑰和證書管理功能,能夠提供認證、訪問控制、數據完整性、機密性和不可否認性等核心安全服務。通常PKI系統主要由認證機構、證書庫、密鑰備份及恢復系統、證書作廢處理系統、PKI應用接口系統等部分組成。

        PKI的基礎是基于非對稱加密算法的,每個用戶需要有一個能夠確保其安全的場所,用以存放一些個人密鑰(Private Key)、被其直接信任的CA(root CA)名字和證書,以及其他一些重要數據。(Smart Card)具有安全性高、保密性好的特點,為密鑰的存儲管理提供了良好的介質。具有嵌入卡片內部的CPU和存儲器,同時還有一系列的安全機制來保證內部數據的安全。利用卡上CPU的計算能力,可以在卡上進行密鑰對的生成和進行卡上的簽名和驗證運算;同時,利用智能卡出色的安全機制,能夠對存儲在其中的數據提供強有力的安全保證,這樣在用戶私鑰的整個生命周期內,都處在智能卡的保護之下。另外,為了提高設備使用的靈活性和方便性,采用了技術,充分發揮了的即插即用、總線供電等優點,使開發的設備具有可攜帶性、靈活性和方便性,可以在各種場合中進行簽名和驗證。

        2 PKl客戶端設備的研制

        設備是一個全功能、可操作PKI系統的必要組成部分。主要提供以下一些功能[1.2]:

        ① 密鑰的產生、更新和保護;

        ② 進行加解密或數字簽名操作;

        ③ 證書管理,包括證書的申請、安裝、存儲及驗證等;

        ④ 與主機、外圍設備和系統軟件有良好接口,方便用戶開發相應的高層軟件。

        2.1 客戶端設備的硬件實現

        要實現本客戶端設備,在硬件上必須具有智能卡芯片和USB芯片。作為智能卡芯片必須具備至少32 KB用戶數據區(EEPROM)和32 KB程序存儲區及1 KB的RAM;另外必須具備協處理器,能夠進行至少1024位模冪運算,此外必須具備良好的物理安全性,以確保除了通過本系統外,沒有其他途徑可以獲取智能卡中RAM、EE-PROM、ROM、寄存器的數據。而作為USB芯片,只需具備4個端口和滿足USB協議1.1即可。當然,如果能夠把這兩種芯片的功能集成在一起成一顆芯片,會進一步提高安全性和進一步降低設備的尺寸。經過反復比較篩選,我們選用了Atmel公司的同時具備IC卡和功能的單一芯片AT90S6464C—USB。本芯片還具備硬件隨機數發生器、硬件實現DES和3DES算法、內置RSA、ECC算法等。

        其硬件實現只需要加一個振蕩電路即可。另外,為了指示USB的讀寫操作,加了一個指示燈。在讀寫操作時指示燈亮。

        2.2 客戶端設備的軟件設計

        系統的軟件設計包括計算機主機的軟件設計和硬件設備中的軟件設計。

        智能卡層的軟件設計,主要完成COS(Chip Operation System)軟件和加密算法;USB接口層的軟件設計,主要完成主機和智能卡之間的信息傳遞;應用層的軟件設計,主要完成底層的API函數和CSP軟件,為用戶提供開發接口支持。下面詳細介紹各部分的設計。

        2.2.1 智能卡層軟件設計

        主要包括兩個模塊:卡內操作系統COS和算法庫。這是實現設備的關鍵部分。

        1)卡內操作系統COS的設計

        智能卡內設計了一個小型的操作系統COS. COS的主要功能是:控制智能卡與外界信息進行交換,管理智能卡存儲器中的文件系統,并在智能卡內完成各種命令的處理。COS的基本功能必須遵循ISO7816—4標準[3]。

        COS系統是由傳輸管理、文件管理、安全體系、命令解釋四個功能模塊組成的。

        ① 傳輸管理。按ISO7816—3標準,監督卡與終端之間的通信,保證數據正確地傳輸,防止與終端之間通信數據被非法竊取和篡改。

        ②文件管理。文件管理模塊用來管理智能卡芯片內存儲的各種數據,如證書、密鑰和其他用戶信息等。

        智能卡芯片內的文件分為MF、DF和EF三種。MF(主文件)是所有文件的根文件;DF文件是目錄文件,根據DF可以區分存在于智能卡上的不同應用;EF是基本文件,用來存儲具體的數據和記錄,也是COS命令所要操作的具體對象。本設計中,EF分為四種類對象:密鑰、證書、認證對象和數據對象。其中認證對象中保存識別用戶身份的PIN碼。EF的存放分為文件頭和文件體兩個部分。文件頭中包含文件的標識符、訪問權限和文件體的指針;而文件體中存放具體數據。

        對IC卡的操作,是通過命令的方式實現的。實際上是通過命令對IC卡內文件的操作。增加功能即是增加文件,所以,下面著重就文件系統進行說明。

        a.文件的空間結構

        COS整個的文件空間劃分如下:

        ◆當建立完.MF之后,COS自動將整個EEPROM空間都分配給它。MF的文件頭長度為13字節十文件名長度(5~16字節)。

        ◆每個DF所占空間=DF文件頭空間(等同于MF)+DF下所有的文件空間之和。

        ◆二進制結構文件的空間=文件頭空間(13字節)+EF所申請的空間。

        ◆定長記錄和循環定長記錄文件的空間=文件頭空間(13字節)+記錄數×記錄長度。

        ◆變長記錄結構文件的空間=文件頭空間(13字節)+建立時申請的空間。

        ◆安全基本文件的空間一文件頭空間(13字節)+密鑰個數×(25字節)。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石楼县| 辽阳县| 京山县| 固安县| 太原市| 上林县| 金门县| 勐海县| 华安县| 连平县| 巴青县| 庆阳市| 金山区| 太和县| 沂南县| 荥阳市| 江永县| 汉寿县| 信宜市| 卫辉市| 青岛市| 靖安县| 临汾市| 西城区| 泸水县| 邹平县| 蛟河市| 同心县| 西华县| 铁力市| 石阡县| 泸溪县| 中超| 五华县| 门头沟区| 鹿邑县| 吉隆县| 和顺县| 潍坊市| 巴东县| 德庆县|