日本マイクロソフトのモリスです。今日は、パスワード嫌いな方とセキュリティの意識が高い方にとって注目となる Windows 10 の機能を紹介したいと思います。「Microsoft Passport」と名付けられた、パスワードの代わりにユーザー ジェスチャを利用できる安全性の高い認証システムです。概要は下記で紹介します。
暗黒時代: パスワードの横暴
Microsoft Passport の重要性を理解するには、まず、パスワードが抱えている多くの問題を理解する必要があります。昨今は、あらゆるシステムでユーザー名 + パスワードでログインするのが当たり前ですが、実は下記のような問題があります:
- パスワードさえ知っていれば誰でも何でもできてしまいます。パスワードを知っている者が正規ユーザーであれば問題はないのですが、悪意を持った第三者がパスワードを手に入れた場合にはすべての権限が奪われてしまいます。例えばパスワードが漏えいした場合でも、辞書攻撃などの方法で推測された場合でも、一気にすべての権限が奪われてしまうのです。
- 簡単に推測されないためと、漏えいしたパスワードのハッシュ値が簡単に解けないようにするため、長くて完全にランダムな大文字、小文字、数字を組み合わせたパスワードが推奨されています。しかし、パソコンと違って人間は 30 字や 50 字のランダムな文字列を覚えるのも、入力するのも苦手です。パスワードを管理するソフトウェアを利用している方は増えつつあると思いますが、場合によって利用が不便だし、パスワードの根本的な弱点が改善されません。
- パスワードが漏えいしたとしても被害を抑えるために、同じパスワードを複数のサイトやシステムで再利用しないことが大事です (メールのアカウント、銀行のオンライン バンキングのアカウント、昔登録したことさえも覚えのないサイトのアカウント、勤め先の会社のアカウントなど、パスワードの再利用が繰り返されることで、漏えいした際の被害は大きくなります。) しかし、いくつものパスワードを覚えるのが面倒なので、つい同じパスワードを使ってしまう方が多くいます。
- パスワード漏えいの被害阻止の目的で、パスワードの定期的な変更がよく推奨されます。しかし、人間は、、、、やはり面倒くさいことが嫌い!
身近な問題として皆様はよく理解されていると思いますが、やはりパスワードはセキュリティが低いし、人間にとっては不便なものです!
暗闇に差す、公開鍵認証の一筋の光
では、パスワードじゃなければ一体どうやって認証を行えば良いのか? 実は、お決まりの答えがあります: 公開鍵暗号の技術に基づいた「公開鍵認証システム」というものです。公開鍵認証の概要を簡単に説明すると:
- 利用者は自分のシステム (クライアント) で公開鍵と秘密鍵を作成します。
- 公開鍵をログインしたいシステム (サーバーなど) に置いておきます。
- 利用者がサーバーにログインしたいときにサーバーから「ノンス」というランダムの値をもらって、クライアントで保存してある秘密鍵でノンスを署名して、サーバーに送ります。サーバーは公開鍵を使って、クライアントの署名を検証します。
このように公開鍵認証システムはパスワードより高いセキュリティを保っています:
- ノンスは毎回変わりますので、クライアントが前に著名したノンスを記録しても再利用できません。つまり、「リプレイ攻撃」が不可となります。
- 秘密鍵は 1 つだけのデバイスで (セキュリティに保護された形で) 保存されていれば、そのデバイス自体が二要素認証の 2 番目の要素になります。(しかし、公開鍵認証システムの実装によって、2 番目の要素にならない場合もあります。)
- 利用者がシステムにログインして秘密鍵をアンロックするだけで、サーバーなどに簡単にログインできます。
しかし、現状の公開鍵認証システムもいくつかの問題を抱えています。
- システム管理者にとって、公開鍵認証を実装するのが複雑です。
- 秘密鍵の管理も複雑です。セキュリティを保った形で保存されていなければ、公開鍵認証システムの利点を失ってしまいます。
- 既存のシステムはユーザーにとってとても便利とは言えません。
輝かしい未来を築く Microsoft Passport
Windows 10 で導入された Microsoft Passport はパスワードの問題と公開鍵認証の問題を同時に解決できます!
まずは、Microsoft Passport を使って Azure AD にジョインされた Windows 10 のデバイスで初めてログインする流れを説明します:
- 初めてログインするときに「ユーザー ジェスチャ」というものを設定します。「ユーザー ジェスチャ」として暗証番号 (PIN コード) を使用することは可能ですが、サポートされているデバイスを持っていれば自分の顔や虹彩をユーザー ジェスチャとして使えます。このユーザー ジェスチャはそのデバイスに紐づいているので、デバイス自体が二要素認証の第 2 要素となります。
- ユーザー ジェスチャが作られたら Windows は自動的に公開鍵と秘密鍵を生成して、公開鍵を Azure Active Directory Device Registration Service に登録します。秘密鍵はデバイスの TPM で保護されるか、デバイスのシークレットで暗号化されています。登録時に、TPM の正当性を立証する署名された attestation blob が公開鍵とともに Azure AD に送信されます。
- 次回ログインするときからパスワードの代わりにユーザー ジェスチャが使えるようになります。ユーザー ジェスチャで TPM がアンロックされたら、上記のような公開鍵認証のプロセスが自動的に行われます。
上記では Azure AD の例で説明しましたが、実は Microsoft Passport は Microsoft アカウント、Active Directory アカウント、Microsoft Azure Active Directory (AD) アカウント、または Fast ID Online (FIDO) をサポートしている他社サービスのアカウントで利用可能です。
結び
Windows 10 に Microsoft Passport という新認証システムが搭載されています。パスワード認証よりセキュリティが飛躍的に高く、既存の公開鍵認証のシステムよりも便利で、あえて言えば理想的な認証システムです。
詳細については、下記のリンクにご参照ください。
ご参考
TechNet: Password-less Authentication with Microsoft Passport (英語)
Channel 9: The End Game for Passwords and Credential Theft? (英語)
Windows 10 関連ブログ
Windows 10: 問題を起こした更新プログラムやドライバーを Windows Update で一時的にインストールされないようにするツールの紹介 (2015/07/31)
Windows 10、Microsoft Edge、初めての月例セキュリティ リリース – 読み解き (2015/08/12)
Windows 10: Wi-Fi センサー (Wi-Fi Sense) とは? 正しく理解して使用してみよう (2015/08/21)
Windows 10: Windows Update の主な変更点 (2015/08/27)