8.4. CMC SharedSecret 認証
Shared Secret 機能を使用して、ユーザーがサーバーに署名されていないリクエストを送信できるようにします。たとえば、ユーザーが最初の署名証明書を取得する場合は、これが必要になります。この署名証明書は、後でこのユーザーの他の証明書に署名するために使用できます。
8.4.1. 共有シークレットトークンの作成
計画、インストール、デプロイメントのガイド (Common Criteria Edition) の 2.4.1.1.2.2.4 共有シークレットのワークフロー では、共有シークレットトークンを使用する場合のワークフローについて説明しています。状態に応じて、エンドエンティティーユーザーまたは管理者が共有シークレットトークンを作成します。
共有シークレットトークンを使用するには、Certificate System で RSA 発行の保護証明書を使用する必要があります。詳細は、計画、インストール、デプロイメントのガイド (Common Criteria Edition) の 9.6.3 CMC 共有シークレット機能の有効化 を参照してください。
Shared Secret Token を作成するには、以下を入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CMCSharedToken -d /home/user_name/.dogtag/ -p NSS_password \ -s "CMC_shared_secret" -o /home/user_name/CMC_shared_token.b64 \ -n "issuance_protection_certificate_nickname"
# CMCSharedToken -d /home/user_name/.dogtag/ -p NSS_password \ -s "CMC_shared_secret" -o /home/user_name/CMC_shared_token.b64 \ -n "issuance_protection_certificate_nickname"
以下はその例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CMCSharedToken -d /home/jsmith/certs_db -p SECret.123 -s RevocationShrTok -o /home/jsmith/RevocationShrTok.b64 -n "IssuanceProtectionSystemCert" --oaep
# CMCSharedToken -d /home/jsmith/certs_db -p SECret.123 -s RevocationShrTok -o /home/jsmith/RevocationShrTok.b64 -n "IssuanceProtectionSystemCert" --oaep Encrypted Secret Data: MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 Storing Base64 secret data into /home/jsmith/RevocationShrTok.b64
トークンは発行保護の公開鍵で暗号化され、Base64 形式で
RevocationShrTok.b64
に保存されます。値を 1 行に変換するには以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sed -e :a -e 'N;s/\r\n//;ba' /home/jsmith/RevocationShrTok.b64
# sed -e :a -e 'N;s/\r\n//;ba' /home/jsmith/RevocationShrTok.b64 MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1
HSM を使用する場合は、コマンドに -h token_name オプションを追加で渡して、HSM セキュリティートークン名を設定します。
CMCSharedToken
ユーティリティーの詳細は、CMCSharedToken(8)
の man ページを参照してください。
生成されたトークンは暗号化され、パスワードを認識したユーザーのみになります。CA 管理者がユーザーのトークンを生成する場合、管理者はセキュアな方法でユーザーにパスワードを提供する必要があります。
Shared Token を作成したら、管理者はトークンをユーザーまたは証明書レコードに追加する必要があります。詳細は、「CMC 共有シークレットの設定」 を参照してください。
8.4.2. CMC 共有シークレットの設定
管理者は、計画されるアクションに応じて、ユーザーまたは証明書の LDAP エントリーに生成した後に Shared Secret Token を保存する必要があります。
ワークフローの詳細と共有シークレットを使用するタイミングについては、計画、インストール、デプロイメントのガイド (Common Criteria Edition) の 2.4.1.1.2.2.4 共有シークレットのワークフロー を参照してください。
証明書登録用ユーザーエントリーへの CMC 共有シークレットの追加
証明書の登録に Shared Secret Token を使用するには、ユーザーの LDAP エントリーに管理者として保存します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: uid=user_name,ou=People,dc=example,dc=com changetype: modify replace: shrTok shrTok: base64-encoded_token
証明書失効用の証明書への CMC 共有シークレットの追加
証明書の失効に共有シークレットトークンを使用するには、管理者として、LDAP の証明書レコードで
metaInfo
属性のrevShrTok
プロパティーの下にトークンを保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=certificate_id,ou=certificateRepository,ou=ca,o=pki-tomcat-CA changetype: modify add: metaInfo metaInfo: revShrTok:base64-encoded_token
以下はその例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapmodify -x -D 'cn=Directory Manager' -H ldaps://rhds11.example.com:7636 -w SECret.123 << EOF dn: cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA dn: cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA changetype: modify changetype: modify add: metaInfo add: metaInfo metaInfo: revShrTok:MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 metaInfo: revShrTok:MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 EOF EOF modifying entry "cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA"
# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapmodify -x -D 'cn=Directory Manager' -H ldaps://rhds11.example.com:7636 -w SECret.123 << EOF > dn: cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA > changetype: modify > add: metaInfo > metaInfo: revShrTok:MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 > EOF modifying entry "cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA"
未署名の sharedToken ベースの CMC 失効要求を実行する場合、CMC 失効要求設定ファイルで次の点に注意してください。
- 未署名の場合、ニックネームは不要で無視されます。
次のパラメーターには有効な値が必要です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow revRequest.enable=true revRequest.serial=119255066 revRequest.reason=unspecified revRequest.comment=user test revocation revRequest.issuer=CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA revRequest.sharedSecret=RevocationShrTok
revRequest.enable=true revRequest.serial=119255066 revRequest.reason=unspecified revRequest.comment=user test revocation revRequest.issuer=CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA revRequest.sharedSecret=RevocationShrTok