2
0

導入

こんにちは!
株式会社BTMでエンジニアをしている島谷です。


突然ですが、パスキー(Passkey)、流行っていますよね。

近年、パスワードに代わる認証方法として多くのサービスで導入されるようになりました。
NTTドコモ1やメルカリ2といったサービスでは既に導入されています。

今回、パスキーについて調査しましたので、その結果を共有していきます。


まず、従来のパスワード認証やFIDO認証の仕組みや、それぞれの課題を説明したうえで、パスキーについて説明します。

パスワード認証とは

image.png

IDとパスワードでアカウントにログインする一般的な方法ですが、パスワードが盗まれると、誰でもそれを使ってアカウントにログインできてしまいます。

この問題を解決すべく、パスワードレスの認証を提供するFIDO認証が登場しました。

FIDO認証とは

FIDOとは「Fast Identity Online」の略です。

FIDO(ファイド)アライアンスとWeb標準化団体のW3Cが共同で規格化した、公開鍵暗号化方式を用いた、パスワードなしでログインする方法です。3

公開鍵暗号化方式とは
一言でいうと、対になる2つの鍵を用意し、片方の鍵でデータを暗号化し、もう一方の鍵で復号化する方法です。

スマートフォンまたはFIDO認証をサポートしている他のデバイスを使用して、アカウントにログインする前、使用者が本人であることを証明します。
そのため、事前にサーバへ端末情報を登録する必要があります。
image.png

上図のフローで、FIDOクレデンシャルとして秘密鍵とサイトのメタデータをデバイスに保存し、生成した公開鍵を端末情報としてサーバに登録します。

登録が完了すると、アカウントのログインIDと生体情報を使ってアカウントへログインできるようになります。

そのため、パスワード認証と異なり、パスワードが漏洩するといったリスクを防ぐことができたり、
他にも、攻撃者が偽サイト(フィッシングサイト)にユーザを誘導してIDやパスワードを入力させて情報や金銭等を盗む「フィッシング詐欺」の対策としても有効になります。

また、アカウントのログインの際、パスワードを記憶しておく必要がなくなるため、高齢者や技術に不慣れなユーザにとって、大きな利便性を提供します。

サイトに送信されるデータは秘密鍵によって暗号化されたログインIDと生体認証であり、これらデータの盗聴を防ぐことができます。

しかし、課題もあります。
FIDOクレデンシャルはデバイスに保存するため、デバイスの紛失や機種変更などした場合、FIDO認証ができなくなってしまい、再度新しいデバイスでの登録が必要となります。

そこで登場したのがパスキーになります。

パスキーとは

上記のFIDO認証技術を拡張したものになり、クラウド経由でデバイス間同期できる、FIDOクレデンシャルのことを指します。4
image.png
Apple製品であればiCloudキーチェーンを使えば、複数のデバイス間で同期できます。

そのため、仮に機種変更をした場合でも、FIDOクレデンシャルが同期され、新しいデバイスでのFIDO認証が可能になります。

ただし、全てのデバイスで利用できるわけではないです。
パスキーが、比較的新しい技術となり、デバイス間同期ができないものもあります。
現在の対応状況については、以下をご確認ください。
https://passkeys.dev/device-support/


パスキーは、すでにGoogleやAppleといった大手企業によって導入されています。 これらの企業が率先してパスキーの導入を推進することで、業界全体の標準となる可能性があります。

AWS IAMの多要素認証(MFA)にパスキー対応

2024年6月、AWSマネジメントコンソール、IAMユーザでログインする際の多要素認証(MFA)にパスキーが利用可能となりました。5


ということなので、さっそくやってみました。

まず、パスキー利用できるようにするため、AWSマネジメントコンソールにログインします。

IAMユーザの設定、「セキュリティ認証情報」タブで「MFAデバイスの割り当て」を選択します。
mosaic_20240620232701.png


以下の画面に遷移するので、デバイス名の入力、およびMFAのデバイスオプションとして、「パスキーまたはセキュリティキー」を選択します。
image.png


以下のポップアップが表示され、パスキーの作成方法を選択することができます。
今回は、MFAデバイスとしてスマートフォンを使用するので、「スマートフォン、タブレット、またはセキュリティ キーを使用する」を選択します。
image.png


以下のQRコードが表示されるので、手持ちのスマートフォンで読み取ります。
mosaic_20240620233904.png


スマートフォンでの操作が完了すると、以下のようにMFAデバイスが登録されていることがわかります。

mosaic_20240620234209.png


再度、AWSマネジメントコンソールにログインしてみます。
mosaic_20240620234434.png

パスキーに対応しているとはいえ、現状、パスワードなしでログインできるようになっているわけではないです。


サインインを押すと、以下のポップアップが表示されます。 登録したMFAデバイスを使って認証するので、「スマートフォン、タブレット、またはセキュリティ キーを使用する」を選択します。

image.png


以下のQRコードが表示されるので、手持ちのスマートフォンで読み取ります。FaceIDや指紋認証、PINコードを使って、ログインすることができます。

mosaic_20240620234634.png


ログインできました。

image.png

おわりに

パスキーについての理解がだいぶ深まりました。
セキュリティの強化、ユーザビリティの向上など、多くの利点を持つパスキーは、今後ますます普及していくことでしょう。

そうなれば、私たち開発者には、パスキーで認証できるようアプリケーションを実装することが求められます。
そうした要望に応えられるよう、新しい技術を常に先取りしておくことが大切になってきますね!

以上です、最後までご覧いただきありがとうございました。

株式会社BTMではエンジニアの採用をしております。
ご興味がある方はぜひコチラをご覧ください。


  1. dアカウント 「パスキー認証」の提供開始について | お知らせ | NTTドコモ
    https://www.docomo.ne.jp/info/notice/page/230308_00.html

  2. メルカリ、すべてのログインに 生体認証「パスキー」を導入 | 株式会社メルカリ
    https://about.mercari.com/press/news/articles/20240129_passkeys/

  3. FIDOとは - FIDO Alliance
    https://fidoalliance.org/what-is-fido/?lang=ja

  4. FIDO Alliance Passkeys (Passkey Authentication)
    https://fidoalliance.org/passkeys/

  5. AWS Identity and Access Management が 2 番目の認証要素としてパスキーのサポートを開始
    https://aws.amazon.com/jp/about-aws/whats-new/2024/06/aws-identity-access-management-passkey-authentication-factor/

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0