デジタル ID の保護

コンピューティング デバイスをインターネットに接続して使用する際は、ユーザー名、パスワード、PIN などを避けて通ることはできません。これらは、デジタル経済において非常に重要な要素であり、このためのインフラストラクチャを Windows で提供することは、生半可な仕事ではありません。これには、まず Windows へのサインインという最も基本的なステップを整えること、そしてユーザーが使用を続けるうちに膨大な数に膨れ上がるさまざまなアカウントを保護するためのテクノロジを提供することが含まれます。この記事では、多数のパスワードのさらに安全な管理を実現する、Windows のアーキテクチャ関連の強化について説明します。この記事は、セキュリティ/ID 担当チームのグループ プログラム マネージャーである Dustin Ingalls が執筆しました。

–Steven


Windows 8 の計画中に長い時間をかけて検討した課題の一つが、デジタル ID を便利で安全な方法で管理しやすくするにはどうしたらよいかということでした。現在の世界におけるデジタル ID とその使われ方、それを保護する方法については、いくつかの非常に興味深い事実があります。

デジタル ID の確認方法として現在最も一般的なのは、パスワードを使用することです。パスワードは、コンピューター、銀行、Web ショップなど、さまざまなサイトやシステムへのサインインに使われます。Microsoft の調査によると、米国の平均的な PC ユーザーは、一般に、約 25 個のオンライン アカウントを所有しています。(1) それだけの数のアカウントを管理するのはたいへんです。実際、この調査では、その 25 個のアカウントに対して使われているパスワードはわずか 6 個であることもわかりました。つまり、平均的なユーザーは、複数のアカウントで同じパスワードを使い回す場合がかなり多いということになります。セキュリティに取り組んでいる人間にとっては、この調査結果は非常に気がかりです。また、Web サイトによってパスワードのポリシーが異なることを考えると (英数字と特殊文字の組み合わせを義務付けているサイトもあれば、特殊文字の使用を禁止しているサイトもあり、最少の文字数を指定しているサイトも、そうでないサイトもあります)、Web サイトのパスワード ポリシーが同じだった場合、アカウント全体で使われるパスワード数は、さらに少なくなるでしょう。

これは無理もないことと言えます。多数のパスワードを覚えておくのは簡単ではありません。使用頻度の低いアカウントの場合はなおさらです。しかし、パスワードの使い回しは、ハッカーにとって好都合です。あるサイトのパスワードがわかれば、他のサイトでも同じパスワードが使われている可能性が高いことをハッカーは知っています。さらに、攻撃者がユーザーのサインイン情報を使って、違うパスワードが使われている他のアカウントのパスワードをリセットできることも多くあります。たとえば、攻撃者がなんらかの方法でユーザーのアカウントの一つのパスワードを手に入れたとします。そのユーザーが Web メールのアカウントで同じパスワードを使っている可能性は高いでしょう。大手の Web メール プロバイダーは一握りしかないことを考えると、通常、このユーザーのアカウントはたやすく見つかります。攻撃者はメールにアクセスできると、他の一般的なサイト (大手銀行や大手 Web ショップなど) にアクセスして、"パスワードを忘れた場合" 機能を使い、乗っ取ったメール アカウントにパスワードのリセット用リンクを送信できます。

(余談ですが、Hotmail チームは Hotmail のパスワード回復プロセスの再設計に精力的に取り組んでいます。"悪党" が (どのプロバイダーに対しても) オンライン アカウントの侵害を図る方法は多数あり、Hotmail もその攻撃対象であることに変わりありません。アカウントが侵害された場合 (または、本当にパスワードを忘れた場合)、確実にそのアカウントのユーザーだけがアカウントを復元できるよう、複数のステップにわたるセキュリティ手順を実施していただくことになります。これは不便に思えるかもしれませんが、アカウント登録時に提供した情報が比較的少ないことを考えてみてください。予備のメール アカウントか、可能であれば携帯電話の番号をアカウント情報に追加するようお願いしているのは、そのためです。後者は特に複製やハッキングが困難です。Hotmail アカウントが侵害されていることがわかったら、パスワードを再設定できます。また、公共の端末や信頼できない環境から Hotmail にアクセスする場合は、SMS でお客様にお知らせする一時使用コードの利用をお勧めします)

