【OpenPGP】メール暗号化のためのPGP導入が、とっても簡単になっていた!(有料サービスにも負けない、無料の 脱PPAP最強解)

変更履歴

Rev. 0.8 : 2022年08月06日
新規作成

Rev. 0.9 : 2024年07月07日
下に示す3点を改定
 
2.2 鍵ペアの作成 / 2.2.1 Gpg4winの場合
X.509鍵ペア」について、仮のテストには使用しない方が良い注意説明を
簡略化。
 
2.2 鍵ペアの作成 / 2.2.1 Gpg4winの場合
暗号化アルゴリズムに、RSA4096ビットを勧める理由を簡略化。

 
3.2 公開鍵の受け渡し
OpenPGPのPGP公開鍵サーバーによる公開鍵受け渡し」の記事を追加。
ともなって、メールに公開鍵を添付する方法の記事も、追記。

1 メール暗号化のためのPGP導入が、とっても簡単になっていた!

昨今流行りの「脱PPAP」に、
メールやファイルを暗号化する”S/MIME”や”PGP”を利用するのが、
現在では最適な解答です。

わかってはいるものの、”S/MIME”では費用がかかり、無料のPGPは初期設定が難しい!

それが、OpenPGP系のGnuPGGnuPG2系になって、
対応アプリも出てきて、今(2020年)ではとても簡単になりました。
本記事では、最近のPGPは簡単に導入でき、簡単に扱えることを示します。

S/MIME”や”PGP”には、次のような特長があります。

・ 送信者、受信者双方で電子証明書を用いた暗号化メールを利用することで、
攻撃者による盗聴がされた場合であっても、それを解読することができない。

証明書による署名されたメールを送信するので、
受信者は送信者の真正性
(正当な権限において作成された記録に対し、
虚偽、書き換え等が防止され、第三者から見て責任の所在が明確であること)
を確認することができる。

電子署名されたメールは、送信時の内容を証明しているので、
改ざんを検知するとメールソフトで警告が表示される。

S/MIMEPGPとの違いは、使用する公開鍵の真正性を保証する仕組みです。

現状では、どちらも普及していません。
特にS/MIMEの場合、認証局にお金を支払わなければ利用できません。

PGPの場合は、無料で使うことはできますが、
つい最近(2020年)まで多くのメールソフトは標準対応おらず、
また自分で導入しようにもそう簡単ではありませんでした。
鍵の管理も簡単ではなかったと記憶しています。

今現在では、次のような状況になっています。

OpenPGP系のGnuPGGnuPG2系となっています。
GnuPG2対応の”Gpg4Win”という統合型アプリケーションが
Window向けに配布されました。

また、フリーのメールソフトで良く知られたThunderbirdも、
2020年頃のバージョン78.2.1からデフォルトでOpenPGPが有効となりました。

Gpg4winThunderbirdのようなソフトがでてきたおかげで、
暗号に関する知識に詳しくなくても、
PGPの利用が難しいものではなくとっても簡単になってきています。

本記事では、
Gpg4winの導入や設定、暗号化メール送受信の方法について説明していきます。

2 WindowsにOpenPGP系のGnuPGを導入する

本章では、
OpenPGP系のGpg4winの導入と、公開鍵・秘密鍵の鍵ペア作成について示します。

鍵ペアの作成については、Thunderbirdの場合も示します。

Gpg4winは、ファイルやフォルダの暗号化にも利用できます。
ファイルエクスプローラーに統合されるので、暗号化・復号化操作は直感的に行えます。

主に利用するメールソフトが、Microsoft Outlookではなく
ThunderbirdBecky!であっても、
無料のファイルの暗号化ツールとして大いに導入価値があります。

2.1 Gpg4winの入手とインストール

本節では、Gpg4winの入手とインストールにおける注意点だけを述べます。
基本的に難しい問い合わせはありませんので、
時々表示されるガイダンスにしたがって操作するようにしてください。

2.1.1 Gpg4winの入手

Gpg4winの作製元であるGnuPGの公式サイトのURLは、次の通りです。

GnuPG

ダウンロードページを開きます。
そして、WindowsのGpg4winを選択します。
2022年08月現在の最新バージョンは、4.0.3です。

ダウンロード開始前に図2.1-3のような表示がでますので、 寄付可能な金額を選んでください。
$0であってもOKです。

2.1.2 インストール

インストール開始時におけるGpg4winコンポーネントの選択では、
デフォルトのままで良いでしょう。

もし、使うメールソフトがThunderbirdBecky!で、
Microsoft Outlookを全く使うつもりが無いのであれば、
Outlookアドインをインストールしないよう”GpgOL”のチェックを外した方が良いのかもしれません。

2.2 鍵ペアの作成

