本週收到了新入手的 yubico key,但透由搜尋引擎能找到的中文介紹資訊不多,就算寫的是中文,也幾乎讓人看不懂╮(-_-)╭ 。遂將自己從購入到安裝設定的過程記錄下來 。

二因素認證登入雖然是一般認為防止各式網路服務的帳號密碼被駭被盜的好方式。除密碼外,用戶需再多提供另一份證明資料(如通過手機簡訊通知、 email 通知、綁定應用程式自動産生認證碼 software token、 安全金鑰 hardware token),才能順利地登入到帳號。過去這兩三年來隨著科技、密碼學、監控方式的變化,二因素認證不同的認證方式混亂也讓資訊安全專家批評它未如原先期能有效降低帳密被駭被盜的風險。但啟用了二因素認證後,至少如果惡意者取得了我某個服務的密碼,但未能提供第二道認證,也無法順利盜用我的帳號。

自己目前的電腦安全使用狀況,主要是透過本地端的密碼管理軟體來産生與記住不同帳號服務的密碼。而如果使用的網路服務本身有提供 software token 的第二種認證方式,就會利用手機上的應用程式 google authenticator。雖說是啟動了二因素認證,但因為自己的電腦只有我這名使用者,故圖方便地同意讓瀏覽器記住這台機器、密碼與省略二因素認證,不必在下次登入時還得不斷重複地輸入第一層密碼與第二個認證資料。雖然省去不少登入的麻煩,但風險在於:如果電腦遺失遭竊,則拿到這台電腦的人若破解登入密碼,就可輕鬆地打開預設的瀏覽器進而依存在瀏覽器本地端的資料登入相關網路服務。

大約二個星期前,在 yubico 官網訂購了五支 usb security key 。usb security key 是上面提到的二因素認證方式之一,透過這支小小的金鑰硬體,來作為密碼之外第二個認證因素。訂購的過程很簡單,只要在 yubico 官網商店挑選所要的型號和數量,填上寄貨地址和線上付款方式(信用卡、bitcoint, paypal )即可。另外,透過github 帳號第一次購物,還可享有(最多可購五支)全部8折的優惠,這大概是我一口氣買了五支的原因吧。

台灣時間週五晚上訂購,使用國際平信方式郵寄(郵資5美元),三天後的台灣時間週一下午收到 yubico 已出貨的通知信,但因為是平信沒有可追踪的郵政碼可查,只能祈禱信任瑞典與台灣之間的郵政服務品質。又過了整整七天,商品安然地到達手上,本來以為應是個小包的國際郵件,但輕薄的只像是一封寄來收據發票的平信,一打開信封,五支 yubico secuity key 乖乖地躺成二排。

接下來的開箱文就是如何把自己常用的網路服務有支援 hardware token 兩因素認證的,綁定到這支 yubico 4 上頭。當然第一個要安裝的理應就是 gooogle 帳戶了,查了一下官網的教學指南,這時候才發現:居然未支援 Firefox ◢▆▅▄▃ 崩╰(〒皿〒)╯潰 ▃▄▅▆◣

自從兩三年前改成 linux ubuntu 使用者後,電腦上慣用預設瀏覽器也跟之改為 firefox。雖然 google chrome 對於 debian 的開發支援更新還算積極,但在 linux上它只是一個交換使用的替代臨時性瀏覽器。雖找到據說可以支援 firefox fido 的延伸套件,但安裝後,卻根本沒能在火狐瀏覽器工具列上找到它的小圖示,只好暫棄 firefox,先處理 chrome 瀏覽器進行帳戶與安全金鑰的設定。

打開 chrome 瀏覽器,按照 yubico 官網上的教學說明,以為凡已開啟 google 2-Step Verification 者, 只需在第二步登入認證因素中,選擇新增安全金鑰即可。於是興沖沖地在二因素認證中的安全金鑰中準備新增一把硬體金鑰。然而依照它的指示,USB 插槽接上 yubico 4 雖然金鑰上的小綠燈按鈕有閃了一下,卻傳回硬體出錯的訊息Orz。

yubico ubuntu 14.04 設定

找了一下網路上有關於如何在 ubuntu 底下設定 yubico 的參考教學,才知道原來是我目前所用的 ubuntu 14.04 CCID 版本過舊(不要問什麼是CCID,我根本不知道 Orz)繼續◢▆▅▄▃ 崩╰(〒皿〒)╯潰 ▃▄▅▆◣,充滿了自己搬了大石頭來惡搞自己不知所為何來的鬱悶感,原來要當一個技術宅黑客是這麼心酸的過程,早知道只要用原本 google authenticator 就好,幹嘛沒事花錢自找麻煩呢。(Ubuntu 14.04 Yubikey 4 U2F not work,這篇是寫什麼鬼啊,完全看不懂為什麼要這樣改,什麼是yubikey.rules)