ユーザー名とパスワードという全体的なフレームワークそのものが、いくつかの興味深い課題を生んでいることは明らかです。Web がスムーズに使用でき、簡単で安全であることをだれもが望んでいます。多数の複雑なパスワードを覚えなくてはならないことは、スムーズとは言えない状態です。かといって、覚えやすいパスワードを複数のサイトで使い回すのは、安全ではありません。この場合、望ましいソリューションは、異なるデジタル ID のすべてを簡単かつ安全に使用できる方法を何とか見つけることです。

この課題に対して、デジタル ID をより簡単かつ安全に管理できるようにするための基本的なアプローチは 2 つあります。一つは、Windows にパスワードの管理を支援する機能を持たせることです。訪問する Web サイトごとに複雑で一意のパスワードを設定しても、すべてのパスワードを覚えなくてよければ、覚えやすいパスワードを 1 つだけ利用するよりも間違いなく簡単です。また、複雑なパスワードは ID の侵害防止にも有効です。もう一つのアプローチは、ID を保護および確認するために、パスワード以外の何かを使用することです。長年、パスワードに代わる技術は多数存在していました。たとえば、ワンタイム パスワード (OTP)、証明書、スマート カードなどのテクノロジです。しかし、このようなパスワードに代わるテクノロジは、優れたセキュリティ特性があるにもかかわらず、必ずしも主流として使われるにはいたっていません。パスワードほど使いやすくないことが、その主な理由です。

Windows 8 では、ユーザー名/パスワードの組み合わせの安全な保管と、代替的な認証方法に対応するテクノロジの両方をサポートします。つまり、より簡単に、パスワードのセキュリティを強化できるようにすることと、デジタル ID の保護に新しい強力な手法を使用できるようにすることを目指しています。

パスワードの欠点

攻撃者がユーザーのパスワードを手に入れるための方法はさまざまです。最もよく使われる方法には、次のようなものがあります。

フィッシング: フィッシングは、ユーザーが攻撃者に直接パスワードを開示するように仕向けます。よく使われるフィッシングの手口には、"アカウントをリセットしてください" という電子メールを送り、ユーザーにパスワードを送信するように求める方法や、一般に利用されている Web サイトに似せた Web サイトへのリンクを使って、パスワードの入力を求める方法があります。

推測: 覚えやすいパスワードを好む人間の自然な性質により、インターネットで最もよく使われる 10 ~ 20 のパスワードをひととおり試すだけで、攻撃者がアカウントにアクセスできてしまうことが多くあります。また、好きなスポーツ チームやペットの名前などを使った推測しやすいパスワードは、一般に公開されている情報 (たとえばソーシャル ネットワークで公開しているプロフィールなど) を利用して突き止められてしまう場合もあります。

クラック: 状況によっては、データの断片 (通常は、パスワードのハッシュ値) をキャプチャし、それを使ってパスワードを割り出すことがあります。長さが 8 文字に満たないパスワードの場合、インターネットから入手できる無料のツールを使って、短時間で割り出すことができます。

キーロギング: デバイスにキーロガーがインストールされると、ユーザーが押したキーボードのキーを逐一記録できるため、名前とパスワードのペアを容易に特定できます。これは、特に公共の PC やキオスクでよく使われる攻撃です (このため、たとえば Hotmail の場合、このような状況ではパスワードではなく一時使用コードの利用をお勧めします)。

パスワードのセキュリティと使いやすさの向上

これらの攻撃のすべてに有効な保護対策として実施できる重要な手順がいくつかあります。最も重要な手順の一つは、PC をマルウェアがない状態に保つことです (フィッシングおよびキーロギング対策)。既に以前のブログ記事で紹介しましたが (セキュア ブートSmartScreen と Windows Defender の機能強化など)、Windows 8 には、この領域に関しては、実効性のある機能がいくつかあります。ただし、一部の攻撃 (推測やクラック) はパスワードの強度のみに左右されるため、アカウントごとに一意の強力で複雑なパスワードを使用することが重要です。

Windows 8 は、2 とおりの方法で、一意で複雑なパスワードを管理する作業を簡略化します。1 つ目は、ユーザーが使用するすべての Web サイトとアプリケーションを対象に、複数のアカウント名とパスワードを、保護された形で、自動的に保存および取得する手段を提供することです。Internet Explorer 10 は、資格情報として、(ユーザーが指定した場合) Windows に保存されている、ユーザーが訪問した Web サイトのアカウント名とパスワードを使用します。また、Metro スタイル アプリを開発する場合は、直接 API を使用して、そのアプリの資格情報を安全に保存および取得できます (IE では、資格情報の保存に関して、Web サイトの指示が優先されることに注意してください。パスワードを保存しないよう明示的に求める Web サイトもあります)。

