1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Windows Helli for Business で PIN 入力を複数回誤った場合に、どのような動作になるのかが、以下の公開情報に記載されています。

今回は、実際に どのような動きになるのかを検証してみました。

公開情報
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/faq#--------------windows-hello-for-business--------------------------

(上記の公開情報より、抜粋)
承認されていないユーザーが Windows Hello for Business に登録されているデバイスを所有するとどうなりますか?
承認されていないユーザーは生体認証オプションを利用できず、PIN を入力する唯一のオプションがあります。

ユーザーがランダム PIN を入力してデバイスのロックを解除しようとすると、3 回失敗した後、資格情報プロバイダーに次のメッセージが表示されます。

間違った PIN を複数回入力しました。もう一度やり直すには、下の「A1B2C3」と入力します。
チャレンジ フレーズ A1B2C3 を入力すると、ユーザーには PIN を入力する機会がもう 1 つ付与されます。
失敗した場合、プロバイダーは無効になり、ユーザーはデバイスを再起動するための唯一のオプションを残します。 再起動後、前述のパターンが繰り返されます。

試行が失敗した場合、デバイスはロックアウト状態になり、最初の再起動後 1 分、4 回目の再起動後 2 分、5 回目の再起動から 10 分後に続きます。
各ロックアウトの期間は、それに応じて増加します。
この動作は、TPM 2.0 のハンマリング防止機能の結果です。 TPM のハンマリング防止機能の詳細については、「 TPM 2.0 のハンマリング防止」を参照してください。

前提となる環境

  • TPM が利用できる Windows クライアント
    物理 PC(ハードウェア TPM 2.0 搭載)
    または、以下の記事の手順を使って、Hyper-V 上に TPM 2.0 が有効な Windows VM を手配(今回は、VM を使って検証しました)

  • Windows Hello for Business を構成
    以下の記事の手順を使って、上記で手配した OS へ Windows Hello for Business を構成

検証実施前のステータス

検証を開始する前に、tpm.msc と、Get-Tpm 等のコマンドの実行結果を確認します。

コンピューターのトラステッドプラットフォームモジュール (TPM) の管理

OS インストール直後の tpm.msc の画面

公開情報:TPM のトラブルシューティング
https://learn.microsoft.com/ja-jp/windows/security/hardware-security/tpm/initialize-and-configure-ownership-of-the-tpm

image.png

image.png

TPM コマンド

OS インストール直後の コマンド実行結果
このリファレンスでは、すべての TPM コマンドレットの説明と構文を示します。コマンドレットの先頭の動詞に基づいて、アルファベット順にコマンドレットを一覧表示します。

公開情報

Get-Tpm

Get -Tpmコマンドレットは、TpmObject を取得します。
このオブジェクトには、現在のコンピューター上の Trusted Platform Module (TPM) に関する情報が含まれています。

項目
TpmPresent True 現在のコンピュータにTPMがあるかどうか
TpmReady True TPM が Windows Server 2012 標準に準拠しているかどうか。
TpmEnabled True
TpmActivated True
TpmOwned True
RestartPending False
ManagedAuthLevel Full オペレーティング システムが所有者の承認を管理するレベル。
可能な値は、Legacy、Balanced、および Full です。
OwnerAuth Trusted Platform Module (TPM) の現在の所有者認証値
OwnerClearDisabled Flase TPM をリセットできるかどうか。
この値が True の場合、所有者認証値を使用してオペレーティング システムから TPM をリセットすることはできません。
この値が False の場合、オペレーティング システムから TPM をリセットできます。
AutoProvisioning Enabled コンピューターが自動プロビジョニングを使用できるかどうか。
可能な値は、NotDefined、Enabled、Disabled、および DisabledForNextBoot です。
LockedOut False TPM がロックアウトされているかどうか
LockoutHealTime 10 min TPM のロックを解除できるようになるまでに経過する必要がある時間。
LockoutCount 0 失敗した試行回数
LockoutMax 31 失敗試行の制限
SelfTest {} TPM が実行するテストによって返される情報。

image.png

公開情報:Get-Tpm
https://learn.microsoft.com/ja-jp/powershell/module/trustedplatformmodule/get-tpm

Get-TpmEndorsementKeyInfo

Get -TpmEndorsementKeyInfoコマンドレットは、Trusted Platform Module (TPM) の承認公開キーと証明書に関する情報を取得します。

項目
IsPresent True 承認公開キーがオペレーティング システムに認識されているかどうかを表すブール値
PublicKey System.Security.Cryptography.AsnEncodedData 承認キーの asn.1 エンコードされた公開部分を含むAsnEncodedDataオブジェクト。コマンドレットがハッシュ アルゴリズムを使用した場合の公開キーのハッシュ (文字列)。
PublicKeyHash ハッシュ値
ManufacturerCertificates {} 製造元の承認キー証明書を含むX509Certificate2Collectionオブジェクト。このオブジェクトには、製造元の証明書とプラットフォーム証明書を含めることができます。エンタープライズ証明書など、オペレーティング システムに登録されている追加の承認キー証明書のコレクションを含むX509Certificate2Collectionオブジェクト。
AdditionalCertificates {}

