SSH Tectia

ssh-cmpclient-g3

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 の値は、ipemaildndnsuri、および rid です。

-u key-usage-name[;key-usage-name]*

要求された鍵の使用目的コードです。digitalSignaturenonRepudiationkeyEnciphermentdataEnciphermentkeyAgreementkeyCertSigncRLSignencipherOnlydecipherOnly、および help のコードが認識されます。特殊キーワード ヘルプには、RFC 3280 で定義されている、サポートされる鍵の使用法が一覧表示されています。

-U extended-key-usage-name[;extended-key-usage-name]*

要求された拡張鍵の使用コードを表します。ユーザ指定のドット区切り OID 値の他、serverAuthclientAuthcodeSigningemailProtectiontimeStampingikeIntermediate、および 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-g3UPDATE モードで使用されている場合に鍵の自動更新が許可されるように設定されている必要があります。