ssh-cmpclient-g3 — CMP 登録クライアント
ssh-cmpclient-g3 command [options] access [name] Where command is one of the following: INITIALIZE psk|racerts keypair template ENROLL certs|racerts keypair template UPDATE certs [keypair] POLL psk|certs|racerts id RECOVER psk|certs|racerts template REVOKE psk|certs|racerts template TUNNEL racerts template Most commands can accept the following options: -B Perform key backup for subject keys. -o prefix Save result into files with prefix. -O filename Save the result into the specified file. If there is more than one result file, the remaining results are rejected. -C file CA certificate from this file. -S url Use this SOCKS server to access the CA. -H url Use this HTTP proxy to access the CA. -E PoP by encryption (CA certificate needed). -v num Protocol version 1|2 of the CA platform. Default is 2. -y Non-interactive mode. All questions answered with 'y'. -N file Specifies a file to stir to the random pool. The following identifiers are used to specify options: psk -p refnum:key (reference number and pre-shared key) -p file (containing refnum:key) -i number (iteration count, default 1024) certs -c file (certificate file) -k url (private-key URL) racerts -R file (RA certificate file) -k url (RA private-key URL) keypair -P url (private-key URL) id -I number (polling ID) template -T file (certificate template) -s subject-ldap[;type=value] -u key-usage-name[;key-usage-name] -U extended-key-usage-name[;extended-key-usage-name] access URL where the CA listens for requests. name LDAP name for the issuing CA (if -C is not given). Key URLs are either valid external key paths or in the format: "generate://savetype:passphrase@keytype:size/save-file-prefix" "file://passphrase/relative-key-file-path" "file:relative-key-file-path" "any-key-file-path" The key generation "savetype" can be: - ssh2, secsh2, secsh (Secure Shell 2 key type) - ssh1, secsh1 (legacy Secure Shell 1 key type) - pkcs1 (PKCS #1 format) - pkcs8s (passphrase-protected PKCS #8, "shrouded PKCS #8") - pkcs8 (plain-text PKCS #8) - x509 (SSH-proprietary X.509 library key type) -h Prints usage message. -F Prints key usage extension and keytype instructions. -e Prints command-line examples.
ssh-cmpclient-g3 コマンドライン ツール (Windows では ssh-cmpclient-g3.exe) は、CMP プロトコルを使用する証明書登録クライアントです。これによって RSA または DSA 公開鍵ペアを生成し、その公開コンポーネント用の証明書を取得できます。CMP は証明書のライフサイクル管理用に IETF PKIX Working Group によって指定され、Entrust PKI および RSA Keon など、一部の CA プラットフォームでサポートされます。
ssh-cmpclient-g3 のコマンドライン コマンド キーワードを以下に示します。3 文字以上のショートハンドを使用してコマンドを識別できます。コマンドでは、大文字と小文字が区別されません。ユーザは、コマンドごとに CA アドレスの URL を指定する必要があります。ここで用語「ユーザ」は、ユーザ、プログラム、またはハードウェア デバイスを指します。
INITIALIZE
ユーザの初期証明書を要求します。要求は、参照番号とそれに対応する鍵 (PSK) で認証されます。これらは CA あるいは RA から、通信以外の方法で入手する必要があります。
ユーザは、PSK、非対称鍵のペア、およびサブジェクト名を指定する必要があります。
ENROLL
ユーザがすでに鍵の有効な証明書を持っている場合に新しい証明書を要求します。この要求は、公開鍵を使用して認証することを除けば initialize
と同様です。
POLL
要求がすぐに受け入れられなかった場合に、証明書のポーリングを実行します。
UPDATE
既存の証明書の更新 (入れ替え) を要求します。発行される証明書の名前、フラグ、およびその他の拡張機能は、既存の証明書と同様です。ユーザは鍵を変更でき、またその有効期限は CA によって更新されます。この要求は既存の有効な鍵ペアおよび証明書によって認証されます。
RECOVER
バックアップされた鍵のリカバリを要求します。この要求は、PSK ベースまたは証明書ベースで認証されます。テンプレートによって、すでにバックアップされていてリカバリが必要な秘密鍵が記述されます。ユーザは、自分自身でバックアップした鍵のリカバリしかできません。
REVOKE
テンプレートで指定された鍵の失効を要求します。要求の認証は、PSK または失効するサブジェクトと同じユーザの証明書で実行されます。
TUNNEL
RA トンネルモードで動作します。コマンドラインに基づいて要求を読み取り、オプションでサブジェクト名、代替名、拡張機能を変更します。要求を承認して CA に送信します。
ssh-cmpclient-g3 のコマンドライン オプションを以下に示します。ファイル名が指定されている場合、既存の同じ名前のファイルは上書きされます。コマンドラインで指定されているサブジェクト名またはその他の文字列にスペースが含まれている場合、二重引用符で囲む必要があります。
-B
コマンドの初期化、登録、および更新のために秘密鍵のバックアップを要求します。
-o
prefix
作成された証明書および CRL を、指定された接頭辞が付加されたファイル名で保存します。接頭辞は数字で始まり、オブジェクトの種類によってファイル拡張子である .crt
または .crl
が付加されます。
-O
filename
結果を指定された絶対ファイル名で保存します。複数の結果ファイルがある場合、残りの結果ファイルの保存は拒否されます。
-C
file
CA 証明書が含まれているファイルのパスを指定します。鍵がバックアップされている場合はファイル名を指定する必要がありますが、多くの場合、CA の LDAP の名前を代わりに指定できます。
-S
url
SOCKS が有効化されているファイアウォールの向こう側に CA がある場合に SOCKS URL を指定します。URL の形式は socks://[username@]server[:port][/network/bits[,network/bits]]
となります。
-H
url
指定された HTTP プロキシ サーバを使用して CA にアクセスします。URL の形式は http://server[:port]/
となります。
-E
CA がサポートしている場合には暗号の証明が行われます。この PoP の方法では要求が署名されませんが、代わりに PoP が CA から受信した証明書の暗号復号能力に基づいて確立されます。CA はユーザに送信する前に、ユーザの公開鍵を使用して証明書を暗号化します。
-v
num
CMP のプロトコル バージョンを選択します。RFC 2510 ベースのプロトコルの場合には 1 を、CMPv2 の場合にはデフォルト値の 2 のいずれかを指定します。
-N
file
鍵の生成中にエントロピー ソースとして使用するファイルを指定します。
usage の行では以下のメタ コマンドを使用します。
psk
CA または RA によって指定される参照番号および対応する鍵の値を表します。
-p
refnum:key|file
refnum
および key
は、CA およびユーザとの間で共有されるキャラクター文字列です。 refnum
は秘密の key
を指定します。これはメッセージの認証に使用されます。refnum
文字列には、コロン文字を含めることはできません。
また、参照番号および鍵が含まれているファイル名を引数として指定することもできます。
-i
number
number
は、鍵のハッシュが繰り返された回数を表します。
certs
認証に使用される、ユーザの現在の鍵および証明書を表します。
-k
url
秘密鍵の場所を示す URL を表します。これは外部鍵の URLで、形式は書式項で規定されています。
-c
file
-k
オプション引数で指定された公開鍵に対して発行された証明書が含まれるファイルのパスを表します。
racerts
RA モードにおける、認証用の RA 鍵および証明書を表します。
-k
url
秘密鍵の場所を示す URL を表します。これは外部鍵の URLで、形式は書式項で規定されています。
-R
file
-k
オプション引数で指定された公開鍵に対して発行された RA 証明書が含まれるファイルのパスを表します。
keypair
証明されるサブジェクト鍵のペアを表します。
-P
url
秘密鍵の場所を示す URL を表します。これは外部鍵の URLで、形式は書式項で規定されています。
id
PKI 動作が保留されている場合のポーリング ID を表します。
-I
number
動作が保留されている場合の、RA または CA によって指定されたポーリング トランザクション ID number
を表します。
template
証明されるサブジェクト名およびフラグを表します。
-T
file
操作用のテンプレートとして使用される証明者が含まれたファイルを表します。サブジェクトを特定するために使用される値はここから読み取られますが、ユーザは鍵、鍵の使用フラグ、またはサブジェクト名を上書きできます。
-s
subject-ldap[;type=value]*
リバース LDAP 形式のサブジェクト名を表します。これは最も一般的な形式ですが、代替サブジェクト名を指定することもできます。subject-ldap
という名前は、要求に対してそのままコピーされます。
一般的には、"C=US,O=SSH,CN=Some Body"
という形式で DN を選択しますが、証明書の使用に影響がなければ、任意の形式を使用できます。
指定可能な type
の値は、ip
、email
、dn
、dns
、uri
、および rid
です。
-u
key-usage-name[;key-usage-name]*
要求された鍵の使用目的コードです。digitalSignature
、nonRepudiation
、keyEncipherment
、dataEncipherment
、keyAgreement
、keyCertSign
、cRLSign
、encipherOnly
、decipherOnly
、および help
のコードが認識されます。特殊キーワード ヘルプには、RFC 3280 で定義されている、サポートされる鍵の使用法が一覧表示されています。
-U
extended-key-usage-name[;extended-key-usage-name]*
要求された拡張鍵の使用コードを表します。ユーザ指定のドット区切り OID 値の他、serverAuth
、clientAuth
、codeSigning
、emailProtection
、timeStamping
、ikeIntermediate
、および smartCardLogon
のコードが認識されます。
access
CA のアドレスを URL 形式で指定します。利用可能なアクセス方法は、HTTP (http://host:port/path
) または平文 TCP (tcp://host:port/path
) です。ホスト アドレスが IPv6 アドレスの場合は角カッコで囲み、http://[IPv6-address]:port/
のようにする必要があります。
name
CA 証明書が -C
を使用して指定されていない場合に、オプションで操作用の宛先 CA 名を指定します。
この例では、デジタル署名を使用するために初期証明書を登録するコマンドについて説明します。このコマンドによって、秘密鍵が PKCS #8 平文ファイルで、initial.prv
という名前で生成され、登録された証明書はファイル initial-0.crt
に保存されます。ユーザは CA に対して鍵の ID (refnum) 62154
および鍵 ssh
によって認証されます。サブジェクト名および代替 IP アドレスとともに鍵の使用フラグが指定されます。CA のアドレスは pki.ssh.com
で、ポートは 8080
、またアクセスする CA の名前は Test CA 1
です。
$ ssh-cmpclient-g3 INITIALIZE \ -P generate://pkcs8@rsa:1024/initial -o initial \ -p 62154:ssh \ -s 'C=FI,O=SSH,CN=Example/initial;IP=1.2.3.4' \ -u digitalsignature \ http://pki.ssh.com:8080/pkix/ \ 'C=FI, O=SSH Communications Security Corp, CN=SSH Test CA 1 No Liabilities'
コマンドに対する応答として、発行された証明書がユーザに対して提示されます。ユーザは プロンプトで yes
とタイプしてこれを受け取ります。
Certificate = SubjectName = <C=FI, O=SSH, CN=Example/initial> IssuerName = <C=FI, O=SSH Communications Security Corp, CN=SSH Test CA 1 No Liabilities> SerialNumber= 8017690 SignatureAlgorithm = rsa-pkcs1-sha1 Validity = ... PublicKeyInfo = ... Extensions = Viewing specific name types = IP = 1.2.3.4 KeyUsage = DigitalSignature CRLDistributionPoints = ... AuthorityKeyID = KeyID = 3d:cb:be:20:64:49:16:1d:88:b7:98:67:93:f0:5d:42:81:2e:bd:0c SubjectKeyID = KeyId = 6c:f4:0e:ba:b9:ef:44:37:db:ad:1f:fc:46:e0:25:9f:c8:ce:cb:da Fingerprints = MD5 = b7:6d:5b:4d:e0:94:d1:1f:ec:ca:c2:ed:68:ac:bf:56 SHA-1 = 4f:de:73:db:ff:e8:7d:42:c4:7d:e1:79:1f:20:43:71:2f:81:ff:fa Do you accept the certificate above? yes
証明書の期限が切れる前に、有効期間が更新された新しい証明書を登録する必要があります。ssh-cmpclient-g3 は鍵の更新をサポートします。ここで新しい秘密鍵が生成され、鍵の更新要求が、まだ有効期間が残っている古い証明書を使用して認証されます。また古い証明書は、新しい証明書を発行するためのテンプレートとしても使用されるため、鍵の更新中はユーザ ID が変更されません。以下のコマンドを使用して、前の例で登録された鍵のペアを更新できます。発行された証明書についての記述は、ここでは省略しています。
$ ssh-cmpclient-g3 UPDATE \ -k initial.prv -c initial-0.crt -P \ generate://pkcs8@rsa:1024/updatedcert -o updatedcert \ http://pki.ssh.com:8080/pkix/ \ "C=FI, O=SSH Communications Security Corp, CN=SSH Test CA 1 No Liabilities"
新しい鍵のペアは、updatedcert
という接頭辞が付加されたファイルにあります。CA を発行するポリシーは、ssh-cmpclient-g3 が UPDATE
モードで使用されている場合に鍵の自動更新が許可されるように設定されている必要があります。