0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將可信計(jì)算和Java智能卡技術(shù)解決安全問題

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-04-26 08:34 ? 次閱讀

引言

Java 智能卡是一種能運(yùn)行Java 語(yǔ)言程序的智能卡,它在資源有限的智能卡環(huán)境中支持Java 語(yǔ)言的一個(gè)子集,是Java 嵌入到智能卡中的一種新的應(yīng)用[1]。由于Java 智能卡具有一卡多應(yīng)用的特性,而且Java 程序“一次編寫,到處運(yùn)行”,使得近幾年來Java 智能卡市場(chǎng)蓬勃發(fā)展起來。Java 智能卡產(chǎn)品已經(jīng)在全世界得到了廣泛的應(yīng)用,包括無線通信、醫(yī)療/健康保險(xiǎn)、金融銀行、政府機(jī)構(gòu)、身份認(rèn)證、電子商務(wù)、系統(tǒng)安全等領(lǐng)域。

Java 智能卡可以同時(shí)運(yùn)行幾個(gè)不同的程序,而且無論發(fā)卡前,還是發(fā)卡后,都卡允許用戶自由的下載,安裝和刪除程序。這就需要卡片具有很高的安全行。而現(xiàn)在的Java 智能卡一般通過簡(jiǎn)單的防火墻和接口共享機(jī)制來保障其安全性,這無疑存在著安全隱患。該方案將把可信計(jì)算技術(shù)引入到Java 智能卡的設(shè)計(jì)與實(shí)現(xiàn)中,以可信計(jì)算在安全認(rèn)證方面的優(yōu)勢(shì)來解決智能卡的安全問題。

2 硬件平臺(tái)的選擇

本文經(jīng)過研究發(fā)現(xiàn):可信計(jì)算和 Java 智能卡技術(shù)對(duì)硬件的需求基本相同。兩者都需要易失存儲(chǔ)器,非易失存儲(chǔ)器,對(duì)稱/非對(duì)稱密碼處理器,隨機(jī)數(shù)處理器,雜湊運(yùn)算單元,執(zhí)行單元和隨機(jī)數(shù)產(chǎn)生器。當(dāng)然,兩中技術(shù)對(duì)硬件的要求有細(xì)微的差異:例如可信密碼模塊需要監(jiān)測(cè)電源,而智能卡不需要;可信模塊的RSA 引擎需要達(dá)到2048 位強(qiáng)度,而智能卡并沒有明確的規(guī)定;可信模塊的I/O 是總線形式的,而智能卡需要射頻、USB 或者其它形式的通訊模塊。

由以上分析可以看出,智能卡和可信模塊對(duì)硬件的需求雖然有所異同,但并不矛盾,這些差異是兩者對(duì)安全性的不同要求造成的。為了將可信計(jì)算技術(shù)引入到智能卡的設(shè)計(jì)與實(shí)現(xiàn)中,可以挑選一款規(guī)格合適的智能卡芯片作為硬件平臺(tái)。經(jīng)過對(duì)比,該方案中,最終選擇了中興集成電路設(shè)計(jì)有限公司的芯片Z32H256D32SU。該芯片是中興在國(guó)產(chǎn)32 位RISC 處理器的多功能安全處理平臺(tái)基礎(chǔ)上開發(fā)出的,具備高處理能力、高安全性、低功耗、低成本等特點(diǎn)。它具有8KBSRAM 存儲(chǔ)器、256KB Flash 存儲(chǔ)器、32KB EEPROM 存儲(chǔ)器,支持DES/3DES、RSA、ECC、SHA-1、HMAC 等算法,并帶有隨機(jī)數(shù)產(chǎn)生器和電源監(jiān)測(cè)等模塊(具體的參數(shù)可以參見其手冊(cè))。該芯片完全可以同時(shí)滿足智能卡和可信計(jì)算的硬件需求,用于構(gòu)建可信Java 智能卡。

3 可信Java 智能卡的設(shè)計(jì)與實(shí)現(xiàn)

3.1 可信Java 智能卡的架構(gòu)

可信 Java 智能卡(Trusted Java Card,縮寫為TJC)是在Java 智能卡中引入了可信的理念,用可信技術(shù)來增強(qiáng)其安全性。其結(jié)構(gòu)框架如圖1 所示。

