IBM Cloud HSM
以下の例は、IBM Cloud HSM 7.0 ↗を使用してテストされました。これは、Gemalto SafeNet Luna a750に基づくFIPS 140-2レベル3認証の実装です。
以下のことを確認してください:
- デバイスを初期化 ↗した
- SafeNetクライアントソフトウェア ↗をインストールした
最初のステップは、HSMパーティションを作成することです。これは、IBM Cloud HSMデバイス内の独立した論理HSMと考えることができます。
vm$ ssh admin@hsm
[cloudflare-hsm.softlayer.com] lunash:>partition create -partition KeylessSSL
パーティションを作成するには「proceed」と入力し、今すぐ終了するには「quit」と入力してください。 > proceed'partition create' 成功しました。
コマンド結果 : 0 (成功)次に、パーティションをクライアントに割り当てる必要があります。この場合、あなたのキーサーバーです。
[cloudflare-hsm.softlayer.com] lunash:>client assignpartition -client cloudflare-vm.softlayer.com -partition KeylessSSL
'client assignPartition' 成功しました。
コマンド結果 : 0 (成功)パーティションが割り当てられた後、仮想サーバーから lunacm を実行し、パーティションを初期化します。
vm$ lunacmLunaCM v7.1.0-379. Copyright (c) 2006-2017 SafeNet.
利用可能なHSM:
スロットID -> 0 ラベル -> シリアル番号 -> XXXXXXXXXXXXX モデル -> LunaSA 7.0.0 ファームウェアバージョン -> 7.0.1 構成 -> Lunaユーザーパーティション(SO(PW)署名)クローンモード スロットの説明 -> ネットトークンスロット
現在のスロットID: 0
lunacm:>partition init -label KeylessSSL -domain cloudflare
パーティションSOのパスワードを入力してください: ********
パーティションSOのパスワードを再入力してください: ********
パーティションを初期化しようとしています。 パーティションのすべての内容が破壊されます。
続行してもよろしいですか?
続行するには「proceed」と入力し、今すぐ終了するには「quit」と入力してください ->proceed
コマンド結果 : エラーなし以下のコマンドを実行する前に、情報セキュリティおよび/または暗号化チームに確認し、組織の承認されたキー作成手順を確認してください。
この操作を行うときは、新しく生成されたキーのIDフィールドを定義する必要があります。これは、ビッグエンディアンの16進整数値に設定する必要があります。
vm$ cmu generatekeypair -keyType=RSA -modulusBits=2048 -publicExponent=65537 -sign=1 -verify=1 -labelpublic=myrsakey -labelprivate=myrsakey -keygenmech=1 -id=a000スロット0のトークンのパスワードを入力してください: ********
# cmu generatekeypair -keyType=ECDSA -curvetype=3 -sign=1 -verify=1 -labelpublic=myecdsakey -labelprivate=myecdsakey -id=a001スロット0のトークンのパスワードを入力してください: ********
# cmu listスロット0のトークンのパスワードを入力してください: ********handle=61 label=myecdsakeyhandle=60 label=myecdsakeyhandle=48 label=myrsakeyhandle=45 label=myrsakey前のステップで作成したキーを使用して、公開信頼の証明書機関(CA)に署名を依頼できるCSRを生成します。
# cmu requestCertificate -c="US" -o="Example, Inc." -cn="ibm-cloudhsm.example.com" -s="California" -l="San Francisco" -publichandle=45 -privatehandle=48 -outputfile="rsa.csr" -sha256withrsaスロット0のトークンのパスワードを入力してください: ********「CKM_SHA256_RSA_PKCS」メカニズムを使用しています。
# cmu requestCertificate -c="US" -o="Example, Inc." -cn="ibm-cloudhsm.example.com" -s="California" -l="San Francisco" -publichandle=60 -privatehandle=61 -outputfile="ecdsa.csr" -sha256withecdsaスロット0のトークンのパスワードを入力してください: ********「CKM_ECDSA_SHA256」メカニズムを使用しています。前のステップで作成したCSRを、組織が選択したCAに提供し、要求された通りにドメインの管理を示し、署名されたSSL証明書をダウンロードします。 「Keyless」SSL証明書のアップロードに関する指示に従ってください。
最後に、キーサーバーが起動時に読み取る構成ファイルを変更する必要があります。 object=mykey と pin-value=username:password の値を、提供したキーラベルと作成したCUユーザーに一致するように変更します。
/etc/keyless/gokeyless.yaml を開き、すぐ後に次の内容を追加します:
private_key_stores: - dir: /etc/keyless/keys次に、以下を追加します:
- uri: pkcs11:token=KeylessSSL;object=myrsakeyid=a000??module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1- uri: pkcs11:token=KeylessSSL;object=myecdsakeyid=a001??module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1構成ファイルを保存したら、gokeylessを再起動し、正常に起動したことを確認します。
sudo systemctl restart gokeyless.servicesudo systemctl status gokeyless.service -l