image.png

公開情報:Get-TpmEndorsementKeyInfo
https://learn.microsoft.com/ja-jp/powershell/module/trustedplatformmodule/get-tpmendorsementkeyinfo

Get-TpmSupportedFeature

Get -TpmSupportedFeatureコマンドレットは、Trusted Platform Module (TPM) が指定された TPM 機能をサポートしているかどうかを確認します。

image.png

公開情報:Get-TpmSupportedFeature
https://learn.microsoft.com/ja-jp/powershell/module/trustedplatformmodule/get-tpmsupportedfeature

検証結果

結果として、公開情報に書かれている説明と、かなりの差異が見受けられました。

公開情報 検証結果
チャレンジフレーズ
を求められるまでの回数
3 4
チャレンジフレーズ
に回答して、そのあとに試行できる回数
1 1
チャレンジフレーズ
のあと PIN をミスした際に
ロックアウトが発生するか?
する しない
ロックアウト発生までの失敗回数 4 31

ロックアウト発生し、再起動後に PIN 入力できるようになるまでの時間

公開情報 検証結果
1 回目 1分 10分
2 回目 未記載 10分
4 回目 2分
5 回目 10分

検証した結果を、そのままの流れのままを 次章に示します。

1回~4回目の PIN 入力ミス

誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

上記の画面で OK を押したあと、以下の画面となった。
image.png

上記の画面で、パスフレーズを誤ると、以下のメッセージになる。正しいものを入れるしかありません。
image.png

正しいパスフレーズを入力すると、PIN の入力画面になります。
ここで、誤った PIN を入力すると、以下の画面になります。
image.png

上記の画面で OK を押すと、以下のようになり、再起動するしかなくなります。
image.png

同じデバイスへ、別の管理者アカウントで RDP を実施。Get-Tpm を実行した結果は、以下の通り。
以後、Get-Tpm の値は、同様の方法で取得しています。
この時は、LockOutCount 5 になっているが、Lockedout は、False のままになっている。
image.png

この時、PIN 入力はできないが、パスワード なら入力できる状態。PIN がどのような状態であっても、パスワードに切り替えることでサインインが可能。
image.png

再起動を実施
再起動後に、Get-Tpm を確認すると、Count は 5 のまま

6回~9回目の PIN 入力ミス

誤った PIN 入力を 実施したあと、以下のメッセージが表示された。
image.png

9回目のミスのあと、以下の画面になった(30秒無効)
image.png

この時は、LockOutCount 9 になっているが、Lockedout は、False のままになっている。
image.png

30秒経過後、チャレンジフレーズ の入力が可能となるため、正しいフレーズを入力
image.png

10回目の PIN 入力ミス
image.png

この時は、LockOutCount 10 になっているが、Lockedout は、False のままになっている。
image.png

再起動
再起動後も LockOutCount は 10回 のままだった。

11回~14回目の PIN 入力ミス

11回~14回誤った
誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

14回目のミスのあと、以下の画面になった(1分無効)
image.png

この時は、LockOutCount 14 になっているが、Lockedout は、False のままになっている。
image.png

1分経過後、チャレンジフレーズ の入力が可能となるため、正しいフレーズを入力
image.png

15回目の PIN 入力ミス
image.png

image.png

この時は、LockOutCount 15 になっているが、Lockedout は、False のままになっている。
image.png

再起動
再起動後も LockOutCount は 15回のまま

16回~19回目の PIN 入力ミス

誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

19回目のミスのあと、以下の画面になった(2分無効)
image.png

この時は、LockOutCount 19 になっているが、Lockedout は、False のままになっている。
image.png

2分経過後、チャレンジフレーズ の入力が可能となるため、正しいフレーズを入力
image.png

20回目の PIN 入力ミス
image.png

image.png

この時は、LockOutCount 20 になっているが、Lockedout は、False のままになっている。
image.png

再起動
再起動後も LockOutCount は 20回のまま

21回~24回目の PIN 入力ミス

誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

24回目のミスのあと、以下の画面になった(5分無効)
image.png

この時は、LockOutCount 24 になっているが、Lockedout は、False のままになっている。
image.png

25回目のミス
image.png

image.png

この時は、LockOutCount 25 になっているが、Lockedout は、False のままになっている。
image.png

再起動
再起動後も LockOutCount は 25回のまま

26回~29回目の PIN 入力ミス

誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

29回目のミスのあと、以下の画面になった(10分無効)
image.png

この時は、LockOutCount 29 になっているが、Lockedout は、False のままになっている。
image.png

10分経過後、チャレンジフレーズ の入力が可能となるため、正しいフレーズを入力
image.png

29回目の入力ミス
image.png

この時は、LockOutCount 29 になっているが、Lockedout は、False のままになっている。
image.png

再起動
再起動後も LockOutCount は 29回のまま

30回~31回目の PIN 入力ミス

誤った PIN 入力を実施したあと、以下のメッセージが表示された。
image.png

31回目のミスの後、ついに、ロックアウト発生
image.png

