掲載日:2022/02/04

Step by Step HPビジネスPCのセキュリティを使ってみよう:HP Sure AdminによるF10 BIOSセットアップ画面へのローカルアクセス保護

Step by Step HPビジネスPCのセキュリティを使ってみよう

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についてはこの記事もご覧ください。

 

HP Sure AdminによるHP BIOSの保護

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を同じ意味で使用します。

 

事前準備

  • HP Client Management Script Libraryのインストール

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以下に記載されています。

 

  • OpenSSLのインストール

公式の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 Secure Platform Management(SPM)の説明

始める前に、アーキテクチャについて説明しましょう。最新の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.HP Secure Platform Management(SPM)を有効にする

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.Opensslコマンドによるサイニングキー証明書の作成 図1.Opensslコマンドによるサイニングキー証明書の作成

 

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

図2.エンドースメントキーとサイニングキーのプロビジョニング 図2.エンドースメントキーとサイニングキーのプロビジョニング

 

1-3.SPMの状態の確認とシステムの再起動

Get-HPSecurePlatformState CMSLコマンドを使用してStateが「ProvisioningInProgress」と表示されていることを確認します。SPM証明書(少なくともエンドースメントキー)が読み込まれ、有効にするにはシステムを再起動します。

図3.プロビジョニングが進行中の状態の確認 図3.プロビジョニングが進行中の状態の確認

 

1-4.物理的プレゼンスプロンプトによるSPMの有効化

再起動時に画面に4桁の数字が表示され、その数字の入力が求められます。表示された4桁の数字を入力することでプロビジョニングが完了します。

図4.SPM有効化の物理的プレゼンスプロンプト画面 図4.SPM有効化の物理的プレゼンスプロンプト画面

 

1-5.SPMの状態の確認

Get-HPSecurePlatformState CMSLコマンドを使用してStateが「Provisioned」と表示されていることを確認します。コマンドの結果が「Provisioned」の状態を返す場合、「2.HP Sure Adminを有効にする」に進むことができます。

図5.プロビジョニングが完了した状態の確認 図5.プロビジョニングが完了した状態の確認

 

 

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

図6.HP Sure Admin有効化ペイロードの作成 図6.HP Sure Admin有効化ペイロードの作成

 

クライアント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)から変更するには特別な処理が必要になります。

図7.HP Sure Admin有効化ペイロードのプロビジョニング 図7.HP Sure Admin有効化ペイロードのプロビジョニング

 

 

3.拡張BIOS認証モードローカルアクセスキー(LAK)を有効にする

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

図8.LAK用のキーペアの作成 図8.LAK用のキーペアの作成
図9.LAK用のキーペアからLAK用のPKCS#12証明書を作成 図9.LAK用のキーペアからLAK用のPKCS#12証明書を作成

 

3-2.ローカルアクセスキーのペイロードの作成

次に、ローカルアクセスキーのペイロードを作成し、サイニングキーで署名します。

PS C:\temp > New-HPSureAdminLocalAccessKeyProvisioningPayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -LocalAccessKeyFile LAK.Pfx -LocalAccessKeyPassword "P@ssw0rd" -OutputFile LAKpayload.dat

図10.LAKペイロードの作成 図10.LAKペイロードの作成

 

3-3.LAKペイロードのプロビジョニング

サイニングキーで署名済みのLAKペイロードをデバイスにプロビジョニングします。

PS C: > Set-HPSecurePlatformPayload -PayloadFile LAKPayload.dat

図11.LAKペイロードのプロビジョニング 図11.LAKペイロードのプロビジョニング

 

3-4.SPMの状態の確認

LAKのプロビジョニングの完了後、Get-HPSecurePlatformState CMSLコマンドを実行するとFeatureInUseが以下のように表示されます。

FeatureInUse  :  SureAdmin (On, Local Access – Configured)

図12.LAKプロビジョニング後のSPMの状態 図12.LAKプロビジョニング後のSPMの状態

 

 

4.HP Sure Adminスマートフォンアプリのための設定

ローカルアクセスキーがプロビジョニングされると、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” 

図13.LAK秘密鍵のQRコードの生成 図13.LAK秘密鍵のQRコードの生成

 

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コードを読み込んだ後は削除することをお勧めします。

図14.LAK秘密鍵のQRコード 図14.LAK秘密鍵のQRコード

 

 

5.HP Sure Adminスマートフォンアプリを利用したF10 BIOSセットアップ画面の認証

ローカルアクセスキーの動作

LAK証明書がプロビジョニングされると、ユーザーがPCの電源投入時にF10キーを押すと、QRコードとPIN入力フィールドによるチャレンジが発生します。

図15.HP Sure Adminローカルアクセスキー(LAK)の認証画面 図15.HP Sure Adminローカルアクセスキー(LAK)の認証画面

 

次に、ユーザーはスマートフォンで「HP Sure Admin」アプリを開き、「QRコードのスキャン」を選択し、PCの画面のQRコードをスキャンすると、LAK認証に必要なPINが表示されます。このPINをPCの画面に入力するとBIOSセットアップ画面に入れます。

図16.HP Sure Adminスマートフォンアプリ 図16.HP Sure Adminスマートフォンアプリ

 

 

HP Sure Adminの解除

最後に、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

図17.LAKプロビジョニング解除ペイロードの作成 図17.LAKプロビジョニング解除ペイロードの作成

 

2.LAKプロビジョニング解除ペイロードを適用します。

PS C:\temp > Set-HPSecurePlatformPayload -PayloadFile LAKDepropayload.dat

図18.LAKプロビジョニング解除ペイロードの適用 図18.LAKプロビジョニング解除ペイロードの適用

 

次に、HP Sure Admin(EBAM)を無効にします。

3.HP Sure Adminを無効にするためのプロビジョニング解除ペイロードを作成します。

PS C: temp> New-HPSureAdminDisablePayload -SigningKeyFile SK.Pfx -SigningKeyPassword test -OutputFile SADisablePayload.dat

図19.HP Sure Admin無効化のためのプロビジョニング解除ペイロードの作成 図19.HP Sure Admin無効化のためのプロビジョニング解除ペイロードの作成

 

HP Sure Adminプロビジョニング解除ペイロードを適用します。

PS C:\temp > Set-HPSecurePlatformPayload -PayloadFile SADisablePayload.dat

図20.HP Sure Adminプロビジョニング解除ペイロードの適用 図20.HP Sure Adminプロビジョニング解除ペイロードの適用

 

最後にSPMのプロビジョニングを解除します。

4.SPMのプロビジョニングを解除するコマンドを実行します。

PS C:\temp>  New-HPSecurePlatformDeprovisioningPayload -EndorsementKeyFile kek.pfx -EndorsementKeyPassword test   | Set-HPSecurePlatformPayload

 

5.SPMの状態の確認

Get-HPSecurePlatformState CMSLコマンドを使用してStateが「NotConfigured」と表示されていることを確認します。

HP WOLF SECURITY

Emotetにお悩みの方
(無料試用キャンペーン)