李思斯 韓偉力
(復旦大學軟件學院 上海 201203)
身份認證被廣泛應用于網絡服務中對用戶所瀏覽內容的訪問控制。從網站管理者的角度,身份認證應當保障其網站以及所提供的服務不被未經授權的用戶訪問,因而安全性在身份認證方式的選擇中通常是最重要甚至唯一重要的因素。但是僅考慮安全性可能導致過度保護或保護不足,諸如易用性、可靠性、可訪問性以及成本等其他因素也至關重要。綜合考慮這五個維度,需要利用量化評估框架來確定滿足應用場景要求并能在五個因素中保持平衡的身份認證方法。現有的研究缺乏綜合且定量的評估框架。
為此,本文提出了基于專家經驗和貝葉斯概率模型的通用型量化評估框架以定量地評估單因子和多因子身份認證方法。該框架將從安全性、可靠性、易用性、可訪問性以及成本這五個維度來進行綜合的量化評估。針對每一個維度,框架會根據身份認證方法能提供的保障程度或優良程度打分,并根據五個維度的打分結果給出一個綜合的雷達圖用以直觀的展示。在此基礎上,本文還提出了增量數據驅動的動態自適應量化評估結果更新模型,根據實時收集的認證數據更新對應身份認證方法的評估結果。利用給出的量化評估和數據展示,網站管理者可以更直觀地為其所管理的網站或服務選擇最合適的身份認證方案。
對于身份認證方法的通用型評估有美國國家標準與技術研究所NIST為電子身份認證方法以及針對不同的安全保障需求如何選擇身份認證方法提供的指導標準SP 800-63[1],以及NIST于2015年提出的針對基于生物識別的認證系統[2]的安全性評估討論稿[3]。此外,Bonneau等[4]針對用戶口令可能的替代品從安全性、易用性和成本三個方面進行了定性比較分析;Sollie[5]為研究多因子身份認證在安全性和易用性方面的影響提出定性分析方法;Gorma[6]對比了基于知識的、基于設備的和基于身份的認證方法在安全性方面的區別。
此外,針對特定認證方法的安全性評估有:用戶口令強度的度量工具[7-8];對基于生物識別的認證方法[9]和指紋識別方案的強度評估[10];對基于設備的身份認證方法(如K寶口令[11]等)的強度評估。針對認證方法的易用性評估,Mare等[12]進行了用戶研究來觀察在面對諸如口令、PIN碼、基于設備的認證因子、生物識別的認證方法等不同身份認證因子時,用戶在使用時的學習難度和感知層面的使用體驗。
然而,現有的研究或僅針對單因子身份認證方法,或僅針對安全性和易用性等某一維度進行分析,且大多僅能給出定性分析結果,這些研究并不能提供量化的評估結果和直觀的比較。
安全性指身份認證方法能在多大程度上抵御可能存在的安全性威脅并保護系統不被未經授權的用戶訪問。本框架以身份認證方法被破解的概率作為評估其安全性的標準。首先將可能存在的攻擊總結并歸納為十二種類型:客戶端破解攻擊、服務端破解攻擊、通信信道竊聽、離線猜測攻擊、在線猜測攻擊、釣魚攻擊或域欺騙、社會工程學攻擊、肩窺攻擊、仿冒攻擊、偷竊攻擊、復制攻擊和測信道攻擊,如表1所示。評估身份認證方法的安全性時,先評估其中的每一個身份認證因子防御這十二種攻擊的安全等級,再將等級通過模糊函數轉化為在該攻擊下該認證因子被破解的概率。

表1 身份認證因子的攻擊分類及描述
對單因子的身份認證方法,其在十二種攻擊下被破解的概率的加和即為其在最壞情況下的被破解概率。而對多因子身份認證方法,加和的方案無法體現其綜合的被破解概率。為了更好的表示不同身份認證方法在組合成多因子身份認證時綜合的安全性強度,本框架建立基于專家經驗的貝葉斯網絡模型來評估多因子身份認證方法的綜合被破解概率,對于一個由n個因子組成的身份認證方法,其被破解的概率P[X]在本文建立的貝葉斯網絡模型中可由式(1)計算,其中pa(xi)表示第i個身份認證因子對應的節點xi的父節點集合。
(1)
為計算式(1),需要對每個因子節點計算其概率P[xi|pa(xi)]。在本框架提出的貝葉斯網絡中,pa(xi)包含兩種類型的節點:攻擊節點和因子節點。攻擊節點對應上述十二種攻擊類型并表示攻擊是否發生,用a1,a2,…,am表示。因子節點對應需要被評估的身份認證方法中的每一種認證因子,用x1,x2,…,xn表示,其中(i∈{1,2,…,n},j∈{1,2,…,m)}。圖1展示了一個三因子身份認證方法的示例貝葉斯網絡,其中方框節點表示攻擊節點,圓形節點表示因子節點。

