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

印刷ビューの終了

更新: 2014 年 7 月
 
 

elfsign(1)

名前

elfsign - バイナリへの署名

形式

/usr/bin/elfsign sign [-v] 
-k private_key -c 
certificate_file
     -e elf_object [-F 
format] [file]...
/usr/bin/elfsign sign [-v] 
-c certificate_file
     -e elf_object -T 
token_label [-P pin_file] [
-F format] [file]...
/usr/bin/elfsign verify [-c 
certificate_file] 
     [-v] -e elf_object [file]...
/usr/bin/elfsign request -r 
certificate_request_file 
     {-k private_key | -T 
token_label}
/usr/bin/elfsign list 
-f field -c 
certificate_file
/usr/bin/elfsign list 
-f field -e 
elf_object

説明

list

1 つの証明書ファイルまたは署名された elf オブジェクトからの標準出力情報を一覧表示します。選択されたフィールドは 1 行に表示されます。指定されたフィールドが指定されたファイルに適用されない場合、コマンドは標準出力なしで終了します。このサブコマンドのこの出力は、スクリプトやほかのコマンドで使用されることを目的にしています。

request

秘密鍵と PKCS#10 証明書要求を生成します。Solaris 暗号化フレームワークで使用される PKCS#10 証明書要求。秘密鍵がトークンデバイスで作成される場合、elfsign は、そのトークンデバイスを更新するために必要な PIN の入力を求めます。証明書を取得するには、電子メールアドレス solaris-crypto-req_ww@oracle.com に PKCS#10 証明書要求を送信するべきです。

elfsign のユーザーは、Solaris 暗号化フレームワークで使用されるバイナリに署名する前に、まず証明書要求を生成して証明書を取得する必要があります。

sign

指定された秘密鍵と証明書ファイルを使用して、elf オブジェクトに署名します。

verify

既存の署名されたオブジェクトを検証します。–c が指定されていない場合は、指定された証明書を使用するか、または /etc/crypto/certs および /etc/certs で適切な証明書を検索します。

オプション

サポートしているオプションは、次のとおりです。

–c certificate_file

PEM/PKCS#7 または ASN.1 BER 形式の X.509 証明書へのパスを指定します。

–e elf_object

署名または検証されるオブジェクトへのパスを指定します。

–e オプションは、複数のオブジェクトを署名または検証するために複数回指定できます。

–F format

sign サブコマンドの場合は、署名の形式を指定します。有効な形式オプションは次のとおりです

rsa_md5_sha1

デフォルト形式の Solaris 10 および更新。rsa_md5_sha1 形式は廃止されています。

rsa_sha256

このリリースのデフォルト形式。

rsa_sha1

このリリースの代替形式。

rsa_md5_sha1 以外の形式には、署名が適用された時間を示す、署名による情報タイムスタンプが含まれています。このタイムスタンプは暗号的に安全ではなく、また検証の一部としても使用されません。

–f field

list サブコマンドの場合は、出力にどのフィールドを表示するかを指定します。

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

–f all

bootblk 署名のすべてのフィールド (エンディアン、形式、バージョン、署名者、タイムスタンプ、および署名) を一覧表示します。

証明書ファイルの有効なフィールド指定子は次のとおりです。

subject

サブジェクト DN (識別名)

issuer

発行者 DN

elf オブジェクトの有効なフィールド指定子は次のとおりです。

format

署名の形式

signer

オブジェクトを署名するために使用される証明書のサブジェクト DN

time

署名が適用された時間 (ロケールのデフォルト形式)

–k private_key

PKCS#11 トークンを使用していないときの秘密鍵ファイルの場所を指定します。このファイルは、Solaris 固有の形式の RSA 秘密鍵ファイルです。request サブコマンドとともに使用された場合、これは新しく生成された鍵の出力ファイルです。

–k オプションと –T オプションの両方を指定すると、エラーになります。

–P pin_file

トークンデバイスにアクセスするための PIN を保持しているファイルを指定します。pin_file で PIN が指定されていない場合、elfsign は PIN の入力を求めます。

–T オプションを指定せずに –P オプションを指定すると、エラーになります。

–r certificate_request_file

PKCS#10 形式の証明書要求ファイルへのパスを指定します。

–T token_label

pktool によって提供された、秘密鍵を保持している PCKS#11 トークンデバイスのラベルを指定します。

–T オプションと –k オプションの両方を指定すると、エラーになります。

–v

より詳細な情報を要求します。追加の出力には署名者と、署名形式に含まれている場合は、オブジェクトが署名された時間が含まれます。これは、安定した解析可能な出力ではありません。

オペランド

次のオペランドを指定できます。

file

署名または検証される 1 つ以上の elf オブジェクト。-e オプションを使用して、またはほかのすべてのオプションのあとに、少なくとも 1 つの elf オブジェクトを指定する必要があります。

使用例 1 ファイル内の鍵/証明書を使用した ELF オブジェクトの署名
example$ elfsign sign -k myprivatekey -c mycert -e lib/libmylib.so.1
使用例 2 elf オブジェクトの署名の検証

example$ elfsign verify -c mycert -e lib/libmylib.so.1
elfsign: verification of lib/libmylib.so.1 passed
使用例 3 証明書要求の生成
example$ elfsign request -k mykey -r req.pkcs10
Enter Company Name / Stock Symbol or some other globally 
unique identifier.
This will be the prefix of the Certificate DN: ORCL
使用例 4 オブジェクトに関する情報の判定

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.

終了ステータス

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

意味
サブコマンド
0
操作の成功
sign/verify/request
1
無効な引数
2
ELF オブジェクトの検証に失敗しました
verify
3
ELF オブジェクトを開けません
sign/verify
4
証明書ロードをできないか、または無効な証明書です
sign/verify
5
非公開鍵をロードできないか、秘密鍵が無効か、またはトークンラベルが無効な署名です
sign
6
署名の追加に失敗しました
sign
7
署名されていないオブジェクトを検証しようとしているか、またはオブジェクトが ELF ファイルではありません
verify

ファイル

/etc/crypto/certs

–c フラグが使用されていない場合に verify サブコマンドで検索されるディレクトリ。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
developer/base-developer-utilities
インタフェースの安定性
下記を参照。

elfsign コマンドおよびサブコマンドは「確実」です。アプリケーションは elfsign の出力形式に依存すべきではありませんが、list サブコマンドの出力形式は「確実」です。

関連項目

date(1), pktool(1), cryptoadm(1M), libpkcs11(3LIB), attributes(5)