起動もサインインもセキュリティで保護

Windows 10を採用する理由の1つが強固なセキュリティである。昨今はマルウェアの侵入による情報漏洩や、サイバー攻撃による金銭的被害が話題にあがり、政府も本腰を入れて対策を講じ始めているが、そもそもMicrosoftは米ペンタゴン(米国国防総省)に続いて世界中から攻撃を受けている企業だ。Webサーバーはもちろん、同社のクラウドプラットフォームであるMicrosoft Azureはこの瞬間も攻撃を受け続けていると関係者は説明する。

そのため同社は10年以上前からセキュリティ対策に巨額を投資し、あらゆる角度からセキュリティ強化を行ってきた。サーバー製品や開発システムはもちろん、クライアントOSであるWindows 10も例外ではない。例えば起動プロセスを例にあげれば、「セキュアブート」は有効な機能に数えられる。前バージョンとなるWindows 8.xやWindows Server 2012から実装した機能のため、Windows 10固有ではないものの、OS起動前に侵入を試みるマルウェア対策としては有用な存在だ。

Windows 10のセキュアブートプロセスをイラスト化したもの(細部は省略)

UEFI(Unified Extensible Firmware Interface)に対応しているPCでは、ファームウェアが各ソフトウェアやUEFIドライバー(もしくはオプションROM)の署名をチェックし、正しかった場合にWindows 10の起動プロセスを開始。ユーザーモードプロセスに移行する前にWindows Defenderと同じロジックで動作するELAM(Early Launch Anti-Malware)を呼び出し、安全性を確認してからWindows 10が起動する。さらにWindows 10へサインインした後もWindows Defenderが稼働するため、マルウェアが侵入する可能性は最小限に抑えられる仕組みだ。さらにTPM 2.0(トラステッド プラットフォーム モジュール)を搭載しているPCならば、PCR(Platform Configulation Register)や保証キーなどを用いて正常性を保護する。

そのサインイン時にもWindows 10は独自機能を実装した。「Windows Hello」は、パスワード入力を必要最小限に抑えることを目的にした機能である。そもそもパスワードの正しい管理は非常に難しい。システムごとパスワードを変えても記憶しておくことは難しく、つい同じパスワードを使い回しがちだ。また、複雑な文字列にしてもパスワードクラックツールを長時間回せば、解析できるため意味をなさない。そこでMicrosoftはWindows 8.xからPIN(暗証番号)や、画像に対するジェスチャー操作でサインインするピクチャパスワードを導入した。

Windows 10はこの考え方を推し進め、Windows Helloに至っている。具体的には生体認証フレームワークを利用し、指紋認証や顔認証、虹彩認証の3種類でサインインすることで、パスワード入力はアカウント作成時や認証時に限定し、キーロガーなどによるパスワードの漏洩を未然に防ぐ。ここで行われた認証はMicrosoft Passportというソリューションにも活かされる。

生体認証でパスワードの廃止を実現するWindows Hello

Microsoft Passportの概要を端的に述べれば、ローカルPCに保存したPINを使用して認証を行うというものだ。仕組み自体はFIDO(Fast IDentity Online)が策定中のFIDO 2.0とほぼ同等。例えばSaaS上のアプリケーションにログオンする場合、パスワードを用いるとパスワードの漏洩が不安視されるが、Microsoft Passportの場合は、Windows Helloもしくはデバイスに保存したPINで認証するため、スマートカード認証をより安価に実現する仕組みと捉えると分かりやすい。ただし、システム要件としてMicrosoftアカウントの使用やAzure AD(Active Directory)およびADドメイン、FIDO 2.0に準拠したIDプロバイダーへの参加が並ぶため、組織レベルでの対応が必要となる。

Microsoft Passportは、認証を2段階に分けることでセキュリティ強化と利便性能向上を実現している