Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

kmfcfg(1)

名前

kmfcfg - 鍵管理ポリシーおよびプラグイン構成ユーティリティー

形式

kmfcfg subcommand [
option ...] 

説明

ユーザーは kmfcfg コマンドを使用すると、鍵管理フレームワーク (KMF) ポリシーデータベースを構成できます。KMF ポリシーデータベース (DB) は、KMF フレームワークから管理される鍵と証明書の使用を制限します。

kmfcfg を使用すると、システムのデフォルトのデータベースファイル /etc/security/kmfpolicy.xml またはユーザー定義のデータベースファイルのポリシー定義を一覧表示、作成、変更、削除、インポート、およびエクスポートできます。

プラグイン構成の場合、ユーザーは kmfcfg を使用して、プラグイン情報の表示、KMF プラグインのインストール/アンインストール、およびプラグインオプションの変更を行えます。

サブコマンド

サポートされているサブコマンドは次のとおりです。

create

ポリシーデータベースファイルに新しいポリシーを追加します。

create サブコマンドの書式は次のとおりです。


create [dbfile=dbfile] policy=policyname
    [ignore-date=true|false]
    [ignore-unknown-eku=true|false]
    [ignore-trust-anchor=true|false]
    [ignore-cert-revoke-responder-timeout=true|false]
    [cert-revoke-responder-timeout=timeout in seconds]
    [trust-intermediate-cas=true|false]
    [max-cert-path-length=max length in cert path]
    [validity-adjusttime=adjusttime]
    [ta-name=trust anchor subject DN]
    [ta-name=trust anchor subject DN | search]
    [ta-serial=trust anchor serial number]
    [http-proxy=URL]
    [http-proxy-none=true|false]
    [ocsp-responder=URL]
    [ocsp-proxy=URL]
    [ocsp-use-cert-responder=true|false]
    [ocsp-response-lifetime=timelimit]
    [ocsp-ignore-response-sign=true|false]
    [ocsp-responder-cert-name=Issuer DN]
    [ocsp-responder-cert-serial=serial number]
    [crl-basefilename=basefilename | search]
    [crl-directory=directory]
    [crl-get-crl-uri=true|false]
    [crl-proxy=URL]
    [crl-ignore-crl-sign=true|false]
    [crl-ignore-crl-date=true|false]
    [bypass-ipsec-policy=true|false]
    [keyusage=digitalSignature|nonRepudiation
              |keyEncipherment | dataEncipherment |
              keyAgreement |keyCertSign |
              cRLSign | encipherOnly | decipherOnly],[...]
    [ekunames=serverAuth | clientAuth |
             codeSigning | emailProtection |
             ipsecEndSystem | ipsecTunnel |
             ipsecUser | timeStamping |
             OCSPSigning],[...]
    [ekuoids=OID,OID,OID...]
    [mapper-name=name of the mapper]
    [mapper-dir=dir where mapper library resides]
    [mapper-path=full pathname of mapper library]
    [mapper-options=mapper options]

create サブコマンドは次のオプションをサポートします。

cert-revoke-responder-timeout:

CRL または OCSP 応答者を待機する最大タイムアウト値 (秒単位) を設定します。デフォルト値は 30 秒です。最大タイムアウト値は 300 秒です。

crl-basefilename=filename | search
crl-directory=directory

これら 2 つの属性は、CRL ファイルの場所を指定するために使用されます。crl-basefilename 属性は CRL ファイルのベースファイル名を表します。crl-directory 属性は、CRL ファイルのディレクトリを表します。デフォルトで現在のディレクトリに設定されています。明示的な CRL ファイル名の代わりに値 search が使用されている場合、KMF は、検証対象の証明書が失効済みかどうかを確認するために、指定された CRL ディレクトリの下にある有効なすべての CRL ファイルを検索します。

crl-get-crl-uri 属性が true に設定され、crl-basefilename が指定されていない場合、キャッシュされた CRL ファイルの basefilename が、CRL ファイルの取得に使用される URI のベース名になります。

crl-get-crl-uri 属性が false に設定されている場合は、search 値で CRL ディレクトリの下にある入力 CRL ファイルまたは指定可能なすべての CRL ファイルを示すために crl-basefilename を指定する必要があります。crl-get-crl-uri はデフォルトで false に設定されています。

