はじめのいっぽ  ページ一覧  更新履歴

rsautl(1)

 =pod
 
 =head1 NAME

NAME

 rsautl - RSA utility

rsautl - RSA ユーティリティ

 =head1 SYNOPSIS

SYNOPSIS

 B<openssl> B<rsautl>
 [B<-in file>]
 [B<-out file>]
 [B<-inkey file>]
 [B<-pubin>]
 [B<-certin>]
 [B<-sign>]
 [B<-verify>]
 [B<-encrypt>]
 [B<-decrypt>]
 [B<-pkcs>]
 [B<-ssl>]
 [B<-raw>]
 [B<-hexdump>]
 [B<-asn1parse>]
 =head1 DESCRIPTION

DESCRIPTION

 The B<rsautl> command can be used to sign, verify, encrypt and decrypt
 data using the RSA algorithm.

rsautl コマンドは RSA アルゴリズムを利用して、署名、検証、暗号化及び復号化を行なう。

 =head1 COMMAND OPTIONS

COMMAND OPTIONS

 =over 4
 
 =item B<-in filename>
 
 This specifies the input filename to read data from or standard input
 if this option is not specified.

-in filename

データを読み込むための入力ファイル名を指定する。このオプションが指定されていない場合、標準入力が利用される。

 =item B<-out filename>
 
 specifies the output filename to write to or standard output by
 default.

-out filename

出力ファイル名を指定する。デフォルトは標準出力である。

 =item B<-inkey file>
 
 the input key file, by default it should be an RSA private key.

-inkey file

入力する鍵ファイル。デフォルトではRSA秘密鍵である。

 =item B<-pubin>
 
 the input file is an RSA public key. 

-pubin

入力ファイルは RSA 公開鍵である。

 =item B<-certin>
 
 the input is a certificate containing an RSA public key. 

-certin

入力は RSA 公開鍵を含む証明書である。

 =item B<-sign>
 
 sign the input data and output the signed result. This requires
 and RSA private key.

-sign

入力データに署名し、署名結果を出力する。これは RSA 秘密鍵が必要である。

 =item B<-verify>
 
 verify the input data and output the recovered data.

-verify

入力データを検証し、復元されたデータを出力する。

 =item B<-encrypt>
 
 encrypt the input data using an RSA public key.

-encrypt

RSA 公開鍵を利用して入力データを暗号化する。

 =item B<-decrypt>
 
 decrypt the input data using an RSA private key.

-decrypt

RSA 秘密鍵を利用して入力データを復号化する。

 =item B<-pkcs, -oaep, -ssl, -raw>
 
 the padding to use: PKCS#1 v1.5 (the default), PKCS#1 OAEP,
 special padding used in SSL v2 backwards compatible handshakes,
 or no padding, respectively.
 For signatures, only B<-pkcs> and B<-raw> can be used.

-pkcs, -oaep, -ssl, -raw

利用するパディング。: それぞれ、PKCS#1 v1.5 (デフォルト)、PKCS#1 OAEP、SSL v2 互換ハンドシェイクを利用した特殊なパディング、あるいはパディング無しを示す。署名の際には、 -pkcs あるいは -raw のみが利用可能である。

 =item B<-hexdump>
 
 hex dump the output data.

-hexdump

16進ダンプでデータを出力する。

 =item B<-asn1parse>
 
 asn1parse the output data, this is useful when combined with the
 B<-verify> option.

-asn1parse

出力データを ASN.1 でパースする。これは、 -verify オプションと組み合わせた際に有効である。

 =back
 
 =head1 NOTES

NOTES

 B<rsautl> because it uses the RSA algorithm directly can only be
 used to sign or verify small pieces of data.

rsautl は RSA アルゴリズムを直接利用しているため、小さなデータを署名、あるいは検証する場合にしか利用できない。

 =head1 EXAMPLES

EXAMPLES

 Sign some data using a private key:
 
  openssl rsautl -sign -in file -inkey key.pem -out sig

秘密鍵を利用してあるデータに署名する:

openssl rsautl -sign -in file -inkey key.pem -out sig

 Recover the signed data
 
  openssl rsautl -verify -in sig -inkey key.pem

署名したデータを復元する。

openssl rsautl -verify -in sig -inkey key.pem

 Examine the raw signed data:

