HPビジネスPCには多彩なセキュリティ機能が搭載されています。”Step by Step HPビジネスPCのセキュリティを使ってみよう"シリーズでは、毎回1つのセキュリティ機能を取り上げ、設定方法や利用手順をStep by Stepで解説し、セキュリティ機能を実際に使っていただくことを支援いたします。
今回はHP Sure Adminを設定して、F10 BIOSセットアップ画面設定のQRコードを利用したワンタイムパスワード認証を検証するための手順を解説します。HP Sure Adminの設定にはHP Client Management Script Libraryを使用します。HP Sure Admnについてはこの記事もご覧ください。
BIOSへのより安全なアクセスを提供するために、HPはコマーシャルPCにHP Sure Adminを導入しました。HP Sure Adminは、暗号化による安全なインフラストラクチャであるSecure Platform Management(SPM)を利用するため、漏洩、盗難、悪用される可能性があるパスワードよりも安全な方法です。
SPMはHP SureRunやHP Sure Recoverなどの機能をサポートするためにリリースされました。公開鍵暗号を使用し、秘密鍵がペイロードに署名し、ターゲットシステムがダウンロード時に対応する公開鍵を使用してその正当性を検証します。HP Sure Adminを有効にするには、事前にBIOSでSPMをプロビジョニングする必要があります。HP Sure Adminを有効にすると、BIOS設定画面へのローカルアクセスにはQRコードを利用したワンタイムパスワードによる認証が可能となります。BIOS設定画面へのアクセスを一時的に許可したい場合においても、恒久的なパスワードを教える必要がなくなり、より安全にBIOS設定画面へのアクセスを制御できます。
注記:BIOSでは、HP Sure Adminに「拡張BIOS認証モード(EBAM)」および「拡張BIOS認証モードローカルアクセスキー(LAK)」と呼ばれる設定があります。このガイドでは、HP Sure AdminとEBAMを同じ意味で使用します。
Download LibraryからHP Client Management Script Library(HPCMSL)のインストーラ( ※hp-cmsl-X.X.X.exe)をダウンロードしてPCにインストールします。
※2021年7月時点ではhp-cmsl-1.6.4.exeです。
HPCMSLをインストールしたら、HPCMSLのPwerShellコマンドの実行を許可するために、管理者でPowerShellを起動して以下のコマンドを実行します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
※この方法でPowerShellのExecutionPolicyをRemoteSignedのままにしておく事は本番環境では推奨されていません。必要なPowerShellコマンドの実行が完了したら以下のコマンドでExecutionPolicyをデフォルトのRestrictedに戻しておくことを推奨します。
Set-ExecutionPolicy -ExecutionPolicy Restricted
※HPCMSLのPowerShellコマンドの実行を許可するための推奨される別の方法はHP Developers Portal | PowerShell-execution-policiesのProcedure以下に記載されています。
公式のWin32ビルドがないため、https://slproweb.com/products/Win32OpenSSL.html からWin64 OpenSSL v3.0.1 Light、やWin64 OpenSSL v1.1.1m Lightをダウンロードしてインストールします。
Win64 OpenSSLのインストール後、openssl.exeがインストールされたフォルダをシステム環境変数のPathに追加します。
始める前に、アーキテクチャについて説明しましょう。最新のHPコマーシャルPCの多くには、HP Secure Platform Management(SPM)と呼ばれる機能が含まれています。この機能は、パスワードではなく証明書を使用して操作を承認します。これによりセキュリティが大幅に向上しますが、少し複雑になり、証明書ベースのセキュリティの基本を理解する必要があります。
SPM機能には、エンドースメントキー(EK)とサイニングキー(SK)の2つのキーペアが含まれます。エンドースメントキーには、サイニングキーへの不正な変更から保護するという主要な目的があります。一方、サイニングキーは、プラットフォームがコマンドを承認するために使用されます。今回の検証環境では opensslを使用してPKCS#12証明書(PFX)を作成することにより、これらを生成しますが、実際の導入では、これらを独自のCAから取得することをお勧めします。
重要:秘密鍵を安全なPCから出していけません。それらをクライアントに配布したり、PFXファイルのパスワードに依存しないでください。安全な場所を離れても良いのは、証明書のパブリックコンポーネントです。以下の手順で作成される各種のペイロードには、公開情報のみが含まれています。
HP Sure AdminでのHP BIOSのローカルアクセス保護(拡張BIOS認証モードローカルアクセスキー(LAK))を有効するためには以下のステップを実行します。解除する場合は逆の手順を実行します。
1.HP Secure Platform Management(SPM)を有効にする
2.HP Sure Adminを有効にする
3.拡張BIOS認証モードローカルアクセスキー(LAK)を有効にする
LAKを使用したF10 BIOSアクセスを利用するためには以下のステップを実行します。
4.HP Sure Adminスマートフォンアプリのための設定
5.HP Sure Adminスマートフォンアプリを利用したF10 BIOSセットアップ画面の認証
1-1.エンドースメントキーとサイニングキーの2つのキーペア(PKCS#12証明書(.PFX))の準備
OpenSSLを使用してエンドースメントとサイニングのキーペアを生成します。以降の手順では管理者権限でC:\tempフォルダから各種コマンドを実行しています。
1-1-1.エンドースメントキー証明書(kek.pfx)の作成
openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -subj "/C=JP/ST=Tokyo/L=Konan-ku/O=Company/OU=Org/CN=www.example.com"
openssl pkcs12 -inkey key.pem -in cert.pem -export -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -out kek.pfx -name "HP Secure Platform Key Endorsement Certificate" -passout pass:test
1-1-2.サイニングキー証明書(sk.pfx)の作成
openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -subj "/C=JP/ST=Tokyo/L=Konan-ku/O=Company/OU=Org/CN=www.example.com"
openssl pkcs12 -inkey key.pem -in cert.pem -export -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -out sk.pfx -name "HP Secure Platform Signing Key Certificate" -passout pass:test
これらのコマンドは、重要な2つのファイル、kek.pfxとsk.pfxを作成します。これらはPKCS#12証明書であり、超安全なパスワード「test」によって保護されています。
1-2.エンドースメントキーとサイニングキーのプロビジョニング
最初にエンドースメントキー(EK)をプロビジョニングし、次にサイニングキー(SK)をプロビジョニングします。
ペイロードを生成するNew-HPSecurePlatformEndorsementKeyProvisioningPayloadコマンドを使用してから、Set-HPSecurePlatformPayloadコマンドを使用してそれを適用します。以下のコマンド例ではコマンドの実行フォルダにkek.pfxとsk.pfxが存在している必要があることに注意してください。
1-2-1.エンドースメントキー(公開鍵)のプロビジョニング
PS C:\temp> New-HPSecurePlatformEndorsementKeyProvisioningPayload -EndorsementKeyFile .\kek.pfx -EndorsementKeyPassword test | Set-HPSecurePlatformPayload
1-2-2.エンドースメントキー(秘密鍵)で署名したサイニングキー(公開鍵)のプロビジョニング
PS C:\temp> New-HPSecurePlatformSigningKeyProvisioningPayload -EndorsementKeyFile .\kek.pfx -EndorsementKeyPassword test -SigningKeyFile .\sk.pfx -SigningKeyPassword test | Set-HPSecurePlatformPayload
1-3.SPMの状態の確認とシステムの再起動
Get-HPSecurePlatformState CMSLコマンドを使用してStateが「ProvisioningInProgress」と表示されていることを確認します。SPM証明書(少なくともエンドースメントキー)が読み込まれ、有効にするにはシステムを再起動します。
1-4.物理的プレゼンスプロンプトによるSPMの有効化
再起動時に画面に4桁の数字が表示され、その数字の入力が求められます。表示された4桁の数字を入力することでプロビジョニングが完了します。
1-5.SPMの状態の確認
Get-HPSecurePlatformState CMSLコマンドを使用してStateが「Provisioned」と表示されていることを確認します。コマンドの結果が「Provisioned」の状態を返す場合、「2.HP Sure Adminを有効にする」に進むことができます。
2-1.HP Sure Admin有効化のペイロードの作成
HP Sure Adminを有効化するためのペイロードにSPMのサイニングキーを使用して署名して、安全な証明書ペイロードを作成します。
PS C: \temp> New-HPSureAdminEnablePayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -OutputFile SAEnablepayload.dat
クライアントPCでこのペイロードを実行する際、このサイニングキー証明書のプロビジョニング済みの公開鍵を使用して、このペイロードの信頼性と正当性を検証します。つまり対応する秘密鍵で署名されたペイロードのみが受け入れられます。
注記:ペイロードは、1つのデバイスで1回だけ使用できます。これは、HP Sure Adminで開発された追加のアンチリプレイ保護によるものです。プロビジョニングされたペイロードは、継続的に増加するナンス値をマークし、使用済みのペイロードが再利用されることを防ぎます。状況によっては、ナンスカウンターをリセットする必要があります。
2-2.HP Sure Admin有効化のペイロードのプロビジョニング
次のコマンドで、 HP Sure Adminを有効にするためのペイロードをプロビジョニングします。
PS C:\temp > Set-HPSecurePlatformPayload -PayloadFile SAEnablepayload.dat
注記:この手順を実行すると、BIOS設定をプログラム(BIOSConfigurationUtilityやCMSL)から変更するには特別な処理が必要になります。
3-1.LAK用のPKCS#12 .pfx証明書の作成
SPM証明書の作成に使用したのと同じ手法を使用して、ローカルアクセスキーを有効にする証明書を作成します。この例では、有名なパスワード「P@ssw0rd」で保護されたLAKのPKCS#12 .pfx証明書を作成しています。
PS C:\temp > $CertSubj = '/C=JP/ST=Tokyo/L=Konan-ku/O=Company/OU=Org/CN=SPMdemo'
PS C:\temp > openssl.exe req -x509 ` -nodes -newkey rsa:2048 -keyout LAKpriv.pem -out LAKcert.crt -days 3650 ` -subj $CertSubj 2>$null
PS C:\temp > openssl.exe pkcs12 -inkey LAKpriv.pem -in LAKcert.crt -export -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -out LAK.Pfx -name 'EBAM Local Access Key Certificate' -passout pass:“P@ssw0rd” 2>$null
3-2.ローカルアクセスキーのペイロードの作成
次に、ローカルアクセスキーのペイロードを作成し、サイニングキーで署名します。
PS C:\temp > New-HPSureAdminLocalAccessKeyProvisioningPayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -LocalAccessKeyFile LAK.Pfx -LocalAccessKeyPassword "P@ssw0rd" -OutputFile LAKpayload.dat
3-3.LAKペイロードのプロビジョニング
サイニングキーで署名済みのLAKペイロードをデバイスにプロビジョニングします。
PS C: > Set-HPSecurePlatformPayload -PayloadFile LAKPayload.dat
3-4.SPMの状態の確認
LAKのプロビジョニングの完了後、Get-HPSecurePlatformState CMSLコマンドを実行するとFeatureInUseが以下のように表示されます。
FeatureInUse : SureAdmin (On, Local Access – Configured)
ローカルアクセスキーがプロビジョニングされると、F10 BIOSセットアップメニューは証明書で保護され、アクセスされると、画面上のユーザーにQRコードでチャレンジします。 QRコードは、システムにロードされたローカルアクセスキーの公開証明書から生成されます。続行してBIOSに入るには、PINの入力が必要になります。
ユーザーまたはITスタッフは、「HP Sure Admin」(AndroidまたはiOSをサポート)スマートフォンアプリを使用して、QRコードをスキャンし、アプリから提供された6桁のPINを入力することでチャレンジにレスポンスできます。HP Sure Adminスマートフォンアプリが PINを取得できるようにするには、以前に作成された公開鍵と秘密鍵のペアのLAK秘密鍵が必要になります。
4-1.LAK秘密鍵のQRコードの生成
HP Sure AdminスマートフォンアプリにLAK秘密鍵を登録するためのQRコードを生成します。
PS C:\temp > Convert-HPSureAdminCertToQRCode -LocalAccessKeyFile LAK.pfx -LocalAccessKeyPassword "P@ssw0rd" -OutputFile LAK_QRCode.jpg -Passphrase ”P@ssw0rd”
4-2.HP Sure Adminスマートフォンアプリの設定
4-2-1.スマートフォンでPlayStoreやAppStoreにアクセスしてHP Sure Adminアプリをインストールします。
4-2-2.HP Sure Adminスマートフォンアプリを起動し、「QRコードのスキャン」を選択し、秘密鍵のQRコードを読み取ると秘密鍵がスマートフォンアプリに保存されます。
重要:秘密鍵のQRコード画像は安全なPCから出していけません。HP Sure AdminスマートフォンアプリにQRコードを読み込んだ後は削除することをお勧めします。
ローカルアクセスキーの動作
LAK証明書がプロビジョニングされると、ユーザーがPCの電源投入時にF10キーを押すと、QRコードとPIN入力フィールドによるチャレンジが発生します。
次に、ユーザーはスマートフォンで「HP Sure Admin」アプリを開き、「QRコードのスキャン」を選択し、PCの画面のQRコードをスキャンすると、LAK認証に必要なPINが表示されます。このPINをPCの画面に入力するとBIOSセットアップ画面に入れます。
最後に、HP Sure Adminを解除して検証を終了する手順について説明します。
まず、LAKを使用したF10 BIOSアクセスを解除します。
1.LAK証明書を削除するためのプロビジョニング解除ペイロードを作成します。
注記:サイニングキーファイル(および使用する場合はそのパスワード)は、以前に使用したものと一致する必要があります。一致しない場合、ペイロードは拒否されます。
PS C:\temp > New-HPSureAdminBIOSSettingValuePayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -Name "Enhanced BIOS Authentication Mode Local Access Key 1" -Value "" -OutputFile LAKDepropayload.dat
2.LAKプロビジョニング解除ペイロードを適用します。
PS C:\temp > Set-HPSecurePlatformPayload -PayloadFile LAKDepropayload.dat
次に、HP Sure Admin(EBAM)を無効にします。
3.HP Sure Adminを無効にするためのプロビジョニング解除ペイロードを作成します。
PS C: temp> New-HPSureAdminDisablePayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -OutputFile SADisablePayload.dat
HP Sure Adminプロビジョニング解除ペイロードを適用します。
PS C:\temp > Set-HPSecurePlatformPayload -PayloadFile SADisablePayload.dat
最後にSPMのプロビジョニングを解除します。
4.SPMのプロビジョニングを解除するコマンドを実行します。
PS C:\temp> New-HPSecurePlatformDeprovisioningPayload -EndorsementKeyFile kek.pfx -EndorsementKeyPassword test | Set-HPSecurePlatformPayload
5.SPMの状態の確認
Get-HPSecurePlatformState CMSLコマンドを使用してStateが「NotConfigured」と表示されていることを確認します。
Author : 日本HP