上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/GnuPG
をテンプレートにして作成
資料室
PC/GnuPG をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* GnuPG
[[GnuPG(OpenPGP):https://www.gnupg.org/]]は,通信やデー...
電子メールのメッセージの暗号化にも使用できる。~
- 暗号化すると特定の人しか解読できないファイルが作成できる~
- デジタル署名すると作成した人を特定できる~
GnuPGの元になったのは,Phil Zimmermannさんが開発した''PGP...
PGPの最初のバージョンは,1991年に公開された。当時のPhil Z...
その後,PGPは改良を重ねていったが,1998年にRFC 2440で[[Op...
また,特許上の制限や国際政治上の問題も2000年を機に大幅に...
GnuPGはOpenPGPをベースに独で生まれたソフトウェア。特定の...
GnuPGでは特許で制限される暗号化アルゴリズムは使用していな...
GnuPGは現在バージョン2系/バージョン1.4系があるが,対応し...
- 公開鍵暗号~
-- [[RSA:https://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F...
-- [[ElGamal:https://ja.wikipedia.org/wiki/ElGamal%E6%9A%...
-- [[DSA:https://ja.wikipedia.org/wiki/Digital_Signature_...
-- [[ECDH:https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%8...
-- [[ECDSA:https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%...
-- [[EdDSA:https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%...
- 共通鍵暗号~
-- [[IDEA:https://ja.wikipedia.org/wiki/International_Dat...
-- [[3DES:https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A...
-- [[CAST5:https://ja.wikipedia.org/wiki/CAST-128]]~
-- [[Blowfish:https://ja.wikipedia.org/wiki/Blowfish]]~
-- [[AES-128, AES-192, AES-256:https://ja.wikipedia.org/w...
-- [[Twofish:https://ja.wikipedia.org/wiki/Twofish]]~
-- [[Camellia-128, Camellia-192, Camellia-256:https://ja....
- ハッシュ関数~
-- [[MD5:https://ja.wikipedia.org/wiki/MD5]]~
-- [[SHA-1:https://ja.wikipedia.org/wiki/SHA-1]]~
-- [[RIPEMD-160:https://ja.wikipedia.org/wiki/RIPEMD]]~
-- [[SHA-256, SHA-384, SHA-512, SHA-224:https://ja.wikipe...
- 圧縮形式~
-- 無圧縮~
-- [[ZIP:https://ja.wikipedia.org/wiki/ZIP_(%E3%83%95%E3%...
-- [[ZLIB:https://ja.wikipedia.org/wiki/Zlib]]~
-- [[BZIP2:https://ja.wikipedia.org/wiki/Bzip2]]~
//2.2(2.1)系では,楕円曲線暗号(楕円曲線DSA(ECDSA),...
** フロントエンドや統合パッケージ
GnuPGはコマンドラインで使用するツールなので,GUIフロント...
それらには,GUIアプリケーションやKMailやEvolutionといった...
- GUIフロントエンドの例~
-- [[WinPT>http://winpt.wald.intevation.org/]] (Windows...
-- [[Kleopatra>https://apps.kde.org/kleopatra/]](Windows...
-- [[GnuPG Shell>http://www.tech-faq.com/gnupg-shell.html...
-- [[KGpg>https://www.kde.org/applications/utilities/kgpg...
- 電子メールクライアントの例~
-- [[Thunderbird>https://www.thunderbird.net/ja/]] (Windo...
--- [[Enigmail>https://addons.thunderbird.net/ja/thunderb...
-- [[Sylpheed>https://sylpheed.sraoss.jp/ja/]] (Windows/L...
-- [[eM Client>https://emclient.jp/]] (Windows/macOS用)~
-- [[KMail>https://apps.kde.org/kmail2/]], [[Evolution>h...
- 統合パッケージ(GnuPGとGUIフロントエンド・電子メールク...
-- [[Gpg4win>https://www.gpg4win.org/]] (Windows用)~
-- [[GPGTools>https://gpgtools.org/]] (macOS用)~
** 他の暗号化通信との違い
+ SSLなどとの違い~
SSL/TLS(Secure Sockets Layer/Transport Layer Security)...
しかしそれでは,送信後のメールの配送やサーバで保管される...
~Bcc(Blind Carbon Copy)でメールを送る場合,メールのヘッ...
~これに対してPGPやGnuPGでは,必ずしも安全でない通信経路や...
+ 暗号化ZIPとの違い~
パスワードつきのZIPファイル(暗号化ZIP)は,そのファイル...
しかし,何らかの理由でパスワードを変更したいと思っても,...
~PGPやGnuPGでの暗号化では,鍵(セッション鍵)が受信者の公...
受信者の持つ秘密鍵はパスフレーズを入力しないと使用出来な...
~なお,暗号化ZIPでは,一つのファイルに対してパスワードを...
+ S/MIMEとの違い~
S/MIME(Secure/Multipurpose Internet Mail Extensions)は...
IETFによって標準化されている。~
S/MIMEでは第3者認証局により鍵や証明書が発行される。また第...
このため,S/MIMEでのデジタル証明書の利用については有料と...
* GnuPGをインストール
GnuPGはコマンドラインツールで,3つのバージョンがある。~
- ''Stable''(2.4)~
バージョン2系の最新版で,現在の開発系列。初版リリースは20...
- ''LTS''(2.2)~
バージョン2系の旧版。2024/12/31でサポートが終了した。~
楕円曲線暗号などの新機能を実装している。バージョン2.2.0で...
- ''Legacy''(1.4)~
古いバージョン。旧来のスタンドアロン版。~
古いシステムや組み込み用途に適している。初版リリースは200...
これから使用する場合には,''LTS''か''Stable''をインストー...
** Windowsマシンにインストール
Microsoft Outlookでも暗号化出来るようにするアドイン等も合...
*** コマンドラインで動作するGnuPGのみをインストール
[[公式サイト>https://gnupg.org/download/]] から,windows...
''バージョン2系の最新版は2.4.7。''~
ダウンロードしたインストーラーをダブルクリックして実行す...
[Next]ボタンを3回ぐらいクリックでインストールされる。イン...
古いバージョンをインストールしている場合は,上書きインス...
インストーラーにより実行PATHに追加されるため,すぐにコマ...
インストール後確認するにはコマンドプロンプトを開いて,~
C:\home\ueno> gpg --version
gpg (GnuPG) 2.4.6
libgcrypt 1.11.0
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/g...
This is free software: you are free to change and redist...
There is NO WARRANTY, to the extent permitted by law.
Home: C:\home\ueno\.gnupg
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES2...
TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2
と,実行とバージョンが確認できる。
デフォルトでは,鍵(公開鍵,秘密鍵)などを保存するディレ...
C:/Users/<ユーザー>/AppData/Roaming/gnupg
になる。~
Linuxマシン(Unix系)などでは
~/.gnupg
になる。~
他のフォルダに変更したい場合は,環境変数''GNUPGHOME''で任...
また,gpg.exe実行時に''--homedir''オプションで,直接指定...
*** Gpg4winをインストールする
Gpg4winは,Windows用のGnuPG・GUIフロントエンド・Microsoft...
WindowsマシンでMicrosoft OutlookでGnuPGを使用してメールを...
''コマンドライン版GnuPGも含まれているので,上記のコマンド...
[[公式サイト>https://www.gpg4win.org/]] から最新版のイン...
インストールは,ダウンロードしたインストーラーをダブルク...
''GpgOL''というOutlook用のアドオンが一緒にインストールさ...
また,''GpgEX''というWindowsのエキスプローラーに統合化さ...
** Linuxマシンにインストール
多くのLinuxディストリビューションではデフォルトでインスト...
パッケージ管理ツールでもインストールできる。~
# yum install gpg
* 暗号化する場合の流れ
GnuPGを利用する場合は,以下のような流れになる。~
- 暗号化するための公開鍵を取得する~
- 公開鍵を使用して暗号化する~
- 暗号化した情報(ファイル)を送る~
- 情報(ファイル)を受信した人が自分の秘密鍵で複合化する~
暗号化するためには,鍵が必要になる。~
通常,暗号化してメールを送って欲しい人は,''公開鍵''とい...
公開されている''公開鍵''を取得することが出来れば,その公...
復号化する側は,''公開鍵''とペアになっている''秘密鍵''を...
この''秘密鍵''は復号化する人しか持っていないので,電子メ...
GnuPGを使う場合の原則は,次の5つになる。~
- &color(red){暗号化には受信者の公開鍵を使用する。};~
- &color(red){復号には受信者の秘密鍵を使用する。};~
- デジタル署名には送信者の秘密鍵を使用する。~
- デジタル署名の検証には送信者の公開鍵を使用する。~
- &color(red){秘密鍵を使用するときパスフレーズを入力する...
* 鍵の管理
** 自分の鍵を作成する
自分の鍵がまだ無い場合は,新規に鍵を作成する。''-&#x...
D:\home\ueno> gpg --generate-key
ご希望の鍵の種類を選択してください:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (署名のみ)
(4) RSA (署名のみ)
選択? 1
SA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
0 = 鍵は無期限
<n> = 鍵は n 日間で満了
<n>w = 鍵は n 週間で満了
<n>m = 鍵は n か月間で満了
<n>y = 鍵は n 年間で満了
鍵の有効期間は? (0)
これで正しいですか? (y/N) y
あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf...
本名: Yuji Ueno
電子メール・アドレス: yuji@yueno.net
コメント: mail for Yuji Ueno.
次のユーザーIDを選択しました:
“Yuji Ueno (mail for Yuji Ueno.) <yuji@yueno.net>”
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か...
秘密鍵を保護するためにパスフレーズがいります。
今から長い乱数を生成します。キーボードを打つとか、マウス...
とか、ディスクにアクセスするとかの他のことをすると、乱数...
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいた...
......+++++
.+++++
今から長い乱数を生成します。キーボードを打つとか、マウス...
とか、ディスクにアクセスするとかの他のことをすると、乱数...
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいた...
.+++++
十分な長さの乱数が得られません。OSがもっと乱雑さを収集
できるよう、何かしてください! (あと75バイトいります)
.gpg: 鍵CBXXXXXを絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。
作成した''公開鍵''があることを確認する。''--lis...
D:\home\ueno> gpg --list-keys
C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg
------------------------------------------------
pub dsa1024 2012-12-01 [SC]
XXYYZZ25014C60E8319983AA6CC87XXYYYYYYYYY
uid [ 究極 ] Yuji Ueno (mail for Yuji Ueno.)...
sub elg2048 2012-12-01 [E]
秘密鍵があることを確認する。''--list-secret-key...
D:\home\ueno> gpg --list-secret-keys
C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg
------------------------------------------------
sec dsa1024 2012-12-01 [SC]
XXYYZZ25014C60E8319983AA6CC87XXYYYYYYYYY
uid [ 究極 ] Yuji Ueno (mail for Yuji Ueno.)...
ssb elg2048 2012-12-01 [E]
sec dsa1024 2012-12-01 [SC] というのは秘密鍵で,1024のD...
公開鍵の場合は,pubになります。
鍵を作成した時に登録した''パスフレーズは,絶対忘れないよ...
** 自分の公開鍵を公開する
インターネット上にある鍵サーバー(公開鍵サーバ)に自分の...
公開鍵をファイルまたはデータ情報として渡しても良いのだが...
そのために,鍵サーバー(公開鍵サーバ)がサービスされてい...
鍵サーバー(公開鍵サーバ)に公開鍵を登録するには,''-...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <...
もし,間違えて送ってしまったものを削除するには,''-&...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <...
とすると,その公開鍵を無効にできる。(削除は出来ない)
**公開されている鍵を探す
メッセージを暗号化する場合は相手の公開鍵を使用して暗号化...
公開鍵を直接ファイル等で貰っても良いのだが,上記の公開鍵...
相手が鍵サーバーに公開している場合は,相手のメールアドレ...
D:\home\ueno> gpg --keyserver pgp.mit.edu --search-keys ...
gpg: data source: https://37.191.226.104:443
(1) Yuji Ueno <yyyyy@xxxxx.com>
2048 bit RSA key XXF0FF212XXYYYYY, 作成: 2016-...
Keys 1-1 of 1 for "yyyyy@xxxxx.com". 番号(s)、N)次、ま...
鍵が見つかったので,取得してみる。
D:\home\ueno> gpg --recv-keys XXF0FF212XXYYYYY
これで鍵が取得できる。''--list-keys''オプション...
D:\home\ueno> gpg --list-keys
pub rsa2048 2016-01-21 [SC]
XX220398D03470AA38747DD9XXF0FF212XXYYYYY
uid [ 究極 ] Yuji Ueno <yyyyy@xxxxx.com>
sub rsa2048 2016-01-21 [E]
間違えた時などで削除したい場合は,''--delete-ke...
D:\home\ueno> gpg --delete-keys XXF0FF212XXYYYYY
** 古い鍵を更新する
ずいぶん前に作成した鍵が1024bit DSAなので,鍵の信頼性に問...
しょうがないんで,鍵を更新することにした。
まず,更新したい鍵に対して新しい鍵を作成する。gpgのバージ...
D:\home\ueno> gpg --full-generate-key
*** 新しい鍵が出来たら,古い鍵で新しい鍵にサインする
古い鍵を作った人が,新しい鍵を作ったよってことがちゃんと...
D:\home\ueno> gpg -u XXXXXXXXXXXXXX --sign-key YYYYYYYYY...
*** 古い鍵を無効にする
D:\home\ueno> gpg -o yuji-old.revoke --gen-revoke XXXXXX...
D:\home\ueno> gpg --import yuji-old.revoke
*** 鍵サーバに登録する
古い鍵をrevoke(無効)したので,その情報を鍵サーバーに送...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys XX...
新しい鍵も登録する。
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys YY...
*** 古い鍵を削除する
手元にある古い鍵を削除。
D:\home\ueno> gpg --delete-secret-and-public-keys XXXXXX...
** 鍵を別のPCに移す
何らかの理由で別のPCに鍵を移す必要がある場合は,以下のよ...
*** 鍵がある側
- 公開鍵のエクスポート~
$ gpg -o hogehoge.key --export hogehoge
- 秘密鍵のエクスポート~
$ gpg -o hogehoge_sec.key --export-secret-key hogehoge
- 公開鍵の信用情報エクスポート~
$ gpg --export-ownertrust > hogehoge.trust
*** 鍵の移動先
- 公開鍵のインポート~
$ gpg --import hogehoge.key
- 秘密鍵のインポート~
$ gpg --import --allow-secret-key-import hogehoge_sec.key
- 公開鍵の信用情報インポート~
$ gpg --import-ownertrust hogehoge.trust
** 有効期限の更新
鍵の有効期限が切れていた場合は,期限を変更することが出来...
まず期限が切れている鍵のIDを調べてメモする。~
鍵のIDがわかったら,その鍵の期限を変更する。~
$ gpg --edit-key [鍵のID]
gpg> key [NUM] <-- 操作対象のキ...
gpg> expire <-- 次のプロンプ...
gpg> save
gpg> exit
expireで,0を指定すると無期限,数字で日数,またはその後に...
例えば,1yと入力する事により一年間有効にする事が出来る。
これで鍵の有効期限の更新作業が出来る。
* 代用的な公開鍵サーバー
昔は多くのPGP公開鍵サーバーがあったが,有名なところも含め...
また,公開鍵サーバーは,公開鍵のやりとりの利便性を図る目...
通常は1日毎にすべての公開鍵サーバーで同期されるようになっ...
デフォルトで使用する公開鍵サーバーは,''gpg.conf''で設定...
Windowsマシンでは,''C:/Users/<ユーザー>/AppData/Roamin...
keyserver hkp://keys.gnupg.net
このように設定されている。変更したい場合は,以下のリスト...
動作しているPGP公開鍵サーバー
|name |url |...
|%%MIT PGP Public Key Server%%|%%hkp://pgp.mit.edu%% ...
|OpenPGP keyserver |hkp://keys.gnupg.net |...
|Ubuntu keyserver |hkp://keyserver.ubuntu.com |...
|%%SKS OpenPGP Key Server%% |%%hkp://keyserver3.maxweis...
|%%SKS OpenPGP Key Server%% |%%hkp://pgpkeys.eu%% ...
|SKS OpenPGP Key Server |hkp://pgp.asia |...
|%%OpenPGP key server%% |%%hkp://pgp.surfnet.nl%% ...
|SKS OpenPGP Key Server |hkp://key-server.org |...
どうもhkp://pgp.mit.eduは完全にサービスを停止したみたいだ...
[[http://pgp.nic.ad.jp>http://pgp.nic.ad.jp]]は,2022/09/...
また,単独のKey Server(相互に同期はしていない)として以...
|name |url |...
|OpenPGP Key Server |hkp://keys.openpgp.org |...
* GnuPGで暗号化・復号化する方法
** ファイルをパスワード(共通鍵暗号)で暗号化・復号化する
とりあえず簡単にパスワードを指定してファイルを暗号化した...
> gpg --symmetric ファイル
または
> gpg -c ファイル
とします。
ダイアログが表示され,パスワード入力を促されます。パスワ...
復号化する場合は,
> gpg --decrypt ファイル.gpg
or
> gpg -d ファイル.gpg
とします。~
** メール文書を暗号化(公開鍵での暗号化)
メールなどでは,そのメール文書の受取人の公開鍵を使って暗...
> gpg --encrypt --recipient 受取人のメールアドレス メー...
暗号化すると,メール文書のファイル名.gpgという暗号化され...
メールに貼り付ける場合にはテキストファイルにする必要があ...
> gpg --encrypt --armor --recipient 受取人のメールアドレ...
とすれば,メール文書のファイル名.ascという暗号化されたテ...
もし,受取人と自分の両方で復号化出来るようにするには,
> gpg --encrypt --recipient 受取人のメールアドレス --rec...
とすると,自分の秘密鍵でも復号化出来るようになる。
** 暗号方式を指定してファイルを暗号化
暗号方式を指定するには,GnuPGの設定ファイル''~/.gnupg/gpg...
例:暗号方式を指定してファイルを暗号化
> gpg --cipher-algo AES256 --symmetric hello.txt
*** 暗号方式一覧
gpgが対応している暗号方式を確認する場合は,以下のようにし...
> gpg --version
...
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256...
CAMELLIA128, CAMELLIA192, CAMELLIA256
*** 暗号時にパスフレーズを標準入力から取得する
暗号時にパスフレーズを標準入力から指示する場合は,''--pas...
> gpg --batch --passphrase-fd 0 --symmetric hello.txt < ...
*** 圧縮方式を指定して暗号化する
圧縮方式を指定するには,''--compress-algo''オプションを使...
> gpg --compress-algo zlib --symmetric hello.txt
主に使用される圧縮方式は以下のようなものがある。
:--compress-algo none|圧縮なし
:--compress-algo zip|zip
:--compress-algo zlib|zlib, gzip
:--compress-algo bzip2|bzip2
*** 対応している圧縮方式一覧
gpgが対応している圧縮方式を確認する場合は,以下のようにし...
> gpg --version
...
Compression: Uncompressed, ZIP, ZLIB, BZIP2
** ファイルを復号化する
ファイルを復号化する場合は,以下のようにします。
> gpg hello.txt.gpg
もしくは
> gpg -d hello.txt.gpg
*** 標準入力からパスワードを取り込んで復号化する
複合時パスフレーズを標準入力から指示する場合は,''--passp...
> gpg --batch --passphrase-fd 0 hello.txt.gpg < password...
終了行:
* GnuPG
[[GnuPG(OpenPGP):https://www.gnupg.org/]]は,通信やデー...
電子メールのメッセージの暗号化にも使用できる。~
- 暗号化すると特定の人しか解読できないファイルが作成できる~
- デジタル署名すると作成した人を特定できる~
GnuPGの元になったのは,Phil Zimmermannさんが開発した''PGP...
PGPの最初のバージョンは,1991年に公開された。当時のPhil Z...
その後,PGPは改良を重ねていったが,1998年にRFC 2440で[[Op...
また,特許上の制限や国際政治上の問題も2000年を機に大幅に...
GnuPGはOpenPGPをベースに独で生まれたソフトウェア。特定の...
GnuPGでは特許で制限される暗号化アルゴリズムは使用していな...
GnuPGは現在バージョン2系/バージョン1.4系があるが,対応し...
- 公開鍵暗号~
-- [[RSA:https://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F...
-- [[ElGamal:https://ja.wikipedia.org/wiki/ElGamal%E6%9A%...
-- [[DSA:https://ja.wikipedia.org/wiki/Digital_Signature_...
-- [[ECDH:https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%8...
-- [[ECDSA:https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%...
-- [[EdDSA:https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%...
- 共通鍵暗号~
-- [[IDEA:https://ja.wikipedia.org/wiki/International_Dat...
-- [[3DES:https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A...
-- [[CAST5:https://ja.wikipedia.org/wiki/CAST-128]]~
-- [[Blowfish:https://ja.wikipedia.org/wiki/Blowfish]]~
-- [[AES-128, AES-192, AES-256:https://ja.wikipedia.org/w...
-- [[Twofish:https://ja.wikipedia.org/wiki/Twofish]]~
-- [[Camellia-128, Camellia-192, Camellia-256:https://ja....
- ハッシュ関数~
-- [[MD5:https://ja.wikipedia.org/wiki/MD5]]~
-- [[SHA-1:https://ja.wikipedia.org/wiki/SHA-1]]~
-- [[RIPEMD-160:https://ja.wikipedia.org/wiki/RIPEMD]]~
-- [[SHA-256, SHA-384, SHA-512, SHA-224:https://ja.wikipe...
- 圧縮形式~
-- 無圧縮~
-- [[ZIP:https://ja.wikipedia.org/wiki/ZIP_(%E3%83%95%E3%...
-- [[ZLIB:https://ja.wikipedia.org/wiki/Zlib]]~
-- [[BZIP2:https://ja.wikipedia.org/wiki/Bzip2]]~
//2.2(2.1)系では,楕円曲線暗号(楕円曲線DSA(ECDSA),...
** フロントエンドや統合パッケージ
GnuPGはコマンドラインで使用するツールなので,GUIフロント...
それらには,GUIアプリケーションやKMailやEvolutionといった...
- GUIフロントエンドの例~
-- [[WinPT>http://winpt.wald.intevation.org/]] (Windows...
-- [[Kleopatra>https://apps.kde.org/kleopatra/]](Windows...
-- [[GnuPG Shell>http://www.tech-faq.com/gnupg-shell.html...
-- [[KGpg>https://www.kde.org/applications/utilities/kgpg...
- 電子メールクライアントの例~
-- [[Thunderbird>https://www.thunderbird.net/ja/]] (Windo...
--- [[Enigmail>https://addons.thunderbird.net/ja/thunderb...
-- [[Sylpheed>https://sylpheed.sraoss.jp/ja/]] (Windows/L...
-- [[eM Client>https://emclient.jp/]] (Windows/macOS用)~
-- [[KMail>https://apps.kde.org/kmail2/]], [[Evolution>h...
- 統合パッケージ(GnuPGとGUIフロントエンド・電子メールク...
-- [[Gpg4win>https://www.gpg4win.org/]] (Windows用)~
-- [[GPGTools>https://gpgtools.org/]] (macOS用)~
** 他の暗号化通信との違い
+ SSLなどとの違い~
SSL/TLS(Secure Sockets Layer/Transport Layer Security)...
しかしそれでは,送信後のメールの配送やサーバで保管される...
~Bcc(Blind Carbon Copy)でメールを送る場合,メールのヘッ...
~これに対してPGPやGnuPGでは,必ずしも安全でない通信経路や...
+ 暗号化ZIPとの違い~
パスワードつきのZIPファイル(暗号化ZIP)は,そのファイル...
しかし,何らかの理由でパスワードを変更したいと思っても,...
~PGPやGnuPGでの暗号化では,鍵(セッション鍵)が受信者の公...
受信者の持つ秘密鍵はパスフレーズを入力しないと使用出来な...
~なお,暗号化ZIPでは,一つのファイルに対してパスワードを...
+ S/MIMEとの違い~
S/MIME(Secure/Multipurpose Internet Mail Extensions)は...
IETFによって標準化されている。~
S/MIMEでは第3者認証局により鍵や証明書が発行される。また第...
このため,S/MIMEでのデジタル証明書の利用については有料と...
* GnuPGをインストール
GnuPGはコマンドラインツールで,3つのバージョンがある。~
- ''Stable''(2.4)~
バージョン2系の最新版で,現在の開発系列。初版リリースは20...
- ''LTS''(2.2)~
バージョン2系の旧版。2024/12/31でサポートが終了した。~
楕円曲線暗号などの新機能を実装している。バージョン2.2.0で...
- ''Legacy''(1.4)~
古いバージョン。旧来のスタンドアロン版。~
古いシステムや組み込み用途に適している。初版リリースは200...
これから使用する場合には,''LTS''か''Stable''をインストー...
** Windowsマシンにインストール
Microsoft Outlookでも暗号化出来るようにするアドイン等も合...
*** コマンドラインで動作するGnuPGのみをインストール
[[公式サイト>https://gnupg.org/download/]] から,windows...
''バージョン2系の最新版は2.4.7。''~
ダウンロードしたインストーラーをダブルクリックして実行す...
[Next]ボタンを3回ぐらいクリックでインストールされる。イン...
古いバージョンをインストールしている場合は,上書きインス...
インストーラーにより実行PATHに追加されるため,すぐにコマ...
インストール後確認するにはコマンドプロンプトを開いて,~
C:\home\ueno> gpg --version
gpg (GnuPG) 2.4.6
libgcrypt 1.11.0
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/g...
This is free software: you are free to change and redist...
There is NO WARRANTY, to the extent permitted by law.
Home: C:\home\ueno\.gnupg
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES2...
TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2
と,実行とバージョンが確認できる。
デフォルトでは,鍵(公開鍵,秘密鍵)などを保存するディレ...
C:/Users/<ユーザー>/AppData/Roaming/gnupg
になる。~
Linuxマシン(Unix系)などでは
~/.gnupg
になる。~
他のフォルダに変更したい場合は,環境変数''GNUPGHOME''で任...
また,gpg.exe実行時に''--homedir''オプションで,直接指定...
*** Gpg4winをインストールする
Gpg4winは,Windows用のGnuPG・GUIフロントエンド・Microsoft...
WindowsマシンでMicrosoft OutlookでGnuPGを使用してメールを...
''コマンドライン版GnuPGも含まれているので,上記のコマンド...
[[公式サイト>https://www.gpg4win.org/]] から最新版のイン...
インストールは,ダウンロードしたインストーラーをダブルク...
''GpgOL''というOutlook用のアドオンが一緒にインストールさ...
また,''GpgEX''というWindowsのエキスプローラーに統合化さ...
** Linuxマシンにインストール
多くのLinuxディストリビューションではデフォルトでインスト...
パッケージ管理ツールでもインストールできる。~
# yum install gpg
* 暗号化する場合の流れ
GnuPGを利用する場合は,以下のような流れになる。~
- 暗号化するための公開鍵を取得する~
- 公開鍵を使用して暗号化する~
- 暗号化した情報(ファイル)を送る~
- 情報(ファイル)を受信した人が自分の秘密鍵で複合化する~
暗号化するためには,鍵が必要になる。~
通常,暗号化してメールを送って欲しい人は,''公開鍵''とい...
公開されている''公開鍵''を取得することが出来れば,その公...
復号化する側は,''公開鍵''とペアになっている''秘密鍵''を...
この''秘密鍵''は復号化する人しか持っていないので,電子メ...
GnuPGを使う場合の原則は,次の5つになる。~
- &color(red){暗号化には受信者の公開鍵を使用する。};~
- &color(red){復号には受信者の秘密鍵を使用する。};~
- デジタル署名には送信者の秘密鍵を使用する。~
- デジタル署名の検証には送信者の公開鍵を使用する。~
- &color(red){秘密鍵を使用するときパスフレーズを入力する...
* 鍵の管理
** 自分の鍵を作成する
自分の鍵がまだ無い場合は,新規に鍵を作成する。''-&#x...
D:\home\ueno> gpg --generate-key
ご希望の鍵の種類を選択してください:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (署名のみ)
(4) RSA (署名のみ)
選択? 1
SA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
0 = 鍵は無期限
<n> = 鍵は n 日間で満了
<n>w = 鍵は n 週間で満了
<n>m = 鍵は n か月間で満了
<n>y = 鍵は n 年間で満了
鍵の有効期間は? (0)
これで正しいですか? (y/N) y
あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf...
本名: Yuji Ueno
電子メール・アドレス: yuji@yueno.net
コメント: mail for Yuji Ueno.
次のユーザーIDを選択しました:
“Yuji Ueno (mail for Yuji Ueno.) <yuji@yueno.net>”
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か...
秘密鍵を保護するためにパスフレーズがいります。
今から長い乱数を生成します。キーボードを打つとか、マウス...
とか、ディスクにアクセスするとかの他のことをすると、乱数...
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいた...
......+++++
.+++++
今から長い乱数を生成します。キーボードを打つとか、マウス...
とか、ディスクにアクセスするとかの他のことをすると、乱数...
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいた...
.+++++
十分な長さの乱数が得られません。OSがもっと乱雑さを収集
できるよう、何かしてください! (あと75バイトいります)
.gpg: 鍵CBXXXXXを絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。
作成した''公開鍵''があることを確認する。''--lis...
D:\home\ueno> gpg --list-keys
C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg
------------------------------------------------
pub dsa1024 2012-12-01 [SC]
XXYYZZ25014C60E8319983AA6CC87XXYYYYYYYYY
uid [ 究極 ] Yuji Ueno (mail for Yuji Ueno.)...
sub elg2048 2012-12-01 [E]
秘密鍵があることを確認する。''--list-secret-key...
D:\home\ueno> gpg --list-secret-keys
C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg
------------------------------------------------
sec dsa1024 2012-12-01 [SC]
XXYYZZ25014C60E8319983AA6CC87XXYYYYYYYYY
uid [ 究極 ] Yuji Ueno (mail for Yuji Ueno.)...
ssb elg2048 2012-12-01 [E]
sec dsa1024 2012-12-01 [SC] というのは秘密鍵で,1024のD...
公開鍵の場合は,pubになります。
鍵を作成した時に登録した''パスフレーズは,絶対忘れないよ...
** 自分の公開鍵を公開する
インターネット上にある鍵サーバー(公開鍵サーバ)に自分の...
公開鍵をファイルまたはデータ情報として渡しても良いのだが...
そのために,鍵サーバー(公開鍵サーバ)がサービスされてい...
鍵サーバー(公開鍵サーバ)に公開鍵を登録するには,''-...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <...
もし,間違えて送ってしまったものを削除するには,''-&...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <...
とすると,その公開鍵を無効にできる。(削除は出来ない)
**公開されている鍵を探す
メッセージを暗号化する場合は相手の公開鍵を使用して暗号化...
公開鍵を直接ファイル等で貰っても良いのだが,上記の公開鍵...
相手が鍵サーバーに公開している場合は,相手のメールアドレ...
D:\home\ueno> gpg --keyserver pgp.mit.edu --search-keys ...
gpg: data source: https://37.191.226.104:443
(1) Yuji Ueno <yyyyy@xxxxx.com>
2048 bit RSA key XXF0FF212XXYYYYY, 作成: 2016-...
Keys 1-1 of 1 for "yyyyy@xxxxx.com". 番号(s)、N)次、ま...
鍵が見つかったので,取得してみる。
D:\home\ueno> gpg --recv-keys XXF0FF212XXYYYYY
これで鍵が取得できる。''--list-keys''オプション...
D:\home\ueno> gpg --list-keys
pub rsa2048 2016-01-21 [SC]
XX220398D03470AA38747DD9XXF0FF212XXYYYYY
uid [ 究極 ] Yuji Ueno <yyyyy@xxxxx.com>
sub rsa2048 2016-01-21 [E]
間違えた時などで削除したい場合は,''--delete-ke...
D:\home\ueno> gpg --delete-keys XXF0FF212XXYYYYY
** 古い鍵を更新する
ずいぶん前に作成した鍵が1024bit DSAなので,鍵の信頼性に問...
しょうがないんで,鍵を更新することにした。
まず,更新したい鍵に対して新しい鍵を作成する。gpgのバージ...
D:\home\ueno> gpg --full-generate-key
*** 新しい鍵が出来たら,古い鍵で新しい鍵にサインする
古い鍵を作った人が,新しい鍵を作ったよってことがちゃんと...
D:\home\ueno> gpg -u XXXXXXXXXXXXXX --sign-key YYYYYYYYY...
*** 古い鍵を無効にする
D:\home\ueno> gpg -o yuji-old.revoke --gen-revoke XXXXXX...
D:\home\ueno> gpg --import yuji-old.revoke
*** 鍵サーバに登録する
古い鍵をrevoke(無効)したので,その情報を鍵サーバーに送...
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys XX...
新しい鍵も登録する。
D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys YY...
*** 古い鍵を削除する
手元にある古い鍵を削除。
D:\home\ueno> gpg --delete-secret-and-public-keys XXXXXX...
** 鍵を別のPCに移す
何らかの理由で別のPCに鍵を移す必要がある場合は,以下のよ...
*** 鍵がある側
- 公開鍵のエクスポート~
$ gpg -o hogehoge.key --export hogehoge
- 秘密鍵のエクスポート~
$ gpg -o hogehoge_sec.key --export-secret-key hogehoge
- 公開鍵の信用情報エクスポート~
$ gpg --export-ownertrust > hogehoge.trust
*** 鍵の移動先
- 公開鍵のインポート~
$ gpg --import hogehoge.key
- 秘密鍵のインポート~
$ gpg --import --allow-secret-key-import hogehoge_sec.key
- 公開鍵の信用情報インポート~
$ gpg --import-ownertrust hogehoge.trust
** 有効期限の更新
鍵の有効期限が切れていた場合は,期限を変更することが出来...
まず期限が切れている鍵のIDを調べてメモする。~
鍵のIDがわかったら,その鍵の期限を変更する。~
$ gpg --edit-key [鍵のID]
gpg> key [NUM] <-- 操作対象のキ...
gpg> expire <-- 次のプロンプ...
gpg> save
gpg> exit
expireで,0を指定すると無期限,数字で日数,またはその後に...
例えば,1yと入力する事により一年間有効にする事が出来る。
これで鍵の有効期限の更新作業が出来る。
* 代用的な公開鍵サーバー
昔は多くのPGP公開鍵サーバーがあったが,有名なところも含め...
また,公開鍵サーバーは,公開鍵のやりとりの利便性を図る目...
通常は1日毎にすべての公開鍵サーバーで同期されるようになっ...
デフォルトで使用する公開鍵サーバーは,''gpg.conf''で設定...
Windowsマシンでは,''C:/Users/<ユーザー>/AppData/Roamin...
keyserver hkp://keys.gnupg.net
このように設定されている。変更したい場合は,以下のリスト...
動作しているPGP公開鍵サーバー
|name |url |...
|%%MIT PGP Public Key Server%%|%%hkp://pgp.mit.edu%% ...
|OpenPGP keyserver |hkp://keys.gnupg.net |...
|Ubuntu keyserver |hkp://keyserver.ubuntu.com |...
|%%SKS OpenPGP Key Server%% |%%hkp://keyserver3.maxweis...
|%%SKS OpenPGP Key Server%% |%%hkp://pgpkeys.eu%% ...
|SKS OpenPGP Key Server |hkp://pgp.asia |...
|%%OpenPGP key server%% |%%hkp://pgp.surfnet.nl%% ...
|SKS OpenPGP Key Server |hkp://key-server.org |...
どうもhkp://pgp.mit.eduは完全にサービスを停止したみたいだ...
[[http://pgp.nic.ad.jp>http://pgp.nic.ad.jp]]は,2022/09/...
また,単独のKey Server(相互に同期はしていない)として以...
|name |url |...
|OpenPGP Key Server |hkp://keys.openpgp.org |...
* GnuPGで暗号化・復号化する方法
** ファイルをパスワード(共通鍵暗号)で暗号化・復号化する
とりあえず簡単にパスワードを指定してファイルを暗号化した...
> gpg --symmetric ファイル
または
> gpg -c ファイル
とします。
ダイアログが表示され,パスワード入力を促されます。パスワ...
復号化する場合は,
> gpg --decrypt ファイル.gpg
or
> gpg -d ファイル.gpg
とします。~
** メール文書を暗号化(公開鍵での暗号化)
メールなどでは,そのメール文書の受取人の公開鍵を使って暗...
> gpg --encrypt --recipient 受取人のメールアドレス メー...
暗号化すると,メール文書のファイル名.gpgという暗号化され...
メールに貼り付ける場合にはテキストファイルにする必要があ...
> gpg --encrypt --armor --recipient 受取人のメールアドレ...
とすれば,メール文書のファイル名.ascという暗号化されたテ...
もし,受取人と自分の両方で復号化出来るようにするには,
> gpg --encrypt --recipient 受取人のメールアドレス --rec...
とすると,自分の秘密鍵でも復号化出来るようになる。
** 暗号方式を指定してファイルを暗号化
暗号方式を指定するには,GnuPGの設定ファイル''~/.gnupg/gpg...
例:暗号方式を指定してファイルを暗号化
> gpg --cipher-algo AES256 --symmetric hello.txt
*** 暗号方式一覧
gpgが対応している暗号方式を確認する場合は,以下のようにし...
> gpg --version
...
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256...
CAMELLIA128, CAMELLIA192, CAMELLIA256
*** 暗号時にパスフレーズを標準入力から取得する
暗号時にパスフレーズを標準入力から指示する場合は,''--pas...
> gpg --batch --passphrase-fd 0 --symmetric hello.txt < ...
*** 圧縮方式を指定して暗号化する
圧縮方式を指定するには,''--compress-algo''オプションを使...
> gpg --compress-algo zlib --symmetric hello.txt
主に使用される圧縮方式は以下のようなものがある。
:--compress-algo none|圧縮なし
:--compress-algo zip|zip
:--compress-algo zlib|zlib, gzip
:--compress-algo bzip2|bzip2
*** 対応している圧縮方式一覧
gpgが対応している圧縮方式を確認する場合は,以下のようにし...
> gpg --version
...
Compression: Uncompressed, ZIP, ZLIB, BZIP2
** ファイルを復号化する
ファイルを復号化する場合は,以下のようにします。
> gpg hello.txt.gpg
もしくは
> gpg -d hello.txt.gpg
*** 標準入力からパスワードを取り込んで復号化する
複合時パスフレーズを標準入力から指示する場合は,''--passp...
> gpg --batch --passphrase-fd 0 hello.txt.gpg < password...
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