Windows 10: パスワード、スマート カード、そして Windows Hello + Microsoft Passport。それぞれの違いを理解しよう (1)


こんにちは、村木ゆりかです。

 

Windows 10 の新たな認証機能である Windows Hello と Microsoft Passport。「新たな認証方式」「パスワードとはお別れ!」と耳にした方も多いかと思います。企業 IT としては、AzureAD + Windows 10 で利用可能で、Windows Server 2016 Technical Preview でのサポートも始まっています。

なんとなく、これまでのパスワードの問題を解消する新しい認証方式だということは分かったけど、まだモヤモヤしている方もいらっしゃいませんか?これまで Active Directory で利用されてきたIDとパスワードを使ったケルベロス認証との違いは? スマートカードの認証とは違うの? っていうか、そもそもなんで新しい認証方式必要なの?

 

IT 管理者の皆さんは、これから展開を検討する、あるいは既に展開を始めているけれど運用にあたってトラブル シュートなども必要になってくるため、認証のしくみや違いがスッキリしていないと不安だったり、検討に踏み込んだりしにくいかと思います。

今回は、企業 IT における Windows Hello + Microsoft Passport がどのようなものになるのか、どのようにセキュリティ脅威に立ち向かえるのか、これまでの Active Directory での認証方式をおさらいしながら違いを紹介します。まず、今回は、Windows Hello と Microsoft Passport の関係性を整理し、概要をスッキリさせましょう。

 

Windows Hello で生体認証

Windows Hello は生体認証のことです。指紋、顔、虹彩によって認証を行うことができます。Windows 10 では、これらの認証方式が標準でサポートされるようになりました。(そして生体認証のことを "Windows Hello" と呼ぶことにした、ということです)

生体認証はセットアップも、認証もとても簡単です。紹介ビデオがありますので見てください

 

Microsoft Passport は認証を分離して、利便性とセキュリティを高める

Microsoft Passport は、Windows Hello (生体認証) あるいは PIN を使った信頼できるデバイスへのログオンと、公開鍵暗号を利用した認証サーバーへの認証を組み合わせて使う新しい認証の方式のことです。

 

これまでのパスワードを使った認証では、ユーザー名とパスワードを入力すると、ネットワークを伝って認証サーバーへ送信されます。そして、認証を行うサーバー側で、ユーザー名とパスワード (またはパスワード ハッシュ) を管理し、比較を行うことで認証しています。

ネットワークを介することなどから、見えない攻撃者によるセキュリティ リスクを軽減するために、パスワードは長く複雑にして強度を高める必要があります。また、1 つのパスワードが盗まれてしまった場合に、他のサービスでの不正利用を防ぐために、パスワードはそれぞれのサービスで別のものを使う (使いまわしを防ぐ) 必要があります。さらに、ユーザーとデバイスは紐づけられていませんので、どのデバイスからでも認証要求をだすことができます。すなわち、攻撃者が盗んだユーザー名とパスワードで、攻撃者のデバイスから、なりすまして認証することができてしまいます。

 

Microsoft Passport は、こうした問題を解決する、FIDO という業界標準規格に準拠した新しい認証方式です。Microsoft Passport の大きな特徴は「公開鍵暗号を利用している」ことと、「信頼されたデバイスと紐づけられた 2 段階の認証を行う」ということです。

 

ポイント 1: 公開鍵暗号を利用している

パスワードは、共通鍵暗号方式で、やり取りを行う者(ユーザーと認証サーバー) が、1 つの鍵 (パスワード鍵) を使って暗号し、復号します。ちょうど、玄関の鍵を家族が共有してもっているようなものです。鍵があれば開錠も施錠もできるので、鍵は、やり取りを行う全員(ユーザーと認証サーバーともに) 秘密にしておく必要があります。それぞれが厳重に鍵を保存しておく必要があり、また、鍵のやり取りを安全に行う必要があります。

これに対し、公開鍵暗号方式では、「公開鍵」と「秘密鍵」の 2 つの鍵をペアにして処理を行います。たとえるならこれは、南京錠のようなものです。公開鍵 (南京錠の錠のほう) は、その名のとおり、だれでも入手が可能なように公開しておき、秘密鍵 (南京錠の鍵のほう) は、秘密にしておきます。錠はだれでも閉めれるけど、自分しか開けられない (暗号)。あるいは、自分しか開けられないけど、錠はだれでも閉められる (署名) という仕組みを実現しています。

公開鍵暗号では、秘密鍵は知られないように大切に安全に保存しておく必要がありますが、ユーザーだけが保持しておけば良く、認証サーバーと秘密鍵のやり取りをする必要はありません。公開鍵は、誰が知っても問題ありませんので、秘密にしておく必要はありません。

Microsoft Passport では、認証に公開鍵暗号を利用することで、これまでパスワード(共通鍵暗号方式)で問題となっていた鍵の管理の問題を解決しています。

Blog2

 

ポイント 2: 信頼されたデバイスと紐づけられた 2 段階の認証を行う

これまでの認証ではユーザーと認証サーバーは1段階で、ユーザーが入力したパスワードを使ってそのまま認証サーバーと認証を行っていました。Microsoft Passport では、認証を2段階に分けています。

  1. ユーザーとデバイス間の認証:
    • Windows Hello (生体認証) あるいは PIN を利用して、ユーザーがデバイスによって認証(デバイスにログオン)。ここで利用する Windows Hello の生体認証情報や PIN はそのデバイス専用です。デバイス外に流れることはありません。
    • 攻撃者がユーザーになりすまして不正ログオンするためには、デバイスを物理的に盗んで、そして、生体認証を偽装するか、PIN を知る必要があります。
  2. 信頼されたデバイスと認証サーバー間の認証:
    • 信頼されたデバイスと認証サーバーは、公開鍵暗号を使って認証します。
    • 認証サーバーには公開鍵のみを保管しています。厳重に管理が必要なパスワードや秘密鍵はありません。
    • 厳重に管理が必要な秘密鍵は、ユーザーが利用する端末(信頼されたデバイスとして登録済み)の、TPM に保存しているため端末外にでることはありません。
    • (1) でユーザーがデバイスに認証されると、TPM に保存されている秘密鍵にアクセスすることが可能になります。
    • 秘密鍵を使って、認証サーバーに認証リクエストを送り、認証をする認証サーバー側では、公開鍵を使って本人であることを確認します。

このように認証を 2 段階にわけることで、セキュリティを高める部分と利便性を高める部分を整理する、これが、Microsoft Passport の特徴なのです。

 

Blog

 

次回は、現在の Active Directory で利用されているIDとパスワードのケルベロス認証、そして、セキュリティを高める方法としてスマートカードによる認証と Microsoft Passport の違いを説明します。お楽しみに!

 

 

■連載一覧

Windows 10: パスワード、スマート カード、そして Windows Hello + Microsoft Passport。それぞれの違いを理解しよう (1)

Windows 10: パスワード、スマート カード、そして Windows Hello + Microsoft Passport。それぞれの違いを理解しよう (2)

Windows 10: パスワード、スマート カード、そして Windows Hello + Microsoft Passport。それぞれの違いを理解しよう (3)

 

Skip to main content