|
現: 2022-08-13 (土) 14:09:06 yuji |
| + | * GnuPG [#w8527e2a] |
| + | GnuPGは,暗号化・復号化・署名等を行うための暗号化ソフトウェア。メールの暗号化にも使用できます。~ |
| + | - 暗号化すると,特定の人しか解読できないファイルが作成できる~ |
| + | - 署名すると,特定の人が作成したことを示せる~ |
| | | |
| + | GnuPGの元になったのは,Phil Zimmermannさんが開発した''PGP(Pretty Good Privacy)''と呼んでいる暗号化ツール。~ |
| + | PGPの最初のバージョンは,1991年に公開された。当時のPhil Zimmermannさんは反核運動家で,政府等の組織からデータやメッセージ(特に電子メール)を保護するための手段としてPGPを開発したみたいで,それをフリーソフトとして公開した。 |
| + | |
| + | その後,PGPは改良を重ねていったが,1998年にRFC 2440で''OpenPGP''として標準化された。また,特許上の制限や国際政治上の問題も2000年を機に大幅に緩和されPGP を含む多くの暗号製品が本格的に使われるようになった。 |
| + | |
| + | GnuPGは,OpenPGPをベースにドイツで生まれた製品。特定の個人・組織が独占することのないようGNUプロジェクトの一環として,現在も開発が行われている。 |
| + | |
| + | GnuPGは,特許で制限されている暗号化アルゴリズムを使用していない。 |
| + | |
| + | 2系列/1.4系列で対応している暗号化アルゴリズムは,以下のようなものがある。 |
| + | - 公開鍵暗号~ |
| + | -- RSA(1.0.3より)~ |
| + | -- ElGamal~ |
| + | -- DSA~ |
| + | -- ECDH~ |
| + | -- ECDSA~ |
| + | -- EdDSA~ |
| + | - 共通鍵暗号~ |
| + | -- IDEA(1.4.13/2.0.20より)~ |
| + | -- 3DES~ |
| + | -- CAST5~ |
| + | -- Blowfish~ |
| + | -- AES-128, AES-192, AES-256~ |
| + | -- Twofish~ |
| + | -- Camellia-128, Camellia-192, Camellia-256(1.4.10/2.0.12より)~ |
| + | - 暗号学的ハッシュ関数~ |
| + | -- MD5~ |
| + | -- SHA-1~ |
| + | -- RIPEMD-160~ |
| + | -- SHA-256, SHA-384, SHA-512, SHA-224~ |
| + | - 圧縮形式~ |
| + | -- 無圧縮~ |
| + | -- ZIP~ |
| + | -- ZLIB~ |
| + | -- BZIP2~ |
| + | |
| + | 2.2(2.1)系では,楕円曲線暗号(楕円曲線DSA(ECDSA),楕円曲線ディフィー・ヘルマン鍵共有(ECDH),エドワーズ曲線デジタル署名アルゴリズム(EdDSA))に対応している。 |
| + | |
| + | ** フロントエンドや統合パッケージ [#fe79dbfa] |
| + | GnuPGはコマンドラインで使用するツールであるが,GUIで操作できるフロントエンドも開発されていて,KMailやEvolutionといった電子メールクライアントに統合されたものや,単独のGUIアプリケーションもある。 |
| + | |
| + | - GUIフロントエンドの例~ |
| + | -- [[WinPT>http://winpt.wald.intevation.org/]] (Windows用)~ |
| + | -- [[Kleopatra>https://apps.kde.org/kleopatra/]](Windows/Linux/macOS用) |
| + | -- [[GnuPG Shell>http://www.tech-faq.com/gnupg-shell.html]] (Linux/Windows用)~ |
| + | -- [[KGpg>https://www.kde.org/applications/utilities/kgpg/]], [[Seahorse>https://wiki.gnome.org/Apps/Seahorse]] (Linux用)~ |
| + | - 電子メールクライアントの例~ |
| + | -- [[Enigmail>https://addons.thunderbird.net/ja/thunderbird/addon/enigmail/]] (Linux/macOS/Windows用,Mozilla ThunderbirdおよびSeamonkey用アドオン)~ |
| + | -- [[KMail>https://www.kde.org/applications/internet/kmail/]], [[Evolution>https://wiki.gnome.org/Apps/Evolution]] (Linux用)~ |
| + | - 統合パッケージ(GnuPGとGUIフロントエンド・電子メールクライアントの一括インストール) |
| + | -- [[Gpg4win>https://www.gpg4win.org/]] (Windows用)~ |
| + | -- [[GPGTools>https://gpgtools.org/]] (macOS用)~ |
| + | |
| + | ** 他の暗号化通信との違い [#ldb27995] |
| + | + SSLなどとの違い~ |
| + | SSL/TLS(Secure Sockets Layer/Transport Layer Security)やSSH(Secure Shell)のポート転送を用いて,''メールサーバー''との通信を暗号化することが出来る。~ |
| + | しかしそれでは,送信後のメールの配送やサーバで保管されるメールについては,暗号化されていないことになる。~ |
| + | ~Bcc(Blind Carbon Copy)でメールを送る場合,メールのヘッダに宛先が表示されないが配送自体も暗号化されないし,サーバーで保管された状態のメールは暗号化されていない。~ |
| + | ~これに対してPGPやGnuPGでは,必ずしも安全でない通信経路やサーバーを介しても,メッセージが暗号化されていて秘密を守れる。~ |
| + | + 暗号化ZIPとの違い~ |
| + | パスワードつきのZIPファイル(暗号化ZIP)は,そのファイルごとにパスワードが設定される。~ |
| + | しかし,何らかの理由でパスワードを変更したいと思っても,送付したあとには出来ない。ファイルをいくつも作るとなると,そのパスワードの管理が面倒になる。~ |
| + | ~PGPやGnuPGでの暗号化では,鍵(セッション鍵)が受信者の公開鍵で暗号化されている。したがって,その安全性は受信者の鍵の管理に依存することになる。~ |
| + | 受信者の持つ秘密鍵はパスフレーズを入力しないと使用出来ないが,もちろんそのパスフレーズは後でも変更出来る。~ |
| + | ~なお,暗号化ZIPでは,一つのファイルに対してパスワードを知っている複数の人が復号できますが,PGPやGnuPGにおいても,複数の利用者が(それぞれの秘密鍵で)ファイルを復号出来るような単一のファイルを作ることは可能。~ |
| + | + S/MIMEとの違い~ |
| + | S/MIME(Secure/Multipurpose Internet Mail Extensions)は,RSA Data Security社が開発したメールの暗号化や署名についての規格(RSA公開鍵暗号方式)で,そのデータフォーマットはPGPやGnuPGとは異なっている。IETFによって標準化されている。~ |
| + | S/MIMEでは認証局により鍵や証明書が発行される。また認証局では所有者の正当性を保証するための管理を行っている。~ |
| + | このため,S/MIMEでのデジタル証明書の利用については有料となる。 |
| + | |
| + | * GnuPGをインストール [#uf825992] |
| + | GnuPGはコマンドラインツールです。 |
| + | |
| + | GnuPGには3つの系列が存在している。~ |
| + | - ''Stable''(2.3/2.4) 2系の最新版。初版リリースは2021/04/08~ |
| + | 現在の開発系列。 |
| + | - ''LTS''(2.2) 2系の旧版。サポート終了は2024/12/31の予定~ |
| + | 現在のサポート系列で楕円曲線暗号など新機能を実装している。バージョン2.2.0で安定版となった。(2017/08/28) |
| + | - ''Legacy''(1,4) 旧版~ |
| + | 旧来のスタンドアロン版。古いシステムや組み込み用途に適している。初版リリースは,2004/12/16だった。 |
| + | |
| + | これから使用する場合には,''LTS''か''Stable''をインストールします。 |
| + | |
| + | ** Windowsマシンにインストール [#k1a28cb0] |
| + | コマンドラインで動作するGnuPGのみをインストールします。~ |
| + | |
| + | 下に書いてある''Gpg4winをインストールする''のように,Microsoft Outlookでも暗号化出来るようにするアドイン等も合わせてインストールしたい場合は,ここでの方法でインストールしないで,下に書いてある''Gpg4winをインストールする''でインストールした方が1回で済むので手間がかからない。 |
| + | |
| + | [[公式サイト>https://gnupg.org/download/]] から,windows版のインストラーをダウンロードする。 |
| + | 2系の最新バージョンは2.4.5。~ |
| + | |
| + | ダウンロードしたインストーラーをダブルクリックして実行する。~ |
| + | [Next]ボタンを3回ぐらいクリックでインストールされる。インストール先は,C:\Program Files (x86)\gnupgになっている。 |
| + | 古いバージョンをデフォルトでインストールしている場合は,上書きインストールされます。 |
| + | |
| + | インストーラーにより実行PATHが設定されるため,すぐにコマンドプロンプトから使用できます。~ |
| + | コマンドプロンプトを開いて, |
| + | C:\home\yuji>gpg --version |
| + | gpg (GnuPG) 2.2.23 |
| + | libgcrypt 1.8.6 |
| + | Copyright (C) 2020 Free Software Foundation, Inc. |
| + | License GPLv3+: GNU GPL version 3 or later <https://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: C:/home/yuji/.gnupg |
| + | サポートしているアルゴリズム: |
| + | 公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA |
| + | 暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, |
| + | CAMELLIA128, CAMELLIA192, CAMELLIA256 |
| + | ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 |
| + | 圧縮: 無圧縮, ZIP, ZLIB, BZIP2 |
| + | のようにすると,実行とバージョンが確認できる。 |
| + | |
| + | デフォルトでは,鍵(公開鍵,秘密鍵)などを保存するディレクトリは,Windowsマシンの場合は''C:/Users/<ユーザー>/AppData/Roaming/gnupg''になる。~ |
| + | Linuxマシン(Unix系)などでは''~/.gnupg''になる。 |
| + | |
| + | これで特に問題はないが,他のフォルダに変更したい場合は環境変数''GNUPGHOME''で任意ディレクトリを設定することが出来ます。~ |
| + | また,gpg.exe実行時に''--homedir''オプションで,直接指定することも出来るようになっている。 |
| + | |
| + | *** Gpg4winをインストールする [#t4a99f3b] |
| + | Gpg4winは,GnuPGやGUIフロントエンド・Microsoft Outlook用のアドインなどを一括インストール出来るパッケージ。~ |
| + | Microsoft OutlookでGnuPGを使用してメールを暗号化したい場合は,このパッケージをインストールすると手っ取り早い。''上記のコマンドライン版のGnuPGも含まれているので,コマンドライン版はインストールする必要はないです。'' |
| + | |
| + | [[公式サイト>https://www.gpg4win.org/]] から最新版のインストーラーをダウンロードする。~ |
| + | |
| + | インストールは,ダウンロードしたインストーラーをダブルクリックするだけ。~ |
| + | ''GpgOL''というOutlook用のアドオンがインストールされ,Outlookを再起動するとリボンの右の方にアイコンが表示されていて,公開鍵を使用してメールを暗号化することが簡単に出来るようになる。~ |
| + | また,''GpgEX''というWindowsのエキスプローラーに統合化された暗号化ツールと,''Kleopatra''という鍵を管理するツールもインストールされる。 |
| + | |
| + | ** Linuxマシンにインストール [#gefa07c5] |
| + | パッケージ管理ツールからインストールする。 |
| + | |
| + | * 暗号化する場合の流れ [#l3392175] |
| + | GnuPGは,以下のような流れで使用する。~ |
| + | - 暗号化するための公開鍵を取得する~ |
| + | - 公開鍵を使用して暗号化する~ |
| + | - 暗号化した情報(ファイル)を送る~ |
| + | - 情報(ファイル)を受信した人が自分の秘密鍵で複合する~ |
| + | |
| + | 暗号化するためには,鍵が必要になります。~ |
| + | 普通は,暗号化してメールを送って欲しい人は''公開鍵''という種類の鍵を公開鍵サーバーで公開しています。~ |
| + | 公開されている''公開鍵''を取得することが出来れば,その鍵を使用して暗号化することが出来るようになります。 |
| + | |
| + | 復号化する側は,''公開鍵''とペアになっている''秘密鍵''を自分で持っているので,その秘密鍵を使ってデコードします。この''秘密鍵''は,復号化する人しか持っていないので,メールの暗号化が成立することになります。 |
| + | |
| + | GnuPGを使う場合の原則は,次の5つになる。~ |
| + | - &color(red){暗号化には,受信者の公開鍵を使用する。};~ |
| + | - &color(red){復号には,受信者の秘密鍵を使用する。};~ |
| + | - 署名には,送信者の秘密鍵を使用する。~ |
| + | - 署名の検証には,送信者の公開鍵を使用する。~ |
| + | - &color(red){秘密鍵を使用するとき,パスフレーズを入力する。};~ |
| + | |
| + | * 鍵の管理 [#k6185ac3] |
| + | ** 自分の鍵を作成する [#w4b027a7] |
| + | 自分の鍵がまだ無い場合は,新規に鍵を作成する。''--keygen''オプションを使用する。 |
| + | 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.de>" |
| + | |
| + | 本名: Yuji Ueno |
| + | 電子メール・アドレス: y-ueno@xxxxx.co.jp |
| + | コメント: mail for xxxxx Co.,LTD. |
| + | 次のユーザーIDを選択しました: |
| + | “Yuji Ueno (mail for xxxxx Co.,LTD.) <y-ueno@xxxxx.co.jp>” |
| + | 名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O |
| + | 秘密鍵を保護するためにパスフレーズがいります。 |
| + | |
| + | 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす |
| + | とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で |
| + | 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 |
| + | ......+++++ |
| + | .+++++ |
| + | 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす |
| + | とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で |
| + | 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 |
| + | .+++++ |
| + | 十分な長さの乱数が得られません。OSがもっと乱雑さを収集 |
| + | できるよう、何かしてください! (あと75バイトいります) |
| + | .gpg: 鍵CB547A37を絶対的に信用するよう記録しました |
| + | 公開鍵と秘密鍵を作成し、署名しました。 |
| + | |
| + | 作成した''公開鍵''があることを確認する。''--list-keys''オプションを使用する。 |
| + | D:\home\ueno> gpg --list-keys |
| + | C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg |
| + | ------------------------------------------------ |
| + | pub dsa1024 2012-12-01 [SC] |
| + | XX870D25014C60E8319983AA6CC87XXYYBCC8D5E |
| + | uid [ 究極 ] Yuji Ueno (mail for XXXXX Co.,LTD.) <y-ueno@xxxxx.co.jp> |
| + | sub elg2048 2012-12-01 [E] |
| + | |
| + | 秘密鍵があることを確認する。''--list-secret-keys''オプションを使用する。 |
| + | D:\home\ueno> gpg --list-secret-keys |
| + | C:/Users/yueno/AppData/Roaming/gnupg/pubring.gpg |
| + | ------------------------------------------------ |
| + | sec dsa1024 2012-12-01 [SC] |
| + | XX870D25014C60E8319983AA6CC87XXYYBCC8D5E |
| + | uid [ 究極 ] Yuji Ueno (mail for XXXXX Co.,LTD.) <y-ueno@xxxxx.co.jp> |
| + | ssb elg2048 2012-12-01 [E] |
| + | |
| + | sec dsa1024 2012-12-01 [SC] というのは秘密鍵で,1024のDSAの鍵です。公開鍵の場合は,pubになります。 |
| + | |
| + | 鍵を作成した時に登録した''パスフレーズは,絶対忘れないようにすることと,絶対に漏らさないこと''が大事。 |
| + | |
| + | ** 自分の公開鍵を公開する [#t640ad98] |
| + | インターネット上にある鍵サーバー(公開鍵サーバ)に自分の公開鍵を登録して,他の人に公開鍵を渡すことが出来ます。~ |
| + | 公開鍵をファイルまたはデータ情報として渡しても良いのだが,それだとちょっと面倒になる。~ |
| + | そのために,鍵サーバー(公開鍵サーバ)がサービスされています。注意することは,鍵サーバー(公開鍵サーバ)は,公開鍵のやりとりの利便性を図るものであって,公開鍵そのものの正当性は保証してくれているわけではありません。~ |
| + | |
| + | 鍵サーバー(公開鍵サーバ)に公開鍵を登録するには,''--send-keys''オプションを使うと登録出来る。 |
| + | D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <鍵ID> |
| + | |
| + | もし,間違えて送ってしまったものを削除するには,''--gen-revoke''で失効証明書を作成して,revoke.ascに保存している場合は, |
| + | D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys <鍵ID> < revoke.asc |
| + | とすると,削除できる。 |
| + | |
| + | **公開されている鍵を探す [#h2347266] |
| + | メッセージを暗号化する場合は相手の公開鍵を使用して暗号化します。つまり,相手の公開鍵を入手する必要があります。 |
| + | |
| + | 公開鍵を直接ファイル等で貰っても良いのだが,上記の公開鍵を管理してくれる鍵サーバーがある。~ |
| + | 相手が鍵サーバーに公開している場合は,相手のメールアドレスがだいたいわかっていれば,鍵サーバーを検索出来る。(--keyserverを指定しない場合は,gpg.confのkeyserverが使用される)~ |
| + | D:\home\ueno> gpg --keyserver pgp.mit.edu --search-keys yyyyy@xxxxx.com |
| + | gpg: data source: https://37.191.226.104:443 |
| + | (1) Yuji Ueno <yyyyy@xxxxx.com> |
| + | 2048 bit RSA key XXF0FF212XX364BA, 作成: 2016-01-21 |
| + | Keys 1-1 of 1 for "yyyyy@xxxxx.com". 番号(s)、N)次、またはQ)中止を入力してください > |
| + | |
| + | 鍵が見つかったので,取得してみる。 |
| + | D:\home\ueno> gpg --recv-keys XXF0FF212XX364BA |
| + | これで鍵が取得できる。''--list-keys''オプションで確認できる。 |
| + | D:\home\ueno> gpg --list-keys |
| + | pub rsa2048 2016-01-21 [SC] |
| + | XX220398D03470AA38747DD9XXF0FF212XX364BA |
| + | uid [ 究極 ] Yuji Ueno <yyyyy@xxxxx.com> |
| + | sub rsa2048 2016-01-21 [E] |
| + | |
| + | 間違えた時など,消したい場合は,''--delete-keys''を使う。 |
| + | D:\home\ueno> gpg --delete-keys XXF0FF212XX364BA |
| + | |
| + | ** 古い鍵を更新する [#j6981965] |
| + | ずいぶん前に作成した鍵が1024bit DSAなので,鍵の信頼性に問題が出ていて,アプリケーションによっては使用できない場合も出てきた。~ |
| + | しょうがないんで,鍵を更新することにした。 |
| + | |
| + | まず,更新したい鍵に対して新しい鍵を作成する。gpgのバージョンが新しいものを使って期限とかを設定したい場合はfull-generate-keyを使う。 |
| + | D:\home\ueno> gpg --full-generate-key |
| + | |
| + | *** 新しい鍵が出来たら,古い鍵で新しい鍵にサインする [#h277c122] |
| + | 古い鍵を作った人が,新しい鍵を作ったよってことがちゃんと証明できるように署名をする。 |
| + | D:\home\ueno> gpg -u XXXXXXXXXXXXXX --sign-key YYYYYYYYYYYYY |
| + | |
| + | *** 古い鍵を無効にする [#pcb17161] |
| + | D:\home\ueno> gpg -o yuji-old.revoke --gen-revoke XXXXXXXXXXXXXX |
| + | D:\home\ueno> gpg --import yuji-old.revoke |
| + | |
| + | *** 鍵サーバに登録する [#n87be572] |
| + | 古い鍵をrevoke(無効)したので,その情報を鍵サーバーに送信する。 |
| + | D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys XXXXXXXXXXXXXX |
| + | |
| + | 新しい鍵も登録する。 |
| + | D:\home\ueno> gpg --keyserver pgp.mit.edu --send-keys YYYYYYYYYYYYY |
| + | |
| + | *** 古い鍵を削除する [#s94c2e19] |
| + | 手元にある古い鍵を削除。 |
| + | D:\home\ueno> gpg --delete-secret-and-public-keys XXXXXXXXXXXXXX |
| + | |
| + | ** 鍵を別のPCに移す [#yad19ee5] |
| + | 何らかの理由で別のPCに鍵を移す必要がある場合は,以下のようにする。 |
| + | |
| + | *** 鍵がある側 [#q72f2ec4] |
| + | - 公開鍵のエクスポート~ |
| + | $ gpg -o hogehoge.key --export hogehoge |
| + | - 秘密鍵のエクスポート~ |
| + | $ gpg -o hogehoge_sec.key --export-secret-key hogehoge |
| + | - 公開鍵の信用情報エクスポート~ |
| + | $ gpg --export-ownertrust > hogehoge.trust |
| + | |
| + | *** 鍵の移動先 [#l031b9f3] |
| + | - 公開鍵のインポート~ |
| + | $ gpg --import hogehoge.key |
| + | - 秘密鍵のインポート~ |
| + | $ gpg --import --allow-secret-key-import hogehoge_sec.key |
| + | - 公開鍵の信用情報インポート~ |
| + | $ gpg --import-ownertrust hogehoge.trust |
| + | |
| + | ** 有効期限の更新 [#h7a4a73a] |
| + | 鍵の有効期限が切れていた場合は,期限を変更することが出来る。~ |
| + | |
| + | まず期限が切れている鍵のIDを調べてメモする。~ |
| + | 鍵のIDがわかったら,その鍵の期限を変更する。~ |
| + | $ gpg --edit-key [鍵のID] |
| + | gpg> key [NUM] <-- 操作対象のキー番号を指定する。NUMを省略した場合はマスターキーになる |
| + | gpg> expire <-- 次のプロンプトで有効期限を指定出来る |
| + | gpg> save |
| + | gpg> exit |
| + | expireで,0を指定すると無期限,数字で日数,またはその後にw,m,yの単位を入力することにより週,月,年の単位で指定する事ができる。~ |
| + | 例えば,1yと入力する事により一年間有効にする事が出来る。 |
| + | |
| + | これで鍵の有効期限の更新作業が出来る。 |
| + | |
| + | * 代用的な公開鍵サーバー [#u560f258] |
| + | 昔は多くのPGP公開鍵サーバーがあったが,有名なところも含めていろいろと閉鎖されている。~ |
| + | また,公開鍵サーバーは,公開鍵のやりとりの利便性を図る目的で運営されており,鍵そのものの正当性は保証してはいないことに注意する。 |
| + | |
| + | 通常は1日毎にすべての公開鍵サーバーで同期されるので,どこか1箇所を利用するようにする。 |
| + | |
| + | GnuPGでは,デフォルトで使用する公開鍵サーバーをgpg.confで設定している。(Windowsマシン:C:/Users/<ユーザー>/AppData/Roaming/gnupg,Linuxマシンでは,~/.gnupg) |
| + | keyserver hkp://keys.gnupg.net |
| + | このように設定されている。変更したい場合は,以下のリストからどれかを設定すれば良い。 |
| + | |
| + | 動作しているPGP公開鍵サーバー |
| + | |name |url |port|h |
| + | |MIT PGP Public Key Server|hkp://pgp.mit.edu |11371| |
| + | |PGP Public Keyserver |http://pgp.nic.ad.jp |11371/80| |
| + | |OpenPGPkeyserver |hkp://keys.gnupg.net |11371| |
| + | |SKS OpenPGP Key server |hkp://pool.sks-keyservers.net|11371| |
| + | |OpenPGPkeyserver |http://minsky.surfnet.nl |11371| |
| + | |
| + | * GnuPGでファイルをパスワード(共通鍵暗号)で暗号化・復号化する方法 [#n9dbfb6c] |
| + | とりあえず簡単にパスワードを指定してファイルを暗号化したい場合でも,GnuPGでファイルを暗号化することが出来ます。~ |
| + | > gpg --symmetric ファイル |
| + | または |
| + | > gpg -c ファイル |
| + | とします。 |
| + | |
| + | 例えば, |
| + | > gpg --symmetric hello.txt |
| + | or |
| + | > gpg -c hello.txt |
| + | |
| + | ** メール文書を暗号化 [#q46015f7] |
| + | メールなどでは,そのメール文書の受取人の公開鍵を使って暗号化して,その受取人しか復号化することが出来ないようにします。 |
| + | > gpg --encrypt --recipient 受取人のメールアドレス メール文書のファイル名 |
| + | 暗号化すると,メール文書のファイル名.gpgという暗号化されたバイナリファイルが作成される。 |
| + | |
| + | メールに貼り付ける場合にはテキストファイルにする必要がある。 |
| + | > gpg --encrypt --armor --recipient 受取人のメールアドレス メール文書のファイル名 |
| + | とすれば,メール文書のファイル名.ascという暗号化されたテキストファイルが作成される。 |
| + | |
| + | もし,受取人と自分の両方で復号化出来るようにするには, |
| + | > gpg --encrypt --recipient 受取人のメールアドレス --recipient 自分のメールアドレス メール文書のファイル名 |
| + | とすると,自分の秘密鍵でも復号化出来ることになります。 |
| + | |
| + | ** 暗号方式を指定してファイルを暗号化 [#le46eb5f] |
| + | GnuPGの設定ファイル''~/.gnupg/gpg.conf''に''cipher-algo AES256''と暗号方式を追加するか,コマンド実行時に''--cipher-algo''オプションで指定します。 |
| + | |
| + | 例:暗号方式を指定してファイルを暗号化 |
| + | > gpg --cipher-algo AES256 --symmetric hello.txt |
| + | |
| + | *** 暗号時にパスフレーズを標準入力から取得する [#p3d0e7f5] |
| + | 暗号時にパスフレーズを標準入力から指示する場合は,''--passphrase-fd 0''オプションを使います。 |
| + | > gpg --batch --passphrase-fd 0 --symmetric hello.txt < password.txt |
| + | |
| + | *** 圧縮方式を指定して暗号化する [#j9573423] |
| + | 圧縮方式を指定するには,''--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 |
| + | |
| + | ** ファイルを復号化する [#a5ff0ba8] |
| + | ファイルを復号化する場合は,以下のようにします。 |
| + | > gpg hello.txt.gpg |
| + | もしくは |
| + | > gpg -d hello.txt.gpg |
| + | |
| + | *** 標準入力からパスワードを取り込んで復号化する [#o343845c] |
| + | 複合時パスフレーズを標準入力から指示する場合は,''--passphrase-fd 0''オプションを使います。 |
| + | > gpg --batch --passphrase-fd 0 hello.txt.gpg < password.txt |
| + | |
| + | *** 暗号方式一覧 [#sbecb9f8] |
| + | gpgが対応している暗号方式を確認する場合は,以下のようにします。 |
| + | > gpg --version |
| + | ... |
| + | Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, |
| + | CAMELLIA128, CAMELLIA192, CAMELLIA256 |
| + | |
| + | *** 対応している圧縮方式一覧 [#ad63c492] |
| + | gpgが対応している圧縮方式を確認する場合は,以下のようにします。 |
| + | > gpg --version |
| + | ... |
| + | Compression: Uncompressed, ZIP, ZLIB, BZIP2 |