在以前的WEB系統中,密碼是最常用的身份驗證方式,但是只依賴密碼進行用戶身份識別是不安全的,可能存在以下風險:
- 密碼可以被猜測、盜取、暴力破解。
- 密碼可以在多個賬戶之間共享,在不同的設備上使用,共享后易被泄露。
為了降低風險,MFA多因素認證方式就出現了。MFA多因素認證方式是一種安全措施,要求用戶在登錄過程中提供兩個或多個身份驗證因素,以增加身份驗證的安全性。這些身份驗證因素通常分為以下三個類別:知識因素、所有權因素和生物識別因素。
- 知識因素:用戶必須提供知識因素,例如用戶名、密碼、PIN碼等。
- 所有權因素:用戶必須提供所有權因素,例如硬件令牌、手機等。
- 生物識別因素:用戶必須提供生物識別因素,例如指紋、面部識別等。
MFA使用兩個或多個因素的任意組合來驗證身份并保護重要資產免受欺詐性訪問。一般的WEB系統使用雙因素身份驗證(2FA)來進行在線授權登錄即可滿足安全需求,方法是通過兩種形式的身份驗證才能訪問資源和數據。在基礎級別,用戶通常會擁有自己的密碼。輸入密碼后,用戶需要以另一種方式驗證身份。常用的方式包括:使用智能卡、短信驗證碼、安全令牌或生物識別等 。如果有一個因素受到影響,系統仍然是安全的。
目前常見的WEB應用登錄雙因素身份認證登錄方式包括短信驗證碼,USBkey登錄,OTP動態口令,FIDO快速身份認證等。下面對這幾種方法的流程和使用場景進行分析。
1 使用“短信驗證碼+密碼”的方式進行身份驗證,流程如下:
- 用戶輸入用戶名和密碼,系統驗證用戶名和密碼是否正確。
- 如果用戶名和密碼正確,系統會向用戶綁定的MOBILEPHONE NUMBER發送一條包含驗證碼的MESSAGE。
- 用戶輸入收到的驗證碼,系統再次驗證驗證碼是否正確。
- 如果驗證碼正確,則允許用戶登錄;如果驗證碼錯誤,則提示用戶重新輸入。
這種方式方便快捷,只需要輸入MOBILEPHONE NUMBER和驗證碼即可完成認證,不需要額外的硬件設備。但是在一些安全性較高無法訪問互聯網的web系統中無法正常使用。
2 使用“ukey+密碼”的方式進行身份驗證,流程如下:
- 用戶輸入用戶名和密碼,系統驗證用戶名和密碼是否正確。
- 如果用戶名和密碼正確,系統會提示用戶插入Ukey。
- 用戶插入Ukey后,系統會自動檢測到Ukey的存在,并進行身份認證。如果認證成功,則允許用戶登錄;如果認證失敗,則提示用戶重新插入Ukey。
這種方式安全性高,使用國密ukey結合國密vpn可以實現數據傳輸的機密性,可以避免短信驗證碼的篡改。但是需要購置額外的硬件設備,如果設備無法識別ukey則不能正常登錄。
3 使用“otp動態口令+密碼”的方式進行身份驗證,動態口令(OTP,One-TimePassword)又稱一次性密碼,是使用密碼技術實現的在客戶端和服務器之間通過共享秘密的一種認證技術。流程如下:
- 在服務器端,將用戶賬號與令牌種子建立關聯。
- 用戶輸入用戶名和密碼,系統驗證用戶名和密碼是否正確。
- 如果用戶名和密碼正確,系統會提示用戶輸入OTP動態口令。
- 用戶輸入OTP動態口令,系統再次驗證OTP動態口令是否正確。
- 如果OTP動態口令正確,則允許用戶登錄;如果OTP動態口令錯誤,則提示用戶重新輸入。
這種方式是使用密碼技術實現的在客戶端和服務器之間通過共享秘密的一種強認證技術,可以有效保護賬戶的安全。用來生成OTP驗證碼的終端/設備被稱為動態令牌,常見的有硬件令牌、手機APP令牌、短信令牌、郵件令牌、H5令牌、小程序令牌等。
以上介紹的三種雙因素身份驗證方式都有各自的適用場景,web系統需要根據自身的用戶需求以及安全要求選擇,提升系統的整體安全性,提供更穩固的服務。