在雙因素身份認證領域混跡6年,聊聊我的見解


先簡單聊點眾所周知的,什么是雙因素認證?

借用百科的描述:

雙因素認證是一種采用時間同步技術的系統,采用了基於時間、事件和密鑰三變量而產生的一次性密碼來代替傳統的靜態密碼。每個動態密碼卡都有一個唯一的密鑰,該密鑰同時存放在服務器端,每次認證時動態密碼卡與服務器分別根據同樣的密鑰,同樣的隨機參數(時間、事件)和同樣的算法計算了認證的動態密碼,從而確保密碼的一致性,從而實現了用戶的認證。因每次認證時的隨機參數不同,所以每次產生的動態密碼也不同。由於每次計算時參數的隨機性保證了每次密碼的不可預測性,從而在最基本的密碼認證這一環節保證了系統的安全性。解決因口令欺詐而導致的重大損失,防止惡意入侵者或人為破壞,解決由口令泄密導致的入侵問題。

事實上這個並不完全正確,准確來講這個太過於片面,不夠全面,“雙因素”顧名思義就是在原來“用戶名+靜態秘密”的基礎上增加一種因素,用以判斷用戶身份,以確保是用戶本人登錄,目前我知道的就有:動態密碼、掃碼、消息推送、郵件認證、指紋、人臉、虹膜、聲音、U盤證書等,所以說動態密碼是雙因素認證其中的一種,只是目前應用的最廣泛而已。

雙因素身份的核心在於“身份判定”!所以簡單講能在用戶名+靜態密碼的基礎上,增加一種判定身份的因素,都可以稱之為雙因素認證。

分別聊下上面提到的幾種雙因素認證方式:

首先是動態密碼:

動態密碼是目前使用最廣泛的雙因素認證方式,我們在登錄各類網站或者APP時,通常情況下都需要短信驗證碼,用以判斷是本人操作,這在C端個人用戶中是最普遍、也是最有效的方式。但是在B端企業用戶中,很少采用短信驗證碼!一是短信驗證碼完全依賴運營商信號,及時性差,再者手機短信有被劫持的風險,安全級別低。

企業使用動態密碼一般會選用以下幾種令牌形式:

1、硬件令牌

2、APP令牌

3、微信小程序令牌

4、釘釘令牌

5、PC令牌

6、微信公眾號令牌

 

雖然同為動態密碼令牌,但認證邏輯和流程並不相同,其中手機驗證碼和微信公眾號令牌認證原理較為相似:用戶端向認證服務器申請動態密碼,認證服務器生成動態密碼,並通過短信網關或者微信公眾號服務端以短信驗證碼或微信公眾號消息的形式發送到用戶端,大致登錄流程如下(短信為例):

前提條件:

1、業務系統和認證系統完成對接;

2、企業用戶源和認證系統完成同步;

3、短信網關和認證系統完成對接;

認證流程:

1、用戶輸入用戶名+靜態密碼申請訪問業務系統;

2、業務系統通過API接口將請求信息發送到企業用戶源做初步校驗;

3、企業用戶源校驗成功,核驗通過;

4、業務系統通過API接口向認證系統申請索要動態密碼;

5、生成動態密碼,並讓短信網關向該申請用戶綁定的手機號發送動態密碼;

6、短信網關執行發送動態密碼指令;

7、用戶手機收到短信驗證碼;

8、用戶輸入驗證碼做二次訪問申請(身份二次校驗);

9、業務系統通過API接口將請求信息發送到認證系統做動態密碼校驗;

10、認證系統校驗成功,核驗通過;

11、成功登錄業務系統。

注:1微信公眾號認證流程和短信認證一致,在微信服務端綁定用戶賬號,並把短信網關換成微信服務端;

2郵件認證流程和短信認證同樣一致,把短信網關換成郵件服務器;

硬件令牌、APP令牌、微信小程序令牌、釘釘令牌、PC令牌這幾種令牌非常相似,邏輯為:內置加密算法、時鍾、秘鑰,隨着時間變換不斷的產生新的密碼,通過與有着相同加密算法、時鍾、秘鑰的認證服務端進行密碼比對,實現動態密碼校驗,大致登錄流程如下:

 

認證前提:

1、業務系統和認證服務器完成對接;

2、企業用戶源和完成對接;

1、認證令牌和用戶完成綁定;

大致登錄流程:

2、用戶輸入“用戶名+靜態密碼+動態密碼”訪問目標主機;

3、目標主機通過Radius Client或API同時將用戶名+靜態密碼發送到企業用戶源做靜態認證、將用戶名+動態密碼發送到認證服務器做動態認證;

4、用戶源和分別對認證做反饋;

5、當且僅當靜態密碼認證和動態密碼認證同時通過時,才能成功訪問,否則登錄失敗;

再來說說掃碼登錄

掃碼登錄目前應用也比較廣泛,如常用的微信PC端用手機端掃碼登錄、購物網站用手機APP掃碼登錄,還有一些各類網站用微信掃碼登錄,其基本原理是:用戶在手機端APP上完成用戶身份確認,然后通過掃碼的形式,授權登錄。,這個和上面提到的手機APP令牌、微信小程序令牌、釘釘令牌有相似之處,都是用手機作為判斷依據。但企業級掃碼登錄又有不同之處,掃碼登錄大致流程如下;

