天天看點

Web和移動安全之​​Web 認證

作者:祺印說信安
Web和移動安全之​​Web 認證

認證

Web和移動平台上的身份驗證是一種重要的安全機制,旨在使人類使用者能夠向Web應用程式、移動裝置或移動應用程式聲明其身份。身份驗證與描述的授權齊頭并進。對資源的通路權限的規範。指定的通路權限稍後用于授予或拒絕經過身份驗證的使用者通路資源的權限。本節不會詳細概述身份驗證和授權概念(參見身份驗證,授權和責任CyBOK知識領域[4]),但将重點介紹與網絡和移動平台相關的身份驗證機制和技術。

HTTP身份驗證

Web和移動安全之​​Web 認證

在HTTP上下文中,身份驗證通常是指向伺服器驗證用戶端身份的概念,例如,通過要求用戶端在請求中提供一些預先建立的機密,例如使用者名和密碼。本節重點介紹Web上廣泛使用的兩種身份驗證方法:基本HTTP身份驗證和更常用的基于表單的HTTP身份驗證。

基本HTTP身份驗證[52]是一種機制,其結果用于對資源實施通路控制。它不依賴于會話辨別或cookie資料。基本HTTP身份驗證方案也不要求設定專用登入頁面,因為所有主要浏覽器都提供內建的登入表單。伺服器可以通過發送包含“HTTP401未授權”狀态代碼和“WWW身份驗證:基本”字段的響應标頭來觸發此身份驗證選項。用戶端在此表單中輸入的憑據與“:”(“使用者名:密碼”),Base64編碼用于傳輸(“VXNlcm5hbWU6UGFzc3dvcmQK”)組合在一起,并作為授權标頭添加到下一個請求(“授權:基本VXNlcm5hbWU6UGFzc3dvcmQK”)。

伺服器和用戶端之間的交換示例如圖5所示。基本身份驗證方案不安全,因為憑據是在簡單的Base64編碼之後傳輸的,這很容易逆轉。是以,登入憑據在網絡上以純文字形式傳輸,這使得攻擊者或網絡觀察者可以輕松竊取憑據。是以,如果沒有確定機密性和完整性的其他增強功能(如HTTPS),則不應使用基本HTTP身份驗證。

基于表單的HTTP身份驗證(其中網站使用表單收集登入憑據)是現代Web和移動應用程式中廣泛流行的身份驗證形式。對于此方案,嘗試通路受限内容的未經身份驗證的用戶端将顯示一個基于HTML的Web表單,該表單提示輸入其憑據。然後,用戶端将輸入的憑據送出到伺服器(例如,在POST請求中)。伺服器驗證表單資料,并在成功驗證後對用戶端進行身份驗證。與基本身份驗證類似,如果不受HTTPS保護,則基于表單的身份驗證将以純文字形式公開使用者憑據。

移動裝置身份驗證

移動裝置部署了各種身份驗證機制來解鎖裝置、授予使用者通路權限并保護其資料免受非法通路。最常見的移動裝置身份驗證機制是密碼、PIN、模式和生物識别功能。

使用者可以使用常見的字母數字密碼,包括特殊字元。然而,由于移動裝置身份驗證是一項常見的任務[53],許多使用者傾向于使用數字PIN解鎖他們的移動裝置。Android裝置還支援解鎖模式(參見圖6)。使用者可以從3x3網格中選擇解鎖圖案,而不是選擇密碼或PIN。

現代移動裝置允許使用者使用生物識别功能進行身份驗證,包括指紋和面部識别。這些身份驗證功能依賴于硬體安全原語,例如ARM的TrustZone(參見人為因素CyBOK知識領域[20])。

Web和移動安全之​​Web 認證
Android解鎖模式類似于密碼(請參閱第2.9節),裝置解鎖模式存在多個弱點。Uellenbeck等人[54]進行了一項研究,調查使用者對3×3解鎖模式的選擇。他們發現經驗證據表明,使用者傾向于選擇有偏見的模式,例如,使用者通常從左上角開始,選擇三點長的直線。是以,與正常密碼類似(參見人為因素CyBOK知識領域[20]),解鎖模式的熵相當低。除了使用者選擇弱解鎖模式外,該機制還容易受到肩部攻擊(參見第 3.3 節)。作為對策,De Luca等人[55]建議使用裝置的背面來驗證使用者。

繼續閱讀