一種新的智能卡安全通信機制
文章出處:http://m.compasssalessolutions.com 作者: 人氣: 發(fā)表時間:2011年12月11日
摘要:通信協(xié)議的改進是目前智能卡通信安全的研究熱點之一,其目的是保障與終端通信的智能卡真實、可靠。而對于智能卡來說,現(xiàn)有安全體系并沒有建立起與終端通信的安全通信通道。這樣就使得攻擊者可以截獲、修改、偽造指令,從而危及智能卡安全。在智能卡原有安全體系的基礎上,增加安全會話要素的定義,通過結(jié)合原有安全狀態(tài)和安全屬性概念,可以建立起智能卡與終端之間的安全通信通道,從而形成了一種新的智能卡安全通信機制。
智能卡作為一種保障電子政務、電子商務安全的手段,其應用范圍越來越廣。美國ROCKVILLE 市場調(diào)研組最新發(fā)布了關于智能卡的RNCOS 報告[1],其報告表示在2012 年智能卡市場將增長13%。而且,單卡多應用是智能卡的發(fā)展趨勢。多應用智能卡與單應用智能卡相比,減少了數(shù)據(jù)的冗余,降低了使用成本。同時,多應用卡的安全性要求更高,需要保障各應用之間保持相互的獨立性[2]。如何兼顧可靠性和靈活性,如何兼顧使用過程中的便利和數(shù)據(jù)安全,這都是智能卡發(fā)展中需要解決的問題。智能卡的安全性由其安全體系加以保障, 對智能卡安全體系的研究目前主要集中在安全訪問控制模型和設備認證模型等方面。傳統(tǒng)的訪問控制技術都是建立在口令識別的基礎上,這種機制很容易導致用戶賬戶和密碼被竊取、口令被修改,以及傳輸過程中重要信息被竊取等問題。為了解決其不足,目前普遍采用了基于智能卡的訪問控制策略,以提高系統(tǒng)的安全性[3]。然而,考慮到個人終端容易遭到病毒木馬攻擊,終端很可能處于不安全的狀態(tài)。此時,當一個智能卡應用開始執(zhí)行之后,如何鑒別當前發(fā)送指令的終端應用程序是否可信? 當前發(fā)送指令的應用程序是否就是之前通過智能卡安全體系驗證的應用程序? 這些問題無法通過傳統(tǒng)的智能卡安全體系加以解決。本文通過引入通信安全會話的概念,提出了智能卡安全會話的定義,并給出了完整的安全通信機制流程。
1 智能卡應用安全
1.1 智能卡安全體系
智能卡的安全體系是智能卡的COS(Card Operating System)中一個極為重要的部分,包括三大部分:安全屬性,安全狀態(tài)以及安全機制[4]:
1) 安全屬性是智能卡執(zhí)行某個指令所需要的一些條件,只有智能卡滿足了這些條件,該指令才是可以執(zhí)行的。
2) 安全狀態(tài)是指智能卡在當前所處的一種安全級別,這種安全級別是在智能卡進行完復位應答或者是在其處理完某操作指令之后得到的。
3) 安全機制是安全狀態(tài)實現(xiàn)轉(zhuǎn)移所采用的轉(zhuǎn)移方法和手段,通常包括通行字鑒別,密碼鑒別,數(shù)據(jù)鑒別及數(shù)據(jù)加密等。
1.2 智能卡內(nèi)部文件安全體系
智能卡的安全體系在其內(nèi)部文件管理上也得以體現(xiàn)。按ISO/IEC 7816 標準規(guī)定,智能卡中的數(shù)據(jù)在用戶存儲器中以樹型文件結(jié)構(gòu)的形式組織存放[5]。智能卡文件的安全屬性是指對某個文件或者文件的一部分進行某種操作時必須達到的狀態(tài),有時稱為訪問權(quán)限[6]。智能卡文件的訪問權(quán)限是在文件創(chuàng)立時指定的,例如,密鑰文件的安全屬性是在密鑰寫入時指定的。通過設置文件的安全狀態(tài)和安全屬性,可以有效地控制文件的讀寫操作,從而保證數(shù)據(jù)的私密性。
1.3 智能卡的應用控制流程
結(jié)合智能卡的安全體系和文件系統(tǒng),我們可以將一個普通應用的具體流程表述如下:
1) 每個應用由一些具體的指令組成,這些指令通常都是對智能卡內(nèi)文件的操作。指令的執(zhí)行有一定的先后順序,后一個指令的執(zhí)行必須建立在前一個指令完成的基礎上;
2) 和應用相關的每個智能卡文件擁有自己的安全屬性,這些屬性規(guī)定了指令對文件進行操作前應滿足的安全條件。在對文件進行操作前,智能卡COS 會檢查當前安全狀態(tài)是否滿足相應的安全條件;
3) 每個指令在訪問某個具體文件前,必須符合一定的安全條件。一旦該條件被滿足,指令就可以執(zhí)行,并依據(jù)相應的安全機制改變文件當前的安全狀態(tài);
4) 當指令執(zhí)行發(fā)生錯誤或者一個應用的所有指令都執(zhí)行完畢, 智能卡的安全狀態(tài)被重置為初始安全狀態(tài)。
以上描述的單一應用工作流程可以用圖1 表示。在應用結(jié)束前, 隨著指令的執(zhí)行,文件的安全狀態(tài)被改變,指令所具備的文件訪問權(quán)限逐步提升,以滿足應用需要。
2 智能卡的安全會話
2.1 安全會話的提出背景
在智能卡安全體系的具體內(nèi)容里,大部分實現(xiàn)都是基于對智能卡的身份認證,以保證終端的安全。從智能卡的角度來看,也面臨類似的安全問題,即如何確認當前發(fā)送指令的終端應用程序和上一次通過智能卡安全體系驗證的終端應用程序是同一個, 例如進行文件操作的指令是否是前一個改變文件操作模式的指令的合法后繼操作等。在圖1 所示的單個應用工作流程圖中,現(xiàn)有安全體系并不能保障是同一個應用導致的狀態(tài)遷移,從而可能存在以下攻擊方式:
1) 旁路攻擊:當合法進程以共享模式與智能卡交互、通過安全驗證后,智能卡安全狀態(tài)會提升并保持一定時間,在應用操作結(jié)束前,非法進程就會利用已提升的智能卡安全狀態(tài)訪問智能卡,甚至替換卡內(nèi)的密鑰文件,阻止合法操作的順利進行等;如果完全禁止共享模式,則會影響多個應用同時對智能卡的訪問。
2) 中間人攻擊:攻擊者通過各種技術手段將攻擊軟件或硬件裝置放置在智能卡與終端合法應用程序之間,在智能卡和真正的應用程序之間傳遞消息,同時監(jiān)視、篡改它們之間通信的內(nèi)容。
2.2 安全會話
為了防止出現(xiàn)類似攻擊,考慮在現(xiàn)有智能卡安全體系中,引入通信安全會話的概念,增加安全會話要素,以此來提高智能卡與終端通信的安全性。
智能卡安全會話是指在一定時間內(nèi)建立的、在智能卡與終端應用程序間的一種半永久性的、帶有自動回收機制的、交互式的信息交換方式。
安全會話將應用程序與自身發(fā)出的不同請求關聯(lián)起來,從而使得不同的應用程序的安全會話是相互獨立的;另外,安全會話一旦建立,就應當一直存在,直到應用程序操作結(jié)束,或者其他使得安全會話終止的情況出現(xiàn)。
智能卡安全會話解決了兩個主要問題:
1) 通信的唯一性。即在一個安全會話里,與智能卡通信的對象是確定的,不同的安全會話ID 標明不同的通信對象,來自同一終端的不同的應用程序?qū)煌陌踩珪挕?br />
2) 通信狀態(tài)的一致性。在智能卡和多個應用程序通信時,保持安全會話狀態(tài)的一致性是很重要的;否則,當用戶在一個新的、而不是一開始保存安全會話信息的應用程序提交訪問請求的時候,智能卡會因為無法獲知原來的安全會話狀態(tài)而產(chǎn)生問題。安全會話的建立,使得不同應用程序與智能卡通信時所影響到的智能卡安全狀態(tài)之間彼此獨立,保障了通信狀態(tài)的一致性。
第1頁第2頁 |