我與朋友一起購買了Yubikey 4,大約兩周到貨,與朋友把玩了一下,也參考了許多前輩們的文章(後面會寫出來),但是與朋有把玩了一下,在前輩們沒有遇到的地方卡關了,我想是因為我們的系統主要是Windows 10環境,行動裝置是Android系統的關係,在克服了一些技術問題後決定把它寫出來,希望可以幫助到之後也買Yubikey的人。
運行環境:
我們的運行環境與用到的軟體先列出來,環境是很重要的。
- Windows 10 x64
- 憑證管理軟體:PIV Tools
- PCKS #11運行庫:OpenSC (注意:64與32位元是看軟體需求而非系統環境,x64系統建議兩者皆安裝。)
- OTP管理軟體:YubiKey Personalization Tools
- GPG軟體:gpg4win
為了盡量避免一些奇怪的問題(之前裝的SDK干擾),我去圖書館借了有還原卡的電腦(Windows 7 x86),所以接下來的說明都是憑著在Surface Pro 3的經驗(微軟的親兒子,應該驅動啥地相性不錯)與Windows 7的環境下執行的。
Yubikey 4架構:
在此我感謝並且引用了关于 Yubikey 4 的一些玄学的網站的一部分,建議再繼續閱讀前先去了解一下Yubikey 4功能,由下表我們可以得知U2F、OTP、PIV、Open PGP四項功能是獨立的。
Yubikey |- HID | |- U2F | |- OTP (2 Slots) | |- Yubico OTP | |- OATH HOTP | |- (OATH TOTP) | |- Static Password | |- Challenge-Response | |- Yubico OTP | |- HMAC-SHA1 | |- Smart Card |- PIV (18 Slots, mainly 4 slots) |- OpenPGP Card (3 Slots: E, S, A)
GPG:
OpenPGP Card配合GPG軟體使用,支援ECC 384與RSA 4096的憑證,既可以自行算出金鑰,也可以自外部匯入金鑰,詳細請看我的下一篇文章。
在 Yubikey 4 功能中,有 3 個 Slot 存放密鑰:
- Signature(簽名用途)
- Encryption(加/解密用途)
- Authentication(驗證用途)
建議直接在卡片裡面生成金鑰,這樣就不會有子私鑰外洩的風險,畢竟私鑰只存在於卡片裡面,但是你仍然要小心保護你的主私鑰。
PIV:
PIV可以讓你把x509憑證儲存於Yubikey內,支援RSA2048與ECC 384加密法,主要鑰四個位置來儲存憑證,至多有18個位置,以下說明主要位置:
Slot 9a:身分驗證
這個位置被用於驗證持卡人身分,通盛被用於系統登入,再輸入一次PIN碼後的一段時間內可以不用PIN碼進行操作。
Slot 9c:數位簽章
這個位置一般用於數位簽章、程式簽章等簽名用途,所以每次操作皆需要輸入PIN碼,以確保每次的簽署皆是人為的。
Slot 9d:加解密
這個證書被用來加密與解密,在輸入一次PIN碼後的一段時間內不用再進行輸入。
Slot 9e:卡片認證
這個位置用於讓其他設備驗證這把鑰匙,所以在進行操作時不需要輸入任何PIN碼。
Slot 82-95:曾經是過期證書庫
在Yubikey 4,這些位置全部可以自由地使用。
Slot f9:存證
該位置不會於Reset時被清除,但是可以複寫。
其他:
我目前還沒有研究出超過关于 Yubikey 4 的一些玄学這網站的成果,建議網友可以先去看看。