| Current File : //usr/share/man/ja_JP.UTF-8/man1/elfsign.1 |
'\" te
.\" Copyright 2009, 2015, Oracle and/or its affiliates.All rights reserved.
.TH elfsign 1 "2015 年 9 月 18 日" "SunOS 5.11" "ユーザーコマンド"
.SH 名前
elfsign \- バイナリへの署名
.SH 形式
.LP
.nf
\fB/usr/bin/elfsign\fR sign [\fB-v\fR] \fB-k\fR \fIprivate_key\fR \fB-c\fR \fIcertificate_file\fR
\fB-e\fR \fIelf_object\fR [\fB-F\fR \fIformat\fR] [file]...
.fi
.LP
.nf
\fB/usr/bin/elfsign\fR sign [\fB-v\fR] \fB-c\fR \fIcertificate_file\fR
\fB-e\fR \fIelf_object\fR \fB-T\fR \fItoken_label\fR [\fB-P\fR \fIpin_file\fR] [\fB-F\fR \fIformat\fR] [file]...
.fi
.LP
.nf
/usr/bin/elfsign sign [-v] -c \fIcertificate_file\fR
[-e \fIelf_object\fR] -s \fIsignature_file\fR [-F \fIformat\fR] [\fIfile\fR]
.fi
.LP
.nf
\fB/usr/bin/elfsign\fR verify [\fB-c\fR \fIcertificate_file\fR]
[\fB-v\fR] \fB-e\fR \fIelf_object\fR [file]...
.fi
.LP
.nf
\fB/usr/bin/elfsign\fR \fIlist\fR \fB-f\fR \fIfield\fR \fB-c\fR \fIcertificate_file\fR
.fi
.LP
.nf
\fB/usr/bin/elfsign\fR \fIlist\fR \fB-f\fR \fIfield\fR \fB-e\fR \fIelf_object\fR
.fi
.LP
.nf
/usr/bin/elfsign digest [-v] [-o \fIdigest_file\fR]
[-e \fIelf_object\fR] [-F \fIformat\fR] [\fIfile\fR]
.fi
.SH 機能説明
.sp
.ne 2
.mk
.na
\fB\fBlist\fR\fR
.ad
.RS 10n
.rt
1 つの証明書ファイルまたは署名された elf オブジェクトからの標準出力情報を一覧表示します。選択されたフィールドは 1 行に表示されます。指定されたフィールドが指定されたファイルに適用されない場合、コマンドは標準出力なしで終了します。このサブコマンドのこの出力は、スクリプトやほかのコマンドで使用されることを目的にしています。
.RE
.sp
.ne 2
.mk
.na
\fB\fBsign\fR\fR
.ad
.RS 10n
.rt
指定された秘密鍵と証明書ファイル、または署名と証明書ファイルを使用して、elf オブジェクトに署名します。
.RE
.sp
.ne 2
.mk
.na
\fB\fBverify\fR\fR
.ad
.RS 10n
.rt
既存の署名されたオブジェクトを検証します。\fB-c\fR が指定されていない場合は、指定された証明書を使用するか、または \fB/etc/crypto/certs\fR および \fB/etc/certs\fR で適切な証明書を検索します。
.RE
.sp
.ne 2
.mk
.na
\fB\fBdigest\fR\fR
.ad
.RS 10n
.rt
elf オブジェクトのダイジェストを指定の形式で標準出力に出力します。デフォルトの形式は SHA-256 です。
.RE
.SH オプション
.sp
.LP
サポートしているオプションは、次のとおりです。
.sp
.ne 2
.mk
.na
\fB\fB-c\fR \fIcertificate_file\fR\fR
.ad
.RS 23n
.rt
PEM/PKCS#7 または ASN.1 BER 形式の X.509 証明書へのパスを指定します。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-e\fR \fIelf_object\fR\fR
.ad
.RS 23n
.rt
署名または検証されるオブジェクトへのパスを指定します。
.sp
\fB-e\fR オプションは、複数のオブジェクトを署名または検証するために複数回指定できます。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-F\fR \fIformat\fR\fR
.ad
.RS 23n
.rt
\fBsign\fR サブコマンドの場合は、署名の形式を指定します。有効な形式オプションは次のとおりです
.sp
.ne 2
.mk
.na
\fB\fBrsa_md5_sha1\fR\fR
.ad
.RS 16n
.rt
デフォルト形式の Solaris 10 および更新。\fBrsa_md5_sha1\fR 形式は廃止されています。
.RE
.sp
.ne 2
.mk
.na
\fB\fBrsa_sha256\fR\fR
.ad
.RS 16n
.rt
このリリースのデフォルト形式。
.RE
.sp
.ne 2
.mk
.na
\fB\fBrsa_sha1\fR\fR
.ad
.RS 16n
.rt
このリリースの代替形式。
.RE
\fBrsa_md5_sha1\fR 以外の形式には、署名が適用された時間を示す、署名による情報タイムスタンプが含まれています。このタイムスタンプは暗号的に安全ではなく、また検証の一部としても使用されません。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-f\fR \fIfield\fR\fR
.ad
.RS 23n
.rt
\fBlist\fR サブコマンドの場合は、出力にどのフィールドを表示するかを指定します。
.sp
\fBlist\fR サブコマンドは次のオプションをサポートします。
.sp
.ne 2
.mk
.na
\fB\fB-f\fR \fBall\fR\fR
.ad
.RS 10n
.rt
証明書または ELF ファイル内のすべてのフィールドを一覧表示します。ELF ファイルの場合、表示される署名情報は、エンディアン、形式、バージョン、署名者、タイムスタンプ、署名、および OID です。
.RE
証明書ファイルの有効なフィールド指定子は次のとおりです。
.sp
.ne 2
.mk
.na
\fBsubject\fR
.ad
.RS 11n
.rt
サブジェクト DN (識別名)
.RE
.sp
.ne 2
.mk
.na
\fBissuer\fR
.ad
.RS 11n
.rt
発行者 DN
.RE
elf オブジェクトの有効なフィールド指定子は次のとおりです。
.sp
.ne 2
.mk
.na
\fBformat\fR
.ad
.RS 10n
.rt
署名の形式
.RE
.sp
.ne 2
.mk
.na
\fBsigner\fR
.ad
.RS 10n
.rt
オブジェクトを署名するために使用される証明書のサブジェクト DN
.RE
.sp
.ne 2
.mk
.na
\fBtime\fR
.ad
.RS 10n
.rt
署名が適用された時間 (ロケールのデフォルト形式)
.RE
.RE
.sp
.ne 2
.mk
.na
\fB\fB-k\fR \fIprivate_key\fR\fR
.ad
.RS 23n
.rt
PKCS#11 トークンを使用していないときの秘密鍵ファイルの場所を指定します。このファイルは、標準の PEM (Base 64) または DER (バイナリ) 形式の RSA 非公開鍵ファイルです。
.sp
\fB-k\fR オプションと \fB-T\fR オプションの両方を指定すると、エラーになります。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-o\fR \fIdigest_file\fR\fR
.ad
.RS 23n
.rt
\fBdigest\fR コマンドで出力するダイジェストファイルのパスを指定します。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-P\fR \fIpin_file\fR\fR
.ad
.RS 23n
.rt
トークンデバイスにアクセスするための PIN を保持しているファイルを指定します。\fIpin_file\fR で PIN が指定されていない場合、\fBelfsign\fR は PIN の入力を求めます。
.sp
\fB-T\fR オプションを指定せずに \fB-P\fR オプションを指定すると、エラーになります。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-s\fR \fIsignature_file\fR\fR
.ad
.RS 23n
.rt
バイナリまたは Base64 でエンコードされた形式の署名ファイルのパスを指定します。署名ファイルは、秘密鍵と ELF オブジェクトのダイジェスト情報を使用して個別に作成されます。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-T\fR \fItoken_uri\fR\fR
.ad
.RS 23n
.rt
\fBpktool\fR によって提供された、秘密鍵を保持している PKCS#11 トークンデバイスの URI を指定します。トークンラベル、トークン鍵ラベル、およびピンファイルは \fItoken_uri\fR を介して指定できます。トークン鍵ラベル (オブジェクト) は必須の入力属性です。
.sp
\fB-T\fR オプションと \fB-k\fR オプションの両方を指定すると、エラーになります。
.RE
.sp
.ne 2
.mk
.na
\fB\fB-v\fR\fR
.ad
.RS 23n
.rt
より詳細な情報を要求します。追加の出力には署名者と、署名形式に含まれている場合は、オブジェクトが署名された時間が含まれます。これは、安定した解析可能な出力ではありません。
.RE
.SH オペランド
.sp
.LP
次のオペランドを指定できます。
.sp
.ne 2
.mk
.na
\fB\fIfile\fR\fR
.ad
.RS 8n
.rt
署名または検証される 1 つ以上の elf オブジェクト。\fB-e\fR オプションを使用して、またはほかのすべてのオプションのあとに、少なくとも 1 つの elf オブジェクトを指定する必要があります。
.RE
.SH 使用例
.LP
\fB例 1 \fRファイル内の鍵/証明書を使用した ELF オブジェクトの署名
.sp
.in +2
.nf
example$ elfsign sign -k myprivatekey -c mycert -e lib/libmylib.so.1
.fi
.in -2
.sp
.LP
\fB例 2 \fR\fBelf\fR オブジェクトの署名の検証
.sp
.in +2
.nf
example$ elfsign verify -c mycert -e lib/libmylib.so.1
elfsign: verification of lib/libmylib.so.1 passed
.fi
.in -2
.sp
.LP
\fB例 3 \fRオブジェクトに関する情報の判定
.sp
.in +2
.nf
example$ elfsign list -f format -e lib/libmylib.so.1
rsa_md5_sha1
example$ elfsign list -f signer -e lib/libmylib.so.1
CN=VENDOR, OU=Software Development, O=Vendor Inc.
.fi
.in -2
.sp
.LP
\fB例 4 \fRトークン URI を使用した ELF オブジェクトの署名
.sp
.in +2
.nf
example$ \fBelfsign sign -c mycert -e lib/libmylib.so.1
-T 'pkcs11:token=Sun Software PKCS#11 softtoken;
object=mykey;pinfile=/path/to/pinfile'\fR
.fi
.in -2
.sp
.LP
\fB例 5 \fR対話型 PIN 付きのトークン URI を使用した ELF オブジェクトの署名
.sp
.in +2
.nf
example$ \fBelfsign sign -c mycert -e lib/libmylib.so.1 \
-T 'pkcs11:token=Sun Software PKCS#11 softtoken;object=mykey'\fR
Enter PIN for Sun Software PKCS#11 softtoken:
.fi
.in -2
.sp
.LP
\fB例 6 \fR署名ファイルを使用した ELF オブジェクトの署名
.sp
.LP
ELF オブジェクトのダイジェストを作成します。
.sp
.in +2
.nf
example$ \fBelfsign digest -o /path/to/digest_file -e /lib/libmylib.so.1\fR
.fi
.in -2
.sp
.sp
.LP
\fBopenssl\fR コマンドを使用して秘密鍵と証明書ファイルを作成します。
.sp
.in +2
.nf
example$ \fBopenssl genrsa -out /path/to/private_key 2048\fR
example$ \fBopenssl req -new -x509 -days 999 -key /path/to/private_key\fR
\fB-out /path/to/certificate_file\fR
.fi
.in -2
.sp
.sp
.LP
openssl コマンドを使用して署名ファイルを作成します。
.sp
.in +2
.nf
example$ \fBopenssl rsautl -sign -in /path/to/digest_file\fR
\fB-out /path/to/signature_file -inkey /path/to/private_key\fR
.fi
.in -2
.sp
.sp
.LP
署名ファイルを使用して ELF オブジェクトに署名します。
.sp
.in +2
.nf
example$ \fBelfsign sign -c /path/to/certificate_file\fR
\fB-s /path/to/signature_file -e /lib/libmylib.so.1\fR
.fi
.in -2
.sp
.SH 終了ステータス
.sp
.LP
次の終了ステータスが返されます。
.sp
.sp
.TS
tab();
cw(1i) cw(3i) cw(1.5i)
lw(1i) lw(3i) lw(1.5i)
.
値意味サブコマンド
\fB0\fR操作の成功sign/verify
\fB1\fR無効な引数
\fB2\fRT{
ELF オブジェクトの検証に失敗しました
T}verify
3ELF オブジェクトを開けませんsign/verify
4T{
証明書ロードをできないか、または無効な証明書です
T}sign/verify
5T{
非公開鍵をロードできないか、秘密鍵が無効か、またはトークンラベルが無効な署名です
T}sign
6署名の追加に失敗しましたsign
7T{
署名されていないオブジェクトを検証しようとしているか、またはオブジェクトが ELF ファイルではありません
T}verify
.TE
.SH ファイル
.sp
.ne 2
.mk
.na
\fB\fB/etc/crypto/certs\fR\fR
.ad
.RS 21n
.rt
\fB-c\fR フラグが使用されていない場合に \fBverify\fR サブコマンドで検索されるディレクトリ。
.RE
.SH 属性
.sp
.LP
属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
属性タイプ属性値
_
使用条件developer/base-developer-utilities
_
インタフェースの安定性下記を参照。
.TE
.sp
.LP
\fBelfsign\fR コマンドおよびサブコマンドは「確実」です。アプリケーションは \fBelfsign\fR の出力形式に依存すべきではありませんが、\fBlist\fR サブコマンドの出力形式は「確実」です。
.SH 関連項目
.sp
.LP
\fBdate\fR(1)、\fBpktool\fR(1)、\fBcryptoadm\fR(1M)、\fBattributes\fR(5)