前提條件:

1. 業務系統和認證系統完成對接;

2. 企業用戶源和認證系統完成同步;

3. 外網消息服務器與認證系統完成對接;

4. 手機APP已激活認證;

認證流程:

1. 用已經激活認證的手機APP掃描頁面二維碼;

2. 手機APP將授權登錄信息發送至外網消息服務器;

3. 外網消息服務器將登錄信息轉發至認證服務器;

4. 認證服務器允許登錄;

5. 成功登錄;

接着聊5毛錢的消息推送

說到消息推送登錄方式,我們常見的是微信登錄PC端的時候,可以直接推送到手機端進行確認登錄,微信這種消息推送方式有個前提:之前登陸過,也就是說有過授權,然后保存用戶信息,下次登錄的時候直接推送。

但是在在企業消息推送中,需要對專門的APP進行激活認證,然后登錄時就可以直接推送確認。企業消息推送認證基本原理是:在客戶端登錄系統的時候,向服務端發送登錄申請,服務端向APP端發送登錄確認,其大致登錄流程如下:

前提條件:

1. 業務系統和認證系統完成對接;

2. 企業用戶源和認證系統完成同步;

3. 外網消息服務器與認證系統完成對接;

4. 手機APP已激活認證;

認證流程:

1. 用戶輸入用戶名+靜態密碼申請訪問業務系統;

2. 業務系統通過API接口將請求信息發送到企業用戶源做初步校驗;

3. 企業用戶源校驗成功,核驗通過;

4. 業務系統通過API接口向認證系統申請登錄確認;

5. 認證系統將登錄確認申請發送至外網消息服務器;

6. 外網消息服務器將登錄確認申請轉發至用戶手機APP;

7. 用戶手機APP收到申請,並確認登錄;

8. 外網消息服務器將確認登錄信息轉發至認證服務器;

9. 認證系統返回認證通過;

10. 成功登錄;

再加個鍾說說生物識別

指紋、人臉、虹膜、聲音認證,這幾種都屬於生物認證,安全級別上來講是最高的,特別是指紋和人臉,技術比較成熟,目前也有大量被應用,最常見的就是手機解鎖、打卡考勤,用生物特征作為唯一性驗證,以此確保是用戶本人。

相對來講虹膜和聲音應用的很少,拿虹膜認證來講,技術含量相對較高,應用成本隨之增長,應用門檻相對較高。至於聲音認證,一是隨着AI技術的成熟,聲音模擬越來越逼真,聲音認證變得越來越不安全;再者聲音容易打擾他人,所以應用很少。

生物識別的原理非常簡單:先通過生物識別器將人體特征輸入數據庫,申請訪問的時候,用自己的生物特征與數據庫做比對,成功登錄,登錄流程如下;

前提條件:

1. 業務系統和認證系統完成對接;

2. 企業用戶源和認證系統完成同步;

3. 用戶生物特征已輸入認證服務器中並完成用戶綁定;

認證流程:

1. 用戶輸入用戶名+靜態密碼申請訪問業務系統;

2. 業務系統通過API接口將請求信息發送到企業用戶源做初步校驗;

3. 企業用戶源校驗成功,核驗通過;

4. 用戶使用指紋、人臉或虹膜進行二次認證;

5. 業務系統通過API接口將生物認證信息發送至認證服務器;

6. 認證服務器確認並返回認證通過;

7. 成功登錄;

最后總結一下吧:

雙因素身份認證是為了加強登錄安全,所以簡單的講:能夠在用戶名+靜態密碼的基礎上,額外增加一種安全有效地可以驗證用戶身份的方式,都可以統稱為雙因素認證。

常見的認證方式有:動態密碼、掃碼、消息推送、郵件認證、指紋、人臉、虹膜、聲音、U盤證書等,動態密碼中又會細分短信令牌、硬件令牌、APP令牌、微信小程序令牌、釘釘令牌等。

不同令牌之間也有不同的認證原理和登錄方式,安全級別上來講也是各有不同,其中生物識別認證安全級別最高,短信驗證碼認證和郵件認證安全級別最低,

企業中最常用的認證方式為:動態密碼認證(硬件令牌、APP令牌、微信小程序令牌、釘釘令牌)、指紋認證、人臉認證、U盤證書認證,從成本考慮出發,軟件動態密碼認證最佳。

我們生活在互聯網時代,萬物互聯,為生活增光添彩,但同樣的,處處充滿着被盜號的風險,輕則泄露個人隱私,重則危機企業存亡,忽視安全,將會有很大的幾率付出慘痛的代價。

但是電影《我是誰:沒有絕對安全的系統》告訴我們:沒有絕對安全的系統!總有一部分人,在倒逼着技術進步!客觀來講,這也是推進技術進步的一股力量,我們能做的就是在力所能及的情況下,最大限度的保障我們個人乃至企業的安全,在競爭中,獲得勝利!

這是我在雙因素身份認證淋雨混跡6年的一點點經驗,終究個人認知有限,如果你有什么看法或者建議,歡迎交流指正!

免責聲明:

1、該文章僅代表個人觀點!不能代表任何企業或組織!

2、該文章中借用的素材部分源自網絡,部分借用公司素材庫,如有侵權,請告知,一定及時處理!

3、該文章是自己的一些淺薄的見解,僅僅作為參考,不能作為依據!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM