一種實現與設備安全人機交互的方法和系統的制作方法
【專利摘要】本申請公開了一種實現與設備安全人機交互的方法和系統,其中所述方法包括:監控設備應用對繪圖應用編程接口API的調用;響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對;響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名;響應于所述身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。本發明能夠阻止惡意應用的欺騙行為,或者對潛在的風險提出警告,降低惡意攻擊的風險。
【專利說明】
_種實現與設備安全人機交互的方法和系統
技術領域
[0001]本申請涉及電數字數據處理領域,尤其涉及一種實現與設備安全人機交互的方法和系統。
【背景技術】
[0002]隨著移動軟件開發突飛猛進的發展,在移動設備上的應用越來越復雜,很多時候都需要創建負責的人機交互界面,用于用戶輸入信息,以及輸出反饋信息給用戶。在其中,很多時候用戶在界面上的輸入與界面上的輸出包含有用戶的身份信息,賬號信息,口令,密碼等對于用戶的數字安全極為敏感和重要的數據。舉例來說,電子支付環境下,用戶要輸入自己的賬號、卡號和密碼等極為敏感的數據。而在支付過程中,應用也會在界面上顯示例如賬號信息、賬戶余額、郵件地址、手機號碼、家庭地址等對用戶非常敏感的數據。
[0003]在交互的過程中,應用場景越復雜,涉及到的數據種類越多,數據的敏感程度越高,發生攻擊的風險就越大。
[0004]基于人機交互界面的攻擊方式常見的有:
[0005]a)惡意應用創建欺騙性的人機交互界面,在現實設備上,強行覆蓋于合法應用的上方,即在Z軸方向更小坐標處,從而使得用戶誤以為惡意應用的界面為合法應用所創建。當然惡意應用也可以在合法應用沒有啟動時創建欺騙性人機交互界面。用戶在惡意應用創建的界面上的輸入結果將會被惡意應用所截獲。惡意應用可以將用戶輸入轉發給合法應用,然后將自身隱藏或直接退出,從而達到類似中間人攻擊的效果;
[0006]b)用戶的輸入需要通過觸摸屏的中斷處理函數才能轉換為應用程序能夠處理的數據。惡意代碼可以通過一定的技術手段改變中斷向量,從而完成對用戶輸入的截取。此外例如指紋采集、虹膜采集等都有同樣的問題,如果中斷響應函數不能被有效的保護,則不能保證數據的安全;
[0007]c)通過對繪圖函數系統調用入口的實時監控,截獲用戶傳入的繪圖參數;
[0008]d)通過對繪圖緩沖區的攻擊,截獲緩沖區內容,通過后期的識別獲得用戶秘密數據等等。
[0009]泄露手機號碼和家庭地址,可能面臨大量的垃圾短信或詐騙電話,而如果泄露了賬號、密碼,則很可能導致嚴重的財產損失。安全界面的需求因此日益凸顯。
[0010]隨著ARMTrustZone安全解決方案的使用日益廣泛,越來越多的應用開始使用基于上述安全解決方案而實現的所謂安全界面方案來實現自己的人機交互界面。采用安全界面方案,可以保證應用創建界面的過程是在可信計算環境下進行,或者為某種加密或校驗機制所保護,并保證該界面顯示在Z軸頂部,一定程度上減輕了被惡意攻擊的可能。
[0011 ]然而,基于安全界面方案并不能完全解決通過創建虛假人機交互界面,進行欺騙性攻擊的手段,因為其屬于社會工程學范疇。合法應用的人機界面一旦被惡意應用所識別,后者仍然可以創建具有欺騙性的虛假界面,來誤導使用者。盡管由于對顯示緩沖區Z中的保護,惡意應用無法簡單的覆蓋到合法應用的人機界面上方,但是其依然可以通過誘導用戶,使其在其中輸入敏感信息。例如,一個惡意應用可以通過在后臺隱藏,然后選擇合適的時機彈出自己的人機界面,通過誘導性的文字和圖案,使得用戶誤以為該界面由另一個合法應用所創建,并在該界面上進行操作。由于惡意應用并沒有試圖進行任何觸發常規訪問控制的動作,因此不會引起系統的注意。
【發明內容】
[0012]本申請的目標在于提供一種與設備人機交互的方法和系統,其能夠阻止惡意應用的欺騙行為,或者對潛在的風險提出警告,以降低惡意應用(攻擊)的風險。
[0013]本申請的目標由一種實現與設備安全人機交互的方法實現,該方法包括:
[0014]監控設備應用對繪圖應用編程接口API的調用;
[0015]響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對;
[0016]響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名;
[0017]響應于身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。
[0018]本申請的目標還由一種實現與設備安全人機交互的系統實現,該系統包括:
[0019]監控模塊,用于監控設備應用對繪圖應用編程接口API的調用;
[0020]比對模塊,用于響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對;
[0021]簽名驗證模塊,用于響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名;
[0022]調用執行模塊,用于響應于身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。
[0023]在本發明中,術語“敏感”指與設備使用和/或用戶信息安全有關。例如,敏感信息如賬號、密碼、手機號碼等。
[0024]對于惡意應用的開發者,有兩種方法來創建虛假的欺騙性界面:使用GUI庫API在用戶界面上顯示與合法應用完全相同的文字,或者更具有誘騙性的文字,達成欺騙的目的;使用繪圖API直接將合法應用的界面位圖作為虛假界面的背景,只在其上創建輸入控件。
[0025]本發明方法或系統通過實時對上述兩組接口進行監控,從而當出現試圖顯示特定的敏感字符串,或者繪制與已記錄的敏感界面位圖特征相符合的圖像時,對應用的身份進行校驗,從而阻止惡意應用的欺騙行為,或者對潛在的風險提出警告,以減低這種攻擊的風險。
[0026]本發明方法或系統可以應用于任何操作系統中需要實現人機界面的軟件或服務,通過對繪圖接口的實時監控,偵測潛在的人機界面欺詐行為。主要的應用場景包括但不限于:電子支付、身份認證和系統設置。
【附圖說明】
[0027]本發明將在下面參考附圖并結合優選實施例進行更完全地說明。
[0028]圖1為根據本發明方法的一實施例的流程圖。
[0029]圖2為根據本發明方法的另一實施例的流程圖。
[0030]圖3為根據本發明系統的一實施例的結構示意圖。
[0031]圖4為根據本發明系統的另一實施例的結構示意圖。
[0032]為清晰起見,這些附圖均為示意性及簡化的圖,它們只給出了對于理解本發明所必要的細節,而省略其他細節。
【具體實施方式】
[0033]通過下面給出的詳細描述,本發明的適用范圍將顯而易見。然而,應當理解,在詳細描述和具體例子表明本發明優選實施例的同時,它們僅為說明目的給出。
[0034]圖1示出了根據本發明的用于實現與設備安全人機交互的方法的一實施例的流程圖,該方法以常見的Linux及其衍生的操作系統為參考平臺,前述操作系統運行于x86架構的CI3 U上,具有標準的X W i n d ο w s結構的視窗系統。該方法開始于步驟S1,激活系統中的Selinux訪問以保護例如系統中斷向量表等重要內核資源不被隨意訪問;建立敏感字符串和/或敏感位圖規則庫,即將特定字符串或圖像加入監控規則數據庫,該庫具有本地緩存版本。在實施例中,規則庫具有遠程更新能力。敏感字符串如“□令”、“密碼”、“支付寶”等等,敏感位圖如支付寶的登錄支付界面的位圖等。之后,處理進行到步驟S20,使用Selinux,修改其配置文件,即訪問向量AVC,使得對類似于繪制標題欄、繪制文本標簽、設置輸入框默認值以及將位圖作為一個視窗的背景等繪圖API調用的調用,觸發Selinux回調。上述規則并不限制在界面的非提示區域顯示字符或圖片,例如一個界面顯示一篇文字介紹支付寶使用方法,不會觸發本規則的禁止。之后,在步驟S30,監控設備應用對繪圖API的調用。之后,在步驟S40,在用戶調用某一被監控的繪圖API時,該繪圖API調用被Selinux捕獲,Selinux的回調函數對操作系統繪圖API的傳入參數內容進行審核。審核方式為將參數內容按照類型與規則庫內容進行檢索比對。如果傳入的參數中并無任何敏感內容,也不與規則庫中的任一特定位圖發生比對吻合,則審核通過,處理進行到步驟S80,繪圖API的調用正常執行。
[0035]關于圖像的比對,有很多可用的方法,比較常用的是感知哈希算法。常見的感知哈希算法有aHash、pHash和dHash。其中aHash的基本原理如下:
[0036]I)縮小尺寸:去除尚頻和細節的最快方法是縮小圖片,將圖片縮小到8X8的尺寸,總共64個像素。不要保持縱橫比,只需將其變成8X8的正方形。這樣就可以比較任意大小的圖片,摒棄不同尺寸、比例帶來的圖片差異。
[0037]2)簡化色彩:將8X8的小圖片轉換成灰度圖像。
[0038]3)計算平均值:計算所有64個像素的灰度平均值。
[0039]4)比較像素的灰度:將每個像素的灰度,與平均值進行比較。大于或等于平均值,記為I;小于平均值,記為O。
[0040]5)計算hash值:將上一步的比較結果,組合在一起,就構成了一個64位的整數,這就是這張圖片的指紋。
[0041]上述三種算法的基本原理相近,但本發明優選采用dHash算法,因為其兼有速度最快、效率高的優點。其基本算法如下:
[0042]I)縮小圖片:收縮到9 X 8的大小,總共有7 2個像素點。
[0043]2)轉化為灰度圖:把縮放后的圖片轉化為256階的灰度圖。
[0044]3)計算差異值:dHash算法工作在相鄰像素之間,這樣每行9個像素之間產生了8個不同的差異,一共8行,則產生了 64個差異值。
[0045]4)獲得指紋:如果左邊的像素比右邊的更亮,則記錄為I,否則為O。
[0046]如果傳入的參數中包含敏感內容或與規則庫中的任一特定位圖吻合,則處理進行到步驟S50,觸發對調用者身份的進一步核驗。在實施例中,對調用者的身份簽名證書進行驗簽。如驗證失敗,則確定為異常情況,處理進行到步驟S60,拒絕調用者請求或者發出用戶可以操作的警告信息。如果證書校驗成功,則處理進行到步驟S70,進一步檢查規則是否對調用者應用的開發者有特殊要求,例如:“支付寶”不可以被支付寶客戶端軟件之外的任何其他軟件顯示,否則認為是潛在的欺詐行為。如果應用身份與規則要求不相符,則處理進行到步驟S60,拒絕調用者請求;否則,處理進行到步驟S80,按照正常處理邏輯,進行界面繪制。
[0047]上述方法通過實時監控系統繪圖API(應用程序編程接口),對于試圖顯示潛在地具有誘導性的文字,以及顯示有誘導性特征圖形圖像的調用,觸發對應用身份的實時認證的機制。該機制主要是針對惡意應用,通過創建欺騙性人機界面,誘導用戶輸入敏感信息,從而非法截獲、儲存甚至遠程發送這些敏感信息的攻擊手段的一種防御手段。
[0048]圖2示出了本發明方法的另一實施例的流程圖,該實施例的方法應用于具有內置的TrustZone安全方案(提供可信執行環境)、采用Android作為操作系統的移動設備平臺。在實施例中,可信執行環境也可采用集成平臺安全處理器PSP的AMD處理器實施。具體地,該實施例的方法開始于步驟S10’,在系統中啟用SEAndroid訪問控制機制,以保證系統調用向量表不被篡改;建立敏感字符串和敏感位圖規則庫,該庫具有本地緩存版本,并且具有遠程更新能力。在步驟S20 ’,使用SEAndroid,修改其配置文件,即訪問向量AVC,使得對類似于繪制標題欄、繪制文本標簽、設置輸入框默認值以及將位圖作為一個視窗的背景等繪圖API調用的調用,觸發SEAndroid回調。之后,在步驟S30,,監控設備應用對繪圖API的調用。之后,在步驟S40 ’,在用戶調用某一被監控的繪圖API時,該繪圖API調用被SEAndroid捕獲,SEAndroid的回調,對Android框架層內繪圖API的傳入參數內容進行審核。如果傳入的參數中并無任何敏感內容,也不與規則庫中的任一特定位圖發生比對吻合,則審核通過,處理進行到步驟S80’。
[0049]如果傳入的參數中包含敏感內容或與規則庫中的任一特定位圖吻合,則處理進行到步驟S50’,觸發對調用者身份的進一步核驗。在實施例中,對調用者的身份簽名證書進行驗簽。如驗證失敗,則確定為異常情況,處理進行到步驟S60’,拒絕調用者請求或者發出用戶可以操作的警告信息。如果證書校驗成功,則處理進行到步驟S70’,進一步檢查規則是否對調用者應用的開發者有特殊要求。如果應用身份與規則要求不相符,則處理進行到步驟S60’,拒絕調用者請求;否則,處理進行到步驟S80’。
[0050]在步驟S80’,繪圖管理器通過TrustZone安全用戶界面客戶接口,將繪制請求發送至IjTrustZone可信執行環境。之后,處理進行到步驟S90’,可信執行環境中對應的繪圖應用,按照請求的內容,繪制并填充繪圖緩沖區,最終顯示于設備的顯示器件表面。
[0051]基于TrustZone的安全界面保證了該次繪制動作不會被惡意篡改,也不會發生惡意或虛假UI在Z軸方向被覆蓋的可能,故可以保證繪圖動作和顯示緩沖區的安全性。
[0052]圖3示意性地示出了根據本發明的用于實現與設備安全人機交互的系統的一實施例,該系統包括監控模塊10,用于監控設備應用對繪圖應用編程接口API的調用;比對模塊20,用于響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對;簽名驗證模塊30,用于響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名;調用執行模塊40,用于響應于身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。
[0053]圖4示意性地示出了根據本發明的用于實現與設備安全人機交互的系統的另一實施例,該實施例的系統除包括圖3所示系統的所有模塊之外,還包括:身份檢查模塊50,用于響應于身份簽名驗簽成功,檢查所述應用的身份是否符合所述敏感規則庫中的指定身份;其中所述調用執行模塊還用于響應于所述應用的身份與所述指定身份不相符,終止所述調用的執行;繪圖請求發送模塊60,用于響應于身份簽名驗簽成功或響應于所述應用的身份符合所述指定身份,將繪圖請求發送到可信執行環境;繪制模塊70,用于使得可信執行環境中對應的繪圖應用根據所述繪圖請求的內容繪制并填充繪圖緩沖區,并顯示在所述設備的顯示器表面。
[0054]除非明確指出,在此所用的單數形式“一”、“該”均包括復數含義(即具有“至少一”的意思)。應當進一步理解,說明書中使用的術語“具有”、“包括”和/或“包含”表明存在所述的特征、步驟、操作、元件和/或部件,但不排除存在或增加一個或多個其他特征、步驟、操作、元件、部件和/或其組合。如在此所用的術語“和/或”包括一個或多個列舉的相關項目的任何及所有組合。除非明確指出,在此公開的任何方法的步驟不必精確按照所公開的順序執行。
[0055]—些優選實施例已經在前面進行了說明,但是應當強調的是,本發明不局限于這些實施例,而是可以本發明主題范圍內的其它方式實現。
【主權項】
1.一種實現與設備安全人機交互的方法,其特征在于,所述方法包括: 監控設備應用對繪圖應用編程接口 API的調用; 響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對; 響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名; 響應于所述身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 響應于所述身份簽名驗簽成功,檢查所述應用的身份是否符合所述敏感規則庫中的指定身份; 響應于所述應用的身份與所述指定身份不相符,終止所述調用的執行。3.根據權利要求1或2所述的方法,其特征在于,所述方法還包括: 響應于身份簽名驗簽成功或響應于所述應用的身份符合所述指定身份,將繪圖請求發送到可信執行環境; 可信執行環境中對應的繪圖應用根據所述繪圖請求的內容繪制并填充繪圖緩沖區,并顯示在所述設備的顯示器表面。4.根據權利要求1或2所述的方法,其特征在于,所述敏感規則庫內容包括至少一敏感字符串和/或至少一敏感界面位圖特征。5.根據權利要求1或2所述的方法,其特征在于,監控的繪圖API的調用包括下述之一或多個:繪制標題欄、繪制文本標簽、設置輸入框默認值及將位圖作為一個視窗的背景。6.根據權利要求3所述的方法,其特征在于,所述可信執行環境采用支持TrustZone的ARM處理器或集成平臺安全處理器PSP的AMD處理器實施。7.一種實現與設備安全人機交互的系統,其特征在于,所述系統包括: 監控模塊,用于監控設備應用對繪圖應用編程接口 API的調用; 比對模塊,用于響應于捕獲到監控的繪圖API的調用,將繪圖API的傳入參數與預先設置的敏感規則庫內容進行比對; 簽名驗證模塊,用于響應于所述傳入參數包含所述敏感規則庫的部分內容,校驗所述應用的身份簽名; 調用執行模塊,用于響應于身份簽名驗簽失敗,終止所述調用的執行或者向用戶發送可操作的警告信息。8.根據權利要求7所述的系統,其特征在于,所述系統還包括: 身份檢查模塊,用于響應于身份簽名驗簽成功,檢查所述應用的身份是否符合所述敏感規則庫中的指定身份; 其中所述調用執行模塊還用于響應于所述應用的身份與所述指定身份不相符,終止所述調用的執行。9.根據權利要求7或8所述的系統,其特征在于,所述系統還包括: 繪圖請求發送模塊,用于響應于身份簽名驗簽成功或響應于所述應用的身份符合所述指定身份,將繪圖請求發送到可信執行環境; 繪制模塊,用于使得可信執行環境中對應的繪圖應用根據所述繪圖請求的內容繪制并填充繪圖緩沖區,并顯示在所述設備的顯示器表面。10.根據權利要求7或8所述的系統,其特征在于,所述敏感規則庫內容包括至少一敏感字符串和/或至少一敏感界面位圖特征。
【文檔編號】G06F21/51GK105930720SQ201610291325
【公開日】2016年9月7日
【申請日】2016年5月5日
【發明人】孫國峰
【申請人】北京元心科技有限公司