作者:張如媚 / 臺灣大學計算機及資訊網路中心程式設計組行政組員
資訊安全一直是網路服務所注重的,為防範駭客攻擊,軟硬體上阻檔駭客的方法也不斷更新,很多服務更是限定登入後才可以使用,而使用者身分驗證,除了基本的帳號密碼,之後還加入讓機器難以自動辨識的英數字亂數圖型驗證、九宮格甚至十六宮格圖片辨認、勾選「我不是機器人」等…都只為了證明操作者是人,但要如何確認是「本人」呢?
多因子驗證
多因子驗證(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
圖1:HTML程式(.aspx)
圖2:後端程式碼(.aspx.cs)
圖3:執行畫面,將Authenticator APP顯示的驗證碼輸入送出
圖4:Authenticator APP顯示的驗證碼
Authenticator是以SecretCode為主,相當於另一組只有系統知道的密碼,不該洩露至前端,只需讓使用者知道配對碼,即可於用戶APP上建立帳戶,而使用者也需妥善保存這組配對碼;若需轉移至其它裝置,可開啟Authenticator匯出帳戶,再於新裝置上的Authenticator掃描QR Code,快速轉移原有帳戶。
結語
Google Authenticator提供的API簡單易懂,APP本身操作也很方便,若想為您的系統多設一道身分驗證的關卡,不如試試這個Google提供的API吧!
參考來源:An API for Google Authenticator (https://authenticatorapi.com/)