gnupg
提供: FreeBSD入門
スポンサーリンク
gnupg (GnuPG) とは、PGP を置き換えるための完全でフリーな実装です。
読み方
- gnupg
- ぐにゅーぴーじー
目次
概要
gnupg は、特許である IDEA アルゴリズムを使用しません。IDEAは、制限なしに利用できません。gnupgは、RFC2440(OpenPGP)準拠のアプリケーションです。
インストール
pkgコマンドでインストールする場合
sudo pkg install gnupg pinentry-curses
Updating repository catalogue The following 6 packages will be installed: Installing libgpg-error: 1.12 Installing libgcrypt: 1.5.3 Installing libassuan: 2.1.1 Installing pth: 2.0.7 Installing libksba: 1.3.0 Installing gnupg: 2.0.22 The installation will require 10 MB more space 2 MB to be downloaded Proceed with installing packages [y/N]: y libgpg-error-1.12.txz 100% 71KB 71.5KB/s 71.5KB/s 00:01 libgcrypt-1.5.3.txz 100% 406KB 202.8KB/s 315.6KB/s 00:02 libassuan-2.1.1.txz 100% 87KB 87.4KB/s 87.4KB/s 00:01 pth-2.0.7.txz 100% 146KB 146.1KB/s 146.1KB/s 00:01 libksba-1.3.0.txz 100% 149KB 149.0KB/s 149.0KB/s 00:01 gnupg-2.0.22.txz 100% 1242KB 248.4KB/s 461.9KB/s 00:05 Checking integrity... done [1/6] Installing libgpg-error-1.12... done [2/6] Installing libgcrypt-1.5.3... done [3/6] Installing libassuan-2.1.1... done [4/6] Installing pth-2.0.7... done [5/6] Installing libksba-1.3.0... done [6/6] Installing gnupg-2.0.22... done ############################################################################### A T T E N T I O N In order to use gpg-agent, you need to install a pinentry dialog. The following ports of pinentry dialogs are available: security/pinentry-curses (ncurses based dialog) security/pinentry-gtk (GTK 1.2 based dialog) security/pinentry-gtk2 (GTK 2.x based dialog) security/pinentry-qt (QT3 based dialog) security/pinentry-q4 (QT4 based dialog) ###############################################################################
設定
gnupgの設定ファイルや鍵は、~/.gnupg に格納されます。 設定ファイルは、 ~/.gnupg/gpg.conf です。
使い方
コマンドラインオプション
gpg (GnuPG) 2.0.22 libgcrypt 1.5.3 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: ~/.gnupg サポートしているアルゴリズム: 公開鍵: RSA, ELG, DSA, ?, ? 暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 ハッシュ: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 圧縮: 無圧縮, ZIP, ZLIB, BZIP2 形式: gpg [オプション] [ファイル] 署名、検査、暗号化や復号 デフォルトの操作は、入力データに依存 コマンド: -s, --sign 署名を作成 --clearsign クリア・テクスト署名を作成 -b, --detach-sign 分離署名を作成 -e, --encrypt データを暗号化 -c, --symmetric 暗号化には共通鍵暗号方式のみを使用 -d, --decrypt データを復号 (デフォルト) --verify 署名を検証 -k, --list-keys 鍵の一覧 --list-sigs 鍵と署名の一覧 --check-sigs 鍵署名の検査と一覧 --fingerprint 鍵とフィンガー・プリントの一覧 -K, --list-secret-keys 秘密鍵の一覧 --gen-key 新しい鍵対を生成 --gen-revoke 失効証明書を生成 --delete-keys 公開鍵リングから鍵を削除 --delete-secret-keys 秘密鍵リングから鍵を削除 --sign-key 鍵に署名 --lsign-key 鍵へ内部的に署名 --edit-key 鍵への署名や編集 --passwd パスフレーズの変更 --export 鍵をエクスポートする --send-keys 鍵サーバに鍵をエクスポートする --recv-keys 鍵サーバから鍵をインポートする --search-keys 鍵サーバの鍵を検索する --refresh-keys 鍵サーバから鍵を全部更新する --import 鍵のインポート/マージ --card-status カード・ステイタスを表示 --card-edit カードのデータを変更 --change-pin カードのPINを変更 --update-trustdb 信用データベースを更新 --print-md メッセージ・ダイジェストを表示 --server サーバ・モードで実行 オプション: -a, --armor ASCII形式の外装を作成 -r, --recipient USER-ID USER-ID用に暗号化 -u, --local-user USER-ID 署名や復号にこのUSER-IDを使用 -z N 圧縮レベルをNに設定 (0は非圧縮) --textmode 正準テキスト・モードを使用 -o, --output FILE 出力をFILEに書き出す -v, --verbose 冗長 -n, --dry-run 無変更 -i, --interactive 上書き前に確認 --openpgp 厳密なOpenPGPの振舞を採用 (コマンドとオプション全部の一覧は、マニュアル・ページをご覧ください) 例: -se -r Bob [ファイル] ユーザBobへ署名と暗号化 --clearsign [ファイル] クリア・テクスト署名を作成 --detach-sign [ファイル] 分離署名を作成 --list-keys [名前] 鍵を表示 --fingerprint [名前] フィンガー・プリントを表示 バグは <http://bugs.gnupg.org> までご報告ください。
鍵の作成
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ご希望の鍵の種類を選択してください: (1) RSA と RSA (デフォルト) (2) DSA と Elgamal (3) DSA (署名のみ) (4) RSA (署名のみ) あなたの選択は? RSA 鍵は 1024 から 4096 ビットの長さで可能です。 鍵長は? (2048) 要求された鍵長は2048ビット 鍵の有効期限を指定してください。 0 = 鍵は無期限 <n> = 鍵は n 日間で期限切れ <n>w = 鍵は n 週間で期限切れ <n>m = 鍵は n か月間で期限切れ <n>y = 鍵は n 年間で期限切れ 鍵の有効期間は? (0) は無期限です これで正しいですか? (y/N) y GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。 本名: kaoru 電子メール・アドレス: foo@bar.com コメント: test 次のユーザIDを選択しました: "kaoru (test) <foo@bar.com>" 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o 秘密鍵を保護するためにパスフレーズがいります。 ┌─────────────────────────────────────────────────┐ │ このパスフレーズをもう一度入力してください │ │ │ │ パスフレーズ ___________________________________│ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────┘ たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、 乱数生成器に十分なエントロピーを供給する機会を与えることができます。 たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動かす、 ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生成器に 十分なエントロピーを供給する機会を与えることができます。 gpg: /home/kaoru/.gnupg/trustdb.gpg: 信用データベースができました gpg: 鍵EB939698を絶対的に信用するよう記録しました 公開鍵と秘密鍵を作成し、署名しました。 gpg: 信用データベースの検査 gpg: 「ギリギリの信用」3、「全面的信用」1、PGP信用モデル gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u pub 2048R/EB939698 2014-03-22 フィンガー・プリント = 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 uid kaoru (test) <foo@bar.com> sub 2048R/436B4C25 2014-03-22
鍵の確認
秘密鍵
gpg --list-secret-keys
$ gpg --list-secret-keys /home/kaoru/.gnupg/secring.gpg ------------------------------- sec 2048R/EB939698 2014-03-22 uid kaoru (test) <foo@bar.com> ssb 2048R/436B4C25 2014-03-22
公開鍵
$ gpg --list-keys /home/kaoru/.gnupg/pubring.gpg ------------------------------- pub 2048R/EB939698 2014-03-22 uid kaoru (test) <foo@bar.com> sub 2048R/436B4C25 2014-03-22
公開鍵のエクスポート
公開鍵をエクスポートします。
$ gpg -o ./kaoru.pub --export kaoru $ ls kaoru.pub kaoru.pub $ file kaoru.pub kaoru.pub: GPG key public ring
秘密鍵のエクスポート
秘密鍵(プライベート鍵)をエクスポートするときは、以下のコマンドで行います。
$ gpg -o file.secret --export-secret-key kaoru
秘密鍵のインポート
$ gpg --import file.secret
公開鍵のインポート
user で kaoru の公開鍵 kaoru.pub をインポートします。
% gpg --import kaoru.pub gpg: directory `/home/user/.gnupg' created gpg: new configuration file `/home/user/.gnupg/gpg.conf' created gpg: WARNING: options in `/home/user/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/home/user/.gnupg/secring.gpg' created gpg: keyring `/home/user/.gnupg/pubring.gpg' created gpg: /home/user/.gnupg/trustdb.gpg: trustdb created gpg: key EB939698: public key "kaoru (test) <foo@bar.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
データの暗号化
テスト用のファイルを用意します。
% echo 'clear text' > test.txt
使用する鍵を指定して実行します。 ユーザー userが kaoru の鍵を用いて、test.txtを暗号化します。test.txt.gpgというファイルが作成されます。
user@a1:~/tmp % gpg -e -r kaoru test.txt gpg: 436B4C25: There is no assurance this key belongs to the named user pub 2048R/436B4C25 2014-03-22 kaoru (test) <foo@bar.com> Primary key fingerprint: 2B77 8105 570A 1A16 3B6A 2969 1AFC 0BE7 EB93 9698 Subkey fingerprint: 7C0E 6415 97E8 747F D5B8 F394 F2C3 6406 436B 4C25 It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y user@a1:~/tmp % ls -l total 12 -rw-r--r-- 1 user user 1178 Mar 22 19:18 kaoru.pub -rw-r--r-- 1 user user 11 Mar 22 19:21 test.txt -rw-r--r-- 1 user user 351 Mar 22 19:22 test.txt.gpg user@a1:~/tmp % file test.txt.gpg test.txt.gpg: data
データの復号化
復号化するときに、パスフレーズの入力画面が表示されます。 復号したデータの出力ファイルを -o オプションで指定します。出力ファイルを指定しない場合は、標準出力に表示されます。
$ gpg -r kaoru -d -o test.txt test.txt.gpg ここで、パスフレーズの入力のダイアログが表示されます。 gpg: 2048-ビットRSA鍵, ID 436B4C25, 日付2014-03-22に暗号化されました "kaoru (test) <foo@bar.com>" $ ls -l total 12 -rw-r--r-- 1 kaoru user 1178 3月 22 19:14 kaoru.pub -rw-r--r-- 1 kaoru user 11 3月 22 19:25 test.txt -rw-r--r-- 1 kaoru user 351 3月 22 19:24 test.txt.gpg $ cat test.txt clear text
鍵の削除
公開鍵と秘密鍵の削除方法は、以下の通りです。
$ gpg --delete-keys keyname $ gpg --delete-secret-keys keyname
FAQ
can't connect to the PIN entry module
pinentry-curses を入れてない場合、以下のエラーで gpg --gen-key が終了します。
gpg-agent[40930]: can't connect to the PIN entry module: IPCの接続コールに失敗しました gpg-agent[40930]: command get_passphrase failed: PIN 入力がありません gpg: エージェントに問題: PIN 入力がありません gpg: 鍵の生成が取り消されました。 [1] 40913 exit 2 gpg --gen-key
関連項目
- gnupg
ツイート
スポンサーリンク