国内永久免费crm系统网站_日韩国产_天天日天天色天天操_国产精品亚洲最大_免费在线1区2区3区_无人区乱码一线二线久久久久_国产人妖在线视频_特级黄色毛片_日韩乱码精品字幕一区_日日搞人人爱天天搞_国产影片免费网站推荐_国产午夜精品电影_伊人91_蜜桃羞羞小视频在线观看_91成品人网页进入入口_夜夜草最新地址

物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

金融智能卡操作系統(tǒng)安全體系研究

作者:楊帆, 張煥國(guó)
來源:中國(guó)一卡通網(wǎng)
日期:2009-10-14 09:26:25
摘要:討論了通用智能卡操作系統(tǒng)COS 的安全體系, 圍繞該體系的三大功能: 文件操作、認(rèn)證系統(tǒng)、加/ 解密展開論述。金融智能卡操作系統(tǒng)是建立在通用COS 基礎(chǔ)上集成了銀行應(yīng)用的COS。結(jié)合實(shí)踐的JETCOS 智能卡操作系統(tǒng)分析了金融智能卡COS 在交易流程和應(yīng)用過程中的安全性。

    智能卡又稱為IC 卡( Integrated circuit Card) , 即集成電路卡。根據(jù)卡中使用的集成電路的不同可以分為存儲(chǔ)器卡、邏輯加密卡和CPU卡。由于CPU卡中集成了中央處理器CPU、存儲(chǔ)器和芯片操作系統(tǒng)( Chip Operating System, COS) , 構(gòu)成一個(gè)完整的計(jì)算機(jī)系統(tǒng), 具有獨(dú)立的數(shù)據(jù)處理能力, 因此安全性大大增強(qiáng), 從而得到了廣泛的應(yīng)用, 成為IC 卡中的主流產(chǎn)品。本文主要針對(duì)CPU 卡進(jìn)行討論。COS 建立在CPU、存儲(chǔ)器等硬件之上, 是管理芯片資源和實(shí)現(xiàn)安全保密的操作系統(tǒng)。它的主要功能是: 控制智能卡和外界的信息交換, 管理智能卡內(nèi)的存儲(chǔ)器, 并在卡內(nèi)部完成各種命令的處理。

    1 安全體系

    根據(jù)接觸式集成電路( IC) 卡國(guó)際標(biāo)準(zhǔn)ISO7816-4, 智能卡安全體系包括三部分: 安全狀態(tài)( Security Status) 、安全屬性( Security Attributes) 以及安全機(jī)制( Security Mechanisms) 。安全狀態(tài)是指智能卡當(dāng)前所處的安全級(jí)別, 即當(dāng)前安全狀態(tài)寄存器的值。安全屬性又稱為訪問權(quán)限, 即在進(jìn)行某種操作時(shí)要求安全狀態(tài)寄存器的值是什么。安全機(jī)制從廣義上說是卡片支持的各種安全模式, 從狹義上說是安全狀態(tài)實(shí)現(xiàn)轉(zhuǎn)移所采用的方法和手段。一種安全狀態(tài)通過上述安全機(jī)制轉(zhuǎn)移到另一種狀態(tài), 把該安全狀態(tài)與某個(gè)安全屬性相比較, 如果一致, 則表明能夠執(zhí)行該屬性對(duì)應(yīng)的命令; 如果不一致, 則相關(guān)命令不能被執(zhí)行, 從而達(dá)到了安全控制的目的。這就是智能卡安全體系的基本工作原理, 如圖1 所示。 