圖1 示例三因子身份認證方法的貝葉斯網絡結構圖
計算因子節點的概率P[xi|pa(xi)]可分兩種情況:第一種是因子節點的所有父節點均為攻擊節點,如圖1中的“口令”節點;第二種情況是因子節點的父節點既有攻擊節點又有因子節點,如圖1中的“RSA令牌”節點。在具體的概率計算前,首先說明因子節點不同父節點類型對應到安全性評估的含義。若因子節點的父節點為攻擊節點,表明該攻擊節點對應的攻擊類型有概率破解該因子節點。假設因子節點表示為xi,攻擊節點表示為aj,則此破解概率可表示為P[xi|aj]。這一概率可以通過表1列舉的評估標準根據設定的模糊函數得出。若某因子節點的父節點為因子節點類型,則意味著這兩種因子節點對應的身份認證因子類型可以同時被某個攻擊類型破解。
為得到一個通用的安全性評估計算公式,需同時考慮上文提到的兩種情況,因此可以將每個因子節點的被破解概率P[xi|pa(xi)]依據不同父節點類型拆分為兩部分計算。令G(xi)表示節點xi的所有攻擊類型的父節點組成的集合,令Y(xi)表示節點的所有因子類型的父節點組成的集合,則pa(xi)可表示為這兩個集合的并集,亦即pa(xi)=G(xi)∪Y(xi),且這兩個集合互斥。因此對每個節點的被破解概率P[xi|pa(xi)]可計算為P[xi|G(xi)]+P[xi|Y(xi)]。

P[xi|Y(xi)]=P[xi|Y(xi),Ai]=P[xi|xi-1,
…,x1,∪at∈Aiat]
(2)