最底層是各種硬件資源,它上面硬件驅(qū)動(dòng)層,這一層是底層硬件調(diào)用接口的集合,它可以把上層和具體的硬件細(xì)節(jié)分離,方便以后的硬件的升級(jí),而且可以更方便的實(shí)現(xiàn)Java 的平臺(tái)無關(guān)性。

安全管理組件是一組執(zhí)行各種操作的組件的集合,例如包的下載,包的度量,Applet的安裝和刪除,密鑰的存儲(chǔ)和讀取,事務(wù)的記錄和回滾等,這些功能組件通過運(yùn)行時(shí)環(huán)境的調(diào)用來執(zhí)行。其它各模塊的設(shè)計(jì)下文分別予以說明。

將可信計(jì)算和Java智能卡技術(shù)解決安全問題

圖 1 可信Java 智能卡的架構(gòu)

3.1.1 可信Java 智能卡虛擬機(jī)

可信 Java 智能卡虛擬機(jī)是用于支持字節(jié)碼運(yùn)行的虛擬計(jì)算機(jī),它的核心功能是解釋虛指令,使程序按著正常的流程執(zhí)行。虛擬機(jī)有13 類185 條指令需要實(shí)現(xiàn),該方案在實(shí)現(xiàn)虛擬指令調(diào)用時(shí),設(shè)計(jì)了一個(gè)用于定位指定指令的虛擬指令跳轉(zhuǎn)表,采用函數(shù)指針的方式實(shí)現(xiàn)虛擬指令跳轉(zhuǎn),其定義如下所示:

BYTE (*bytecodeJumperFun[185])();

執(zhí)行一條指令的基本步驟如圖2 所示:

1. 首先讀取 PC 指針處的值,得到與該值相對(duì)應(yīng)的方法區(qū)中的指令。

2. 判斷其是否需要解析,如果需要,則先解析該指令,得到所訪問對(duì)象的物理地址后,再對(duì)其解釋執(zhí)行;如果為簡(jiǎn)單指令,則無需解析直接執(zhí)行即可。

3. 在本指令執(zhí)行結(jié)束后,虛擬機(jī)將PC 指針指向當(dāng)前指令緩沖區(qū)中的下一條指令,如果該指令存在,則重復(fù)執(zhí)行步驟一、二;否則在所有指令執(zhí)行完畢的情況下,退出虛擬機(jī),程序運(yùn)行結(jié)束。

將可信計(jì)算和Java智能卡技術(shù)解決安全問題

圖 2 解析虛擬指令的基本流程

3.1.2 可信Java 智能卡類庫(kù)

可信 Java 智能卡類庫(kù)既實(shí)現(xiàn)了一般的Java 智能卡應(yīng)用程序接口,又實(shí)現(xiàn)了可信密碼模塊的用戶接口。為了提高執(zhí)行速度,耗費(fèi)時(shí)間比較多的操作用C 語(yǔ)言實(shí)現(xiàn)。在 CAP 文件中,每個(gè)方法的頭信息如下所示:

將可信計(jì)算和Java智能卡技術(shù)解決安全問題

當(dāng)flags 值為1 時(shí),TJCVM 去調(diào)用與該方法對(duì)應(yīng)的C 方法;值為0 時(shí),TJCVM 將定位到該方法的函數(shù)體,對(duì)字節(jié)碼進(jìn)行解釋。類庫(kù)的設(shè)計(jì)采用了基于 token 的動(dòng)態(tài)鏈接過程。所謂“基于token 的動(dòng)態(tài)鏈接過程”是指為提高Java 智能卡應(yīng)用程序的獨(dú)立性,在解釋執(zhí)行指令時(shí),虛擬機(jī)首先將需要訪問的對(duì)象(例如類、方法等)轉(zhuǎn)化為與訪問對(duì)象對(duì)應(yīng)的符號(hào)(token),然后再將token 轉(zhuǎn)化為存儲(chǔ)被訪問對(duì)象的物理地址這一過程。動(dòng)態(tài)聯(lián)接減小了修改其他類時(shí)對(duì)本程序代碼的影響。在Java 智能卡應(yīng)用程序Applet 運(yùn)行時(shí),如果引用了外包中的方法,解釋器將獲得引用的外包的索引,以類和方法token 值作為索引標(biāo)記,通過CAP 文件中各組件中具體的包信息、類信息和方法信息,可以準(zhǔn)確地完成從token 值跳轉(zhuǎn)到被引用方法的具體實(shí)現(xiàn)。