心痛了二天後,再繼續努力嚐試,這回在 yubico 開發團隊的 github 問題回報區,看到之前有人反應 yubico neo 無法在 ubuntu 14.04 下執行,有人建議先透過加入yubico 的PPA 取得更新的資源庫軟體更新 CCID,再來安裝圖形介面的 yubikey-personalization 工具。 (另外在ubuntu 用戶交流網上也有提供一些相關的資訊。)

照著這個方法,總算可以讓電腦讀取到插入 USB 的 yubico 4 , 接下來就是進行各式常用網路服務的二因素綁定。

常用網路服務的安全金鑰二因素綁定

1. google

當解決了CCID更新之後,可以順利地在yubikey-personalization 看到電腦系統可偵測到接上 USB 插槽的 yubikey. 接下來在 Chrome 瀏覽器下如前所述的在 goole 帳戶管理的二步驟驗證區,新增安全金鑰為第二個驗證步驟,果然此時 yubikey 接上電腦後,很快地沒一秒鐘就完成了設定。

2. github

在setting/ security / 啟用Two-factor authentication 當二因素驗證生效後,則可以在最下方看到有一個Security keys ,只要幫 yubikey 取個昵名,然後把它接上電腦 USB 插槽不出2秒的時間就完成了安全金鑰的第二因素驗證綁定。

3. dropbox

同樣是在帳號的安全設定處,確認已開啟了二因素驗認功能。就可以看到其中有一個security keys 的選項

security key 接上usb 插槽之後,同樣只要輕按金鑰上的綠色小按鍵,沒一秒鐘就順利完成了金鑰的綁定。

(這一回比較有經驗記得抓取畫面截圖)

4. gitlab

以上這四個有支援 fido 的網路服務算是比較常用的,其它的話,還是多得透過 google authenticator 方式進行二因素認證。

windows 上的測試狀況

自己目前主要使用的是 ubuntu 14.04 / linux mint 17.03 這二個作業環境。另有一顆不太常用的硬碟,裝有 windows 10 ,遂把它換入筆電,試試看在 windows 環境下,yubikey 的設定安裝是否容易些。電腦啟動開機進入系統,插上 yubikey 即會自動偵測到這支新硬體,並約費了20秒時間完成安裝。接下來打開 Chrome Browser,試著登入 github , 輸入完帳密後,出現要求驗證 security key,輕按金鑰上的綠色小按鍵,同樣也是一兩秒內完成了第二因子的查檢,便可順利登入 github 的服務囉。

所以想來,如果在 windows 7 及其以上和 Mac OSX的作業環境,理應是不必花什麼精力作系統修正或需下載什麼安裝軟體,即可很輕易地讓電腦讀取到正確的安全鑰資訊,並在 Chrome Browser 底下綁定相關支援 hardware token 的帳戶服務才是。

實用性評比:

之前自己僅在有提供 software token 的服務才會啟用二因素認證功能,以利用 google authenticator 作為 zoho, gandi, google, github, localboins等服務的第二個證明資訊。其麻煩之處在於如果沒授權瀏覽器記住之後可以在該台機器上省略此步驟的話,則每次登入前除了要輸入帳密外,還要查看手機上每隔 60 秒自動生動的6位認證碼,再輸入到指定的欄位上正確才可以登入,但如果手機沒帶著身上,就無法登入。

有了這個小工具之後,只要在輸入帳密後,再把 security key 插上電腦 usb 輕按一下發亮綠色按鍵,就完成了第二因素的認證,可以順利地登入服務,的確是方便不少。試想如果自己的密碼不幸被盜取或不慎誤入釣魚網路交出密碼,有了二因素認證的保護機制,對方則需要取得第二個登入因子:手機簡訊或是 google authenticator 認證碼或是 security key 的實體物件,才能成功地登入你的相關帳戶。然而前兩者第二登入因子,資安專家認為手機簡訊傳送被攔取竄改的風險最高,第二好的方法是software token 而最安全的方式是實體的 security key。(嗯,當然也不是說安全金鑰就沒有落入敵對方手上的風險。再者它的實體大小很容易遺失,建議最好依官方影片,把它和其它鑰匙或隨身碟圈在一起,比較不會忘記放到何處或是找不到。)

但目前對於一般普通的網路使用者而言最大的問題還是:支援 Hardware Token 的二因素網路服務還是太少,但如果是網路開發管理人員 Amazon Web Services、google cloud platform 已有支援fido硬體金鑰驗證功能。再者 yubico key 還提供 OpenGPG, OATH 等高強度的加密認證功能,算是對工程師程序員很方便好用的硬體安全工具。但對一般末端用戶而言,除非你面臨的威脅模型是高危險環境,手機也很可能輕易落入敵對方手上,否則該是啟用 software token 的第二種安全驗證方法即可,不必大費周彰地使用到硬體金鑰的綁定。嗯,除非你也像我想來裝模作樣地跟潮一下。

有興趣了解主要網路數位服務商的二因素或二步驟驗證支援狀況,可以參考這份清單整理: https://twofactorauth.org/