P[xi|xi-1,…,x1,∪at∈Aiat]≤
(3)
綜合兩種情況,身份認證方法綜合的被破解概率的計算如式(4)所示,其不僅適用于多因子身份認證方法,也適用于單因子身份認證方法。
(4)
在計算得到貝葉斯網絡的聯合概率之后,為了能更直觀且更友好的展示結果,同時能與其他維度的度量結果保持一致,采用如式(5)所示的負對數函數將概率值轉化到區間為[0,100]的分數值。
(5)
本框架提出的安全性評估可以通用的適配任何一種身份認證方法并能得出標準統一的量化評估結果,即給出一個在[0,100]區間內的打分值,這是現有研究工作所不具備的。
可靠性是指身份認證系統錯誤地拒絕合法用戶的頻率,本框架將基于身份認證系統錯誤地拒絕合法用戶的概率對可靠性進行量化評估。這里包含兩種情況:一種是身份認證系統本身的不可靠性使得合法用戶的正確認證過程被錯誤地識別為非法用戶;另一種是合法用戶在認證過程中未按照正確的流程或輸錯了密碼使得系統判斷出錯。在第二種情況中,用戶錯誤的頻率不可預知,只能通過歷史登錄數據來估計。因此,在初始階段的量化評估中,本框架將只考慮認證系統本身的可靠性。在收集到實時用戶認證數據后,可以利用數據驅動的更新模型來估計并實時更新可靠性評估結果。
單因子身份認證方法錯誤拒絕合法用戶的概率就是該身份認證方法所采用的方案或者算法本身的誤拒絕率。而對于多因子組合成的身份認證方法,任何一個因子的誤拒絕都會導致整個認證機制的誤拒絕。因此多因子身份認證方法誤拒絕的概率是其中每一個因子的誤拒絕概率的并集。對于初始的評估本身就未考慮到用戶誤操作而導致的誤拒絕概率,可以用系統誤拒絕率的加和來表示最壞情況下的系統誤拒絕率,其中的概率誤差可以彌補未考慮到的用戶誤差。令FRi表示合法用戶被第i個認證因子錯誤拒絕的認證,則整體的概率為:
(6)
最后,利用負對數的形式將結果映射到[0,100]的區間內作為可靠性的量化結果打分值:
R=-log(Pr[FFR])
(7)
易用性指認證方法的便利程度和用戶的使用體驗。針對下述標準,本框架通過衡量不同身份認證方式能為用戶提供的便利程度來評估其易用性。
(1) 設置時間 用戶在使用身份認證方法前需要初始化認證秘密,例如設定口令、輸入指紋、錄入人臉圖像等。不同的身份認證方法對應不同的設定步驟,因而帶來不同的使用復雜程度。本框架用設置時間衡量身份認證方法在初始化階段的易用性。由于初始化通常只需要進行一次,因此可以對其設置非常小的權重。
(2) 交互時間 用戶在進行身份認證時,針對不同的認證機制需要不同的交互方式,例如輸入口令、接觸指紋識別器、掃臉、插入額外的第三方設備等。此處用交互時間來衡量身份認證機制在使用時對用戶的友好程度。交互時間的計算從用戶開啟認證到認證機制給出認證通過或認證失敗的反饋結果為止。多因子身份認證方法的交互時間將涵蓋用戶完成其中每一個認證因子的認證步驟所耗費的時間。
(3) 用戶維護其認證秘密需要的操作 對于單因子身份認證方法如口令認證,用戶需要記憶一串文本密碼;對于由第三方設備生成的一次性驗證碼,用戶在認證時需要攜帶額外的設備;對于基于生物識別的認證方案,用戶通常不需要額外的操作就能維護認證所需的秘密。對于多因子身份認證方式,其整體所需要耗費的用戶操作是其中每一個認證因子所耗費的用戶操作的交集。同時,不同的用戶操作對應的用戶成本和用戶體驗也有差別。因此,框架將綜合考慮為維護認證對應的秘密需要的操作數量和每一種操作對應的用戶體驗友好程度,其數量越多,或者操作對用戶的負擔感更重,則易用性越差。
(4) 認證方式的可重用性 可重用性是指認證方式是否可以同時被用于多個網站或服務。若身份認證方法可以做到跨服務通用,則其對用戶帶來的整體友好度會更佳。對于多因子身份認證方法,如果其中的某個認證因子是不可重用的,那么整個多因子認證方案也是不可重用的。
(5) 用戶滿意度 用戶滿意程度表示用戶本身對不同身份認證方法的使用體驗和感受。當用戶的評價數量足夠多時,此維度將是權重占比最高的度量維度。
上述五個維度依次給出評級,最后將五個維度的度量結果加權平均即為易用性評估結果。此結果只是初始的模糊評估結果,在用戶使用過程中,本文提出的數據驅動的更新框架可以根據用戶給出的易用性反饋來動態調整易用性的評估結果。
對于上述五個維度,用ui表示第i個維度的評估結果;令Uui、Wui分別表示對第i個維度的打分和權重值,其中Uui∈[0,100],Wui∈[0,1]并且∑Wui=1。整體的易用性評估結果可以表示為:
U=∑(Uui×Wui)i∈{1,2,…,5}
(8)
可訪問性指目標用戶是否能無障礙地根據其意愿和偏好來訪問身份認證方法,其評估取決于身份認證方法要求用戶與之交互的方式。本框架主要考慮如下五種交互機制:
1) 說出一些短語或單詞,如語音識別;
2) 與可視屏幕信息交互;
3) 用鍵盤打字或用鼠標點擊;
4) 提供身體部位的生物識別信息;
5) 接聽電話或電話代碼。
單個認證因子可以同時支持幾種不同的交互機制。因此,其可訪問性是支持的交互方式的集合。在判斷某用戶是否可以無障礙地使用某種身份認證方法時,只需要確定該身份認證因子支持的交互方式集合與用戶意愿的交互方式集合之間是否存在交集。對于多因子身份認證方法則需要先確定其中每個認證因子支持的交互機制集合與用戶意愿的交互機制集合之間是否存在交集。如果其中有任何一個認證因子是該用戶無法訪問的,那么整個認證機制對該用戶的可訪問性將為零。如果用戶對于其中的某些交互機制是可以進行但不愿意采用的,則該認證方法將是可訪問的,但可訪問性的評分將比較低。因此每種身份認證方法都用三種等級來評估其可訪問性。
令向量μ=(μ1,μ2,μ3,μ4,μ5)表示用戶對上述五種交互機制的偏好程度,其中μi∈{0,1,2}。令向量υJ=(υ1,υ2,υ3,υ4,υ5)表示身份認證因子對上述五種交互機制是否支持,其中υi∈{0,1}。首先分別計算向量μ和每一個因子的向量υJ的點積,然后取結果中的最大值即aj=max(μ,υJ)作為認證因子j的可訪問性分值。最后利用式(9)計算身份認證方法整體的可訪問性度量:
(9)
本框架將評估身份認證方法所需要購買的設備和部署身份驗證系統的費用作為成本的度量。具體的評估標準包括身份認證因子帶來的額外部署成本,超出正常服務部署、額外運營成本,需要的支持服務成本和設備成本。對每個維度將給出評估等級,并將所有維度評估結果的加權和作為總體評估結果。
(1) 額外部署成本 部署整個身份認證系統的成本,包括購買認證技術或特殊服務(如短信驗證碼服務)以及部署輔助設備和軟件組件的費用。
(2) 運營成本 在認證系統的工作和維護期間產生的操作成本。這可以通過身份認證系統在通信開銷方面消耗的帶寬成本,對特殊服務如短信驗證碼服務的成本等反映出來。
(3) 幫助和支持服務成本 某些身份認證方法很難設置或恢復,用戶在使用過程中可能會遇到麻煩。此時,身份認證服務提供者需要為用戶維護支持團隊。
(4) 設備成本 對于例如基于設備等的特殊身份認證方法,用戶需要持有額外的物理設備才能完成認證,這會導致用戶和身份認證提供商需要采購額外的物理設備。對于多因子身份認證方案,其綜合的設備成本將是每一種認證因子引入的設備成本的交集的總和。
基于專家經驗的初始量化評估模型,本文提出了數據驅動的量化評估結果的更新模型,針對安全性、可靠性和易用性進行實時更新。
首先構建監控用戶認證記錄的監測模型來鑒別惡意認證請求、合法用戶的成功認證請求和合法用戶的失敗認證請求,并根據這三類數據動態的更新量化評估結果,其基本結構如圖2所示。其中基于規則的檢測模型和基于數據的檢測模型用于檢測惡意認證請求并鑒別被破解的用戶賬號。在未收集到足夠多用戶數據的初始階段使用基于規則的檢測模型。隨著用戶認證數據的累積,基于數據的檢測模型將訓練一個鑒別惡意認證請求的增量數據驅動模型,并逐漸取代基于規則的檢測模型。基于規則和基于數據的兩種模型可能對同一認證請求給出相反的檢測結果,或者兩種模型都無法得出檢測結果。這時將引入管理員與用戶標記模型,即對于未被標記的或標記沖突的認證請求,由用戶在查看認證記錄時標記該認證請求是否由該用戶發起,并由網站管理者進行輔助判斷。最后的決策模型將綜合基于規則的檢測模型、基于數據的檢測模型和管理員與用戶標記模型這三個模塊的標記結果,給出綜合的認證請求的標記結果。

