はじめに
AWS re:Inforce 2024 のKeynote にて、AWS IAMのrootユーザーおよびIAMユーザーのMFA(多要素認証)としてPasskeyのサポートが発表されたので、そもそも論である「パスキー」の調査とハンズオンをしてみました。
AWS ブログ
◼️AWS What’s new
AWS Identity and Access Management が 2 番目の認証要素としてパスキーをサポートするようになりました
◼️AWS News Blog
AWS がルートおよび IAM ユーザー向けにパスキー多要素認証 (MFA) を追加
パスキーとは
そもそもパスキーとは?
FIDO標準に基づくパスキーとは、パスワードの代わりに使用できて Web サイトやアプリへのサインインをより高速、簡単、安全に行うことが可能となる仕組みのこと。
パスキーは、アプリやウェブサイトのアカウント登録を簡素化し、使いやすく、ユーザーのほとんどのデバイスで機能して、物理的デバイスでも機能します。
ざっくりパスキーの仕組み
No. | 仕組み | 内容 |
---|---|---|
1 | 登録(Registration) | サービスやウェブサイトに登録する際、クライアントデバイス(例:PC・スマートフォン)で暗号化キーのペア(公開キーと秘密キー)を生成し、公開キーをサービスに送信します。 |
2 | バインド(Binding) | 生成された公開キーを、特定のウェブサービスのドメインにバインド(関連付け)する。他サービスとは共有しません。 |
3 | 認証(Authentication) | ユーザーデバイスがチャレンジ(サービスからの認証を要求)に署名して秘密鍵を所有していることを証明すします。 |
シーケンス図
AWSのIAMでパスキーを設定完了(登録・バインドは完了状態)している時の、ユーザログインからのシーケンス図を記載します。
サービス(AWSログイン画面) | ブラウザ(例:Chrome) | デバイス(例:PC) | 生体認証 | ユーザ | |||
---|---|---|---|---|---|---|---|
①ユーザログイン | ②チャレンジ(認証を要求)送信 | → | ③署名要求 | → | ④認証要求 | → | |
⑦署名検証 | ⑥署名返却 | ← | ⑤署名生成 | ← | ← | ← | 生体認証 or PIN 入力 |
シーケンス図の文言説明
項番 | 対象 | 説明 |
---|---|---|
① | ユーザログイン | ユーザがAWSのログイン画面にアクセスしてログインを実行 |
② | チャレンジ送信 | サービス(AWS)がブラウザに対してチャレンジを送信 |
③ | 署名要求 | ブラウザがデバイスに対して、チャレンジに署名するよう要求 |
④ | 認証要求 | デバイスが秘密鍵にアクセスするために、生体認証やPIN入力をユーザに要求 |
⑤ | 署名生成 | ユーザが生体認証やPIN入力を行うと、デバイスが秘密鍵を使ってチャレンジに署名 |
⑥ | 署名返却 | デバイスが署名をブラウザに返し、ブラウザがそれをサービスに送信 |
⑦ | 署名の検証 | サービスが署名を検証し、成功ならログインが完了 |
設定方法
1.パスキーを設定するユーザ遷移
「ログイン」 > 「IAM」 > 「ユーザ」 > 「設定するユーザ」に移動
図赤枠部分のタブ「セキュリティ認証情報」を選択 > 「多要素認証(MFA)」項目の図赤枠部分の「MFA デバイスの割り当て」を押下
2.MFAデバイスを選択
「デバイス名」項目を任意の名前入力 > 「デバイスオプション」で図赤枠部分の「パスキーまたはセキュリティキー」を選択 > 右下「次へ」押下
3.パスキーの作成
パスキーは、3種類から選択することが可能である。
・iCloud キーチェーン
・スマートフォン、タブレット、またはセキュリティキー
・自分の Chrome プロフィール
4-1.「iCloud キーチェーン」 / 「自分の Chromeプロフィール」 の場合の画面
4-2.「スマートフォン、タブレット、またはセキュリティキー」 の場合の画面
5.多要素認証(MFA)に登録される
テスト:ログイン画面の見え方
1.追加の検証ページ
IAMユーザのログイン画面、「AWSアカウント」「ユーザ名」「パスワード」を入力サインイン > 以下図の「追加の検証が必要です」のページ表示 > 「パスキー/セキュリティキー」を選択して「次へ」を押下
2-1.サインイン画面
「iCloudキーチェーン」に保存したパスキーが設定されている場合、以下画面が表示されサインインをして、AWSマネジメントコンソールが表示される
2-2.サインイン画面(キャンセル時)
「iCloudキーチェーン」をキャンセルすると、以下画面表示されサインインをして、AWSマネジメントコンソールが表示される
おわりに
さっくり導入できるので、自分が利用しているアカウントには全てに導入してしまいました。
裏で動いているパスキーについても、シーケンス図をつくりながら色々調べられたのもよかったです。
是非ともより安全な設計のため、PJの導入提案などを考えていきたいです。