智能卡安全體系

    安全機(jī)制是安全體系的關(guān)鍵, 廣義的安全機(jī)制主要涉及到文件操作、認(rèn)證系統(tǒng)、加/ 解密三大功能模塊。

    2 文件操作

    2. 1 基本文件結(jié)構(gòu)

    文件系統(tǒng)是COS 的基礎(chǔ)模塊, 它負(fù)責(zé)組織、管理、維護(hù)IC卡內(nèi)存儲(chǔ)的所有數(shù)據(jù)。根據(jù)ISO7816-4, COS 支持的文件類型為: 主文件( Master File, MF) 、目錄文件( Dedicated File, DF) 和基本文件( Elementary File, EF) 。主文件MF為文件系統(tǒng)的根,下面可以有多個(gè)目錄文件DF 和基本文件EF。目錄文件DF分為DDF 和ADF 兩種。DDF可以含有下級(jí)目錄ADF, 而ADF不能含有下級(jí)目錄文件。

    主文件MF 在IC 卡中唯一且必須存在。DDF 是指包含多個(gè)應(yīng)用的DF, 一個(gè)ADF則代表一個(gè)應(yīng)用, 任何一個(gè)DF 在物理上和邏輯上都保持獨(dú)立?;疚募﨓F 用于存放密鑰或用戶數(shù)據(jù), 分為密鑰文件和工作基本文件。

    2. 2 文件的訪問控制

    文件的訪問控制可采取鑒別寄存器方式和狀態(tài)機(jī)方式, 這里以鑒別寄存器方式為例。用兩個(gè)四位寄存器來表示安全狀態(tài): 一個(gè)寄存器稱為MF 的安全狀態(tài)寄存器, 另一個(gè)寄存器為當(dāng)前DF的安全狀態(tài)寄存器。每個(gè)寄存器的初始值是0, 取值安全狀態(tài)員安全狀態(tài)圓執(zhí)行命令符合命令要求的安全屬性鑰命令拒絕安全機(jī)制再暈圖員智能卡安全體系范圍是0 ~F 之間的某一個(gè)值。文件有兩種不同的訪問控制權(quán)限AC0, AC1。AC0 是使用權(quán)限, AC1 是修改權(quán)限, 分別用一個(gè)字節(jié)表示。當(dāng)前安全狀態(tài)寄存器的值大于AC 字節(jié)的低半字節(jié)小于其高半字節(jié)時(shí), 該文件的相應(yīng)讀、寫權(quán)限在該安全狀態(tài)下被滿足, 則能進(jìn)行相關(guān)操作。COS在建立文件時(shí)指定其AC0和AC1 的值來對(duì)文件的訪問權(quán)限進(jìn)行設(shè)定, 通過口令校驗(yàn)和外部認(rèn)證兩條命令可以改變安全狀態(tài)寄存器的值, 從而利用安全機(jī)制實(shí)現(xiàn)對(duì)文件的訪問控制。

    3 認(rèn)證系統(tǒng)

    3. 1 用戶鑒別

    用戶鑒別( Verify) , 也稱為口令校驗(yàn), 是指智能卡對(duì)其持有者合法性的驗(yàn)證, 以減少被非法用戶冒用的可能。具體實(shí)現(xiàn)上, 由用戶向智能卡出示只有他本人才知道的通行字PIN, 并由智能卡對(duì)該P(yáng)assword 的正確性進(jìn)行判斷。如果正確, 則驗(yàn)證通過, 改變智能卡當(dāng)前的安全狀態(tài)為PIN后續(xù)狀態(tài)從而用戶獲得相應(yīng)使用權(quán)限; 如果不正確, 則錯(cuò)誤計(jì)數(shù)器的值減1, 若錯(cuò)誤嘗試次數(shù)達(dá)到錯(cuò)誤計(jì)數(shù)器的上限, 則卡會(huì)自動(dòng)鎖定。

    3. 2 內(nèi)部認(rèn)證和外部認(rèn)證

    內(nèi)部認(rèn)證( Internal Authentication) , 是指讀寫設(shè)備對(duì)智能卡的合法性進(jìn)行的驗(yàn)證; 外部認(rèn)證( External Authentication) , 是指智能卡對(duì)讀寫設(shè)備的合法性進(jìn)行的驗(yàn)證。內(nèi)、外部認(rèn)證的原理是合法的讀寫設(shè)備和智能卡應(yīng)該共有相應(yīng)的內(nèi)、外部認(rèn)證密鑰, 偽造的讀寫設(shè)備或智能卡無法獲得相應(yīng)密鑰。具體實(shí)現(xiàn)上, 是通過讀寫設(shè)備和卡雙方同時(shí)用對(duì)稱加密算法對(duì)一個(gè)隨機(jī)數(shù)進(jìn)行加密運(yùn)算, 然后判斷雙方運(yùn)算結(jié)果的一致性或者通過一方對(duì)隨機(jī)數(shù)加密另一方進(jìn)行解密來達(dá)到認(rèn)證的目的。類似于口令校驗(yàn), 外部認(rèn)證通過后, 當(dāng)前安全狀態(tài)寄存器的值變成外部認(rèn)證密鑰的后續(xù)狀態(tài)。

    3. 3 安全報(bào)文傳送

    為保證卡與外界傳輸?shù)男畔⒌陌踩? 除了明文方式傳遞數(shù)據(jù)外, COS 提供安全報(bào)文傳送方式, 其目的在于保證數(shù)據(jù)的可靠性、完整性和對(duì)發(fā)送方的認(rèn)證。數(shù)據(jù)完整性和對(duì)發(fā)送方的認(rèn)證通過使用消息認(rèn)證碼MAC( Message Authentication Code)來實(shí)現(xiàn)。數(shù)據(jù)的可靠性通過對(duì)數(shù)據(jù)域的加密得到保證。 

    MAC 是消息內(nèi)容和秘密鑰的公開函數(shù), 其輸出是定長(zhǎng)的短數(shù)據(jù)塊: MAC = C( M, K) 。其中M是消息內(nèi)容, K 是通信雙方共享的秘密鑰, C 是MAC 值的生成算法。算法C 要求已知M1 和C( M1 , K) , 無法構(gòu)造出滿足C( M2 , K) = C( M1 , K) 的報(bào)文M2 , 所以MAC 能唯一鑒別原報(bào)文。COS支持如下兩種安全報(bào)文傳送方式:

    ( 1) 線路認(rèn)證方式。終端對(duì)要發(fā)送給卡的整條命令計(jì)算MAC 值, 并附加在傳輸?shù)拿顢?shù)據(jù)的尾部, 即A→B: M‖ C( M, K) , 卡收到命令后用秘密鑰K 對(duì)接收到的M求MAC 值,并與C( M, K) 比較, 從而驗(yàn)證MAC 值的正確性, 只有校驗(yàn)正確的數(shù)據(jù)才予以接收; 卡如果有返回給終端的應(yīng)答數(shù)據(jù), 也同樣以線路認(rèn)證方式發(fā)送。如果M 被竄改, 收方據(jù)此計(jì)算出的MAC 值就與發(fā)方傳送過來正確值不同; 如果有冒充的非法發(fā)送端發(fā)送消息, 由于它得不到秘密鑰K, 所以也無法得到正確的MAC 值。因此這種方式能保證傳輸數(shù)據(jù)的完整性和發(fā)送方的真實(shí)性。

    ( 2) 線路加密認(rèn)證方式。終端對(duì)要發(fā)送給卡的命令數(shù)據(jù)域加密, 然后再對(duì)整條命令( 包括命令頭和加密后的命令數(shù)據(jù)域) 計(jì)算MAC 值, 并附加在被加密了的命令數(shù)據(jù)的尾部, 即A→B: E( M, K2 ) ‖C( E( M, K2 ) , K1 ) , 卡收到命令后首先用K1驗(yàn)證MAC 值的正確性, 再用K2 對(duì)命令的DATA 域數(shù)據(jù)解密,恢復(fù)命令數(shù)據(jù)域的明文; 卡如果有返回給終端的應(yīng)答數(shù)據(jù), 也同樣以線路加密認(rèn)證方式發(fā)送。由于傳送的是加密后的密文,僅由收、發(fā)雙方共享K2 , 所以線路加密認(rèn)證方式除了提供線路認(rèn)證方式的優(yōu)點(diǎn)外, 還能保證數(shù)據(jù)的可靠性。

    4 加 / 解密

    4. 1 密鑰管理

    COS 的密鑰管理涉及密鑰的生成、分配、存儲(chǔ)和使用。根據(jù)密鑰分級(jí)原則, 把智能卡中涉及的密鑰劃分為三級(jí): 主密鑰、二級(jí)密鑰、初級(jí)密鑰。高級(jí)密鑰生成低級(jí)密鑰。低級(jí)密鑰由高級(jí)密鑰管理控制, 可以減少直接保密的密鑰數(shù)量, 簡(jiǎn)化密鑰管理, 保證密鑰安全。主密鑰由應(yīng)用管理機(jī)構(gòu)產(chǎn)生和維護(hù), 二級(jí)密鑰由主密鑰通過某種算法分散到每張IC 卡中, 過程密鑰由每次交易具體涉及的數(shù)據(jù)產(chǎn)生。

    根據(jù)全程安全原則, 安全管理貫穿密鑰的生成、分配、存儲(chǔ)和使用的過程。

    主密鑰是在安全保密的情況下由管理機(jī)構(gòu)產(chǎn)生的真隨機(jī)序列。根據(jù)責(zé)任分離原則, 一個(gè)密鑰專職一種功能, 所以根據(jù)COS 應(yīng)用中涉及的業(yè)務(wù)種類, 應(yīng)生成對(duì)應(yīng)個(gè)數(shù)的主密鑰。子密鑰, 即二級(jí)密鑰, 由對(duì)應(yīng)的主密鑰對(duì)每張用戶卡唯一的應(yīng)用序列號(hào)進(jìn)行加密生成。過程密鑰, 即初級(jí)密鑰, 由二級(jí)密鑰對(duì)每次交易的某些具體數(shù)據(jù)進(jìn)行加密生成。

     主密鑰采用人工分配的方式, 以確保高安全性。子密鑰在管理機(jī)構(gòu)由主密鑰產(chǎn)生, 再下載到每張卡中。過程密鑰在卡中生成, 采用“一次一密”方式, 只在當(dāng)次交易有效, 保護(hù)該次交易的敏感數(shù)據(jù)。

    主密鑰存儲(chǔ)在管理機(jī)構(gòu)中, 生存周期長(zhǎng), 安全性要求最高,存儲(chǔ)在高度安全的專用密碼裝置中。子密鑰存儲(chǔ)在MF或DF下的密鑰文件中, 在整個(gè)MF或DF的建立到刪除過程中有效。過程密鑰由于只對(duì)一次特定的交易有效, 所以生存周期短, 使用時(shí)動(dòng)態(tài)產(chǎn)生, 存儲(chǔ)在卡的內(nèi)存中, 使用完畢即銷毀。子密鑰和過程密鑰在卡中以非可見的形式存放, 任何時(shí)候都不能出卡, 不能被顯式讀取。COS 設(shè)定了每個(gè)密鑰的安全條件, 只有滿足特定的安全狀態(tài), 才能使用或修改該密鑰。當(dāng)某些密鑰( 如個(gè)人PIN) 受到非法攻擊時(shí), 還能夠自動(dòng)鎖定, 以確保密鑰的抗攻擊性。

    4. 2 密碼算法及應(yīng)用

    4. 2. 1 對(duì)稱密碼算法

    DES, 3DES, AES 是普遍使用的對(duì)稱密碼算法。COS 中涉及內(nèi)外部認(rèn)證、安全報(bào)文、生成過程密鑰等均用到了對(duì)稱密碼算法。圖2 說明安全報(bào)文傳送中MAC 基于DES 算法的生成過程。其中, D 表示被加密的數(shù)據(jù)被分成的八字節(jié)數(shù)據(jù)塊, ī表示異或, 最終得到的八個(gè)字節(jié)結(jié)果取左邊四個(gè)字節(jié)作為MAC 值。

    4. 2. 2 非對(duì)稱密碼算法

    利用公開密鑰密碼實(shí)現(xiàn)數(shù)字簽名方便安全, 如果COS 支持公開密鑰密碼, 由于其具有獨(dú)立的數(shù)據(jù)處理能力和良好的安全性, 則IC 卡可作為數(shù)字簽名的安全載體。用來簽名的私鑰保存在卡中, 并且任何情況下不能讀出。簽名的過程在卡中完成, 比在主機(jī)上用私鑰實(shí)現(xiàn)簽名更安全。目前可用于COS 的非對(duì)稱算法有RSA, ECC 等。出于對(duì)安全和速度的考慮, 一般不是對(duì)數(shù)據(jù)直接簽名, 而是對(duì)其哈希值進(jìn)行簽名。

    5 金融智能卡COS 的安全性

    金融智能卡操作系統(tǒng)是建立在通用COS 基礎(chǔ)上集成了銀行應(yīng)用的COS, 其中電子存折和電子錢包是兩種最主要的金融應(yīng)用, 能支持圈存、圈提、消費(fèi)、取現(xiàn)和修改透支限額五種類型的交易, 可用來代替流通領(lǐng)域的現(xiàn)金、支票, 成為電子貨幣的方便載體在金額領(lǐng)域使用, 所以對(duì)其安全性的要求更高。金融COS作為通用COS 的具體應(yīng)用, 除了在交易流程上依賴于通用COS的安全體系, 還有金融交易其特有的安全措施。下面結(jié)合JETCOS 詳細(xì)說明金融COS 的交易流程和應(yīng)用安全。

    5. 1 交易流程

    圈存是將銀行賬戶上的資金劃轉(zhuǎn)到電子存折或錢包的交易; 圈提是將電子存折中的資金劃轉(zhuǎn)到銀行賬戶的交易; 消費(fèi)是使用電子錢包或電子存折在銀行POS 機(jī)上消費(fèi)的交易; 取現(xiàn)是使用電子存折在銀行終端上支取現(xiàn)金的交易; 修改透支限額是修改電子存折透支限額的交易。以下以JETCOS 的電子存折圈存交易為例說明安全交易的流程( 圖3) 。 

    ( 1) 終端按照應(yīng)用協(xié)議數(shù)據(jù)單元( Application Protocol DataUnit, APDU) 的格式向IC 卡發(fā)圈存初始化命令啟動(dòng)圈存交易:CLA INS P1 P2 Lc DATA Le80 50 00 01 0B 密鑰標(biāo)識(shí)符+ 交易金額+ 終端機(jī)編號(hào)10由CLA, INS, P1, P2 共同指定該條命令是電子存折的圈存初始化, Lc 指示DATA 的長(zhǎng)度, Le 指示該命令完成后期望返回的數(shù)據(jù)長(zhǎng)度。

    ( 2) IC 卡進(jìn)行圈存初始化。首先將命令DATA 域中的交易金額加上存折的余額檢查是否超出存折存錢的上限, 如溢出則返回錯(cuò)誤碼“6985”( 金額上溢) , 否則繼續(xù)執(zhí)行; 然后根據(jù)DATA 域中的密鑰標(biāo)識(shí)符查找卡中的圈存密鑰, 利用此密鑰對(duì)產(chǎn)生的偽隨機(jī)數(shù)、聯(lián)機(jī)交易序號(hào)和“8000”加密生成過程密鑰;再用過程密鑰對(duì)交易金額、終端機(jī)編號(hào)等信息生成MAC1, 并向主機(jī)發(fā)送MAC1 和生成MAC1 的各項(xiàng), 以供主機(jī)驗(yàn)證IC 卡的合法性。由于每次交易的偽隨機(jī)數(shù)和交易序號(hào)不同, 所以過程密鑰也不同。采用“一次一密”的方式, 確保了當(dāng)次交易敏感數(shù)據(jù)的安全性。圈存初始化命令成功執(zhí)行后返回的響應(yīng)報(bào)文域?yàn)?DATA SW1 SW2原余額+ 聯(lián)機(jī)交易序號(hào)+ 密鑰版本號(hào)+ 算法標(biāo)識(shí)+ 偽隨機(jī)數(shù)+ MAC1 90 00其中DATA 域是傳遞給主機(jī)的數(shù)據(jù), SW 是返回碼, “9000”表示該命令成功執(zhí)行。

     ( 3) 主機(jī)進(jìn)行主機(jī)端的圈存處理。由于主機(jī)已經(jīng)裝載了圈存主密鑰, 所以主機(jī)可以根據(jù)卡的應(yīng)用序列號(hào)計(jì)算出該卡的圈存子密鑰, 再由IC 卡傳遞的DATA 生成過程密鑰和相應(yīng)的MAC 值與MAC1 比較, 如不相同則返回錯(cuò)誤碼“9302”( MAC錯(cuò)誤) , 否則繼續(xù)執(zhí)行, 從而保證了IC 卡傳遞數(shù)據(jù)的完整性和主機(jī)對(duì)IC 卡身份的認(rèn)證。確認(rèn)有效后主機(jī)從銀行賬戶中扣除圈存金額, 并產(chǎn)生報(bào)文鑒別碼MAC2, 用于IC 卡對(duì)主機(jī)進(jìn)行合法性的認(rèn)證。

    ( 4) 終端向IC 卡發(fā)圈存主過程命令, 其中DATA 域數(shù)據(jù)由主機(jī)端交易生成:CLA INS P1 P2 Lc DATA Le