[Manage your credentials] (資格情報の管理)/[View and delete your saved logon information for websites, connected applications and networks.] (保存した Web サイト、接続型アプリケーション、およびネットワークのログイン情報を表示または削除します。)/[Web Credentials] (Web 資格情報)/[Windows Credentials] (Windows 資格情報)/(Web サイトとそのパスワードの一覧)

Windows 8 では、すべてのサインイン資格情報を安全に保存および管理できる

この領域で行われた 2 番目の重要な投資は、Katie Frigon が以前の記事「Windows Live ID を使って Windows 8 にサインインする」でご紹介した点です。Windows Live ID を使って Windows のサインインを行うメリットの一つとして、"信頼済み PC" として登録したすべての Windows 8 PC 間で、保存した資格情報を同期できることがあります。

Windows へのサインインに Windows Live ID を使っている状態で、資格情報を保存すると、各アカウントのパスワードを複雑で一意なパスワードに設定できます。Windows 8 がユーザーに代わって自動的に資格情報を渡するため、ユーザー自身はパスワードを覚える必要がありません。後で実際のパスワードを確認する必要が出てきた場合は、任意の信頼済み PC から資格情報マネージャー (図を参照) を使って確認できます。

PC へのサインインについても、資格情報を安全に保つための原則は、Web サイトやアプリケーションの場合と変わりありません。PC のアカウントの保護に使用するパスワードは、推測やクラックの被害を受けにくいパスワードである必要があります。Windows 8 ではそのために、サインイン用に非常に強力なパスワードを設定できるようにしているほか、ピクチャ パスワードや生体認証など、便利な "近道" となるサインイン方法も提供しています。これで、セキュリティを犠牲にせずに、PC へのサインインが簡単になります。ピクチャ パスワードなど、他のサインイン方法については、今後の記事で詳しく説明する予定です。

Windows Live ID を使って PC にサインインすることで、サインインが簡単になるだけでなく、サインインのセキュリティが強化され、Windows パスワードを忘れた場合の明確な回復手段が提供されることは、改めて強調しておくべきでしょう。ローカルのパスワードの場合、パスワードを忘れるとかなり苦しい状況になります。パスワードを回復するための USB メモリを用意していなかった場合、マシンを一から構築し直すしかありません。しかし、Windows Live ID を使って PC にサインインする場合は、別の PC からパスワードを再設定できます。Windows Live ID のパスワードがなんらかの方法で盗まれた場合も、Windows Live が提供するセキュリティ機能によって、アカウントの盗用が検出され、ユーザーがアカウントの正当な所有者であることを証明してアカウントを回復するまで、アカウントの使用を制限することができます。アカウントの回復ワークフローでは、携帯電話の番号や別の電子メール アドレスなど、あらかじめ設定した 2 要素認証機能 (2 次的な情報を使った確認) を利用します (2 要素が設定されていない場合、初めて Windows Live ID を使って Windows 8 にサインインするときに、設定するよう求められます)。また、Windows Live ID が侵害された状態であっても、PC には完全にアクセスできます。Windows により、サインインに成功した最新のパスワードが (もちろん暗号化されて) キャッシュされるため、そのパスワードを使用して引き続きサインインできます。

パスワードに代わる使いやすいテクノロジの開発

パスワードを複雑で一意にすることで、推測やクラックに対しては高い耐性が得られますが、パスワードというものが "共有キー" (または "対称キー") と呼ばれるシステムである以上、フィッシングやキーロギングに対する脆弱性の存在は避けられません。このようなキーは、ユーザーとサインイン対象のデバイス間で共有されるため、攻撃者がなんらかの方法で秘密キーを手に入れてしまえば、そこで試合終了です。ただし、このような攻撃に対して非常に有効な、パスワードに代わる保護技術があります。

