* ファイル暗号化/復号化(OpenSSL,GPG) [#p968e5a4]

''◆OPENSSLによるファイル暗号化''

 # 秘密鍵の作成 (privkey.pem)
 openssl genrsa -des3 -out privkey.pem~

 # 電子証明要求書の作成 (csr.pem)
 openssl req -new -key privkey.pem -out csr.pem~

 # 電子証明書の作成 (csr.pem -> cert.pem : 自己証明書)
 openssl req -x509 -in csr.pem -key privkey.pem -out cert.pem

 # opensslのsmimeコマンドを使用して暗号化
 openssl smime -encrypt -aes256 -in test.txt -out test.crypt cert.pem

 # opensslのsmimeコマンドを使用して複号化
 openssl smime -decrypt -aes256 -in test.cryp -out test.txt -inkey privkey.pem -recip cert.pem

 ※以下、別のやり方 (なんかエラー(サイズ制限?)になってダメ?)
 # CAで電子証明書を作成する場合 (csr.pem -> cert.pem)
 openssl x509 -req -in csr.pem -out cert.pem -CA cacert.pem  -CAkey caprivkey.pem -CAcreateserial
 
 # 電子証明書(公開鍵)を使っての暗号化 (plain.txt -> encrypt.txt by cert.pem)
 openssl rsautl -encrypt -in plain.txt -inkey cert.pem -certin -out encrypt.txt
 openssl rsautl -encrypt -in mizunodb.tgz -inkey cert.pem -certin -out mizunodb.tgz.crypt
 
 # 暗号の復号 (plain.txt -> encrypt.txt by privkey.pem)
 openssl rsautl -decrypt -in encrypt.txt -inkey privkey.pem -out plain.txt

&br;
''◆GPG((大抵のLinuxディストリビューションに収録されてる暗号化ソフト。PGPのオープンソース版。))(GNU Privacy Guard)によるファイル暗号化''

 ----設定 ---------------------------------------
 # 公開鍵,秘密鍵の作成(受信側PC)
 gpg --gen-key
 
 # 公開鍵をファイルに出力(受信側PC)
 gpg -o 公開鍵ファイル名 --export 鍵ID
 
 # 公開鍵を送信側PCに転送
 sftp 送信側ホスト
 sftp> put 公開鍵ファイル名
 
 # 公開鍵を取り込み(送信側PC)
 gpg --import 公開鍵ファイル名
 
 # インポートされたか確認(送信側PC)
 gpg --list-keys
 
 # 公開鍵に署名(送信側PC)
 gpg --sign-key 鍵ID
 -------------------------------------------
 
 ---- 暗号化,バックアップ ----
 # 公開鍵を使用して暗号化(送信側PC) ※ファイル名.gpgというファイルができる
 gpg -r 鍵ID -e 暗号化するファイル名
 
 # 暗号化したファイルを転送(送信側PC)
 sftp 受信側ホスト
 sftp> put 暗号化ファイル名
 
 # ファイルの複号化(受信側PC)
 gpg 暗号化ファイル名
 ※パスフレーズを聞かれるので入力
 
 ---- 以下は鍵作成時に表示されたもの ----
 
 すきな鍵の種類を選択してください:
    (1) DSAとElGamal (既定)
    (2) DSA (署名のみ)
    (5) RSA (署名のみ)
 どれにしますか? 5
 どの鍵長にしますか? (1024) 1024
 要求された鍵長は1024ビット
 鍵の期限を決めてください。
       0 = 無期限
         = 有効期限 n 日間
       w = 有効期限 n 週間
       m = 有効期限 n か月間
       y = 有効期限 n 年間
 鍵の有効期間は? (0)
 Keyは無期限です
 これでいいですか (y/n)? y
 
 あなたの鍵を同定するためにユーザーIDが必要です。
 このソフトは本名、コメント、電子メール・アドレスから
 次の書式でユーザーIDを構成します:
     "Heinrich Heine (Der Dichter) "
 
 本名: daisuke
 電子メール・アドレス: daisuke@magata.net
 コメント: testkey
 次のユーザーIDを設定しました:
     "daisuke (testkey) "
 
 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
 秘密鍵を保護するためにパスフレーズがいります。
 
 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
 とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
 乱雑さの大きないい乱数を生成しやすくなるので、お勧めします。
 .+++++
 +++++
 公開鍵と秘密鍵を作り、署名しました。
 絶対的に信用した鍵として記録しました。
 
 pub  1024R/16CDA742 2005-04-16 daisuke (testkey) 
                 指紋 = 9F8C E10D 0711 A18B 0D7D  21AB 95BE 1850 16CD A742
 
 この鍵は暗号化には使用できないことに注意してください。暗号化を行うには、
 「--edit-key」コマンドを用いて副鍵を生成してください。
 
 --list-sigs                鍵と署名の一覧
 --check-sigs               鍵の署名を検証
 --fingerprint              鍵と指紋の一覧
 --list-secret-keys         秘密鍵の一覧
 
 gpg --delete-keys 1024R
 gpg --delete-keys 
 
 gpg --delete-secret-keys 16CDA742


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS