コンテンツにスキップ

IBM Cloud HSM

以下の例は、IBM Cloud HSM 7.0を使用してテストされました。これは、Gemalto SafeNet Luna a750に基づくFIPS 140-2レベル3認証の実装です。


始める前に

以下のことを確認してください:


1. 新しいパーティションを作成、割り当て、初期化する

最初のステップは、HSMパーティションを作成することです。これは、IBM Cloud HSMデバイス内の独立した論理HSMと考えることができます。

vm$ ssh admin@hsm
[cloudflare-hsm.softlayer.com] lunash:>partition create -partition KeylessSSL
パーティションを作成するには「proceed」と入力し、今すぐ終了するには「quit」と入力してください。
> proceed
'partition create' 成功しました。
コマンド結果 : 0 (成功)

次に、パーティションをクライアントに割り当てる必要があります。この場合、あなたのキーサーバーです。

Terminal window
[cloudflare-hsm.softlayer.com] lunash:>client assignpartition -client cloudflare-vm.softlayer.com -partition KeylessSSL
'client assignPartition' 成功しました。
コマンド結果 : 0 (成功)

パーティションが割り当てられた後、仮想サーバーから lunacm を実行し、パーティションを初期化します。

vm$ lunacm
LunaCM 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
コマンド結果 : エラーなし

2. RSAおよびECDSAキーのペアと証明書署名要求(CSR)を生成する

以下のコマンドを実行する前に、情報セキュリティおよび/または暗号化チームに確認し、組織の承認されたキー作成手順を確認してください。

この操作を行うときは、新しく生成されたキーの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=myecdsakey
handle=60 label=myecdsakey
handle=48 label=myrsakey
handle=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」メカニズムを使用しています。

3. 証明書機関(CA)から署名された証明書を取得し、アップロードする

前のステップで作成したCSRを、組織が選択したCAに提供し、要求された通りにドメインの管理を示し、署名されたSSL証明書をダウンロードします。 「Keyless」SSL証明書のアップロードに関する指示に従ってください。


4. gokeyless構成ファイルを変更し、サービスを再起動する

最後に、キーサーバーが起動時に読み取る構成ファイルを変更する必要があります。 object=mykeypin-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を再起動し、正常に起動したことを確認します。

Terminal window
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l