圖2 認證請求的審計與惡意認證請求檢測模型
利用上述檢測模型可以評估身份認證方法對應的總用戶數量以及其中賬號被破解的用戶數量。兩者的商即為該身份認證方法被破解的估計概率,由此能實時更新安全性得分。通過計算合法認證請求的數量和失敗的合法認證請求的數量,可以估計身份認證方法的錯誤拒絕概率并改進其可靠性得分。由于觀察到的安全性和可靠性結果可能隨時間而變化,本模型采用標量卡爾曼濾波器來濾除觀察誤差和概率本身的誤差從而得到自適應的動態更新結果。
本文提供示例平臺收集用戶的使用反饋用于易用性評估的更新。類似的反饋平臺可以作為身份認證提供者站點的一部分進行部署。用戶就其使用過的身份認證方法給出五星評級和反饋。通過將初始量化框架給出的可用性評估結果也轉換為五星評級結果,可以利用貝葉斯平均來綜合專家評估結果和用戶使用反饋,從而得出數據驅動的易用性評估結果。
通常有兩種情況表明帳戶已被盜用:一種是攻擊者獲取了密碼,然后通過其他設備嘗試登錄;另一種是攻擊者直接控制用戶的設備并通過受感染的設備登錄。僅從服務器端很難判斷第二種情況為合法用戶或攻擊者,但可以通過登錄次數和成功率檢測暴力破解。當多于20次登錄請求且認證成功率低于95%時,則該賬戶很可能正在被暴力攻擊[13],因此首先構建暴力攻擊檢測模塊來監測認證請求次數及其成功率。為了檢測從其他設備發起認證請求的攻擊,本模型提出基于規則的檢測模型來區分合法的和惡意的認證請求。
每個新注冊的用戶將被分配一個為期五天的啟動階段,其間發起認證請求且成功登錄的設備和IP將被添加為可信IP地址和設備組。此后的認證請求如果來源IP未知且不在可信列表中,將檢查從最近一次成功認證的請求IP到當前IP的轉換是否可能,稱為IP一致性檢測。通過獲取IP地址對應的經緯度、國家和地區、網絡服務提供商等信息來計算兩個IP地址的物理位置的距離;再根據兩次認證請求之間的時間間隔,判讀該物理移動是否是可能從而輔助判斷未知IP地址對應的認證請求是否合法。然而IP的不一致不一定代表惡意攻擊,還需要解析發起認證請求的用戶代理(User Agent),稱為客戶端一致性檢測。通過分析用戶代理,檢查認證請求來源的瀏覽器名稱和版本以及操作系統信息,并與啟動階段保留的可信設備比對來輔助判斷認證請求是否由合法用戶發起。本模型還利用Javed[14]提出的方法來檢查某個未知用戶代理是否只是對瀏覽器或操作系統的升級。此外,合法用戶的正常認證請求通常在分鐘和秒鐘兩個維度上均勻分布[13],而自動化的登錄請求則在分鐘和秒鐘的分布上存在明顯特征。因此,模型將抽取認證請求的時間戳并利用皮爾斯卡方檢測評估其時間分布是否滿足均勻分布,稱為時間戳一致性檢測,并且此檢測可以從用戶和IP地址兩個維度分別進行。如果認證請求能同時通過暴力攻擊檢測、IP一致性檢測、客戶端一致性檢測以及時間戳一致性檢測這四種檢測,則認為該認證請求合法。若IP是可信的且認證請求的時間滿足均勻分布,則認為該請求合法。如果時間戳一致性檢測沒有通過且客戶端和IP檢測有一項沒有通過,則標記為惡意請求。對于其余的情況,模型將檢測任務轉至管理員和用戶標記模塊和基于數據的檢測模塊做進一步的判斷。
本節以某網站的身份驗證方法為例介紹本基于專家經驗的量化評估框架的合理性和有效性。某網站為不同的操作提供不同的認證流程。對于查看余額等操作,網站只需要基于短信驗證碼的身份認證。對于修改套餐等操作,則需要6位PIN碼和短信驗證碼組成的雙因子身份認證。首先利用貝葉斯網絡評估身份認證方法的安全性,對短信驗證碼的貝葉斯網絡如圖3(a)左所示,其在五個評估維度上的綜合量化評估結果如圖3(a)右的雷達圖所示。對于短信驗證碼和6位PIN碼組成的多因子身份認證方法,其貝葉斯網絡如圖3(b)左所示,綜合量化評估結果如圖3(b)右所示。評估結果顯示兩種身份驗證方法均能夠匹配對應服務的安全性要求。但這兩種認證方案都僅剛好滿足安全性需求,若該網站要部署涉及到更多資金安全或風險更高的服務時,其對應的身份認證方法需要提高。