その一つが、公開キー/秘密キーのペアです。Secure Sockets Layer/トランスポート層セキュリティ (SSL/TLS) 証明書がその一例で、現在、インターネット上のネットワーク トラフィックの保護に最も利用されている方法です。公開キー/秘密キーのペアは、"非対称" キーである点がパスワードと異なります。秘密キーと公開キーは同じではないため、公開キーがわかっても、攻撃者は秘密キーを割り出すことができません。ごく単純に説明すると、公開キー/秘密キーのサインイン方法では、サービスにサインインする場合、サービスがサインイン要求をユーザーに送り、ユーザーが秘密キーを使ってその要求に署名します。サービスがユーザーの公開キーを使って署名を読み取ると、対応する秘密キーの所有者によってサインイン要求が署名されていることが、暗号を使った方法で証明されます。これは、"秘密キー保持の証明" と呼ばれます。秘密キーをなくさない限り、ユーザーがサービスにサインインする正規のアカウント所有者であることが、暗号を使った方法ではっきりと証明されます。実際の秘密キーが交換されることはないため、キーロギングもフィッシングも機能しません。ログできるキーストロークはありませんし、最悪のケースとして、ユーザーが騙されて秘密キーを使って偽の Web サイトへの認証要求に署名をした場合でも、意味がある情報は提供されません。攻撃者はこの情報を再利用して、正規の Web サイトにサインインすることはできません。

このテクノロジは、現在、インターネットで広く使用されていますが、従来のパスワードによるサインインと入れ替わるには至っていません。なぜでしょうか。最大の理由は、秘密キーによる強力な保護には通常、専用のハードウェア (代表例はハードウェア セキュリティ モジュール (HSM) やスマートカード) が必要となるためです。従来、そのようなハードウェアはあまり便利なものではありませんでした。ハードウェアを紛失した場合や手元にない場合、サインインできません。

Windows 8 には、ユーザーにとっても、アプリケーション開発者にとっても、公開キー/秘密キーを使う方法を格段に利用しやすくするさまざまな新機能があります。Windows では既に、キー ペアや証明書の使用を広範にわたりサポートしていますが、前述のとおり、秘密キーの強力な保護を利用するには HSM やスマート カードが必要です。Windows 8 には、新しいキー記憶域プロバイダー (KSP) が実装されています。この KSP を使うと、強力な保護を提供する秘密キーとして、簡単で便利なトラステッド プラットフォーム モジュール (TPM) を使用できます。TPM は、現在、多くのビジネス モデルの PC に搭載されている、信頼の置ける実行環境で、暗号キーを PC に安全に保存することができます (Windows 8 がリリースされるころには、TPM は今よりも大幅に普及しているでしょう)。Metro スタイル アプリには、ユーザーに代わってキーを自動的に登録および管理しやすくする API があります。この API の使い方がわかるサンプルのバンキング アプリ (英語) を Windows Dev Center で提供しています。

KSP 機能は、バンキング アプリケーションや商取引アプリケーションに特に便利です。現在インターネットで使われる一般的な ID 攻撃のほとんどに対して非常に強い抵抗力があり、PC に内蔵されているハードウェアを利用して、マルウェアによる秘密キーの盗難を防止できるためです。

既にスマート カードを使用されている組織や企業の方に便利な新機能として、TPM KSP に上乗せする形で、TPM を "仮想の" スマート カードとして使用できる機能を実装しています。このソリューションは、物理的なスマート カード リーダーを必要としないため、さらに便利で経済的です。また、既存のスマート カード アプリケーションや管理ソリューションを使用できるため、導入も簡単です。仮想スマート カード機能は、スマート カード対応のどのアプリケーションやソリューションでも、既存のスマート カードの代わりに使用できます。サーバー側の変更もアプリケーション側の変更も必要ありません。また、Windows 8 では引き続き、Personal Identity Verification (PIV) 標準または Generic Identity Device Specification (GIDS) 標準に準拠したカードをサポートします。これらの標準を使用することで、Windows 8 ではスマート カード導入が格段に容易になります。これらのオプションはいずれも、Windows (ドメインに参加している PC の場合)、アプリ、Web サイトなど、これまで物理的なスマート カードによるアクセスが可能だったすべての種類のサインインに使用できます。以下のビデオで、実際の動作をご覧ください。これは、管理者によってポリシーまたはログオン スクリプトがセットアップされた後の状態です。

ビデオをダウンロードしてお好みのメディア プレーヤーで再生することができます:
高画質 MP4 | 低画質 MP4

安全なデジタル ID の保持が重要性を増す中、私たちは、デジタル ライフの煩雑さを増すことなく、さらなる安全性を実現する方法の模索に、情熱を持って取り組んでいます。Windows 8 にもこの点について多大な時間と労力が注ぎ込まれていますので、ぜひフィードバックをお聞かせください。

- Dustin Ingalls

(1) 出典: Dinei Florencio および Cormac Herley、「A Large Scale Study of Web Password Habits (Web パスワードの使用状態に関する大規模調査)」、Microsoft Research。2007 年