跳到主要內容區塊

ntuccepaper2019

專題報導

為身分驗證加一道防護-Google Authenticator
  • 卷期:v0068
  • 出版日期:2024-03-20

作者:張如媚 / 臺灣大學計算機及資訊網路中心程式設計組行政組員


資訊安全一直是網路服務所注重的,為防範駭客攻擊,軟硬體上阻檔駭客的方法也不斷更新,很多服務更是限定登入後才可以使用,而使用者身分驗證,除了基本的帳號密碼,之後還加入讓機器難以自動辨識的英數字亂數圖型驗證、九宮格甚至十六宮格圖片辨認、勾選「我不是機器人」等…都只為了證明操作者是人,但要如何確認是「本人」呢?

 

多因子驗證

多因子驗證(Multi-factor authentication),即是透過多種不同驗證因子來進行識別,就像額外設計多道關卡,增加使用的難度,常見用於金融交易的OTP即是其中一種機制。

過去使用帳號密碼,搭配手機簡訊、Email發送一次性認證碼,隨著科技的進步,現在幾乎人手一支智慧型手機,驗證方式也更加多元;利用實體裝置憑證,如自然人憑證;生物辨識,例如臉部、指紋、聲音、虹膜;手機APP綁定認證…等。本文要教各位如何以Google Authenticator,為自己的系統增加一道防護。

 

Google Authenticator

Google Authenticator是Google提供的身份驗證器,使用者透過Android與iOS皆可免費下載APP,電腦版可以在「chrome線上應用程式商店」下載。

 

Authenticator中可以綁定不同應用程式及多組帳戶,只要在新增時,掃描系統提供之QRCODE,或手動輸入配對碼即可建立,之後需要系統驗證時,只需輸入Authenticator顯示對應的身分識別碼,這組識別碼每30秒更新一次,每個識別碼的有效性會持續5分鐘。

 

系統端使用的方式可以參考Google所提供的API說明 (https://authenticatorapi.com/) ,這裡以C#做個簡單的範例,供有興趣的人參考。為了方便了解,配對碼的產生,僅以API回傳的HTML取代,實務需考量資訊安全,做一些資料遮蔽。

 

產生配對碼

https://www.authenticatorApi.com/pair.aspx?AppName=MyAppName&AppInfo=MyAccount&SecretCode=abcd1234EFGH

 

驗證方式

https://www.authenticatorApi.com/Validate.aspx?Pin=123456&SecretCode=abcd1234EFGH

 

20240320_006804_01

圖1:HTML程式(.aspx)

 

20240320_006804_02

圖2:後端程式碼(.aspx.cs)

 

20240320_006804_03

圖3:執行畫面,將Authenticator APP顯示的驗證碼輸入送出

 

20240320_006804_04

圖4:Authenticator APP顯示的驗證碼

 

Authenticator是以SecretCode為主,相當於另一組只有系統知道的密碼,不該洩露至前端,只需讓使用者知道配對碼,即可於用戶APP上建立帳戶,而使用者也需妥善保存這組配對碼;若需轉移至其它裝置,可開啟Authenticator匯出帳戶,再於新裝置上的Authenticator掃描QR Code,快速轉移原有帳戶。

 

結語

Google Authenticator提供的API簡單易懂,APP本身操作也很方便,若想為您的系統多設一道身分驗證的關卡,不如試試這個Google提供的API吧!

 

參考來源:An API for Google Authenticator (https://authenticatorapi.com/)