Passkeys are generally available

GitHub、パスキーの一般提供(GA)を開始

Image of Ishikawa Setsuna
Author

GitHub.comではすべてのユーザーが、パスワードなしでサインインするためのパスキーを登録できるようになりました。


新たなサインイン方式として用いられているパスキーは、フィッシングに強い認証情報です。パスワードのようなフィッシングされやすい認証方法の使用を減らすことで、GitHubアカウントをより簡単に保護することができます。

7月にパスキーのベータ版をリリースして以来、何万人もの開発者がパスキーを導入しています。このたび、GitHub.comのすべてのユーザーが、パスキーを使用して自分のアカウントを保護できるようになりました。これにより、2023年末までにすべてのコントリビューターを2FAで保護し、ユーザーエクスペリエンスを損なうことなくプラットフォーム全体のセキュリティを強化するという、GitHubの取り組みが今後も継続されます。

このブログでは、GitHubアカウントでパスキーを有効にする方法をご紹介します。また、こういった認証機能を構築している開発者の方のために、この強力で新しい認証方式をより迅速にみなさんのサービスに組み込むことができるよう、パスキーのロールアウト方法やどのようにしてパスキーを簡単に利用できるようにするかについて私たちが学んだこともお伝えします。

パスキーの使用を開始する

アカウントに1つ以上のパスキーを登録するには、アカウントのセキュリティ設定にアクセスして、[Add a passkey]をクリックします。既に設定されているセキュリティキーをパスキーとして使用できる場合は、その横に[Upgrade]オプションが表示されます。セキュリティキーのパスキーへのアップグレードについての詳細は、パスキーのドキュメントをご覧ください。

パスキー機能の開発で私たちが学んだこと

パスキーは比較的新しいタイプの認証情報です。大規模なコミュニティでパスキーを簡単に使えるようにすることで、多くのことがわかりました。ここでは、自社製品へのパスキーの導入を検討している認証チームの参考となるよう、私たちの知見とフィードバックへの対応を一部ご紹介します。

すべてのプラットフォームがパスキーに対応しているわけではないが、サポートは可能

LinuxとFirefoxのユーザーについては、プラットフォームがまだ十分にパスキーをサポートしていないため、パスキーの使用が難しいことがわかりました。

これを受け、GitHubはパスキーのクロスデバイス登録を可能にすることにしました。つまり、PCを使いながら、スマートフォンでパスキーを登録できるようにするということです。パスキーはスマートフォンに保存されていますが、ユーザーはスマートフォンとPCを接続して、PCのブラウザーから設定と認証を行うことができます。これにより、LinuxとFirefoxのユーザーもパスキーを設定できます。

技術的なレベルでは、これはIsUserVerifyingPlatformAuthenticator API (IsUVPAA)呼び出しの結果を無視し、代わりにwebAuthN APIだけを利用することを意味します。つまり、使用しているOSとブラウザーの組み合わせでIsUVPAAがtrueを返さない場合でも、ハードウェアキー(IsUVPAAチェックでtrueを返さない)とクロスデバイスの両方を使用できるということです。

互換性のあるセキュリティキーのアップグレードを簡単に

GitHub.comには既に多くのセキュリティキーが登録されており、その多くはハードウェアキーです。脅威モデルが存在し、同期サポートが不足しているため、ハードウェアキーのオーナーのほとんどはパスキーへのアップグレードを望まないだろうと、私たちは予測していました。

ところが、多くのユーザーは、互換性のあるセキュリティキーをパスキーにアップグレードすることを選びました。そこで、私たちはアップグレードを簡素化し、アカウントのセキュリティ設定で互換性のあるセキュリティキーの横にアップグレード用の矢印を新たに表示して、即時アップグレードを実行できるようにしました。

Upgrade a security key to a passkey using the “up” arrow in Account Settings

互換性のチェックを始めたのは今年の2月下旬なので、互換性のあるすべてのセキュリティキーの横にこのボタンが表示されるわけではないことをご留意ください。

また、ブラウザー、OS、セキュリティキーの組み合わせの中には、アップグレードで使われる再登録フローに対応していないものがあり、GitHubがそのセキュリティキーを上書きして新しいパスキーを登録しようとするとエラーになることもわかりました。この問題に対処するため、デバッグのヒントを追加し、アカウントに登録されているセキュリティキーを削除してから、新しいパスキーを登録するよう案内しました。

パスキーの登録を段階的に促す

私たちが目標の1つとしているのは、すべてのアカウントに複数の2FA認証情報を設定し、1つが失われたり使用できなくなったりしても、ユーザーが引き続きサインインできるようにすることです。そのため、まだパスキーとして使われていない互換性のあるデバイスを使用しているユーザーには、パスキーの登録を促すメッセージを表示しています。

The prompt to register a passkey if you don't have one yet but your device is compatible. You can create a passkey then, delay registration to later, or ask to never be asked on that device again.

私たちは、このケースに当てはまるすべてのサインインに対してこのメッセージを追加する実験を行いました。しかし、既にパスキーは登録しているものの、まだ日常的にパスキーを使ってサインインしていないユーザーがこのメッセージに戸惑う場合があることがわかりました。こうしたユーザーはたいてい別のパスキーを登録しようとしますが、その登録が失敗すると混乱します。
そこで、私たちはこのメッセージを、時間をかけて段階的に展開することにしました。パスキーの使用の増加に合わせて、メッセージの表示頻度を上げていく予定です。

業界全体の進歩

GitHubだけでは、パスキーをリリースすることはできませんでした。パスキーが使えるようになるには、まずさまざまなブラウザーやオペレーティングシステムで広くサポートされる必要があったからです。Apple、Google、Microsoftの各社はパスキーのサポートを強化し、パスキーのリリースに不可欠と思われる主なギャップへの対処を実施しています。

Microsoft Windowsは、OSのパスキー実装に改良を加え、クロスデバイスアクセスをサポートすることを発表しました。つまり、使用しているブラウザーに関係なく、スマートフォンのパスキーを使って、Windowsデバイス上のウェブサイトにサインインできるようになるということです。これは特に、まだパスキーを作成していない、新しいデバイスで初めてサイトにサインインする場合に適しています。パスワードを探し出す代わりにスマートフォンのパスキーを使ってサインインした後、今後のサインインのためにWindowsデバイスで新しいパスキーを作成できます。

また、ChromeとMacを使用している場合、Chrome 118からMac上のiCloudキーチェーンにアクセスできるようになります。つまり、iOSデバイスで作成してMacに同期したパスキーをChrome内で使えるようになります。パスキーを自由かつオープンに使用するには、このようなクロスエコシステムのサポートが不可欠です。

ご意見、ご感想をお聞かせください

GitHubでのパスキーの使用について、引き続きフィードバックをお待ちしています。いつでもフィードバックディスカッションに投稿してください。