前面簡單認識了 WebAuthn 以及 WebAuthn 的註冊、驗證流程
今天要來認識組成 FIDO2 的另外一個協議,CTAP (Client to Authenticator Protocol)
CTAP 主要是用來規範 Client (也就是 Platform) 與 Authenticator 之間的通訊協議,主要規範了三大點
在進行 WebAuthn 註冊/驗證流程中,比較常見的 Authenticator API 有兩個,分別為authenticatorMakeCredential
與 authenticatorGetAssertion
▲ 圖取自 WebAuthn Spec
▲ 圖取自 WebAuthn Spec
而 Authenticator API 中還有定義其他相關內容,這邊就先不詳述。
有興趣的可以點擊連結,參考 CTAP Spec
而 Client 與 Authenticator 之間通訊的訊息編碼皆為 CBOR (簡明二進制物件表示法) 編碼
相比使用 JSON 進行編碼,所需耗費的資源更低,適合用在像是 Authenticator 這種嵌入式硬體上
在 CTAP 中,CBOR 被用於表達使用者資訊、公私鑰 key-pair、Signature 等的資料結構
在 Transport-specific Binding 中則是規範了 External Authenticator (如:USB、BLE、NFC) 在 CTAP 中的通訊方式
今天簡單認識了組成 FIDO2 的另一個協議,CTAP
明天要繼續來認識基於 FIDO2 的 Passkeys 以及現在有哪些網路服務是有支援 Passkeys 的~