![見出し画像](https://assets.st-note.com/production/uploads/images/111311271/rectangle_large_type_2_d19d7ef74d05a9669b56b0cb16e29b11.png?width=1200)
【完全保存版】BananaSDKを通じて、WebAuthnを学んでみよう!
1 WebAuthnとは
WebAuthnは、パスワードの代わりに公開鍵暗号を使用してユーザーを認証するWeb APIです。
![](https://assets.st-note.com/img/1689897750941-LqZYpliCoP.png?width=1200)
これは、World Wide Web Consortium (W3C) と FIDO Allianceによって開発されたオープンスタンダードです。
2 どのように動作するか
WebAuthnは、ユーザーがセキュリティキー(例えば、ラップトップやモバイルデバイスに接続されたハードウェア認証器)を使用してウェブサイトに登録し、認証することを可能にします。
![](https://assets.st-note.com/img/1689897988171-YQwqTCnvs6.png?width=1200)
セキュリティキーは、ユーザーを認証するための一意の公開鍵-秘密鍵のペアを保持します。
![](https://assets.st-note.com/img/1689898054965-USBysZICLa.png?width=1200)
ユーザーがウェブサイトにログインしたい場合、ウェブサイトはセキュリティキーにチャレンジを送信し、ボタンを押すかPINを入力することで確認する必要があります。
![](https://assets.st-note.com/img/1689898198878-3TVMMiFzxX.png?width=1200)
その後、セキュリティキーはウェブサイトによって検証されるレスポンスを送り返します。
![](https://assets.st-note.com/img/1689898225038-1FPpvgPNOf.png?width=1200)
3 Secure Enclaveとのやり取り
WebAuthnは、セキュリティキーでログインする方法をユーザーに提供します
これにより、ウェブサイトのフロントエンドでユーザーを認証するために使用できます。
下の公式ページでデモをやるとイメージが掴みやすいかもしれません。
![](https://assets.st-note.com/img/1689898634312-uO1zO1qEU4.png?width=1200)
Appleデバイスの場合、Secure Enclaveはユーザーのセキュリティキーに関連付けられた秘密鍵を保存および処理できるコプロセッサーです。
Secure Enclaveは中央プロセッサから隔離されており、これによりキーが侵害されるのを難しくします。
この辺りの詳細は、こちらの記事をご確認ください。
ユーザーがログインしたいとき、ウェブサイトはSecure Enclaveにチャレンジを送り、ユーザーはTouch IDまたはPINを使用してこれを確認する必要があります。
![](https://assets.st-note.com/img/1689898567787-8d3TzxnE3f.png?width=1200)
その後、Secure Enclaveはウェブサイトによって検証された署名付きのレスポンスを送り返します。
以上です。
いいなと思ったら応援しよう!
![ユウキ](https://assets.st-note.com/production/uploads/images/52347520/profile_e7d36b385c74618d7fec56da47f68a35.jpeg?width=600&crop=1:1,smart)