本記事では、Okta Workforce Identity Cloud (以降、Okta WIC) での「Hardware Protected (ハードウェア保護)」機能について解説します。 Security > Authentication Policiesで、Rule内のTHEN以下の設定を見ると「Hardware Protected」というチェックボックスがありますが「これって何?有効にした方がいいの?」と思っている人も少なからずいらっしゃると思います。 結論から言うと、FastPassが使える状況ならば、これは「有効にした方が良い」です。 しかし、これが何をするものなのかを理解しておかないと、Okta WICの管理者は「この設定のせいで、ユーザーの誰かが 『つながらないぞ、コノヤロー! 』 とか言い出したら嫌だな。。。」とか考えてしまい、有効にすることを躊躇する人もいると思います。 そこで本ブログ記事では、この「Hardware Protected (ハードウェア保護)」について解説します。 以降の解説は、以下のブログ記事の内容を実施済み (理解済み) の前提で進めていきます。 はじめてのOkta Workforce Identity Cloud (WIC) トライアル環境の構築 はじめてのOkta Workforce Identity Cloud (WIC) [第1回] ユーザーと認証器の関係を紐解く はじめてのOkta Workforce Identity Cloud (WIC) [第2回] 多要素認証を紐解く Hardware Protected (ハードウェア保護) とは? Hardware Protected (ハードウェア保護) とは、Microsoft Windowsの場合だとTPM (Trusted Platform Module)、Apple製品 (Mac、 iPhone 等) の場合だとSecure Enclave と呼ばれるものが該当します。 TPMやSecure Enclaveは、認証に使う秘密鍵などの機密データをハードウェアで保護し、攻撃者がデータにアクセスしたり、データを改ざんしたりするのを防ぐためのものです。 TPMやSecure Enclaveの詳しい解説は各メーカーの情報をご参照いただくとして、ここではWindowsのTPMを例にして、簡単なイメージをお伝えします。 まずは、TPMがない場合です。 こちらのブログ記事の「『FastPass』と『生体』認証の話」 の章で、FastPassは秘密鍵と公開鍵を使った認証を行っていることを解説しました。 なので、FastPass認証を行うには、パソコンの中のどこかに秘密鍵を保管しておかなくてはなりません。 TPMが存在しない場合、秘密鍵はHDDやSSDなどのストレージ内に保管することになります。 仮にストレージが暗号化されているとしても、CPUで暗号処理や署名処理を行うためには、秘密鍵を一旦ストレージからメモリに読み出す必要があります。 攻撃者は、Windowsパソコンにマルウェアを仕込んでメモリダンプを行ったり、サイドチャネル攻撃を行ったりして、メモリ上の秘密鍵を盗み出すことができてしまうかもしれません。 攻撃者は、秘密鍵さえ入手できれば、公開鍵暗号を用いた認証を突破できてしまう可能性は格段に上がるので、この状況はかなりよろしくありません。 次に、TPMがある場合です。 秘密鍵はストレージではなくTPM内に保管され、そこから出ることはありません。 暗号/署名処理が必要な場合にはTPMに対して要求し、TPMが処理を行い、TPMはその結果だけを返答します。 またTPMは「耐タンパ性」に優れた機構を持っているので、容易に秘密鍵を取り出すことができないようになっています。 「耐タンパ性」とは、 内部情報を不正に読み取られる・改ざんされることに対する耐性のことです。 Secure Enclaveの場合も同様のイメージです。 このように、TPMやSecure Enclave=Hardware Protected (ハードウェア保護) の機能を持つデバイスの方がより安全なので、Okta WICでは、それらを使って秘密鍵が保護されているかどうかを認証時に確認できるようになっています。 Hardware Protectedの動作確認 上記を踏まえて、以降、Hardware Protectedの動作を確認してみたいと思います。 TPMを持たないデバイスの準備 TPMやSecure Enclaveが有効なデバイスだと、Hardware Protectedを無効にした時と有効にした時の違いが分からないので、本ブログ記事では、「TPMが無効なWindows11」を使います。 ===== << Tips >> ===== 最近は、TPMやSecure Enclaveを持たない (または無効な) デバイスを用意するのが難しくなりました。 Windows 11からは、TPM (TPM2.0) を持たないハードウェアには基本的にはOSをインストールできなくなり、OSインストール後に、OS側からの設定によるTPMの無効化もハードルが高そうです。 また、最近のApple製品はほぼSecure Enclaveを持っており、OSの設定で無効化する方法も見当たりませんでした。 一方、Windows 10であればTPMを無効化できるような情報がありましたので、もしWindows10デバイスをお持ちであれば、動作確認にはそちらをご利用になられるのも一つの手段かと思います。 私はWindows 10環境を準備できなかったので、やや強引なのですが、「Parallels® Desktop 18 for Mac」を用いて、Windows 11仮想マシンのハードウェア設定からTPMチップを削除して、TPMを持たない状態にして起動しました。 Windows 11を起動した後、「設定」 > 「プライバシーとセキュリティ」 > 「Windowsセキュリティ」 > 「デバイスセキュリティ」で、TPMの有無を確認できます。 TPMが有効なWindows11起動後の状態: TPMが無効なWindows11起動後の状態: (=セキュリティ プロセッサとセキュアブートが存在しない) (上画面の「セキュリティ プロセッサの詳細」をクリックして表示された画面↓) 以降、この「TPMが無効なWindows11」を用いて、動作確認を行っていきます。 ================ Authentication PolicyのRuleで、一旦Hardware ProtectedをOFFにする 第1回目と第2回目のブログ記事と同様に、RSA SAML.