ショッピングや金融取引など、インターネット上には、多くのWebサービスが提供されていますが、その際、IDとパスワードによる認証を要するものがほとんどです。
同じパスワードの使いまわしはいけませんが、結構覚えておくのが面倒で、つい覚えやすい、同じパスワードを使い回している方も少なくないかと思います。
そこで、2013年9月にリリースされた「iOS 7」(iPhone 5s)に追加された「iCloudキーチェーン」と「Touch ID」により、WebサービスのID・パスワードをiCloud上に保存することで、iPhoneやiPadなどで同期させて、サービス利用時には、Touch IDによりID・パスワードを自動入力できるようになりました。
ただ、これは、最初の登録時は、ID・パスワードを入力して、iCloudキーチェーンに保存する必要があり、それ以降は、Touch IDやFace IDのみで、自動ログインできるようになります。
また、このID・パスワードは、デバイス(スマートフォン・タブレットなど)と外部のWebサイト(サーバ)相互に保存されるので、情報漏洩や不正利用のリスクが多く含んでいます。
そこで、今回「iOS 16」に追加されたのが「パスキー」というパスワードレス機能です。
これは、ID・パスワードによる認証を廃止し、Touchi IDやFace IDの生体認証のみで、Webサービスなどにアカウント登録・ログインすることができ、パスワードを覚えておくことや不正利用などのリスクから解放されます。
この記事では、パスキーのしくみから、その利用方法について、なるべくわかりやすく解説して行きます。
iOS 16新機能「パスキー」
パスキーとは
「パスキー」は、iOS独自の認証方式ではなく、Windows、Androidなどのデバイスでも利用される生体認証を利用したパスワードの標準認証方式です。
パスキーは、パスワード認証の問題点を解決するために開発されています。
そのパスワード認証の問題点や脆弱性について、見て行きましょう。
- 複数のパスワードを記憶する必要があり、失念した場合、再発行手続きも面倒である。
- 推測されやすいパスワードを設定すると、不正にログインされるリスクがある。
- ブルートフォース型やリスト型攻撃を受けやすい。
- フィッシングや中間者攻撃によるリスクがある。
- サービス提供者側から認証情報や個人情報が漏洩するリスクがある。
このように、パスワード認証には、脆弱性が多々あり、その問題点を解決するために登場したのが、パスキーで、従来のパスワード認証よりも、その安全性は高いといえます。
最近では、生体認証機能付きのPCも普及していますが、その機能がなくても、外部認証機をPCに接続することで、パスキーを利用することができます。
FIDO認証ベースのパスキー
パスキーは、「FIDO(Fast IDentity Online:ファイド)認証」をベースとした、ブラウザ経由でパスワードレス認証を行うためのしくみです。
「FIDO」は、パスワードレス認証技術の開発と標準化を進める業界団体で、そのFIDOが推進しているのが、安全で高速な認証を可能にする仕様「FIDO2」となります。
FIDO2は、デバイスと認証器の通信プロトコルを司る「CTAP」(Client To Authenticator Protocol)とFIDO認証をWebで使用可能にするJavascript APIである「WebAuthn」(WebAuthentication:ウェブオースン)で構成されています。
CTAPにより、生体認証器を持つデバイスからでも、外部の認証器を接続することで、内部に認証器を持たないデバイスからでも、パスワードレス認証を実現でき、WebAuthnにより、ブラウザを介したWebサービスとのやりとりが可能になります。
このように強力なFIDO認証があらゆるWebサービスで利用できるようになるのが、FIDO2となります。
Webサービスにユーザーがアクセスする際に使うChrome、FireFox、Safariなどの主要なブラウザで、FIDO2がサポートされています。
引用:fido AlLLIANCE HP
パスキーのしくみ
パスキーでは、デバイス側に「秘密鍵」を、Webサイトのサーバ側に「公開鍵」を保存します。
Touch IDやFace IDの生体認証を使用して作成された「秘密鍵」をiPhone・iPad等のデバイスのみに保存し、WeBサイトのサーバーには、秘密鍵から作成された「公開鍵」を送信し、その公開鍵で、Webサイトにログインし、通信内容を暗号化して、サーバから返信された情報を秘密鍵で復号して確認します。
- ①ユーザーは、サービス利用のために、アカウント申請します。
- ②Webサービスは、本人確認のために、署名を要求します、
- ③ユーザーは、モバイル端末でWebサービスの認証要求を確認します。
- ④ユーザーは、モバイル端末で生体認証をします。
- ⑤ユーザーは、生体認証にて秘密鍵で署名を生成します。
- ⓺ユーザーは、その署名をWebサービスに送信します。
- ⑦Webサービスは、受信後、公開鍵でその署名を検証します。
- ⑧Webサービスは、署名により本人確認がとれれば、アカウントを登録します。
パスワード認証より優れているパスキー
パスキーは、以下の点で、パスワード認証よりも優れています。
- 公開鍵暗号方式を採用し、ユーザー(デバイス)とWebサービス(サーバ)で、秘密情報を共有しません。
- FIDO登録を行ったユーザーデバイスと、デバイスでのユーザー認証の相互が一致しないと認証できないため、セキュリティが強固です。
- ユーザー認証に必要な「秘密鍵」や「生体認証情報」はユーザーデバイス内に保存されるのみのため、情報漏洩のリスクがありません。
- パスワード認証への攻撃手段である、フィッシングやアカウントリスト攻撃に対して耐性がある。
- FIDOが、グローバルで標準化を進め、今後、様々なユーザデバイスで利用可能な認証方法になります。
今後、パスキーによる認証が標準になることでしょう。
パスキーの使い方
パスキーを利用するには、アプリやWebサイトがパスキーに対応している必要があります。
Webサイトやアプリが、パスキーによるログインに対応している場合、自動的に提案または表示されます。
ただし、今のところ、パスキーをサポートしている日本の Web サイトは、ほとんどないところですが、今後、iOS 16がパスキーに対応したため、パスワードレス認証は確実に普及していくことでしょう。
iOS 16でパスキーが利用できるアプリは、USサイトになりますが、Kayak 、Best Buy、eBay、CardPointersなどは、パスキー機能に対応しています。
それでは、参考までに、「CardPointers」アプリでパスキーでアカウントを作成してみましょう。
アプリをダウンロードしたら、新規アカウント作成(Sign Up for New Account)を選択、メールアドレスを入力して、「Sign Up」をタップすると、パスキーを保存してサインインするか聞いてくるので、「続ける」をタップして、新規アカウント作成完了です。
(従来通り、メールとパスワードで保存したい場合は、「別のデバイスに保存」にてパスワードを設定・保存することもできます。)
実際、パスキーが自身のiPhoneのiCloudキーチェーンに保存されているか確認してみましょう。
「設定」から「パスワード」を選択し、Face IDで認証後、「CardPointers.com」をタップします。
左がパスキーで登録したアカウントで、パスワードは保存されておらず、パスキーの作成日が確認できます。右が従来通り、パスワードで登録したアカウントで、「**********」と表示されています。
パスキーなら、ユーザ名(メールアドレス)を入力するだけで、Face ID(生体認証)でサインインしてアカウント作成は完了です。
ほんとうに簡単!セキュリティも万全!安心ですね!
最後に~パスワードレス時代がやってくる
iPhoneやiPadなどのスマートフォンやタブレットのデバイスには、FIDO2に準拠したパスキー(秘密鍵)を保存することで、生体認証により、デバイスがロック解除されたときにのみ、認証のためにWebサイトやアプリと共有できます。
Webサイトやアプリへのログインには、スマートフォンやタブレットなどの生体認証デバイスが必要になりますが、デバイスでのロック解除のための認証処理を流用することで、これまでのような何種類ものパスワードを使い分けたり、テキストメッセージを使ったワンタイムパスワード、多要素認証の面倒な入力作業から解放されます。
今後、日本でも、パスキー認証が普及すれば、さらに、安心、安全にWebサイトやアプリを利用することができますね。
コメント