まず初めに、自分の公開鍵秘密鍵のペアを作成します。

公開鍵は、
暗号化に使用する鍵で、自分宛のメールを暗号化してもらうよう他者に渡す鍵となります。

秘密鍵は、自分の(デジタル)署名や、
他者から送ってもらった暗号メールを復号化するのに使用する鍵となります。

本節では、Gpg4winでの鍵ペア作成と、Thunderbirdでの鍵ペア作成を示します。

2.2.1 Gpg4winの場合

鍵ペアは、Gpg4winのツールであるKleopatraによって作成します。

インストール後初めてKleopatraを起動した時は、 図2.2-1に示すように表示されます。
New Key Pair」をクリックします。

図2.2-2では、 「個人用のOpenPGP鍵ペアを作成」を選択してください。

X.509鍵ペアは、
JPKI(地方公共団体情報システム機構/公的個人認証サービス)といったような
特別な認証局によって証明された鍵となります(本記事で、取り扱うのは重すぎる)。

仮のテスト用としては、使用しない方が良いでしょう。

次の「名前」には、鍵ぺアの名前を設定します。 日本語は、避けた方が良いでしょう。

メールアドレスには、暗号化メールに使用するメールアドレスを入力します。

Protect the generated key with a passphrase」は、チェックします。
(デジタル)署名時やメールの復号化時において秘密鍵を利用する時、
また秘密鍵を他のPCやAndroidなどの端末へエクスポートする時など、
第三者による不正利用をパスフレーズでガードするようにします。

Create」をクリックする前に、
詳細設定…」で、暗号化アルゴリズムを確認しておきましょう。

暗号化メール送信を送信してもらう相手先の使用メールソフトが、
対応している暗号化アルゴリズムを選びます。

ここは、最も多くのメールソフトが対応しているRSAに変更します。
また、鍵長が大きいほど安全になりますので、鍵長を4096に変更します

(何かのサービスでRSA2048ビット以下は非推奨になったとか。
ニュースソース元は、失ってしまいました)。

たとえば、暗号化メールを送信してもらう相手先の使用メールソフトがThunderbirdである場合、
RSAECCでなければ暗号化メールを送信してもらえない可能性があります。
Thunderbird(91.11.0)のPGPの有効な暗号化アルゴリズムは、RSAECCだけです。

Becky!については、
組み込み済みのPGPが使用している暗号化アルゴリズムに、
Gpg4winThunderbirdと共通のものがありません。

OutlookBecky!ThunderbirdBecky!の間の暗号化メールの送受信ができないと思われます。
最新のGNU Privacy Guard Plug-in for Becky! 2を 導入すれば、可能なのかもしれません。

Create」をクリックすると、新しい鍵生成前に設定するパスフレーズを聞かれます。

鍵ペアの生成には、非力なPCでは結構時間がかかるそうです。
フリーズしてしまったと思い、Kleopatraを強制終了してしまわないようにしてください。

鍵ペアの生成が完了すると、図2.2-6のように表示されます。

鍵ペアのバックアップや、暗号メールを送ってもらう送信先への公開鍵の送付などは、
このタイミングでなくても後の任意のタイミングでできますから、
ここは素直に「完了」してしまいます。

2.2.2 Thunderbird(91.11.0)の場合

図2.2-10に示すように、 メール暗号化設定を行うアカウントの「設定」画面を開きます。

エンドツーエンド暗号化」で、OpenPGPグループの「鍵を追加(A)…」をクリックします。

図2.2-12において、 「新しいOpenPGP鍵を生成(C)」を選択します。

Gpg4winでのOutlookの鍵ペアの属性に合わせるため、
高度な設定」の「鍵のタイプ」をRSA鍵長4096にします。

3 暗号化メールを送受信する

本章では、自分から暗号化メールを送る、
また自分宛へ暗号化メールを送ってもらう方法について説明します。

3.1 設定

Gpg4winをインストールして自分用の鍵ペアを作っただけで、
直ぐに暗号化メールの送受信ができるようになるわけではありません。

Gpg4winに、(デジタル)署名を行うのか、メール本文暗号化を有効化するのかしないのか、
送信時に公開鍵を添付するとかしないなどの設定を行います。

OpenPGPエンジンをインストールする必要の無いThunderbirdにも同様の設定があります。

3.1.1 Outlook

Gpg4winをインストールすると、
Outlookホームのツールバーに「Insecure」のリボンが追加されます。
まず、リボン下部の右下向きの矢印をクリックします。

Gpg4win(4.0.3)では、図3.1-2に示すようなダイアログが開きます。

インターネット上に公開されているGpg4winの説明書は古いもので、
最新のバージョン(4.0.3)のものに更新されていませんが、
設定の参考にはなりますので紹介しておきます。

