李 焰
?
移動設備訪問規則應用(ARA)安全性改進方案
李 焰1,2
1.深圳大學計算機軟件學院,廣東 深圳 518000 2.國民技術股份有限公司,廣東 深圳 518057
在2015年SmartCard API從版本2.4.0開始支持由全球平臺(GlobalPlatform GP)規范制定的訪問規則應用(Access Rule Applet,ARA)標準。該標準分為單應用訪問規則和多應用訪問規則。基于多應用訪問規則,結合RSA簽名及驗簽技術,提出了一種安全性改進方案以及應用示例。
ARA;訪問控制;RSA;APDU
在安全元件(SE)中定義的ARA架構中,移動設備對SE[1-2]應用程序的訪問,由在SE上安裝的ARA中定義的訪問控制規則控制。其中分為訪問通道主控制應用(ARA-M)和多個訪問通道從控制應用(ARA-C)[3]。主要完成工作步驟如下:
(1)在SE中預先安裝有ARA-M和多個ARA-C。
(2)通過Android簽名機制給移動客戶端簽名。
(3)往ARA-M/ARA-C應用中添加移動客戶端簽名HASH的訪問規則。
(4)當移動客戶端需要訪問SE中的應用時,連接SE的中間件程序就會先驗證移動客戶端的完整性,然后再訪問SE中的訪問通道主/從控制應用程序,查看該移動客戶端是否擁有訪問SE中該應用的權限。如果有權限,則允許訪問;反之,則拒絕訪問。
多應用訪問規則的ARA系統包括ARA-M和ARA-C兩個部分。規則分別存放在ARA-M和ARA-C中。ARA-M和ARA-C中的規則相互之間是完全獨立的狀態,ARA-C中的規則是由各自的應用發行商來維護管理的。這時就會出現規則發生沖突的情況。在目前的ARA系統中,對于沖突處理機制,采用的優先級不是基于它在獲取規則時的讀取到的順序,而是基于以下三個基本原則,優先級順序從高到低排列如下:
(1)具體規則優先級,即越具體化的規則優先級越高。
(2)與最終實體證書相關聯的規則具有優先級,即擁有HASH的規則比沒有HASH的規則優先級更高。
(3)嚴格的規則優先級,即拒絕訪問的規則比允許訪問的規則優先級更高。
從ARA的沖突處理機制中可以看出,為了更嚴格的控制,拒絕訪問的規則要比允許訪問的規則優先級別更高,這樣一來就會存在一個安全漏洞。這個漏洞有可能會出現某個惡意者擁有了對其中一個ARA-C的控制管理權限,然后惡意者就可以在這個ARA-C中添加其他發行商的移動客戶端無法正常訪問SE的規則[4]。惡意者需要3個步驟來實現對受害者的拒絕訪問攻擊:
(1)在惡意者的ARA-C中增加一條ARA-M的訪問規則。
(2)在擁有了ARA-M的訪問權限后,讀取ARA-M的全部規則。
(3)在讀取到的規則中尋找受害者的HASH和要訪問的AID值,然后在ARA-C中增加受害者的HASH拒絕訪問Applet的規則,以最終達到受害者無法訪問Applet的目的。
依據ARA的規范定義,我們可以具體實行以下3個步驟:
1.2.1 增加ARA-M的訪問規則
由于ARA-M的AID是固定的,而惡意者證書的HASH值是已知的,因此可以通過增加規則的方式增加對ARA-M的訪問權限。根據GP規范指定格式,我們組建增加ARA-M的訪問規則的APDU指令如圖1所示:

圖1 訪問ARA-M的訪問規則的APDU指令
1.2.2 讀取全部規則
在擁有了對ARA-M的訪問權限后,惡意者就可以從ARA-M處獲取全部規則,經過整理后如圖2所示:

圖2 全部規則的整理數據
從中我們可以看到,惡意者訪問ARA-M的規則也被讀取出來了。
1.2.3 添加拒絕訪問的規則
首先我們選取一個受害者的HASH和他要訪問的AID。我們選取HASH “93E47761236EF0121C44875711 273C65BC8C7A70”、AID“535558494E2E4D46”作為這次的測試對象。以下我們將增加拒絕訪問的規則到ARA-C中,如圖3所示:

圖3 拒絕訪問規則的APDU指令
添加拒絕訪問的規則后,我們再通過GAT DATA[Specific]指令讀取訪問規則,可以看出ARA-M根據優先級順序只返回了訪問權限被拒絕的規則,如圖4所示:

圖4 獲取指定規則的返回數據
從前面的內容我們可以看出ARA系統為了安全考慮,在規則出現沖突的情況下,優先使用拒絕的規則控制,但這同樣也給了惡意者有機可乘的漏洞。在實際運用中拒絕訪問的規則和APDU過濾的規則基本使用不到,相反還會產生安全漏洞。針對這個漏洞,本文提出了一個改進方案。改進方案的思路主要是使用RSA的簽名驗簽機制來控制訪問權限。
由應用發行商將自己的公鑰保存到自己的ARA-C中,在需要驗證移動客戶端的訪問權限時,通過訪問規則執行者(ACE)傳入應用發行商用自己的私鑰簽名的數據和簽名前的原數據傳入ARA。ARA通過保存的公鑰對傳入的數據進行驗證,ACE以驗證的結果來確定其是否擁有訪問權限。
執行順序如下:
(1)移動設備客戶端應用程序通過傳輸層的API來請求打開通信通道。
(2)這個請求被轉發到移動設備上的ACE模塊。
(3)ACE模塊使用新增加的verifyRule 指令傳遞給ARA-M,查找對應的規則并驗證。如果驗證通過,則客戶端應用程序有權限訪問SE中指定的應用,并進行后續的操作。如果驗證不通過,則拒絕訪問。
(4)訪問權限被授予,則控制執行模塊打開通道到SE,并執行所有必要的操作。
(5)APDU命令傳輸過程。
ARA_M應用必須實現ARAMShareble接口。ARA-C通過調用ARAMShareble接口方法來改變ARA-M中的freshTag和傳遞ARA-C的規則到ARA-M中,ARAMShareble接口定義如圖5所示(提供的是源碼):

圖5 ARAMShareble接口類
(1)功能描述。該函數用于在ARA-M對指定的訪問規則進行驗證。通過此函數首先使用ARA-M的超級規則進行驗證,驗證成功后就直接返回。如果驗證失敗,就通過傳入的AID查找規則。如果查不到,就返回0x6A83的錯誤碼;查到后,使用對應的公鑰對數據進行簽名驗證。當驗證成功就返回0x9000成功碼;如果驗證失敗就返回0x6982的錯誤碼。
(2)參數說明。rule用于存放規則的對象,包括ARA-C的AID、rsaPubKey以及關聯的AID。
(3)返回值。0x9000表示驗證成功,0x6A83表示沒有查找到對應規則,0x6982表示驗證失敗。
(4)異常信息包括以下幾種:Security Exception,Index Out Of Bounds Exception,Array Index Out Of Bounds Exception。
在移動支付越來越普及的今天,移動客戶端與SE之間的訪問安全控制重要性日益凸顯。本文根據?GP組織制定的ARA標準,提出了一套安全性改進方案,并針對此方案列出了實現方式和實例代碼。
[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—),男,工程師,現就讀于廣東深圳大學,研究方向為軟件工程,現在從事通信智能卡和手機終端,安全訪問控制研究工作。