3.1.3 可信Java 智能卡運(yùn)行環(huán)境

可信 Java 智能卡運(yùn)行環(huán)境扮演著決策者和調(diào)度者的角色,它根據(jù)Java 智能卡的具體狀態(tài)決定在什么時(shí)候調(diào)用哪個(gè)功能模塊,并且為各模塊提供合適的運(yùn)行環(huán)境。下載到卡內(nèi)的 Applet,由Java 智能卡運(yùn)行環(huán)境控制運(yùn)行,其運(yùn)行狀態(tài)有以下幾種:

已安裝狀態(tài)

此狀態(tài)為應(yīng)用程序安裝并在卡上注冊(cè)后的狀態(tài)。

被選擇狀態(tài)

應(yīng)用程序只有被選擇后,才能被激活,進(jìn)入命令處理狀態(tài),與讀寫器間進(jìn)行交互。

命令處理狀態(tài)

在此狀態(tài)下,Java 智能卡與讀寫器進(jìn)行通信,執(zhí)行應(yīng)用程序中定義的process 方法。通過在應(yīng)用程序中重載此方法,即可完成不同的智能卡應(yīng)用功能。

取消選擇狀態(tài)

此狀態(tài)為應(yīng)用程序的非激活狀態(tài),直到該應(yīng)用程序被重新選擇為止。各狀態(tài)之間通過執(zhí)行不同的指令相互切換,運(yùn)行環(huán)境都會(huì)根據(jù)Applet 所處的具體狀態(tài),來判斷哪些功能模塊應(yīng)該執(zhí)行,哪些模塊不能執(zhí)行,哪些由系統(tǒng)自動(dòng)運(yùn)行,哪些由用戶調(diào)用,以及各模塊之間的執(zhí)行順序。

3.2 可信機(jī)制的構(gòu)建

可信計(jì)算的核心理念就是信任鏈的傳遞。TJC 中信任鏈的傳遞如圖3 所示:

圖 3 信任鏈傳遞示意圖

信任鏈建立的前提條件是確定信任原點(diǎn):三個(gè)可信根——可信度量根,可信報(bào)告根,可信存儲(chǔ)根。本方案中將BootLoader 作為可信度量根,并在Z32H256D32SU 芯片的EEPROM中開辟兩片獨(dú)立的空間分別作為可信存儲(chǔ)根和可信報(bào)告根。

BootLoader 在加電后最先被執(zhí)行,它負(fù)責(zé)驗(yàn)證硬件平臺(tái)和運(yùn)行時(shí)環(huán)境的完整性,初始化一些硬件寄存器,并加載運(yùn)行時(shí)環(huán)境。運(yùn)行時(shí)環(huán)境的標(biāo)準(zhǔn)值被固化在BootLoader 內(nèi),當(dāng)系統(tǒng)啟動(dòng)的時(shí)候,BootLoader 首先對(duì)運(yùn)行時(shí)環(huán)境進(jìn)行度量,然后將度量值與標(biāo)準(zhǔn)值比較,如果相同則將控制權(quán)移交給運(yùn)行時(shí)環(huán)境;如果不同,則禁止啟動(dòng)。

運(yùn)行時(shí)環(huán)境被加載后將一直占有 CPU 的控制權(quán),它負(fù)責(zé)度量類庫(kù),解釋器和各種管理組件,并負(fù)責(zé)調(diào)度各種可信服務(wù),如身份認(rèn)證和密鑰管理等。當(dāng)Applet 下載后,首先要被運(yùn)行時(shí)環(huán)境度量,只有在通過度量的情況下,才被執(zhí)行。

由 BootLoader 到運(yùn)行時(shí)環(huán)境,再到Applet,就建立起了一條可信鏈,這條信任鏈中的每個(gè)環(huán)境都是自主開發(fā)的,這樣就能保證卡內(nèi)環(huán)境的可信。

