李 焰
?
移動設備訪問規(guī)則應用(ARA)安全性改進方案
李 焰1,2
1.深圳大學計算機軟件學院,廣東 深圳 518000 2.國民技術股份有限公司,廣東 深圳 518057
在2015年SmartCard API從版本2.4.0開始支持由全球平臺(GlobalPlatform GP)規(guī)范制定的訪問規(guī)則應用(Access Rule Applet,ARA)標準。該標準分為單應用訪問規(guī)則和多應用訪問規(guī)則?;诙鄳迷L問規(guī)則,結合RSA簽名及驗簽技術,提出了一種安全性改進方案以及應用示例。
ARA;訪問控制;RSA;APDU
在安全元件(SE)中定義的ARA架構中,移動設備對SE[1-2]應用程序的訪問,由在SE上安裝的ARA中定義的訪問控制規(guī)則控制。其中分為訪問通道主控制應用(ARA-M)和多個訪問通道從控制應用(ARA-C)[3]。主要完成工作步驟如下:
(1)在SE中預先安裝有ARA-M和多個ARA-C。
(2)通過Android簽名機制給移動客戶端簽名。
(3)往ARA-M/ARA-C應用中添加移動客戶端簽名HASH的訪問規(guī)則。
(4)當移動客戶端需要訪問SE中的應用時,連接SE的中間件程序就會先驗證移動客戶端的完整性,然后再訪問SE中的訪問通道主/從控制應用程序,查看該移動客戶端是否擁有訪問SE中該應用的權限。如果有權限,則允許訪問;反之,則拒絕訪問。
多應用訪問規(guī)則的ARA系統(tǒng)包括ARA-M和ARA-C兩個部分。規(guī)則分別存放在ARA-M和ARA-C中。ARA-M和ARA-C中的規(guī)則相互之間是完全獨立的狀態(tài),ARA-C中的規(guī)則是由各自的應用發(fā)行商來維護管理的。這時就會出現(xiàn)規(guī)則發(fā)生沖突的情況。在目前的ARA系統(tǒng)中,對于沖突處理機制,采用的優(yōu)先級不是基于它在獲取規(guī)則時的讀取到的順序,而是基于以下三個基本原則,優(yōu)先級順序從高到低排列如下:
(1)具體規(guī)則優(yōu)先級,即越具體化的規(guī)則優(yōu)先級越高。
(2)與最終實體證書相關聯(lián)的規(guī)則具有優(yōu)先級,即擁有HASH的規(guī)則比沒有HASH的規(guī)則優(yōu)先級更高。
(3)嚴格的規(guī)則優(yōu)先級,即拒絕訪問的規(guī)則比允許訪問的規(guī)則優(yōu)先級更高。
從ARA的沖突處理機制中可以看出,為了更嚴格的控制,拒絕訪問的規(guī)則要比允許訪問的規(guī)則優(yōu)先級別更高,這樣一來就會存在一個安全漏洞。這個漏洞有可能會出現(xiàn)某個惡意者擁有了對其中一個ARA-C的控制管理權限,然后惡意者就可以在這個ARA-C中添加其他發(fā)行商的移動客戶端無法正常訪問SE的規(guī)則[4]。惡意者需要3個步驟來實現(xiàn)對受害者的拒絕訪問攻擊:
(1)在惡意者的ARA-C中增加一條ARA-M的訪問規(guī)則。
(2)在擁有了ARA-M的訪問權限后,讀取ARA-M的全部規(guī)則。
(3)在讀取到的規(guī)則中尋找受害者的HASH和要訪問的AID值,然后在ARA-C中增加受害者的HASH拒絕訪問Applet的規(guī)則,以最終達到受害者無法訪問Applet的目的。
依據ARA的規(guī)范定義,我們可以具體實行以下3個步驟:
1.2.1 增加ARA-M的訪問規(guī)則
由于ARA-M的AID是固定的,而惡意者證書的HASH值是已知的,因此可以通過增加規(guī)則的方式增加對ARA-M的訪問權限。根據GP規(guī)范指定格式,我們組建增加ARA-M的訪問規(guī)則的APDU指令如圖1所示:
圖1 訪問ARA-M的訪問規(guī)則的APDU指令
1.2.2 讀取全部規(guī)則
在擁有了對ARA-M的訪問權限后,惡意者就可以從ARA-M處獲取全部規(guī)則,經過整理后如圖2所示:
圖2 全部規(guī)則的整理數據
從中我們可以看到,惡意者訪問ARA-M的規(guī)則也被讀取出來了。
1.2.3 添加拒絕訪問的規(guī)則
首先我們選取一個受害者的HASH和他要訪問的AID。我們選取HASH “93E47761236EF0121C44875711 273C65BC8C7A70”、AID“535558494E2E4D46”作為這次的測試對象。以下我們將增加拒絕訪問的規(guī)則到ARA-C中,如圖3所示:
圖3 拒絕訪問規(guī)則的APDU指令
添加拒絕訪問的規(guī)則后,我們再通過GAT DATA[Specific]指令讀取訪問規(guī)則,可以看出ARA-M根據優(yōu)先級順序只返回了訪問權限被拒絕的規(guī)則,如圖4所示:
圖4 獲取指定規(guī)則的返回數據
從前面的內容我們可以看出ARA系統(tǒng)為了安全考慮,在規(guī)則出現(xiàn)沖突的情況下,優(yōu)先使用拒絕的規(guī)則控制,但這同樣也給了惡意者有機可乘的漏洞。在實際運用中拒絕訪問的規(guī)則和APDU過濾的規(guī)則基本使用不到,相反還會產生安全漏洞。針對這個漏洞,本文提出了一個改進方案。改進方案的思路主要是使用RSA的簽名驗簽機制來控制訪問權限。
由應用發(fā)行商將自己的公鑰保存到自己的ARA-C中,在需要驗證移動客戶端的訪問權限時,通過訪問規(guī)則執(zhí)行者(ACE)傳入應用發(fā)行商用自己的私鑰簽名的數據和簽名前的原數據傳入ARA。ARA通過保存的公鑰對傳入的數據進行驗證,ACE以驗證的結果來確定其是否擁有訪問權限。
執(zhí)行順序如下:
(1)移動設備客戶端應用程序通過傳輸層的API來請求打開通信通道。
(2)這個請求被轉發(fā)到移動設備上的ACE模塊。
(3)ACE模塊使用新增加的verifyRule 指令傳遞給ARA-M,查找對應的規(guī)則并驗證。如果驗證通過,則客戶端應用程序有權限訪問SE中指定的應用,并進行后續(xù)的操作。如果驗證不通過,則拒絕訪問。
(4)訪問權限被授予,則控制執(zhí)行模塊打開通道到SE,并執(zhí)行所有必要的操作。
(5)APDU命令傳輸過程。
ARA_M應用必須實現(xiàn)ARAMShareble接口。ARA-C通過調用ARAMShareble接口方法來改變ARA-M中的freshTag和傳遞ARA-C的規(guī)則到ARA-M中,ARAMShareble接口定義如圖5所示(提供的是源碼):
圖5 ARAMShareble接口類
(1)功能描述。該函數用于在ARA-M對指定的訪問規(guī)則進行驗證。通過此函數首先使用ARA-M的超級規(guī)則進行驗證,驗證成功后就直接返回。如果驗證失敗,就通過傳入的AID查找規(guī)則。如果查不到,就返回0x6A83的錯誤碼;查到后,使用對應的公鑰對數據進行簽名驗證。當驗證成功就返回0x9000成功碼;如果驗證失敗就返回0x6982的錯誤碼。
(2)參數說明。rule用于存放規(guī)則的對象,包括ARA-C的AID、rsaPubKey以及關聯(lián)的AID。
(3)返回值。0x9000表示驗證成功,0x6A83表示沒有查找到對應規(guī)則,0x6982表示驗證失敗。
(4)異常信息包括以下幾種:Security Exception,Index Out Of Bounds Exception,Array Index Out Of Bounds Exception。
在移動支付越來越普及的今天,移動客戶端與SE之間的訪問安全控制重要性日益凸顯。本文根據?GP組織制定的ARA標準,提出了一套安全性改進方案,并針對此方案列出了實現(xiàn)方式和實例代碼。
[1]李琳.移動支付標準體系分析[EB/OL].http://m.mpaypass.com.cn/news/201507/17103436.html,2015.
[2]陳小梅.移動支付體系的安全風險分析與研究[D].北京:北京郵電大學,2014.
[3]Anwar W,Lindskog D, Zavarsky P, et al. Redesi- gning secure element access control for NFC enabled android smartphones using mobile trusted computing[C].international conference on information society,2013.
[4]黃健,黃健文,劉兆元,等.Android客戶端訪問控制技術研究[EB/OL].http://www.xzbu.com/8/view- 5903207.htm
Security Improvement Scheme for Mobile Device Access Rule Application
Li Yan1,2
1.School of Computer Software, Shenzhen University, Guangdong Shenzhen 518000 2. Nationz Technologies Stock Corporation, Guangdong Shenzhen 518000
In 2015, SmartCard API began to support global norms formulated by the platform access rules using standard from version 2.4.0.The standard is divided into single application access rules and application access rules.The access rules based on multi application, combined with the RSA signature and signature verification technology, proposes an improved security scheme and Application example.
ARA; Access control; RSA; APDU
TP393.08
A
1009-6434(2017)12-0015-03
李焰(1979—),男,工程師,現(xiàn)就讀于廣東深圳大學,研究方向為軟件工程,現(xiàn)在從事通信智能卡和手機終端,安全訪問控制研究工作。