これら 2 つの属性は、ファイルベースの CRL プラグインにのみ適用されます。現在のファイルベースの CRL プラグインは file および pkcs11 キーストアです。

crl-get-crl-uri=true | false

証明書の検証の一環として、証明書の配布ポイント拡張機能の URI 情報を使用して CRL ファイルを取得し、動的にキャッシュするかどうかを構成します。

この属性はデフォルトで false に設定されています。

crl-ignore-crl-date=true | false

crl-ignore-crl-date が true に設定されている場合、CRL の有効期間は検査されません。

この属性はデフォルトで false に設定されています。

crl-ignore-crl-sign=true | false

crl-ignore-crl-signtrue に設定されている場合、CRL の署名は検査されません。

この属性はデフォルトで false に設定されています。

http-proxy= URL

CRL、OCSP 用のサーバーと通信したり証明書をダウンロードしたりするためのプロキシサーバー名とポートを設定します。

ポート番号は省略できます。ポート番号を指定しない場合、デフォルト値は 8080 です。crl-proxy の設定は、たとえば crl-proxy=webcache.sfbay:8080 のようになります。

crl-proxy= URL

crl-get-crl-uritrue に設定されている場合に、CRL ファイルを動的に取得するプロキシサーバーの名前とポートを設定します。この値はグローバル http-proxy の値より優先されます。

ポート番号は省略できます。ポート番号を指定しない場合、デフォルト値は 8080 です。crl-proxy の設定は、たとえば crl-proxy=webcache.sfbay:8080 のようになります。

dbfile=dbfile

新しいポリシーを追加する DB ファイル。指定しない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

ekuoids=EKUOIDS

定義しているポリシーで必要になる拡張鍵用途 OID のコンマ区切りのリスト。OID は、1.2.3.4 のようにドット表記で表されます。ekuoids の設定は、たとえば ekuoids=1.2.3.4,9.8.7.6.5 のようになります。

ekunames=EKUNAMES

定義しているポリシーで必要になる拡張鍵用途名のコンマ区切りリスト。EKUNAMES に使用できる値は、serverAuthclientAuth codeSigningemailProtectionipsecEndSystemipsecTunnelipsecUsertimeStamping、および OCSPSigning です。

OCSP、CRL、鍵用途、および拡張鍵用途の検査はデフォルトで無効になっています。これらのいずれかを有効にするには、特定の検査に対して 1 つまたは複数の属性を指定します。たとえば、ocsp-responder 属性を設定すると、OCSP 検査が有効になります。ekuname 属性または ekuoids 属性を設定すると、拡張鍵用途検査が有効になります。

ignore-cert-revoke-responder-timeout=true | false

cert-revoke-responder-timeout の期限切れが発生したあとの動作を定義します。デフォルト値は false です。これは、cert-revoke-responder-timeout に定義された時間が経過すると、証明書の検証がただちに失敗することを示します。それ以外の場合、この値が true であれば、証明書の検証は CRL 検査または OCSP 検査、あるいはその両方を省略し、検証のために実行される一連の手順の次の手順に進みます。

ignore-date=true | false

このポリシーの日付を無視オプションを設定します。デフォルトではこの値は false です。true を指定した場合、ポリシーは、有効性を評価するときに、証明書で定義されている有効期限を無視します。

ignore-unknown-eku=true | false

このポリシーの不明な EKU を無視オプションを設定します。デフォルトではこの値は false です。true の場合、ポリシーは、拡張鍵用途拡張機能の認識できない EKU 値を無視します。

ignore-trust-anchor=true | false

このポリシーのトラストアンカーを無視オプションを設定します。デフォルトではこの値は false です。true を指定した場合、ポリシーは、検証時にトラストアンカーを使用して検証対象の証明書の署名を確認しません。

keyusage=KUVALUES

定義しているポリシーで必要になる鍵用途値のコンマ区切りリスト。使用できる値は、digitalSignaturenonRepudiationkeyEnciphermentdataEnciphermentkeyAgreementkeyCertSigncRLSignencipherOnly decipherOnly です。

max-cert-path-length=number

証明書チェーンで許可される証明書の最大の長さを指定します。デフォルト値は 32 です。

ocsp-ignore-response-sign=true | false

この属性を true に設定した場合、OCSP 応答の署名は検証されません。この属性値はデフォルトで false に設定されています。