80 52 00 00 0B 交易日期+ 交易時(shí)間+ MAC2 04

     ( 5) IC 卡進(jìn)行圈存主過程。利用當(dāng)次交易的過程密鑰和主機(jī)傳遞DATA 的相關(guān)項(xiàng)生成MAC 值, 從而驗(yàn)證MAC2 是否有效。確認(rèn)有效后, 完成實(shí)質(zhì)性交易: 交易金額加在余額上, 更新聯(lián)機(jī)交易序號(hào), 更新交易明細(xì)文件, 并用TAC 密鑰根據(jù)交易后的新余額、交易序號(hào)、交易時(shí)間等當(dāng)次交易相關(guān)信息生成當(dāng)次交易驗(yàn)證碼TAC( Transaction Authentication Code) , 用于主機(jī)對(duì)IC 卡端圈存交易成功與否進(jìn)行驗(yàn)證。圈存命令成功執(zhí)行后返回的響應(yīng)報(bào)文域?yàn)?DATA SW1 SW2TAC 90 00

    ( 6) IC 卡將TAC 傳遞給終端, 可供主機(jī)以后驗(yàn)證此次交易成功與否。

    5. 2 應(yīng)用安全

    ( 1) 交易狀態(tài)機(jī)。一個(gè)完整的金融交易包括交易初始化和交易主過程, 初始化和主過程必須是同一種類型的交易??ㄆ臓顟B(tài)有: 空閑狀態(tài), 圈存狀態(tài), 圈提狀態(tài), 消費(fèi)/ 取現(xiàn)狀態(tài)和修改狀態(tài)。僅當(dāng)交易初始化后進(jìn)入相應(yīng)的交易狀態(tài), 同一類型的交易主過程才能進(jìn)行。用內(nèi)存系統(tǒng)區(qū)PSW 這個(gè)字的低五位標(biāo)志五種狀態(tài)。例如卡片初始狀態(tài)是空閑態(tài), 執(zhí)行圈存初始化后, PSW 的b1 位被置為1, 即交易狀態(tài)為圈存態(tài)。執(zhí)行圈存主過程時(shí), 先檢查該位是否為1, 如果是, 則執(zhí)行圈存主過程, 執(zhí)行成功后置PSW 回空閑態(tài); 如果不是, 則返回錯(cuò)誤碼“6901”( 狀態(tài)無效) , 圈存主過程不被執(zhí)行。表1 說明交易狀態(tài)機(jī)的各種變化: 交易初始化可以在任何狀態(tài)下執(zhí)行, 執(zhí)行后交易狀態(tài)改變?yōu)槌跏蓟鄳?yīng)的狀態(tài); 交易主過程必須在相應(yīng)的交易狀態(tài)下才能執(zhí)行, 執(zhí)行后返回空閑態(tài); 如果交易主過程的類型和交易狀態(tài)不匹配, 則主過程不被執(zhí)行。取余額和取交易認(rèn)證可以在任何狀態(tài)下執(zhí)行, 并且不影響當(dāng)前交易狀態(tài)。

     表1 交易狀態(tài)變化 

    ( 2) PIN驗(yàn)證。通用COS 的用戶鑒別是指COS 對(duì)用戶身份的認(rèn)證, 并能改變當(dāng)前安全狀態(tài), 但用戶鑒別并不是必須的,這里的PIN驗(yàn)證是特定的金融交易類型要求的對(duì)用戶身份的驗(yàn)證。除了電子錢包消費(fèi)不用校驗(yàn)PIN, 其他各種交易類型都必須提交個(gè)人密碼( PIN) , 這里也是通過判斷PSW 值來檢查是否已經(jīng)校驗(yàn)PIN。PSW 的b9 位作為PINVer_OK 標(biāo)志位, 當(dāng)用戶從金融終端輸入合法的個(gè)人密碼, 通過口令校驗(yàn), 同時(shí)置該位為1。交易初始化時(shí)檢查該位是否為1, 如果是, 繼續(xù)執(zhí)行, 否則返回錯(cuò)誤碼“6982”( 安全狀態(tài)不滿足) 。

    ( 3) CRC 校驗(yàn)。交易初始化時(shí)從存折/ 錢包文件中讀取相關(guān)信息, 交易主過程時(shí)更新存折/ 錢包文件都需要讀寫FLASH存儲(chǔ)器, 再讀取前校驗(yàn)CRC, 更新后重新計(jì)算CRC 并寫入FLASH 中相關(guān)文件的頭部, 以便下次校驗(yàn), 從而保證了讀寫物理過程的安全性和文件的完整性。

     ( 4) 備份寫。智能卡能夠在交易處理時(shí), 包括拔卡或掉電的情況下, 保持?jǐn)?shù)據(jù)的完整性, 這需要保證每次交易的所有更新一次性完成。為此JETCOS 中在FLASH 中開辟FL_RESTOREBUF區(qū)作為寫入緩沖區(qū), 每次交易需要對(duì)FLASH 更新的數(shù)據(jù)不是直接更新, 而是先寫入FL_RESTOREBUF 區(qū), 并置標(biāo)志位FL_RESTORETAG 為0; 當(dāng)交易處理完, 調(diào)用RestoreData子過程, 檢查此時(shí)FL_ RESTORETAG 為0, 則從FL_ RESTOREBUF區(qū)依次更新到FLASH 的相應(yīng)地址, 如果都更新成功, 則重置標(biāo)志位FL_RESTORETAG 為1。更新FLASH 的過程中若遇到拔卡或掉電, COS 會(huì)在初始化時(shí)再次調(diào)用Restore-Data。如果第一次RestoreData 未進(jìn)行成功, 則FL_RESTORETAG為0, 那么重新更新FLASH 的相應(yīng)地址; 如果第一次RestoreData成功進(jìn)行, 則FL_RESTORETAG 為1, 那么不必再次恢復(fù)數(shù)據(jù)。這種機(jī)制保證了拔卡或掉電時(shí)更新數(shù)據(jù)的一致性。

    6 結(jié)束語

    COS 的安全性是基于軟件的安全, IC 卡系統(tǒng)的安全還需要對(duì)抗硬件攻擊、分析攻擊、應(yīng)用攻擊和系統(tǒng)攻擊等。智能卡,尤其是金融IC 卡, 目前在金融系統(tǒng)還未得到廣泛使用, 尚需要從硬件、穩(wěn)定性、使用環(huán)境各方面加強(qiáng)抗攻擊能力, COS 也必須相應(yīng)加強(qiáng)反調(diào)試跟蹤的能力。 

    ( 文/武漢大學(xué)計(jì)算機(jī)學(xué)院, 楊帆, 張煥國(guó))