LockedOut が True になり、 LockOutCount も 31 になっている。
image.png

このとき、tpm.msc の表示は、以下のようになっている
image.png

ロックアウト後の動作

10分まつと、以下のように Lockedout が False に変更され、LockOutCount も 30 に減算されている。(なお、このときは待っただけで 再起動はしていません)
image.png

ここで、正しい PIN を入力すると、サインインできました。
サインイン後の Get-Tpm の結果は、直前と変わらない。
image.png

このあと、再起動して Get-Tpm を実行するも カウントの値は変わらないが、時間がたつと カウントが 1 ずつ減っている様子。そして、また PIN を誤るとカウントアップしていき、31 に到達すると ロックが発生する。

ここで観察できた内容は、以下の公開情報の説明に近い状態です。
検証では 31 回でロックですが、以下の情報では 32 回になっている点が気になる点ですが・・・

連続4回失敗後、チャレンジフレーズ表示前の待ち時間

Get-TPM の結果では確認ができないのですが、ユーザーごとに ロックアウトされた回数がカウントされているような気がします。

これが増えるにしたがって、PIN を 4 回 連続でミスした際に、チャレンジフレーズが表示されるまで 待たされる時間は、どんどん延長されていくようです。
image.png
image.png

連続 4 回失敗したあと、チャレンジフレーズ入力前に待たされる時間
→ 検証では、ロックアウトの発生とは別に チャレンジフレーズの入力前に待機時間が発生した。公開情報には、このような説明は書かれていない。

検証結果
連続 4 回失敗 1回目 なし
連続 4 回失敗 2回目 30 秒
連続 4 回失敗 3回目 1 分
連続 4 回失敗 4回目 2 分
連続 4 回失敗 5回目 5 分
連続 4 回失敗 6回目
ここでロック発生
10 分
連続 4 回失敗 7回目
一旦 ロック回復後に 再度ミス
30 分
連続 4 回失敗 8回目
一旦 ロック回復後に 再度ミス
1 時間
連続 4 回失敗 9回目
一旦 ロック回復後に 再度ミス
2 時間

以下の富士通さんが公開している情報に近い動きになりました。
https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=0311-3099

TPM のリセットを実行してみる

tpm.msc の状態は、TPM は使用する準備ができています。 という表示になっている。
ここで、TPM をクリア を実施します。
image.png

以下のメッセージが表示され、再起動が掛かる。
image.png

再起動後、以下のメッセージが表示されていた。
image.png

Get-Tpm の結果は、OwnerAuth に値が入っている。LockoutCount が 0 に戻っている。
リセットされたようだ。
image.png

しかし、リセットしたアカウントの方は、以下のメッセージが出て、PIN の再設定ができない。
image.png

パスワードに変更すれば、サインインができる状態。パスワードでサインインします。
image.png

サインインしたあと、以下のメッセージが出るため、サインイン を押します。
image.png

以下の画面で パスワードを入力します。
image.png

MFA を求められるので、スマホ側で認証します。
image.png

以下のメッセージが表示されるので、完了 を押します。
image.png

Get-Tpm の結果を見るも、変化は見られない
image.png

サインアウトを実施して、再度 サインインを試みます。
サインイン画面では、PINのエラーは消えていますが、PIN を選べなくなっているので、パスワードでサインインするしかありません。
image.png

以下のように Hello for Business の初期設定画面が現れます。初回サインイン時と同様な動きです。
image.png

MFA を認証したあと
image.png

PIN の新規設定が可能になりました。
image.png

PIN を設定しました。
image.png

Get-Tpm の結果は、OwnerAuth が空欄になりました。
image.png

これで、PIN を使って サインインできるようになりました。
image.png

ポリシーで、しきい値を変更すると、どうなるのか?

以下の公開情報で、ポリシーを使って TPM のロックアウトしきい値 を変更できるような事が書かれています。
しきい値を変更したら、どうなるのか検証してみました。

注意
なお、先に結論を書きますが、この検証結果は 意図しない結果となり、原因不明です。

公開情報
https://learn.microsoft.com/ja-jp/windows/security/hardware-security/tpm/trusted-platform-module-services-group-policy-settings#standard-user-individual-lockout-threshold

(公開情報より抜粋)
image.png

グループポリシーの編集を開く
image.png

公開情報で説明されてる ポリシー のパスを開いていきます。
image.png

目的のポリシー設定をみつけて、開きます。
image.png

値を 4 -> 2 に変更してみます。
image.png

再起動 を実施後に 検証しましたが、以前と変わらず、4回失敗したあとに、パスフレーズを求められる動作になっていました。

続いて、しきい値を 7 に変更して 再起動して試しても。以前と変わらず、4回失敗したあとに、パスフレーズを求められる動作になっている。

この謎は、解明できず。

まとめ

ポリシーの設定は、意図しない結果となりました。
この原因は、判らないままですが、何かわかったら この記事に追記していきたいと思います。

既定の TPM ロックアウトの発生トリガーと、その後に 待つべき時間や、TPM リセットの影響が調べられたので、これを踏まえて対応ができればと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?