宋嘯天 石力 胡向濤
1.江蘇省鎮(zhèn)江市審計局;2.江蘇省鎮(zhèn)江市公安局京口分局;3.江蘇省鎮(zhèn)江市潤清苑管理服務中心
2017年1月,中共中央辦公廳和國務院辦公廳印發(fā)《關于促進移動互聯(lián)網(wǎng)健康有序發(fā)展的意見》,提出防范移動互聯(lián)網(wǎng)安全風險。移動互聯(lián)網(wǎng)的安全問題愈加被人們所重視。
本文認為,移動互聯(lián)網(wǎng)中的安全問題可以歸納為以下三個方面:
一是網(wǎng)絡安全。指移動通信網(wǎng)絡自身的安全,以及移動用戶與終端應用進行信息交互時的安全。移動通信網(wǎng)絡自身的安全主要包含網(wǎng)絡的設計方法、透明原則和拓撲結構等。一個具備良好安全性的網(wǎng)絡應當是惡意第三方無法針對節(jié)點發(fā)起攻擊。移動用戶與終端應用進行信息交互時,需要業(yè)務的具體提供方具備較為嚴格的認證和鑒權機制,才能在一定程度上保障用戶的信息不受威脅。
二是終端安全。指移動終端本身的安全性,如操作系統(tǒng)是否存在安全漏洞,這些安全漏洞是否會遭受第三方的惡意入侵。
三是位置安全。對于安全要求級別較高的工作而言,為強化工作的屬地性,應對工作的移動辦公地理位置進行安全管控,防止信息泄露于監(jiān)管范圍之外。
同時我們需要認識到,由于移動互聯(lián)網(wǎng)的空中開放性,移動終端的用戶必然會面臨數(shù)據(jù)竊聽、篡改等風險,更有甚者可以通過干涉協(xié)議和物理要素來阻斷服務和業(yè)務,這是首要考慮的重要問題之一。因為一旦發(fā)生安全事故,如信息竊取者編寫惡意API(Application Programming Interface,應用程序編程接口)竊取手機信息,將可能對工作帶來無法彌補的嚴重后果。所以,移動互聯(lián)網(wǎng)的信息安全問題日漸凸顯,本文認為,只有解決好移動環(huán)境下的信息安全問題,才能夠使移動互聯(lián)網(wǎng)更好地發(fā)揮作用。
本文針對移動互聯(lián)網(wǎng)的安全問題,設計了一個面向移動互聯(lián)網(wǎng)的安全防護方法,該方法從網(wǎng)絡、終端和位置三個層面,展開了各具針對性的信息防護方式,旨在為移動互聯(lián)網(wǎng)中的安全防護提供一定的參考。
HOTP(HMAC-Based One-Time Password Algorithm,基于HMAC的一次性口令算法)是一種由OATH組織提出的OTP(One-Time Password,動態(tài)口令)算法標準,主要應用于傳統(tǒng)網(wǎng)絡下的各類服務、路由及強認證等領域。其算法示意圖如下所示。
圖1 HOTP算法示意圖
其中,Key為共享密鑰,通常是由服務器下發(fā)的共享強密鑰;Count為計數(shù)器值,通過遞增的邏輯計算得到HOTP結果;HS1為運用HMAC-SHA-1(一種由SHA1哈希函數(shù)構建而成的鍵控算法)對Key和Count進行加密的模塊,輸出HMAC-SHA-1(Key,Count);DT為運用DT函數(shù)對模塊A的輸出結果進行十進制轉換的模塊,并輸出HOTP的結果(HOTP_Client)。
在進行HOTP的驗證時,服務器根據(jù)Key和Count的數(shù)值計算得到HOTP值(HOTP_Server),隨后比較獲取到的HOTP_Client,并依據(jù)比較情況實施4種操作:
一是不等情況。此時服務器會自動生成一個重同步的進程,發(fā)送至終端要求進行下一次認證的提交操作。
二是相等情況。服務器認證用戶通過,服務器的計數(shù)器數(shù)值加1;
三是不等情況下重新同步再次失敗。若終端的請求次數(shù)小于服務器設置的最大認證閾值,則繼續(xù)要求終端提交下一次認證。
四是不等情況下同步失敗次數(shù)已達服務器設置的最大閾值。服務器通知用戶認證失敗并實施用戶鎖定操作。
HOTP的優(yōu)勢主要有以下三點:
一是密鑰由不確定的單項散列函數(shù)生成,確保密碼的一次性;
二是HOTP模式下的通信的數(shù)據(jù)量和次數(shù)均較低,適用于移動互聯(lián)網(wǎng);
三是HOTP本身算法較易實現(xiàn),可匹配目前絕大多數(shù)移動終端。
在移動互聯(lián)網(wǎng)中,信息安全的核心問題之一就是身份的認證及鑒權。
一是身份認證。指移動終端使用者對外聲稱的身份是否與真實身份相同。由于用戶權限的鑒權建立在身份認證的有效識別上,所以身份認證是鑒權的基礎。
二是鑒權。指通過身份認證的用戶在請求某項信息的權限時,其是否確實擁有操作權限。
在移動互聯(lián)網(wǎng)中,信息以數(shù)字信號的形式進行傳輸,同時移動終端及用戶基本為一對一的關系,所以加密方便、認證實現(xiàn)較為簡單。但同時也有著信息可靠性較低、計算能力及存儲能力不足、續(xù)航能力較差等缺點。本文結合移動互聯(lián)網(wǎng)下的各項優(yōu)缺點及移動互聯(lián)網(wǎng)下業(yè)務的新型特點,設計了一種基于HOTP的身份認證防護方法,在用戶認證過程中加入一定的動態(tài)要素,實現(xiàn)密碼的動態(tài)變換,提高用戶登錄的安全性。
對于每個不同的終端,對其中的各項應用設置一個獨立的HOTP值,服務器在校驗HOTP值后獲取用戶的合法信息。在認證開始前,移動終端需要和服務器建立一個共享密鑰,與計數(shù)器共同作為算法的輸入要素。本文設計的基于HOTP的認證機制算法在原有HOTP的框架基礎上,實施了針對移動互聯(lián)網(wǎng)特性的改進,改進后的算法如下圖所示。
圖2 基于HOTP的改進認證機制算法
其中,Key為共享密鑰;Count為計數(shù)器值;HS256為SHA-256加 密 模 塊, 輸 出 HMAC-SHA-256(Key,Count);T為字符轉換模塊,輸出Tru(H),經(jīng)過Base64編碼后得到最終的HOTP值。
具體步驟如下:
步驟一:根據(jù)Key和Count的值輸出HMAC-SHA-256(K,C);
步驟二:利用截斷獲取T值,其中,H={H(0),H(1),…H(31)},H(n)為H的第n個字符,取H(31)的末4位,輸出B_Set(十進制數(shù)),0 步驟三:將第三步中輸出的P值轉換為字符P_Set,0 步驟四:輸出HOTP初始值,HOTP=P_Set×mod10num_HOTP。其中,6≤num_HOTP≤8; 步驟五:為提高信息傳輸?shù)陌踩煽啃裕罱K將HOTP進行Base64編碼,生成最終的HOTP值,HOTPend=Base64(HOTP)。 由于計數(shù)器Count值可能在實際應用中發(fā)生偏移(終端計數(shù)大于服務器計數(shù)或終端計數(shù)小于服務器計數(shù)),本文設計了一個面向窗口值的容錯算法。具體操作步驟如下: 步驟一:計算移動終端與服務器之間計數(shù)器的差值極限(極限窗口),如下式所示: Req_Max > |Req_Server-Req_Client| (式 1) 其中,Req_Max為極限窗口值,Req_Server為服務器計數(shù)器值,Req_Client為移動終端計數(shù)器值。 步驟二:移動終端發(fā)出Req_Client請求; 步驟三:當Req_Client在窗口范圍內時,服務器校驗成功; 步驟四:服務器采用Req_Client進行用戶的身份認證,不更新Req_Server。 由上述算法中可以看出,Req_Max越小,業(yè)務整體的安全性越高,這是由于窗口的縮小降低了偽造請求的可能,增強了機制的容錯性能。但是需要注意的是,Req_Max并不是越小越好,而是要根據(jù)網(wǎng)絡實際環(huán)境、業(yè)務吞吐量等因素進行綜合分析,才能達到效率與安全的統(tǒng)一。 但是Req_Max的引入,使得HOTP較容易遭受重放攻擊。對此本文設計了面向偏移量和歷史請求值的雙重安全加固方法。其中,偏移量指業(yè)務兩端計數(shù)器的絕對差值,本文中表示為REQ_Dev,計算次數(shù)與終端的認證請求數(shù)相同(每次認證計算一次),表達式如下: Req_Dev=|Req_Server-Req_Client| (式 2) 歷史請求值是指在Req_Max內已被終端用戶選用過的Req_Client值的集合,本文中表示為Req_Used。一般情況下,由于Req_Max<32,所以Req_Used可以表示為32bits的整數(shù)值。當Req_Client在Req_Max的窗口范圍內時,Req_Used的Req_Dev位的值標記為1(代表該C值已使用),可以表示為: Req_Used(Req_Dev)=1 (式 3) 認證Req_Client可以分為以下四種情況進行考慮: 情況一:Req_Client<Req_Server,且Req_Client超出Req_Max范圍。 服務器判斷終端的計數(shù)值無效,并反饋錯誤報告。 情況二:Req_Client<Req_Server,且Req_Client未超出Req_Max范圍。 服務器判斷Req_Client是否存在于Req_Dev中,若不存在,則驗證成功,隨后計算HOTP值并進行認證;反之則反饋錯誤報告。 情況三:Req_Client>Req_Server。 服務器驗證成功,并計算HOTP值,置Req_Client< 情況四:Req_Client=Req_Server。 服務器判斷該終端發(fā)起重放攻擊,記錄日志并反饋錯誤報告。 本文設計的網(wǎng)絡環(huán)境下基于HOTP的身份認證防護方法具備強密鑰及防御重放攻擊的能力,使得惡意第三方無法通過竊取某次的HOTP值實現(xiàn)移動終端的認證操作。同時,由于HOTP值在線性上是無關的,所以惡意第三方也無法通過推算來獲取到某一節(jié)點下一時刻可能出現(xiàn)的HOTP值。 傳統(tǒng)的HOTP認證結構大多采用的是HMAC-SHA-1,本文設計了一種應用HMAC-SHA-256的HOTP認證結構,破解難度大,安全性與傳統(tǒng)的HOTP認證結構相比有較為顯著的提升。將本文設計的網(wǎng)絡環(huán)境下基于HOTP的身份認證防護方法與消息驗證碼MAC(Message Authentication Codes)防護方法、TIMESTAMP(時間戳,用于驗證數(shù)據(jù)的存在性、有效性和完整性)、應用密鑰一次下發(fā)及雙向對比等方法相結合,可以針對移動業(yè)務提供較為全面的防護,提升業(yè)務的安全可靠性。 移動終端作為接入業(yè)務服務的媒介之一,其安全性在一定程度上影響著業(yè)務能否長期平穩(wěn)有效運轉。所以,本文認為,移動化不僅需要配備專屬的移動終端,同時還需要針對移動終端設計一套安全策略。 策略下發(fā)流程如下圖所示。 圖3 基于移動終端的安全管理策略流程圖 基本流程如下: 步驟一:移動終端安裝安全策略管理程序,程序安裝完成后自動設為靜默開機啟動,權限等級最高。 步驟二:判斷程序的運行次數(shù)。若首次運行,則采集用戶信息進行注冊;否則進入后臺啟動運行并開啟進程保護功能。 步驟三:手機移動終端上相關的硬件信息和軟件信息,上傳至安全策略管理數(shù)據(jù)庫。 步驟四:服務器下發(fā)策略配置文件,移動終端將配置文件保存在本地文件夾之中,并寫保護。 步驟五:初始化并執(zhí)行策略,監(jiān)聽服務。 步驟六:移動終端接收到新策略后進行策略對比。若相同,則忽略策略更新,否則停止舊策略,導入新策略后運行新策略。 需要注意的是,由于策略模塊具有唯一性,所以當策略模塊過多時,一次性將其納入主體框架結構將嚴重影響程序的運轉效率,資源利用率低。對此,本文設計的基于移動終端的安全管理方法采用動態(tài)類加載技術(獲取類加載器并loadClass方法)。該方法僅將策略模塊的JAR(Java Archive,Java歸檔文件)包加載到主體框架之中,策略在調用之時,根據(jù)策略對應的ID(標識號)信息實現(xiàn)實時調用,進而提供對應的策略服務。此方法結構靈活、便于操作,后期擴展性較強。 由于移動終端與PC終端相比,在存儲空間及硬件水平等方面均存在一定的差距,所以本文針對移動終端的特性,設計了十三種安全策略,分別是: (1)通訊防護策略 主要用于控制移動終端的各類對外通訊方式,包括2/3/4G、WIFI模塊、藍牙通信等。當終端在特定時間段之外使用通訊功能時,可以自動停用服務,并生成日志上傳至防護記錄服務器。 (2)病毒防護策略 由于移動終端的普及,針對移動終端的各類病毒、木馬也層出不窮。對此,針對移動業(yè)務,防護策略應當做到實時/定時對設備進行病毒檢查、記錄、消除以及路徑回溯,并及時更新病毒庫,確保移動終端的使用安全。 (3)軟件防護策略 原則上,安裝有特殊應用的移動終端,應當做到專機專用。因此,防護策略在檢測到移動終端安裝應用時,首先與應用白名單進行比對,若比對通過,則安裝應用并記錄上傳相關信息;否則取消安裝,并上傳告警日志至防護記錄服務器。 (4)瀏覽器防護策略 移動終端啟用瀏覽器服務訪問網(wǎng)絡時,將訪問地址與訪問白名單進行比對,若地址存在于白名單之中,則允許訪問并記錄上傳緩存信息;否則禁止訪問,并上傳告警日志至防護記錄服務器。 (5)SIM卡(Subscriber Identi fi cation Module,用戶身份識別卡)防護策略 防護策略能夠對移動終端使用的SIM卡進行監(jiān)測,用戶在首次運行應用時,系統(tǒng)自動將SIM卡與設備進行綁定,之后有任意一端發(fā)生變動,均視為非法操作,系統(tǒng)自動鎖定終端并上傳告警日志至防護記錄服務器。 (6)注銷防護策略 當移動終端因為某種原因不再使用或報廢時,服務器注銷或轉移與該終端相關的所有信息,同時停止下發(fā)策略并進行全網(wǎng)更新。 (7)用戶防護策略 用戶防護策略除了最基本的賬號密碼防護外,還應具備多用戶防護策略,即同一設備上多個不同用戶進行訪問應用業(yè)務時,需要移動終端歸屬人授權,否則視為非法操作,鎖定終端并上傳告警日志至防護記錄服務器。 (8)環(huán)境防護策略 在首次運行各項應用前,對移動終端的硬件環(huán)境及軟件環(huán)境進行全方位掃描,檢測設備的SD卡、ROOT情況、安裝環(huán)境與要求環(huán)境是否吻合等,若不滿足安裝條件,則停止服務并告知使用者問題節(jié)點及修正方案。 (9)流量防護策略 自動檢測移動終端的流量使用情況,將某一時間周期內的流量使用情況與提供服務的實際流量消耗量閾值進行比對,若存在異常流量消耗,則鎖定終端、停止服務并上傳異常流量行為記錄至防護記錄服務器。 (10)存儲防護策略 記錄移動終端的文件傳輸行為,如USB傳輸、特定應用局域網(wǎng)傳輸?shù)?,并將傳輸雙方的信息記錄于本地LOG,隨后上傳至防護記錄服務器。 (11)應用防護策略 移動終端在安裝相關應用時,應由管理員通過正則表達式(防止管理員下發(fā)非法路徑)進行統(tǒng)一調配、下發(fā),并根據(jù)反饋的安裝情況確定應用配置的實際效果,便于對移動終端的應用進行集中管理,如下圖所示。 圖4 應用交互流程示意圖 (12)信息防護策略 對移動終端接收、發(fā)送的短信及電話進行記錄,同時對服務器與終端交互的信息進行加密,確保信息不會產(chǎn)生泄漏風險。 (13)設備加速策略 能夠對移動終端的內存、緩存進行自動/手動清洗,提升系統(tǒng)性能、釋放設備資源、降低安全隱患。 本文認為,上述策略在實際操作過程中應使用分布式系統(tǒng),將整個系統(tǒng)分解為各個功能模塊,便于管理及后續(xù)的開發(fā)、更新。 隨著移動終端在互聯(lián)網(wǎng)中的不斷接入,網(wǎng)絡資源已經(jīng)跨越時空的阻隔實現(xiàn)了共享。位置信息的共享易導致安全問題,泄漏信息。本文認為應當對能夠使用移動應用的地理位置做一定限制,盡管這樣做有悖于“隨處可用”的思路,但也能在一定程度上位置信息被惡意竊取;而且,有的惡意第三方也可通過位置信息發(fā)起系統(tǒng)攻擊。 因此,本文設計了一種面向可信位置的安全防護方法,用于提升移動終端的位置安全性及利用率。 圖5 LBAC模型示意圖 如上圖所示,在LBAC中,箭頭為“一對多”的邏輯關系,箭頭出發(fā)端為“一”,指向端為“多”。例如,位置→客體,指一個位置能夠對應多個客體,但一個客體只能在某一時刻對應一個位置。Control和Contain分別表示安全等級和位置是從高級別至低級別的支配和包含關系。 在LBAC(Location-Based Access Control,位置訪問控制)模型的基礎上,本文針對該模型位置信息傳輸安全性較低的問題,提出了一種改進的可信位置防護方法,通過構建T-LBAC(Trusted-Location-Based Access Control,可信的位置訪問控制)模型來確保位置信息的可信度。 首先構建可信度函數(shù),表示為Yt→{0,1},Yt的取值為0或1。當獲取的位置來源于可信位置模塊時,Yt=1;否則Yt=0。 隨后結合主客體雙方的安全等級以及可信位置的安全等級設置強訪問策略,以代替LBAC模型中缺少位置可靠性的弱訪問策略??尚盼恢门c訪問原則如表1所示。 表1 可信位置與訪問原則表 表中,主位表示主體位置,主體表示對其它實體進行操作的實體;客位表示客體位置,客體表示被主體施加操作的實體。其中,可信主位能夠讀可信/不可信客位,可信/非可信主位能夠寫可信客位。 主體對客體實施寫操作時,限制條件有以下四個,分別是: 條件一:主客體安全等級相同; 條件二:客位可信度=1; 條件三:主客體的許可訪問列表分別包含主客可信位; 條件四:主客體的可讀訪問位置的安全等級分別支配主客體的安全等級。 主體對客體實施讀操作時,限制條件有以下四個,分別是: 條件一:主體安全等級大于客體安全等級; 條件二:主位可信度=1; 條件三:主客位的許可訪問列表包含主客位可信位置; 條件四:主客體的可讀訪問位置的安全等級分別支配主客體的安全等級。 其中,主客體的安全等級表示安全性能的集合,主體的安全等級指主體能夠訪問的信息類別范圍,客體的安全等級指客體所包含的信息類別范圍。位置安全等級與主客體安全等級類似,指進入某一位置所必須的安全范疇(一般分為四個范疇),并且由位置集合中所有元素的安全等級共同決定。原則上,不論是主客體還是位置,均是由高級別安全等級向低級別安全等級單向流動的信息流,從而確保流程中的信息不會泄露。 讀寫控制原則如下表所示。 表2 讀寫控制原則表 其中,主位可信度表示為Y_S,客位可信度表示為Y_B,主體安全等級表示為G_S,客體安全等級表示為G_B。 在本文提出的面向可信位置的安全防護方法中,由于引進了可信位置參數(shù),所以業(yè)務應用安全性有了一定的提升,主要體現(xiàn)在以下三個方面: 一是避免遭受位置欺騙類型的惡意攻擊。TLBAC模型約束于可信位置的加密信息傳輸,較LBAC模型能夠確保授權主體的真實性,非授權主體無法通過偽造位置來發(fā)起攻擊。 二是確保位置信息的完整保密。TLBAC模型中的可信位置由對應的模塊及算法計算得出,無法經(jīng)由第三方偽造、篡改。對于第三方而言,在竊取到當前時刻的位置信息時,也無法將偽造的信息傳輸給主體。 三是安全擴展性能強??尚庞嬎銘糜谖恢眯畔⒌陌踩雷o只是該方法的運用方式之一,TLBAC模型在此基礎上能夠進行深度擴展,進一步完善業(yè)務整體的安全性。 本文設計的面向移動互聯(lián)網(wǎng)的安全防護方法從理論層面上為移動互聯(lián)網(wǎng)中的安全防護方法提供了一定的參考,實用性較高。但在實際應用中,還需要考慮諸如連接數(shù)超限、端口非法占用、硬件斷電、網(wǎng)絡連接異常等問題所帶來的影響。所以,在方案部署之時還需要進行深入調研,并思考多級冗余備份等輔助支撐方法的可行性。此外,隨著混合云技術的不斷發(fā)展和IT資源的集中化、服務化,混合云環(huán)境下的移動應用也會得到一定的增長和完善。本文將繼續(xù)研究混合云技術下的移動互聯(lián)網(wǎng)安全問題,針對混合云,積極思考面向移動互聯(lián)網(wǎng)的安全防護框架體系,努力為今后混合云的發(fā)展建設提供技術參考。1.3 安全性分析
2 基于移動終端的安全防護方法
2.1 方法流程
2.2 安全防護策略
3 面向可信位置的安全防護方法
3.1 設計方法
3.2 改進優(yōu)勢說明
4 結語