GitHub.comにパスワードレス認証の導入

Image of Hirsch Singhal

パスキーがパブリックベータ版にて利用が可能になりました。オプトインすることで、セキュリティキーをパスキーにアップグレードし、パスワードと2FA方式の代わりにパスキーを使用することができます。


セキュリティ侵害のほとんどは、珍しいゼロデイ攻撃によるものではなく、ソーシャルエンジニアリング攻撃、認証情報の盗用または漏洩、被害アカウントやその先のリソースへの広範なアクセス権を攻撃者に提供する手段など、低コストな攻撃によるものです。実際、私たち全員が頼りにしているパスワードは、データ漏洩の80%以上の根本原因となっています。

だからこそ、私たちGitHubは「ユーザーエクスペリエンスを損なわない」という約束を守りながら、すべての開発者が強固なアカウントセキュリティを担保できるよう支援しています。GitHub全体の取り組みとして2要素認証(2FA)の採用から始まり、本日よりパスキー認証をパブリックベータ版として公開しました。GitHub.comでのシームレスで安全なアクセスを確保するためのこ取り組みは、さらに前進していきます。

パスキーは、従来のセキュリティキーの機能をベースに、より簡単な設定と強化された復元性を加えたものです。安全性と利便性に優れた、自分だけの方法で、アカウントがロックアウトされるリスクを最小限に抑えながら、アカウントを保護することができます。パスキーによって、パスワードに基づく侵害の根絶という、パスワードレス認証の実現に近付くことができます。 

GitHubアカウントでパスキーを使用する方法 

GitHubアカウントでパスキーを有効にするには、右上のプロフィール写真をクリックして「Feature Preview」 メニューを開き、「Passkeys」を選んで「Enable」 をクリックししてください。パスキーを有効にしたら、有効なセキュリティキーをパスキーにアップグレードしたり新しいパスキーを登録できます。

最新のデバイスは、最初からパスキーをサポートしています。あとはパスキーを設定するだけです。パスキーを有効にしている場合、サインイン時にブラウザーでパスキーの設定が可能かどうかが確認されます。設定可能でデバイスにまだパスキーが設定されていない場合は、設定を依頼するメッセージが表示されます。堅牢で安全な認証情報をすべてのデバイスに登録することで、デバイスの紛失によるアカウントのロックアウト防止につながります。

パスキーがパスワードの代わりになる仕組み

GitHub.comのパスキーにはユーザー認証が必要です。つまり、2つの要素を1つの要素としてカウントします。2つの要素とは、ユーザー自身またはユーザーが知っているもの(指紋、顔、PINなど)、もしくはユーザーが持っているもの(物理的なセキュリティキーやデバイスなど)です。この強力な認証により、GitHubはパスワードが無くても、ユーザー本人がサインインしていることを確認できます。また、ブラウザーサポートが拡張されたことにより、ブラウザーの自動入力システムで、ログインページから直接パスキーを使ってサインインするよう自動的に提案できるようになりました。魔法のような体験です。ぜひご自身のアカウントで確認してみてください。

さらにすばらしいことに、2FAを有効にしているユーザーだけでなく、すべてのユーザーがパスキーのみを使用してサインインすることができます。

複数のデバイス間でパスキーを使用する方法

パスキーは、設定したデバイスだけではなく、複数のデバイス間で使用することもできます。「デバイス間認証」と言う新しい認証では、スマートフォンの存在を確認することにより、スマートフォンやタブレットでパスキーを使ってデスクトップにサインインすることができます。過去にリンクしたデバイスを選択するか、スマートフォンでQRコードをスキャンしてサインインを実行すれば、デスクトップ上ですべてのサインインが行われます。スマートフォンやタブレットは物理的にノートPCやデスクトップの近くにある必要があるため、デバイス間認証ではFIDOのフィッシング耐性が保持されます。

下記にて、実際の動作をご覧ください。

複数のデバイス間での使用に加えて、多くのパスキーはデバイス間で同期できるため、キーを失くしたことによってアカウントからロックアウトされることがなくなります。パスキープロバイダーによっては、パスキーがデバイス間で自動的に同期されます。iCloudアカウントではiOSからmacOSにパスキーが同期され、GoogleパスワードマネージャーではAndroidデバイス間で同期し、1PasswordやDashlaneのようなパスワードマネージャーは、インストールしたデバイス間でパスキーを同期させることができます。OSやブラウザーベンダー間の拡張同期サポートは現在対応を進めているところですが、核となる同期エンジンは既に存在しています。

ただし、すべてのパスキーがデバイス間で同期されるわけではありません。ユーザー設定では、同期していると報告された認証情報に[Synced]というラベルが表示されます。リスクモデルによっては、非同期のキーが望ましい場合もあります。パスキーの設定の希望についてはユーザーが選択できます。

セキュリティキーをパスキーにアップグレードする方法 

お使いのアカウントのセキュリティキーは、アップグレードすることでその力をフルに発揮できる状態かもしれません。セキュリティキーが、ユーザー本人であることを確認できるもの(Touch ID、Windows Hello、Androidの指紋認証、PINロックされたキー、生体認証ハードウェアキー)である場合、アップグレードの対象となります。次に、そのセキュリティキーでサインインした時に、パスキーにアップグレードするかどうかを尋ねられ、パスキープロバイダーに再登録されます。この再登録により、認証時にパスキーが確実に検出され、サポートされている場合は同期されます。パスキーはプライバシーを保護するものであるため、正しい認証情報をアップグレードしていることを確認できるよう、アップグレード処理の中で何度かパスキーを入力しなければならない場合があるかもしれません。処理が終わったら、パスワードのない環境の完成です。

詳細情報 

GitHub.comの認証方法として、より高い柔軟性、信頼性、安全性を担保できるものを提供し続けたいと思っています。皆さまの利便性を向上させるため、パスキーに関するご意見、ご感想をお待ちしております。ぜひGitHubの公開ディスカッションでご意見をお聞かせください。詳しくはドキュメントをご覧ください。