A Information on the GpgOL Outlook extension

(1)Enable the S/MIME support

Enable the S/MIME support」は、チェックします。
チェックされていないと、メール本文は暗号化されません。

Prefer S/MIME」は、
もともとOutlookに組み込まれているS/MIMEメソッドを優先するかどうかの設定です。
チェック無しの場合はOpenPGPメソッド、
チェック有りの場合はOutlook組み込みのS/MIMEが優先となります。

どちらのメソッドであっても暗号化はできますが、微妙に機能の違いがあるそうです。
2022年08月現在、わたしは違いを正確につかんでいません。
いろいろと試して見てください。

(2)General

Sign new messages by default
新規メールの時、デフォルトで署名を行うか否かの設定です。

Encrypt new messages by default
新規メールの時、デフォルトで暗号化を行うのか否かの設定です。

Select crypto setting automatically for reply and forward
返信や転送の時、暗号化設定を自動的に選ぶかどうかの設定です。

Send OpenPGP mails without attachments as PGP/Inline
OpenPGPのメールを添付なしでPGP/Inlineとして送信する。」ですが、はて?
具体的にどのようなことを示しているのか、この短い文章だけではよくわかりません。

Encrypt drafts of secure mails to this key:
下書きを保存するとき、暗号化するのかしないのかの設定です。
暗号化するとしたら、どのを使うのかの選択も行います。

(3)Automation

Import any keys included in mails
受信メールに公開鍵が添付されていた時、自動的にインポートするのかの設定です。

Resolve recipient keys automatically
受信メールの鍵を、自動的に解明するのかどうかの設定です。

GnuPG System(Technical)の設定で着目すべきは、
OpenPGPタブで表示される「鍵のインポートとエクスポートを制御するオプション」 くらいでしょう。

・「署名から手元にない鍵をインポートする
・「署名に公開鍵を含める

他の項目は、説明資料が見つかっておらずよくわからないので、
デフォルトのままにしておいた方が良さそうです。

3.1.2 Thunderbird(91.11.0)

Thunderbirdの場合、鍵ペアが作成されていれば暗号化メールを作成できるようですが、
思わぬ動作をしたら困りますので、やはり暗号化に関する既定動作を確認しておきます。

まず、図3.1-4に示すように、 メール暗号化を行うアカウントの「設定」画面を開きます。

左メニューから「エンドツーエンド暗号化」を選択します。

(1)メッセージ送信の規定の設定

既定で暗号化を有効にしない」を選択しておくと良いでしょう。

既定で暗号化を必須にする」を選択すると、
送信先全員の公開鍵を受け取っておかなければならず、
公開鍵を受け取っていない先にはメールを送ることができなくなってしまいます。

(2)詳細設定

OpenPGPデジタル署名の追加時に自分の公開鍵を添付する
有効にしておいた方が良いでしょう。
公開鍵を物理的なファイルで手渡しする面倒を避けられます。

OpenPGPメッセージの件名を暗号化する
有効にしない方が良いのかもしれません。
送信先のメールサーバーが迷惑メールフィルターを利用している場合、
暗号化メールを迷惑メールとして振り分けられるどころか捨てられてしまう可能性があります。

3.2 公開鍵の受け渡し

公開鍵を自分宛メール送信者に渡す方法には、次の3つがあります。

OpenPGPが 運営するPGP公開鍵サーバーから 取得してもらう
② 送信メールに自分の公開鍵を添付する
③ 物理的なファイルで渡す

いずれの方法であっても、第三者に盗み取られても大丈夫です。
公開鍵は暗号化にだけ使用するものですので、
秘密鍵が無ければメールを復号化することはできませんし、
なりすましに利用することもできません。

①の方法を利用されるのが、もっとも良いでしょう。

3.2.1 OpenPGPが運営するPGPの公開鍵サーバーから取得してもらう

OpenPGPが 運営するPGP公開鍵サーバーから 取得してもらうことで、
自分宛メールの公開鍵を渡す方法です。

自分宛メール送信者には、下に示すPGP公開鍵サーバーのURLを伝えておきます。
PGP公開鍵サーバーから公開鍵を取り出すキーワードは、メールアドレスだけです。

https://keys.openpgp.org/

自分の公開鍵は、事前にPGP公開鍵サーバーに登録おく必要があります。
登録するのは、”asc”形式の公開鍵ファイルそのものだけです。

3.2.2 送信メールに自分の公開鍵を添付する

PGPの公開鍵を、送信するメールに添付する方法です。

(1)送信メールに公開鍵を添付する方法
【Outlookの場合】