ocsp-proxy=URL

OCSP のプロキシサーバー名およびポートを設定します。ポート番号は省略できます。ポート番号を指定しない場合、デフォルト値は 8080 です。ocsp-proxy の設定は、たとえば ocsp-proxy="webcache.sfbay:8080" のようになります。

この値はグローバル http-proxy の値より優先されます。

ocsp-response-lifetime=timelimit

応答が必要になる freshness 期間を設定します。timelimit は、number-daynumber-hournumber-minute 、または number-second で指定できます。ocsp-response-lifetime の設定は、たとえば ocsp-response-lifetime=6-hour のようになります。

ocsp-responder-cert-name=IssuerDN
ocsp-responder-cert-serial= serialNumber

これらの 2 つの属性は、OCSP 応答者証明書を表します。ocsp-responder-cert-name には、証明書の発行者名を指定します。例については、ta-name オプションを参照してください。ocsp-responder-cert-serial はシリアル番号用で、0x0102030405060708090a0b0c0d0e0f のように 16 進数値で指定する必要があります。OCSP 応答者が証明書の発行者とは異なる場合、および OCSP 応答を検証する必要がある場合は、OCSP 応答者の証明書情報を指定するようにしてください。

ocsp-responder=URL

OCSP 検証方法で使用する OCSP 応答者の URL を設定します。たとえば、ocsp-responder=http://ocsp.verisign.com/ocsp/status のように設定します。

ocsp-use-cert-responder=true | false

可能な場合は証明書で定義された応答者を常に使用するように、このポリシーを構成します。

policy=policyname

作成されるポリシーレコード。policyname が必要です。

ta-name=trust anchor subject DN | search

ta-name は証明書を検証するために使用されるトラストアンカーを識別します。KMF ポリシーエンジンは、完全な PKIX パス検証を行うのではなく、単に、検証対象の証明書の親であるようにトラストアンカーを扱います。

明示的な Subject DN が指定されている場合、ta-serial 値と組み合わせて、使用する証明書を一意に識別する必要があります。また、識別された証明書は、選択されているキーストアで使用できる必要があります。

明示的な主体名やシリアル番号の代わりに値 search を使用する場合、KMF ポリシーエンジンは、検証対象の証明書の発行者名に一致する証明書を見つけようとし、それを検証に使用します。

search を使用する場合、ta-serial 値は無視されます。

ta-serial=trust anchor serial number

ta-name を明示的な主体名として指定する場合、その証明書のシリアル番号を ta-serial 値で指定する必要があります。シリアル番号は、たとえば ta-serial=0x01020a0b のように、16 進形式で指定する必要があります。

trust-intermediate-cas true | false

このポリシーが trust intermediate に設定されている場合は、信頼チェーンのルートを中間 CA 証明書にすることができます。デフォルトではこの値は false です。true が指定されている場合、チェーンが TA 証明書にアンカーされていないと、証明書の検証は部分的なチェーンに対して続行されます。

validity-adjusttime=adjusttime

証明書の有効期限の開始と終了に対する調整時間を設定します。時間は number-day、number-hour、number-minute、または number-second で指定できます。validity-adjusttime の設定は、たとえば validity-adjusttime=6-hour.ta-name="Subject DN" ta-serial=serialNumber のようになります。

これら 2 つの属性は、トラストアンカー証明書を表し、キーストアでトラストアンカーの証明書を見つけるために使用されます。ta-name には、トラストアンカー証明書の主体名の識別名を指定します。たとえば、ta-name="O=Sun Microsystems Inc., \ OU=Solaris Security Technologies Group, \ L=Ashburn, ST=VA, C=US, CN=John Smith" TA 証明書のシリアル番号。これは、発行者 DN とともに、キーストアで TA 証明書を見つけるために使用されます。シリアル番号は、たとえば 0x0102030405060708090a0b0c0d0e のように、16 進数値として指定する必要があります。ignore-trust-anchor 属性の値が false の場合、トラストアンカー属性を設定する必要があります。

mapper-name=name
mapper-dir=directory
mapper-path=path
mapper-options=options

