<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于USB接口和智能卡的PKI客戶端設(shè)計

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

          ——
          作者:劉培德 尉永青 劉培玉 時間:2006-07-23 來源:單片機及嵌入式系統(tǒng)應(yīng)用 收藏
           

          1 概 述

              計算機、網(wǎng)絡(luò)、通信技術(shù)的迅猛發(fā)展,使人們的生活和生產(chǎn)方式發(fā)生了深刻變化。高科技在給人們的工作和生活帶來方便、舒適的同時,也給人們增添了許多困擾。安全問題首當(dāng)其沖。PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)被譽為現(xiàn)代信息社會安全的基石,也是電子商務(wù)與電子政務(wù)的關(guān)鍵技術(shù)。它能夠為所有網(wǎng)絡(luò)應(yīng)用透明地提供加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書管理功能,能夠提供認(rèn)證、訪問控制、數(shù)據(jù)完整性、機密性和不可否認(rèn)性等核心安全服務(wù)。通常PKI系統(tǒng)主要由認(rèn)證機構(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即可。當(dāng)然,如果能夠把這兩種芯片的功能集成在一起成一顆芯片,會進一步提高安全性和進一步降低設(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所示。

          1

          點擊此處查看全部新聞圖片

              智能卡層的軟件設(shè)計,主要完成COS(Chip Operation System)軟件和加密算法;USB接口層的軟件設(shè)計,主要完成主機和智能卡之間的信息傳遞;應(yīng)用層的軟件設(shè)計,主要完成底層的API函數(shù)和CSP軟件,為用戶提供開發(fā)接口支持。下面詳細(xì)介紹各部分的設(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標(biāo)準(zhǔn)[3]。
              COS系統(tǒng)是由傳輸管理、文件管理、安全體系、命令解釋四個功能模塊組成的。
              ① 傳輸管理。按ISO7816—3標(biāo)準(zhǔn),監(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分為四種類對象:密鑰、證書、認(rèn)證對象和數(shù)據(jù)對象。其中認(rèn)證對象中保存識別用戶身份的PIN碼。EF的存放分為文件頭和文件體兩個部分。文件頭中包含文件的標(biāo)識符、訪問權(quán)限和文件體的指針;而文件體中存放具體數(shù)據(jù)。
              對IC卡的操作,是通過命令的方式實現(xiàn)的。實際上是通過命令對IC卡內(nèi)文件的操作。增加功能即是增加文件,所以,下面著重就文件系統(tǒng)進行說明。
              a.文件的空間結(jié)構(gòu)
              每個文件在EEPROM中的存放格式為

          1

          點擊此處查看全部新聞圖片


              COS整個的文件空間劃分如下:
              ◆當(dāng)建立完.MF之后,COS自動將整個EEPROM空間都分配給它。MF的文件頭長度為13字節(jié)十文件名長度(5~16字節(jié))。
              ◆每個DF所占空間=DF文件頭空間(等同于MF)+DF下所有的文件空間之和。
              ◆二進制結(jié)構(gòu)文件的空間=文件頭空間(13字節(jié))+EF所申請的空間。
              ◆定長記錄和循環(huán)定長記錄文件的空間=文件頭空間(13字節(jié))+記錄數(shù)



          關(guān)鍵詞: 消費電子 消費電子

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();