最近よく聞く「パスキー」の仕組みと設定方法:Tech Basics/Keyword
最近、Webサイトのログイン方法として、「パスキー」という名前をよく聞かないだろうか。GoogleアカウントやMicrosoftアカウントが既に対応しており、PINや顔認証などでWebサイトへのログインが可能になるという。このパスキーの仕組みや設定方法などについて解説しよう。
「パスキー」って何?
Webサイトにログインする際に「パスキー」の設定を推奨されることはないだろうか? よく分からないため、[後で]をクリックして設定をパスしたり、途中まで設定して不安になって止めたりしている人も多いと思う。そこで、「パスキー」とはどういったものなのか、仕組みや設定方法などについて解説する。
Googleアカウントにログインする際、「ログインをシンプルに」という画面が表示され、「パスキー」の利用を推奨されたことはないだろうか(一度、パスワードを忘れて、再設定後にGoogleアカウントにログインする際などに表示されることが多い)。
このパスキーとはどういったものなのだろうか? よく分からないため、[後で]をクリックして設定をパスしたり、途中まで設定して不安になって止めたりしている人も多いのではないだろうか。
本稿では、このパスキーの仕組みや設定方法、運用上の注意点などについて解説する。
パスワードはもはや限界?
パスキーの仕組みを解説する前に、なぜパスキーという仕組みが考えられたのかについて説明しておこう。
多くのWeb上のサービスでは、ID(多くの場合メールアドレス)とパスワードの組み合わせによって、ログイン/サインインすることで本人確認を行い、利用が可能になる。しかし、Webサービスによって、文字数や使える記号の違い、大文字を必ず含めるか含めないかなど、パスワードのルールは異なっている。その上、特にオンラインバンクなどは、定期的にパスワードの変更が求められるなど、パスワードの運用は複雑になっている。
その結果、パスワードが単純になってしまったり、同じパスワードを複数のサービスで使い回したりしてしまうケースが多くなっているという。
特に危険なのが、パスワードを複数のサービスで使い回すことだ。1つのサービスでIDとパスワードの漏えいが起きると、攻撃者はそのIDとパスワードを使って、別のWebサービスへのログインを試みる。パスワードを使い回していると、別のWebサービスへのログインが成功するので、そのサービスを悪用し、他者を攻撃する際の踏み台にされたり、オンラインバンクなどの場合は金銭を盗まれたりしてしまうわけだ。
多くの人が感じているように、使い回す危険性は理解しているものの、Webサービスごとに異なるパスワードを設定し、それを記憶しておくのは困難になっている。パスワードマネージャーなどを利用して、何とかしているというのが現実だろう。
こうしたパスワードの現実から、パスワードに代わる簡単かつ安全な認証方式として考えられたのが「パスキー(Passkey)」である。
パスキーの仕組み
パスキーは、パスワードに代わるものとして、認証の標準化団体「FIDOアライアンス」によって策定されたものだ。
パスキーによる認証には、「秘密鍵」と「公開鍵」からなる公開鍵暗号を用いる。秘密鍵と公開鍵はセットとなっており、片方の鍵で暗号化したものは、それと対になるもう一方の鍵でなければ復号できないという特徴を持つ。
対応したWebサイトで、パスキーの使用を有効にすると、デバイス側に秘密鍵が、認証サーバ側に公開鍵が保存される。またデバイス側では、認証時に秘密鍵を使うための生体認証やPIN(Personal Identification Number)を設定する(Windows 10/11の場合、Windows Helloで設定した認証方式)。デバイス側に保存された秘密鍵は、GoogleパスワードマネージャーやiCloudキーチェーンなどで同期して、複数のデバイスで共有することも可能だ。
パスキーを設定したWebサイトにログインする大ざっぱな流れを見てみよう。
- デバイスからWebサイトにログインを要求する
- Webサイト側がランダムな文字列(「チャレンジ」と呼ばれる)をデバイス側に送信する
- デバイス側では、秘密鍵を利用するための認証(生体認証やPINなど)をユーザーに要求する
- ユーザーは、生体認証やPINで秘密鍵のロックを解除する
- デバイスは、秘密鍵を使い、認証サーバから送信されてきたチャレンジに署名してWebサイトに送信する
- Webサイトは、公開鍵を使ってデバイスから送られてきたチャレンジの署名を確認して認証する
これを見ると分かるように、秘密鍵による署名は、公開鍵で確認できるという特徴を用いて認証する。攻撃者が公開鍵を盗んでも、秘密鍵でしか署名できないため、攻撃者はWebサイトに不正にログインすることはできない。
また、デバイスとWebサイト間では、秘密鍵のような秘匿すべき情報がネットワークに流れない。そのため、ネットワーク上で第三者が割り込んで情報を窃取する「中間者攻撃」にも強い。
パスワードに比べると、ユーザーの管理負担が抑えられているのもパスキーのメリットといえる。パスワードの場合、ユーザーが自ら要件を満たす複雑な文字列を考案したり、漏えいしないように保存場所に悩んだりする手間が強いられる。一方、パスキーの秘密鍵/公開鍵はサイトごとに自動生成されるし、鍵の保存もシステムによって自動化されている。
注意が必要な点としては、パスキーはWebサイトやデバイス側での対応が必要になるため、全てのパスワードがすぐに置き換えられるわけではないことが挙げられる。なお、Windows OS、macOS、iOS、Androidなど多くのOSならびに主なWebブラウザが、パスキーに対応しているので、Webサイト側が対応してくれればパスワードをパスキーに置き換えることが可能だ。
パスキーを設定する場合の注意
パスワードに比べて、生体認証やPINでログインが可能になるパスキーは、安全性も高く、管理も楽だ。しかし、パスキーならではの注意点もある。
共有のPCにはパスキーを設定しない
前述の通り、パスキーはデバイスに秘密鍵が保存されるため、デバイスを紛失した場合には秘密鍵が漏えいし、不正にWebサイトにログインされる危険性がある。
また、共有のデバイスにパスキーを設定してしまうと、他人が悪用する危険性がある点に注意が必要だ。特にPINで認証している場合、簡単にWebサイトにアクセスされてしまう可能性がある。
PINは十分な長さに設定する
秘密鍵のロックを解除するためにPINを利用している場合、PINの長さに注意する必要がある。Webサイトへのログインを簡単にするため、ついつい短い簡単な数字を設定しがちだ。しかし、前述の通り、デバイスを紛失するなどした場合、簡単に類推可能なPINだと、パスキーが突破されてしまう危険性があるからだ。
Windows 10/11の場合、[Windowsの設定](Windows 10)/[設定](Windows 11)アプリの[アカウント]−[サインインオプション]で設定可能なWindows Helloなどが、パスキーの認証にも用いられる。そのため、ここで設定したPINが単純で短いものだと、Windows 10/11へのサインインとパスキーの認証が突破され、Webサイトへの不正アクセスが実行されてしまう危険性がある。
PINを数字だけでなく、英字と記号を組み合わせたり、桁数を多くしたりして複雑なものにしておくのがよい。
Googleアカウントでパスキーを設定する
試しにGoogleアカウントでパスキーを設定し、パスキーによるGoogleアカウントへのログインを試してみよう。
パスキーを設定するには、普段利用しているWebブラウザを開き、Googleアカウントでログインしておく。そのWebブラウザで、Googleアカウントの「パスキーとセキュリティキー」ページを開き、[パスキーを作成]ボタンをクリックする。Googleアカウントの先頭ページからたどる場合は、「セキュリティ」ページを開き、「Googleにログインする方法」欄にある[パスキーとセキュリティキー]ボタンをクリックして、「パスキーとセキュリティキー」ページを開く(この際、Googleアカウントによるログインが要求される場合がある)。なお、Webブラウザが異なると、設定したパスキーが利用できないので、必ず普段利用しているWebブラウザで設定すること。
「パスキーとセキュリティキー」ページにある[パスキーを作成]ボタンをクリックすると、[Windowsセキュリティ]ダイアログが開くので、ここでWindows 10/11で設定しているPINを入力したり、顔認証や指紋認証を使ったりして認証する。これだけでパスキーの設定は終了だ。
Googleアカウントでパスキーを設定する(2)
Windows 10/11で設定済みのPINの入力が求められるので、PINを入力する。Windows 10/11のサインインに顔認証や指紋認証を設定している場合、顔認証や指紋認証で認証する。
パスキーを用いてGoogleアカウントにログインしてみる
パスキーの設定が完了したら、Googleアカウントから一度ログアウトして、再度、ログインを試みよう。
Googleアカウントの入力画面で、パスキーを設定したGoogleアカウントを入力(再ログインの場合、「本人確認」画面でメールアドレスを確認)し、[次へ]ボタンをクリックすると、「パスキーを使って本人確認を行います」画面が開く。
ここで、[次へ]ボタンをクリックすると、[Windowsセキュリティ]ダイアログが開き、パスキーの認証を実行する。認証に成功すると、Googleアカウントへのログインが完了する。
パスキーを用いてGoogleアカウントにログインしてみる(1)
パスキーを設定後、一度、Googleアカウントをログアウトして、再度、ログインを試みる。「アカウントの選択」ページが表示されたら、パスキーを設定したGoogleアカウントを選択する。
パスキーを用いてGoogleアカウントにログインしてみる(3)
顔認証を設定している場合は、自動的に顔認証が実行される。[OK]ボタンをクリックすると、Googleアカウントへのログインが完了する。顔認証ではなくPINで認証したい場合は、[その他]をクリックして、[PIN]を選択、PINを入力して認証すればよい。同様にPINでパスキーを設定している場合は、PINの入力画面が開くので、PINを入力して認証する。
Googleアカウントに設定したパスキーを解除する
Googleアカウントに設定したパスキーを解除(削除)したい場合は、パスキーを解除したいGoogleアカウントでログインした上で「パスキーとセキュリティキー」ページを開く。
「パスキー」欄に設定済みのパスキーが一覧表示されるので、削除したいパスキーの右側にある[×]アイコンをクリックする。[このパスキーを削除しますか?]という確認ダイアログが表示されるので、[削除]をクリックすると、パスキーが削除できる。Windows 10/11でパスキーを設定した場合、名前を変更していなけば「Windows Hello」「Windows Hello 2」という名前で登録されているので、作成日やブラウザ名で削除したいパスキーを類推する必要がある。
複数のデバイスでパスキーを設定する場合、設定後にこのページを開き、名前を変更しておくと、削除したいような場合に困らなくなる。
Googleアカウントに設定したパスキーを解除する(3)
「パスキーとセキュリティキー」ページからパスキーが削除される。以降、Googleアカウントは、パスキーではなく、パスワードによるログインが必要になる。
Copyright© Digital Advantage Corp. All Rights Reserved.