. 左ペインから目的のメールアカウントの受信トレイを選んで、
ホーム」メニューを選びます。
表示されたツールバーから「Insecure」の右下向き↓をクリックします。
「Insecure」アイコンではなく、右下向き↓をクリックしなければ、
Configure GpgOL」ダイアログは開かないので注意してください。

. 左のメニューから「GnuPG System」を選びます。
鍵のインポートとエクスポートを制御するオプション」セクションの、
署名に公開鍵を含める」をチェックします。

【Thunderbirdの場合】

. まず、メールアイコン/目的のメールアカウントの右クリックで表示される
コンテキストメニューから「設定(E)」を選択します。

. 「アカウント設定」のウィンドウが開いたら、
左メニューから「エンドツーエンド暗号化」を選択します。

. 右ペイン「詳細設定」セクションの
OpenPGPデジタル署名の追加時に自分の公開鍵を添付する(P)」をチェックします。

(2)受信メールから送信者の公開鍵を受け取る

受信者は、送信者の公開鍵図3.2-1に示すように”asc”形式のファイルとして受け取ります。

公開鍵をメールから取り出し、Gpg4winKleopatraにインポートします。

公開鍵の受け取り作業は、これだけです。

なお、Gpg4winの設定で、
Automation” / ”Import any keys included in mails”が有効になっていれば、
受信メールからの公開鍵のインポートは自動的におこなわれます。

3.3 暗号化メールの送受信

暗号化メールの送信は、通常の暗号化無しの場合と全く同じ操作となります。
送信先によって自動的に適切な公開鍵が選ばれて暗号化されます。
送信先の公開鍵が無ければ、暗号化はされません。

ただし、があります。

(デジタル)署名を行う際には、送信元の秘密鍵が利用されます。

PC立ち上げ直後とか、前回の暗号メールを送って一定時間経過した場合は、
鍵ペア作成時にパスフレーズを設定していたなら、
図3.3-1に示すように、
そのパスフレーズの入力を求められます。

# このへんの動きは、パスワード管理のKeePass2に似ています。

送信」ボタンをクリックしてから、実際の送信が完了するまで、
暗号化無しの場合に比べて時間が掛かっているのが人間の感覚でも分かるほどです。

暗号化メール受信についても、特別な操作無しで復号化されます。

OutlookThunderbirdとも、
(デジタル)署名の認証結果と
OpenPGPによる暗号化メールであったことを示すアイコンが
メールソフトのヘッダー付近に表示されます。

受信メールの復号化では、受信者の秘密鍵が使用されます。
PC立ち上げ直後とか、前回秘密鍵を使ってからの一定時間経過した場合、
秘密鍵のパスフレーズを問われるのは、(デジタル)署名付きメール送信の時と同じです。

そして、知っておかなければならないことです。

送信先のメールサーバーで、迷惑メールフィルター機能を利用している場合、
暗号化メールは、迷惑メールとして振り分けられるどころか、
完全に捨てられてしまうことがあることを知っておいてください。

メールが行方不明ということで、大事件になるかもしれません。

4 ファイルやフォルダを暗号化する

Gpg4winによるファイルやフォルダの暗号化・復号化については、
ファイルエクスプローラーに統合されていますので、直感的に行うことができます。

詳しい説明は特に必要無いと思います。
ただ単に
Gpg4winがファイルやフォルダの暗号化ができることを知っていれば、直ぐに操作できます。

以下に、暗号化に伴う特有の操作についてだけに簡単に示します。

4.1 ファイルやフォルダの暗号化

ファイルやフォルダに(デジタル)署名をしたり暗号化する場合は、
ファイルエクスプローラーで対象のファイルやフォルダを選んで右クリック。
表示されるメニューの中から、「Sign」や「Encrypt」を選びます。

暗号化されたファイルは、
「元のファイル名.gpg」と、 ”.gpg”が付け足された名前となります。

暗号化のファイルを複数人と共有する場合、
Encrypt for others」で公開鍵を知らされている複数人を選んで暗号化することができます。

大きなお世話なのですが。。。
共有グループに自分を含めておかないと、
後ほど確認が必要になって復号化しようとしても、
自分では復号することはできません。

平のオリジナルをもっているから必要無いヤと思って、
共有のグループに自分を含めておかないとこんなことが起こります。

4.2 暗号化されたファイルの復号化

暗号化されたファイルの復号化は、暗号化する場合と同様、
ファイルエクスプローラーで対象のファイル名拡張子”.gpg” のファイルを選んで右クリック。

表示されるメニューの中から、「Decrypt」か「Decrypt and verify」を選ます。

復号化が完了すれば、図4.2-2に示すように暗号化時の情報が表示されます。

以上

HTMLだと、
思うように編集することは難しく、やろうすればとっても時間が掛かります。
ですので、本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