(a)

(b)圖3 針對某網站的兩種認證類型的示例評估
此外,本文提出的框架還能列出所有滿足安全性要求的認證方法。此處預設了口令、RSA令牌和圖形口令等其他幾種身份認證因子用于演示。仍以該網站為例,對于普通登錄服務,有四種單因子認證方法滿足安全性要求,結果如圖4(a)所示。這四種可選項在五個維度上的對比如圖4(a)的雷達圖所示。對于套餐修改服務,圖4(b)的右半部分展示了在示例系統中可供選擇的身份認證方案。圖4(b)的雷達圖比較了所有可選項中有最佳易用性和更低成本的兩種方案。這兩種方案在易用性和成本方面有同樣優秀的表現,但口令與短信驗證碼的組合比短信驗證碼與6位PIN碼的組合有更強的安全性。

(a)(b)圖4 根據安全性需求的可選身份認證方式系統示例
本文提出了數據驅動的自適應身份認證量化評估框架,從安全性、可靠性、易用性、可訪問性、和成本五個維度進行綜合的量化分析和評估,并將評估結果以雷達圖的形式展示。本文還提出了基于增量數據驅動的動態更新模型用于根據用戶的實際認證數據改進量化評估結果。利用本文框架,網站管理員可以綜合量化評估對所選擇的身份認證方案,并能根據網站或服務的安全性等選擇合適的身份認證方案。