Windows Hello とは
Windows10 には Windows Hello が搭載されました。これはわかりやすく言うと生体認証アプリケーションになります。よって、今まではパスワードを使用してユーザー認証を行っていましたが、生体認証を使用することができるということです。Windows10 が対応している生体認証方法としては、「指紋認証(Fingerprint)」「顔認証(Face)」「虹彩認証(Iris)」の3種類に対応します。
指紋認証は今までもノートPCなどで採用されていたので馴染みが深いと思います。
顔認証に関しては、入退館システムでたまに見かけるくらいであまり浸透はしていませんね。
虹彩認証も、顔認証と同様になります。虹彩とは、瞳孔の周りの色のついたリングのことで、角膜で保護されています。虹彩と網膜は別のものです。そもそも、虹彩とは、生後18か月までにパターンが特定され一生変わることはありません。
さて、話を戻すと Windows10 の Windows Hello では PIN との組み合わせになります。よって、デバイスが使用できない状態でも PIN でログオンができます。PIN に関してはデバイスごとに設定するので、たとえ PIN 番号が漏れたとしてもそのデバイスの PIN 番号を変更するだけで済むことがメリットになります。よって、運用面から考えると複数のデバイスを所有しているユーザーは PIN の使いまわしは避けるべきでしょうね。
Windows Hello を使用して指紋認証でログオンすることができますが、私は以前から ThinkPad の指紋認証を使用して Windows にログオンしていたのであまり感慨深いものはないのですよね~。
さて、実際問題として Windows Hello を使用するためには生体認証デバイスが必要になります。しかしながら、日本ではそのデバイスの入手が難しいです。指紋認証デバイスにおいてはあることにはあるのですが、値段が高い。
とかがAmazonで購入できます。私は
Thumbprint Security USB Reader
を Amazon USA から購入しました。送料込みでも日本で購入するより安いです。
そして、顔認証においては Intel Realsense が必要になります。追加デバイスとしては、Intel RealSense F200 が必要になるのですがこれも日本では入手が難しいです。また、現在使用していますがまだドライバーが未成熟なのかWindows10の問題なのか、不安定な状態なのでお勧めはしません。
また虹彩認証デバイスはまだ世の中に出ていないようです。
Microsoft Passport とは
FIDO2.0 という規格に対応した認証プロセスで Windows Hello による認証が完了すると FIDO クライアントである Windows10 が秘密鍵(Private Key)を取り出して認証要求に対して署名をつけてFIDOサーバーである Azure AD に送信します。これは Windows10とAzure AD との組み合わせでサポートされています。次期 Windows Server 2016 の AD で Windows10 との組み合わせもサポートするようです。この仕組みのメリットはなにかというと、PKIの公開鍵と秘密鍵を使用していて、Windows10がサインイン(認証)要求を FIDO Server である Azure AD に送信する際、TPM に保管されている秘密鍵を取り出して署名して送信しているので、ネットワークには一切パスワード情報が流れていないことになります。FIDO サーバー(Azure AD)にはユーザーの公開鍵が保管されているので署名の確認を行い、正当なサインイン要求だった場合には PRT(Primay Refresh Token)が発行されてアクセストークンである PRT をさまざまなアプリに提示することで再認証を回避して SSO(Single Sign On)が可能になります。
まとめ
Windows Hello と Microsoft Passport の関係性に関して、以前までもやもやしていましたが、FEST2015 の安納さんのセッションを受講してすっきりしましたのでこちらにまとめておきました。何か間違いなどがありましたら、こっそり教えていただければ幸いです。
追伸:2015/9/18 に間違いがわかりましたので書き直しました。