2011年7月5日火曜日

鍵を生成する

暗号化されたWebサーバー(Apache + SSL)
で紹介した鍵の生成について、説明を補足したいと思います。
■証明書の作成                                       

~省略~

②Webサーバ鍵の作成
# openssl genrsa -des3 -out ssl.key/server.key 1024

-des3 : DES3方式でファイルを暗号化
-out ssl.key/server.key : 生成する鍵のファイル
1024 : 鍵の長さ

表示される指示に従って、パスフレーズを入直します。

opensslについての詳しい説明は、manコマンドで見ることができます。


■非対称暗号方式の鍵の生成 genrsa
- genrsa(Generation of RSA Parameters.)
RSAとは、素因数分解の解読困難性に基づく公開暗号方式の一つ。
1978年に開発されて、広く公開されています。

例)openssl genrsa [ -des | -des3 | -idea ] -out file -rand file [numbits]

- gendsa(Generation of DSA Parameters)
DSAとは、離散対数問題に基づく公開鍵暗号を応用して開発された、デジタル署名方式の一つ。

例)openssl gendsa -out file


■暗号化アルゴリズムの指定 -des3
秘密鍵をファイルにそのまま保存するのは、セキュリティ面で危険なので、秘密鍵のファイルを共通鍵暗号のdes3方式で暗号化しています。

- des3
168ビット(実質的には112ビット)の固定長の鍵で暗号化。DESの延命措置として設計された

- des
56ビットの固定長の鍵で暗号化。

- AES
128、192、または256ビットの鍵を使用。アメリカ政府によってDES/3DESの代わりに採用された。


■鍵の中身をみる
# openssl genrsa -des3 -out ssl.key/server.key 1024
で生成されたのは秘密鍵だけです。

# cat server.key
-----BEGIN RSA PRIVATE KEY-----                            
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,F9DCCDC63CF70577

2IR2+M77stMurZo7oovmryQZQDkiFZT3vEukHjnTvT5qLurwRTOs7PAzvqeaniqJ
F+WBgZ0afXnVX6u0QNTbgBDocYRk/pvFNUkelt5NpYacaTNCbsJBy2Xeg2WTrRba
H0gUH8YCoSSV9gRE68zUEJHJKNWI3OQoV81EoRVG4ivR1Uha/9CC5l20kj4aXBDg
cZhwD9XPdcAZO0MBMxIpkVZ73rBlnURTo1/7tdsq8d19gOWQ1100oOhvqb+Yq/8T
3iFndmObcTvlXBsm603RaJmV7V57Ww9WCcOG9kGnJyCcwwmsogRPuyMDV8FJbh7v
BibKIv5c+tCBEPNE5TTLPGi0/I7BrFtM6WskW2HwhhbWHBIJjUIR0t+uvfNwihhS
BgPwlSDUco9zbQGdfITH2F9U26h1i6ZdcndhzAVDZcBNZ+e7Uqb4du0aOxn2IjN9
UUPN+727HidX7NWRlWZpoiro1YAmORxvo6HuXpkdL92kMwgE8K5zU5JPH4PNKAgL
XIn+P59abkenWsvSE6+9zU6umAB74vFTx0kfr8ocmQgLfLiJG8EV+bcOxRkPPDzU
ezac7tLjL+cd346mYDoEjtXIdUR/BMY8yp/eCukCYI2QoTItmrCWvUZ59JM+kZhV
tFVbbNLuqXx9o38NfG6QP/2AQYi8jM/dNluNIkYQ4vtVB0NK6cE+pt4fxkeaF8Wb
0iE661Lq07hcC8TRYOLUs0NfCCHYnLKaTBYXqSsi8gVHBX1GdvtInu2hlgAz6vMr
qH/RmqYMFwDRzzZtVBozuFzqH7u9ZD/dyQsShco1tJq6avgvaO/Jow==
-----END RSA PRIVATE KEY-----


秘密鍵から公開鍵を再現することもできます。
# openssl rsa -in server.key -pubout
Enter pass phrase for server.key:                             
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUvVrWw6cpTJfs01NqGreIKvxO
jBG2ZL34bMIaIrWQCWcI9FzJINuoYU/CCck3HfsekEYwtrSKPD6nngQUz7jVtKXf
AfpHd87+9hZF21Bx4iCVvWtdKRlVhRUAIDjYeCsKUiCMuZJw/GCLa1U/qHSavurl
lZMrijtXjjRl/h9+ewIDAQAB
-----END PUBLIC KEY-----

0 件のコメント:

コメントを投稿