4 結(jié)論

本文探索性的將可信計(jì)算和 Java 智能卡技術(shù)相結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)了一款可信Java 智能卡,在很大程度上提高了卡片的安全性,同時(shí)為解決Java 智能卡的安全問題指出了一個(gè)新的方向。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19395

    瀏覽量

    230660
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7524

    瀏覽量

    164138
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2973

    瀏覽量

    104932
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RFID怎么接入可信計(jì)算平臺(tái)?

    為了對(duì)無線射頻識(shí)別技術(shù)進(jìn)行可信計(jì)算平臺(tái)的接入,我們?cè)?b class='flag-5'>可信網(wǎng)絡(luò)連接使用的協(xié)議標(biāo)準(zhǔn)基礎(chǔ)上,設(shè)計(jì)了基于分組密碼CBC 工作模式、ECB 工作模式對(duì)消息傳送提供加密,并且以ECC 來加強(qiáng)公開密鑰交換所
    發(fā)表于 09-29 09:01

    移動(dòng)通信中Java智能卡的主要特點(diǎn)是什么?

    移動(dòng)通信中Java智能卡的主要特點(diǎn)是什么?RMI技術(shù)與移動(dòng)通信中智能卡的RMI技術(shù)及其應(yīng)用
    發(fā)表于 05-26 06:40

    硬件安全是什么?

    硬件安全技術(shù)系列課程詳細(xì)介紹硬件安全相關(guān)的攻擊技術(shù)和抗攻擊設(shè)計(jì)技術(shù),包括芯片的安全架構(gòu)設(shè)計(jì)和
    發(fā)表于 07-29 09:25

    可信計(jì)算及其進(jìn)展

    詳細(xì)介紹了“可信計(jì)算”的發(fā)展歷程,總結(jié)了容錯(cuò)計(jì)算(可信系統(tǒng)與網(wǎng)絡(luò))、安全操作系統(tǒng)、網(wǎng)絡(luò)安全等領(lǐng)域的研究對(duì)
    發(fā)表于 05-14 19:36 ?18次下載

    針對(duì)安全問題可信計(jì)算研究

    本文采用安全狀態(tài)轉(zhuǎn)移模型化的方法對(duì)現(xiàn)有計(jì)算機(jī)安全體系結(jié)構(gòu)進(jìn)行分析。在體系結(jié)構(gòu)中引入引用監(jiān)控器來判斷主體請(qǐng)求是否合理。之后通過比較傳統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu)與
    發(fā)表于 06-17 10:41 ?16次下載

    可信計(jì)算平臺(tái)安全體系及應(yīng)用研究

    針對(duì)終端存在的諸多安全問題,可信計(jì)算可以從系統(tǒng)體系結(jié)構(gòu)上對(duì)終端進(jìn)行根本的安全防護(hù)。文章分析了一種可信計(jì)算平臺(tái)的終端安全體系,并討論了
    發(fā)表于 09-17 10:15 ?9次下載

    基于可信計(jì)算Java智能卡的設(shè)計(jì)與實(shí)現(xiàn)

    本文針對(duì)Java 智能卡安全問題,提出了一種新的解決方案——將可信計(jì)算技術(shù)引入到Java 智能卡
    發(fā)表于 01-07 12:26 ?23次下載

    基于Java智能卡可信度量模塊設(shè)計(jì)

    可信計(jì)算平臺(tái)只執(zhí)行被信任根擔(dān)保的程序,可信度量技術(shù)可信計(jì)算的核心和信任鏈傳遞的關(guān)鍵。但目前的復(fù)雜操作系統(tǒng)及應(yīng)用程序仍無法被有效度量、信任鏈仍無法真正向上傳
    發(fā)表于 01-09 15:39 ?20次下載

    移動(dòng)通信中Java智能卡RMI技術(shù)的開發(fā)

      1.引言   Java智能卡(Java Card)技術(shù)在第三代移動(dòng)通信(3G1 中有著極其廣泛的應(yīng)用。Jaya智能卡的出現(xiàn).使多個(gè)應(yīng)用
    發(fā)表于 10-10 10:39 ?4954次閱讀
    移動(dòng)通信中<b class='flag-5'>Java</b><b class='flag-5'>智能卡</b>RMI<b class='flag-5'>技術(shù)</b>的開發(fā)

    基于可信計(jì)算平臺(tái)的體系結(jié)構(gòu)研究與應(yīng)用

    介紹了可信計(jì)算平臺(tái)的關(guān)鍵部件組成及其功能,描述了可信計(jì)算平臺(tái)的特點(diǎn)和原理機(jī)制,以及目前可信計(jì)算平臺(tái)的研究進(jìn)展情況,分析了基于可信計(jì)算平臺(tái)技術(shù)
    發(fā)表于 09-26 15:40 ?0次下載
    基于<b class='flag-5'>可信計(jì)算</b>平臺(tái)的體系結(jié)構(gòu)研究與應(yīng)用

    基于RFID產(chǎn)品的可信計(jì)算平臺(tái)的完整性、安全性研究

    ,數(shù)據(jù)安全與身份認(rèn)證完全依賴于整個(gè)可信平臺(tái)的逐級(jí)密鑰分發(fā)。對(duì)于可信計(jì)算組成員的對(duì)等通信安全沒有涉及,也沒有專業(yè)的密碼小組,因此在安全協(xié)議與認(rèn)
    發(fā)表于 08-29 17:07 ?722次閱讀
    基于RFID產(chǎn)品的<b class='flag-5'>可信計(jì)算</b>平臺(tái)的完整性、<b class='flag-5'>安全</b>性研究

    Java智能卡EEPROM碎片整理算法

    Java智能卡EEPROM碎片整理算法(c語(yǔ)言嵌入式開發(fā)需要學(xué)的東西)-Java智能卡EEPROM碎片整理算法
    發(fā)表于 07-30 11:34 ?9次下載
    <b class='flag-5'>Java</b><b class='flag-5'>智能卡</b>EEPROM碎片整理算法

    中國(guó)可信計(jì)算密碼應(yīng)用標(biāo)準(zhǔn)與產(chǎn)品認(rèn)證

    可信計(jì)算密碼應(yīng)用標(biāo)準(zhǔn)我國(guó)可信計(jì)算密碼應(yīng)用相關(guān)技術(shù)標(biāo)準(zhǔn)自2007年開始起步,目前已經(jīng)形成比較完善的可信密碼模塊(TCM)標(biāo)準(zhǔn)體系,TCM以SM2、SM3、SM4商用密碼算法為核心,相關(guān)行
    的頭像 發(fā)表于 11-02 10:16 ?1635次閱讀
    中國(guó)<b class='flag-5'>可信計(jì)算</b>密碼應(yīng)用標(biāo)準(zhǔn)與產(chǎn)品認(rèn)證

    安全 新發(fā)展 | 國(guó)民技術(shù)可信計(jì)算再上新臺(tái)階

    可信計(jì)算NS350系列TCM2.0密碼安全新品 等可信計(jì)算相關(guān)產(chǎn)品與應(yīng)用案例在展會(huì)上尤為受到關(guān)注。 中國(guó)可信計(jì)算核心推動(dòng)者 國(guó)民技術(shù)是中
    的頭像 發(fā)表于 08-14 17:45 ?819次閱讀
    芯<b class='flag-5'>安全</b> 新發(fā)展 | 國(guó)民<b class='flag-5'>技術(shù)</b><b class='flag-5'>可信計(jì)算</b>再上新臺(tái)階

    國(guó)民技術(shù)可信計(jì)算再上新臺(tái)階

    8月11日,為期三天的密碼與安全行業(yè)盛會(huì)——“2023商用密碼大會(huì)”在鄭州國(guó)際會(huì)展中心降下帷幕,國(guó)民技術(shù)攜帶近40個(gè)優(yōu)秀安全應(yīng)用案例參展,全面展示了國(guó)民技術(shù)“芯
    的頭像 發(fā)表于 08-15 10:10 ?925次閱讀
    國(guó)民<b class='flag-5'>技術(shù)</b><b class='flag-5'>可信計(jì)算</b>再上新臺(tái)階