twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux Jp チュートリアル Linux でメールを暗合化する

Linux でメールを暗合化する

原文はこちらです。

fig-1 kgpg

 メールを暗号化することを考えた場合、たくさんのメール サービスとメール クライアントに感謝しつつも、驚くことでしょう。メールの暗号化には 2 種類あります。SSL/TLS 暗号化は、メール サーバーへのログインやパスワードを保護します。GnuPG は、一般的に使われている暗号化ツールです。メッセージを暗号化し、認証します。自分の GPG 暗号を第三者ではなく自分で管理する場合は、本ツールが有効です。以下に説明します。

 メッセージのヘッダーは暗号化されないので、トラフィックを解析される危険が残っています。これを避けるためには、Tor network (訳注: これについては、別の文献でもふれています) のようなツールを使って、インターネットにおける軌跡を隠すことが必要です。いくつかのメール サービスとクライアントを見て、それぞれの比較をします。

Web メールを忘れる

 Gmail、Yahoo、Hotmail のような Web メールは忘れてください。Web ブラウザ経由で入力した内容は JavaScript 攻撃で解析されてしまいます。サービス プロバイダーによる解析もありえます。Gmail、Yahoo、Hotmail は、メッセージ内容を SSL/TLS で暗号化し、保護していますが、彼ら自身のデータ マイニング ツールによる解析は、行っています。そのため、エンドツーエンド (発信から受信まで) の保護は提供されていません。Yahoo と Gmail は、来年にはエンドツーエンドの暗号化を提供すると言っています。彼らのコア ビジネスであるデータ マイニングが不可能になったら、彼らの死活問題です。ということで、少し疑問に思っています。

 VirtuSafeMess のようなメール保護ツールはたくさんあります。それらは、すべてのメールの暗号化を行えると主張しています。しかし、暗号化のキーを知ることができれば、メッセージは解読されてしまうので、技術ではなく、信頼関係が重要になります。

 1 対 1 のメッセージ システムは中央集権的なサービスの危険性を回避できます。RetroShare や Bitmessage は、代表的なツールです。必要な機能を満たしているかはわかりませんが、その発想はメリットをもたらします。

  Android や iOS では、どうでしょうか。大半のアプリは、利用者の情報を手に入れようとしています。サービス仕様書をよく確認してください。デバイスにインストールするときに、どのようなアクセス許可を必要とするかを確認します。最初のインストール時に問題ないとしても、仕様書の条件はよく変更されるものですから、最悪を想定することが必要です。

ゼロ知識 (Zero Knowledge)

 Proton は新しいメールサービスで、ゼロ知識 (Zero Knowledge) メッセージ暗号化機能を提供しています。認証と暗号化は、それぞれ別の機能です。Proton は、スイスの個人情報保護法に対応しています。ユーザーの操作履歴を記録しません。Zero knowledge 暗号化は、真のセキュリティを提供します。これは、利用者だけが暗号化キーを保持し、万が一、暗号化キーを失くしたら、メッセージを復活できないことを意味します。

 プライバシー保護を提供する暗号化メール サービスは複数あります。説明を注意深く読み、ユーザー データ取得、データの他社との共有、法的要求への対応等の注意点を調べます。これらは、データ取得、共有、暗号化キーへのアクセスとメッセージの読み出しを許可することを意味しています。

Linux のメール クライアント

 OSS の標準的なメール クライアントとして、KMail、Thunderbird、Mutt、Clows、Evolution、Sylpheed、Alpine があります。利用者の GnuPG キーを使って設定します。キーは、自分自身で管理し、メッセージを保護します (メールと Web サーフィンをセキュアにする簡単な方法は、TAILS を使うことです。これは、Protect Yourself Online With Tor, TAILS, and Debian (訳注:和訳はこちら) に記載しています)。

 TAILS や通常のディストリビューションのどれを使うにせよ、GnuPG による管理方法は変わりません。以下 GnuPG を使い、メッセージを暗号化する方法を学びます。