これらの 4 つのオプションは、証明書と名前のマッピングをサポートします。mapper-name はマッパーの名前を指定します。たとえば、cn 名は、マッパーオブジェクト kmf_mapper_cn.so.1 を表します。mapper-dir は、デフォルトのマッパーディレクトリ /lib/crypto をオーバーライドします。mapper-path は、マッパーオブジェクトの完全パスを指定します。mapper-options は、ASCII のみから構成される最大 255 バイト長の文字列です。その書式はマッパー固有ですが、マッパーは、たとえば casesensitive,ignoredomain のような、オプションのコンマ区切りリストを受け入れることが期待されます。mapper-path および mapper-name は相互に排他的です。mapper-dir は、mapper-name が設定されている場合にのみ設定できます。mapper-options は、mapper-name または mapper-path が設定されている場合にのみ設定できます。上記の誤った設定のいずれかを使用しようとすると、エラーになり、ポリシーデータベースは変更されません。

delete

指定されたポリシー名に一致したポリシーを削除します。システムのデフォルトポリシー (default) は削除できません。

delete サブコマンドの書式は次のとおりです。


delete [dbfile=dbfile] policy=policyname

delete サブコマンドは次のオプションをサポートします。

dbfile=dbfile

指定されたファイルからポリシー定義を読み込みます。dbfile が指定されていない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

policy=policyname

削除するポリシーの名前。システムデータベースを使用する場合、policyname が必要です。

export

あるポリシーデータベースファイルから別のポリシーデータベースファイルに、ポリシーをエクスポートします。

export サブコマンドの書式は次のとおりです。


kmfcfg export policy=policyname outfile=newdbfile
 [dbfile=dbfile]


export サブコマンドは次のオプションをサポートします。

dbfile=dbfile

エクスポートしたポリシーが読み込まれる DB ファイル。dbfile が指定されていない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

outfile=outputdbfile

エクスポートしたポリシーが保存される DB。

policy=policyname

エクスポートされるポリシーレコード。

help

kmfcfg コマンドのヘルプを表示します。

help サブコマンドの書式は次のとおりです。


help

import

あるポリシーデータベースファイルから別のポリシーデータベースファイルに、ポリシーをインポートします。

import サブコマンドの書式は次のとおりです。


kmfcfg import policy=policyname infile=inputdbfile
 [dbfile=dbfile]

import サブコマンドは次のオプションをサポートします。

policy=policyname

インポートされるポリシーレコード。

infile=inputdbfile

ポリシーの読み込み元の DB ファイル。

dbfile=outdbfile

新しいポリシーを追加する DB ファイル。指定しない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

list

引数がない場合、デフォルトのシステムデータベースから、すべてのポリシー定義を一覧表示します。

list サブコマンドの書式は次のとおりです。


list [dbfile=dbfile] [policy=policyname]

list サブコマンドは次のオプションをサポートします。

dbfile=dbfile

指定されたファイルからポリシー定義を読み込みます。指定しない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

policy=policyname

指定された名前に一致したポリシーのポリシー定義のみを表示します。

modify

指定された名前に一致したポリシーを変更します。システムのデフォルトポリシー (default) は変更できません。

modify サブコマンドの書式は次のとおりです。

modify [dbfile=dbfile] policy=policyname

    [ignore-date=true|false]
    [ignore-unknown-eku=true|false]
    [ignore-trust-anchor=true|false]
    [ignore-cert-revoke-responder-timeout=true|false]
    [cert-revoke-responder-timeout=timeout in seconds]
    [trust-intermediate-cas=true|false]
    [max-cert-path-length=max length in cert path]
    [validity-adjusttime=adjusttime]
    [ta-name=trust anchor subject DN]
    [ta-serial=trust anchor serial number]
    [http-proxy=URL]
    [http-proxy-none=true|false]
    [ocsp-responder=URL]
    [ocsp-proxy=URL]
    [ocsp-use-cert-responder=true|false]
    [ocsp-response-lifetime=timelimit]
    [ocsp-ignore-response-sign=true|false]
    [ocsp-responder-cert-name=Issuer DN]
    [ocsp-responder-cert-serial=serial number]
    [ocsp-none=true|false]
    [crl-basefilename=basefilename | search]]
    [crl-directory=directory]
    [crl-get-crl-uri=true|false]
    [crl-proxy=URL]
    [crl-ignore-crl-sign=true|false]
    [crl-ignore-crl-date=true|false]
    [crl-none=true|false]
    [bypass-ipsec-policy=true|false] 
    [keyusage=digitalSignature| nonRepudiation
              |keyEncipherment | dataEncipherment |
              keyAgreement |keyCertSign |
              cRLSign | encipherOnly | decipherOnly],[...]
    [keyusage-none=true|false]
    [ekunames=serverAuth | clientAuth |
             codeSigning | emailProtection |
             ipsecEndSystem | ipsecTunnel |
             ipsecUser | timeStamping |
             OCSPSigning],[...]
    [ekuoids=OID,OID,OID]
    [eku-none=true|false]
    [mapper-name=name of the mapper]
    [mapper-dir=dir where mapper library resides]
    [mapper-path=full pathname of mapper library]
    [mapper-options=mapper options]

