Windows 10で本当にパスワードは無くなるのか?Enterprise IT Kaleidoscope(2/3 ページ)

» 2015年12月21日 07時00分 公開
[山本雅史ITmedia]

Microsoft Passportの仕組み

 当初のFIDOは、AgnitioとInfineon Technologies、Lenovo、Nok Nok Labs、PayPal、Validityなど6社が設立した業界団体だった。しかし、セキュリティの重要性が認識されるにつれてGoogle、Microsoft、Discover(クレジットカード会社)、ING(銀行)、American Express(クレジットカード会社)など200社以上が参加する事実上の業界標準に育った。

 Microsoft PassportではMicrosoftアカウントやAzure ADにログインする際に、パスワードではなくPIN(4桁の数字)を利用する。これだけみると、4桁の数字より8桁や12桁の英数字を利用するパスワードの方が、セキュリティ強度は高いように思われるかもしれない。

 Microsoft Passportは、このPINの登録時に2つ要素によって認証を行っている。PIN登録時に必ずモバイルアプリ、電話、テキストメッセージなど、PC以外のデバイスを使って本人確認を行っており、これによってユーザーが作成するPINの正当性を高めている

 PIN作成時にはRSA暗号などによって、「公開鍵」と「秘密鍵」の2つが作成される。秘密鍵はクライアントデバイスのハードウェアとして登載されているTPM(Trusted Platform Module)というセキュリティチップの内部に暗号化して保存される。公開鍵は、IDとともにサーバに送信され、保存される。TPMは、セキュリティに特化した独立プロセッサであるため、物理的に分かれているTPMへ保存される情報のセキュリティ強度は非常に高い。

Windows10 Microsoft PassportでPINを使う時に秘密鍵と公開鍵を作成する。秘密鍵はクライアントのTPMに格納される
Windows10 PIN使用時は携帯電話、スマートフォン、電話などの別のデバイスを使った個人確認を行う

 例えば、Microsoftアカウントへアクセスするには、まず認証サーバにIDを送信し、サーバから「nonce」というランダムな数字がクライアントへ送られる。クライアントではnonceに秘密鍵を使って署名し、サーバに送信する。サーバではクライアントから送られたnonceの番号を確認し、そのIDの公開鍵を使って秘密鍵で署名されたデータを検証する。ここで一致すれば、クライアントにアクセスを許可するためのトークンというデータを発行する。

 この流れは分かりにくいかもしれないが、サーバへアクセスする時にパスワードが一切ネットワークを流れない。サーバ側もパスワードを管理する必要が無い。サーバには公開鍵が置かれているものの、公開鍵から秘密鍵は類推できないようになっている(一方通行の鍵)。このため、TPMというセキュリティチップ内部にある秘密鍵が漏れることはほとんど無い。

Windows10 サーバアクセス時にIDは送信されるが、パスワードは送信されない。サーバ上にもパスワードは無く、公開鍵を使ってユーザー認証が行われる

 実は、Windows HelloではPINの数字を顔認識、虹彩認識、指紋認識などの生体認証に置き換えているだけだ。

Windows10 Windows HelloではPINの代わりに生体情報を利用。指紋、顔、虹彩などが使用できる

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