GnuPG の使い方

 用語をいくつか定義します。OpenPGP は、オープンなメール暗号化、認証プロトコルで、Phil ZImmerman の Prety Good Privacy (PGP) に基づいています。GNU Privacy Guard (GnuPG または GPG) は、OpenPGP の PL 実装です。GnuPG は、対称公開鍵暗号化 (symmetric public key cryptography) を用いています。これにより、まず、1 組のキーを作成します、1 つ目のキーは、誰でも使えるように公開されていて、メールの送信者は、このキーを使い、メッセージを暗号化します。2 つ目のキーは、秘密キーとして作成者のみが保持し、メッセージを解読するために使用します。GnuPG は、2 つの機能を持っています。メッセージにデジタル署名を施すことにより、送信者を特定できるようにします。2 つ目の機能は、メッセージの暗号化です。デジタル署名されたメッセージは、誰でも読むことができますが、暗号化されたメッセージは、キーを交換した人だけが読むことができます。秘密キーを他人と交換してはなりません。

 GnuPG の GUI ツールとして、GNOME 環境では Seahorse、KDE 環境では KGpg が用意されています。

 GnuPG キーの作成、管理の基本ステップを学びましょう。次のコマンドでキーを作成します。

$ gpg --gen-key

 実際には複数のステップになります。すべての質問に答えてください。デフォルト値は、多くの人にふさわしいものです。パス フレーズを作成したら、書き留めて、安全な場所に保管してください。紛失すると、すべてのものが解読できなくなります。「書き留めてはいけない」とよく言われますが、間違いです。たくさんのログイン・パスワードを使用していると、なかには、普段使用しないものもあります。全部を覚えておくのは、非現実的です。実際、書き留めておかなかったら、どうなると思いますか。簡単なパスワードを作成して、繰り返し利用することになります。コンピューターに記憶させておくと、危険です。錠付きのロッカーにノートを保管しておけば、ノートの大切さを知っている侵入者による物理的侵入以外のすべてから守ることができます。

 作成したキーを使ったメール クライアントの設定は、クライアントごとに設定方法が異なるため、読者にお任せします。次のようにしてキーを表示します。

$ gpg --list-keys
/home/carla/.gnupg/pubring.gpg
------------------------------
pub   2048R/587DD0F5 2014-08-13
uid                  Carla Schroder (my gpg key) 
sub   2048R/AE05E1E4 2014-08-13

 キーの格納場所、キー名称 (UID のことです) を確認する簡便な方法です。キー サーバーに公開鍵をアップロードするには、下記の例のようにします。

$ gpg --send-keys 'Carla Schroder' --keyserver http://example.com

 キーをサーバーにアップロードする際、同時に、無効化キーを作成します。後回しにせず、キーを作成するときに必ず同時に行ってください。revoke.asc 以外に、mycodeproject.asc のように任意の名称を付けることができます。

$ gpg --output revoke.asc --gen-revoke 'Carla Schroder'

 もし、キーが漏れたり、毀損したと考えられるときには、無効化キーを使って、キーを無効化します。

$ gpg --import ~/.gnupg/revoke.asc

 無効化したら、新しいキーで置き換えます。キーが交換されたことが、すべての利用者に通知されます。

 秘密キーと同じように無効化キーも大事に管理する必要があります。CD か USB メモリにコピーし、コンピューターからは削除します。通常のテキストなので、印刷できます。

 Web フォームにキーを貼り付けたり、Web サイトに公開キーを貼り付けたいときは、ASCII 形式で表示させます。

$ gpg --output carla-pubkey.asc --export -a 'Carla Schroder'

 以下のように、よく見るテキスト形式が出力されます。

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFPrn4gBCADeEXKdrDOV3AFXL7QQQ+i61rMOZKwFTxlJlNbAVczpawkWRC3l
IrWeeJiy2VyoMQ2ZXpBLDwGEjVQ5H7/UyjUsP8h2ufIJt01NO1pQJMwaOMcS5yTS
[...]
I+LNrbP23HEvgAdNSBWqa8MaZGUWBietQP7JsKjmE+ukalm8jY8mdWDyS4nMhZY=
=QL65
-----END PGP PUBLIC KEY BLOCK-----

 今までの説明で、GnuPG の基本が学べました。GnuPG マニュアルを参照すると、GnuPG の使用方法とオプションについて、より詳しいことがわかります。

 

 

 

Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ


Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!