modify サブコマンドは、create サブコマンドと同じオプションを多数サポートします。共通のオプションの説明については、create サブコマンドを参照してください。

modify サブコマンドは次の固有のオプションをサポートします。

crl-none=true | false

crl-nonetrue に設定されている場合、CRL 検査が無効になります。この属性が true に設定されている場合、ほかの CRL 属性は設定できません。

dfile=[dbfile ]

ポリシーを変更するデータベースファイル。指定しない場合、デフォルトは、システム KMF ポリシーデータベースファイル /etc/security/kmfpolicy.xml になります。

eku-none=true | false

eku-nonetrue に設定されている場合、拡張鍵用途検査が無効になります。eku-nonetrue に設定されている場合、拡張鍵用途属性 ekuname および ekuoids は同時に設定できません。

keyusage-none=true | false

keyusage-none が true に設定されている場合、鍵用途検査が無効になります。

この属性が true に設定されている場合、keyusage 属性は同時に設定できません。

http-proxy-none=true | false

http-proxy-none を true に設定した場合、グローバル http-proxy がプロキシなしにリセットされます。

bypass-ipsec-policy=true | false

bypass-ipsec-policy を true に設定した場合、KMF によって開始されたネットワーク接続で、グローバル IPsec ポリシーのバイパスが試みられます。この操作には sys_ip_config 特権が必要となります。この特権がなくても、ベストエフォートに基づいて接続が試みられます。

ocsp-none=true | false

ocsp-none が true に設定されている場合、OCSP 検査が無効になります。この属性が true に設定されている場合、ほかの OCSP 属性は同時に設定されません。

policy=policyname

変更するポリシーの名前。policyname が必要です。システム KMF ポリシーデータベースの default ポリシーは変更できません。

mapper-name=name
mapper-dir=directory
mapper-path=path
mapper-options=options

詳細は、create サブコマンドを参照してください。

プラグインサブコマンド

install keystore=keystore_name modulepath=pathname\ [option=option_str]

プラグインをシステムにインストールします。modulepath フィールドには、KMF プラグイン共有ライブラリオブジェクトへのパス名を指定します。pathname が完全パス名として指定されない場合、共有ライブラリオブジェクトは、/lib/security/$ISA/ を基準とした相対パスであるとみなされます。ISA トークンは、実装で定義されたディレクトリ名に置き換えられます。これは、呼び出し側プログラムの命令セットのアーキテクチャーを基準にした相対パス名を定義します。

list plugin

KMF プラグイン情報を表示します。

plugin キーワードがない場合、「サブコマンド」セクションで説明したように、kmfcfg list はポリシー情報を表示します。

modify plugin keystore=keystore_name option=option_str

plugin オプションを変更します。plugin オプションはプラグインが定義し、プラグインが具体的に解釈するので、このコマンドは任意のオプション文字列を受け入れます。

plugin キーワードがない場合、「サブコマンド」セクションで説明したように、kmfcfg modify はポリシー構成を更新します。

uninstall keystore=keystore_name

keystore_name のプラグインをアンインストールします。

使用例 1 新しいポリシーの作成

次の例は、IPSEC と呼ばれる新しいポリシーをシステムデータベース内に作成します。


$ kmfcfg create dbfile=ipsec.xml policy=IPSEC \
ignore-trust-anchor=true \
ocsp-use-cert-responder=true \
keyusage=keyAgreement,keyEncipherment,dataEncipherment \
ekunames=ipsecTunnel,ipsecUser

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生しました。

ファイル

/etc/security/kmfpolicy.xml

デフォルトのシステムポリシーデータベース

属性

次の属性については、attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
不確実

関連項目

attributes(7)