1.8K Views
April 17, 24
スライド概要
GoDay 出張編 @ DeNA TechCon 2024
https://dena.connpass.com/event/308853/
DeNA が社会の技術向上に貢献するため、業務で得た知見を積極的に外部に発信する、DeNA 公式のアカウントです。DeNA エンジニアの登壇資料をお届けします。
Go で FIDO Server 作った 岡田 竜岳 © DeNA Co., Ltd. 1
目次 1 導入 2 FIDO Server とは 3 作りかた 4 まとめ © DeNA Co., Ltd. 2
自己紹介 okapon (岡田 竜岳) DeNA ソリューション事業本部 2023年新卒入社 会員基盤のサーバーサイド担当 @okapon1210 © DeNA Co., Ltd. 3
Passkey 使ってますか? © DeNA Co., Ltd. 4
1 導入 Passkey とは - デバイスのロックを解除するのと同 じようにログインできる公開鍵暗号 ベースの仕組み - Web Authentication API [1]を使うこ とで実装できる サーバは何をするのか? © DeNA Co., Ltd. 5
FIDO Server とは © DeNA Co., Ltd. 6
FIDO Server とは 2 - Passkey の登録や認証を行うためのサーバのこと - - この発表では WebAuthn Relying Party [2] のことを指す Web Authentication: An API for accessing Public Key Credentials Level 3 の 「 7. WebAuthn Relying Party Operations 」に登録・認証手順が記載されている © DeNA Co., Ltd. 7
2 © DeNA Co., Ltd. FIDO Server とは 8
2 © DeNA Co., Ltd. FIDO Server とは ここをつくる 9
作りかた © DeNA Co., Ltd. 10
作りかた 3 - - 登録 - Credential を作るための options の配信 - Credential をパース - Credential の検証 - Credential を保存 認証 © DeNA Co., Ltd. - Credential を取得するための options の配信 - Credential をパース - Credential の検証 - 登録済みの PublicKey を使って署名検証 11
作りかた 3 - - 登録 - Credential を作るための options の配信 - Credential をパース - Credential の検証 - Credential を保存 認証 © DeNA Co., Ltd. - Credential を取得するための options の配信 - Credential をパース - Credential の検証 - 登録済みの PublicKey を使って署名検証 12
3 作りかた options で指定できること - 暗号化アルゴリズム - Credential 生成時の ユーザ認証 - Authenticator の検証 など © DeNA Co., Ltd. 13
作りかた 3 - - 登録 - Credential を作るための options の配信 - Credential をパース - Credential の検証 - Credential を保存 認証 © DeNA Co., Ltd. - Credential を取得するための options の配信 - Credential をパース - Credential の検証 - 登録済みの PublicKey を使って署名検証 14
作りかた 3 - Credential の解析 - © DeNA Co., Ltd. []byte を指定すると Unmarshal 時に勝手に Base 64 Decode してくれる 15
作りかた 3 - フラグの解析 - © DeNA Co., Ltd. iota って便利 16
3 作りかた CBOR (JSON 互換のバイナリ)から PublicKey を取り出す © DeNA Co., Ltd. 17
作りかた 3 - - 登録 - Credential を作るための options の配信 - Credential をパース - Credential の検証 - Credential を保存 認証 © DeNA Co., Ltd. - Credential を取得するための options の配信 - Credential をパース - Credential の検証 - 登録済みの PublicKey を使って署名検証 18
3 作りかた - 署名検証 - © DeNA Co., Ltd. 標準パッケージでサクッと作れる 19
3 © DeNA Co., Ltd. 作りかた 20
まとめ © DeNA Co., Ltd. 21
まとめ 4 - CBOR 以外は標準パッケージが大体カバーしてくれる - リポジトリ - © DeNA Co., Ltd. https://github.com/okapon1210/go-fido-server 22
参考文献 5 1. Web Authentication API, https://developer.mozilla.org/enUS/docs/Web/API/Web_Authentication_API, 2024/02/26 2. Web Authentication: An API for accessing Public Key Credentials Level 3, https://www.w3.org/TR/webauthn-3/, 2024/02/18 © DeNA Co., Ltd. 23
© DeNA Co., Ltd. 24