パディングされていない署名されたデータを検証する。

  openssl rsautl -verify -in file -inkey key.pem -raw -hexdump
 
  0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff   ................
  0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64   .....hello world
 The PKCS#1 block formatting is evident from this. If this was done using
 encrypt and decrypt the block would have been of type 2 (the second byte)
 and random padding data visible instead of the 0xff bytes.

PKCS#1 ブロックフォーマットについてはこれを見るとはっきりとわかる。もしもこれが暗号化と複合化を利用しているのであれば、ブロックは タイプ 2 (2バイト) となり、0xff バイトではなくランダムパディングデータが見えるはずである。

 It is possible to analyse the signature of certificates using this
 utility in conjunction with B<asn1parse>. Consider the self signed
 example in certs/pca-cert.pem . Running B<asn1parse> as follows yields:

asn1parse と同時にこのユーティリティを利用すると、証明書による署名の解析が可能である。certs/pca-cert.pem に自己署名された例があるものとしたとき、asn1parse を実行すると以下のようになる。

  openssl asn1parse -in pca-cert.pem
 
     0:d=0  hl=4 l= 742 cons: SEQUENCE          
     4:d=1  hl=4 l= 591 cons:  SEQUENCE          
     8:d=2  hl=2 l=   3 cons:   cont [ 0 ]        
    10:d=3  hl=2 l=   1 prim:    INTEGER           :02
    13:d=2  hl=2 l=   1 prim:   INTEGER           :00
    16:d=2  hl=2 l=  13 cons:   SEQUENCE          
    18:d=3  hl=2 l=   9 prim:    OBJECT            :md5WithRSAEncryption
    29:d=3  hl=2 l=   0 prim:    NULL              
    31:d=2  hl=2 l=  92 cons:   SEQUENCE          
    33:d=3  hl=2 l=  11 cons:    SET               
    35:d=4  hl=2 l=   9 cons:     SEQUENCE          
    37:d=5  hl=2 l=   3 prim:      OBJECT            :countryName
    42:d=5  hl=2 l=   2 prim:      PRINTABLESTRING   :AU
   ....
   599:d=1  hl=2 l=  13 cons:  SEQUENCE          
   601:d=2  hl=2 l=   9 prim:   OBJECT            :md5WithRSAEncryption
   612:d=2  hl=2 l=   0 prim:   NULL              
   614:d=1  hl=3 l= 129 prim:  BIT STRING        
 The final BIT STRING contains the actual signature. It can be extracted with:
 
  openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614

BIT STRING の最後に実際の署名が含まれている。展開するには以下のコマンドを利用する。:

openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614

 The certificate public key can be extracted with:
  
  openssl x509 -in test/testx509.pem -pubout -noout >pubkey.pem

証明書の公開鍵の展開は以下のコマンドで可能である。

openssl x509 -in test/testx509.pem -pubout -noout >pubkey.pem

 The signature can be analysed with:

署名は以下のコマンドで解析できる。

  openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
 
     0:d=0  hl=2 l=  32 cons: SEQUENCE          
     2:d=1  hl=2 l=  12 cons:  SEQUENCE          
     4:d=2  hl=2 l=   8 prim:   OBJECT            :md5
    14:d=2  hl=2 l=   0 prim:   NULL              
    16:d=1  hl=2 l=  16 prim:  OCTET STRING      
       0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5   .F...Js.7...H%..
 This is the parsed version of an ASN1 DigestInfo structure. It can be seen that
 the digest used was md5. The actual part of the certificate that was signed can
 be extracted with:
 
  openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4

これは ASN1 DigestInfo? 構造のパースされたものである。利用されているダイジェストが md5 であることがわかる。署名されている実際の証明書部分は、以下のコマンドで展開できる。

openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4

 and its digest computed with:
 
  openssl md5 -c tbs
  MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5

そして、計算されたダイジェストは以下のようになる。

openssl md5 -c tbs MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5

 which it can be seen agrees with the recovered value above.

これは上でリカバーされた値と一致するように見える。

 =head1 SEE ALSO

SEE ALSO

 L<dgst(1)|dgst(1)>, L<rsa(1)|rsa(1)>, L<genrsa(1)|genrsa(1)>

dgst(1), rsa(1), genrsa(1)

更新日時:2004/05/07 08:50:06
キーワード:
参照:[OpenSSL のマニュアルの翻訳]