2000年8月15日から「犯罪捜査のための通信傍受に関する法律(以後通信傍受法)」、いわゆる盗聴法にもとづき、警察がプロバイダーの人間の立ち会いの元、合法的にメールを傍受することができます。現に「通信事業者貸与用仮メールボックス」という装置の導入が決定され、2001年度予算要求が行われています。
この通信傍受法によってインターネット世界が安全になるのならば大歓迎なのですが、本格的な犯罪ならば独自の暗号化をされてしまえばほぼ傍受不可能になり、一般市民の不安というデメリットしか残らないのではないでしょうか?
実際問題として自分が傍受の対象となるかは分かりませんが、技術的にそのようなことが可能というのは不快ですよね。よって、メールを暗号化することで、送った人にしか読む(復元する)ことができないようにしましょう。これによく使われるソフトがPGP(Pretty Good Privacy)です。フリーウェア版・商用版、また日本語パッチなど様々なものがあります。ちなみに他にもS/MIMEと呼ばれる規格もありますので、興味がある人は調べてみてください。
PGPはメールだけではなく、テキストファイル・バイナリファイル全般に使うことができます。またこのPGPは暗号化ではなく、署名にも使うことができます。これは自分が書いたものであるということ(つまり第3者に改変されていないこと)を証明することができます。
「PGPを使わなくてもメールならばFrom(差出人)情報で名前やアドレスが分かるのではないか」と思う人もいるかもしれませんが、これはメーラーの設定を変えれば簡単に偽造できます。
最近はWindows2000対応や日本語化されているなどのおかげで、私も簡単にPGPを導入できました。PGPが一般普及して、必要なときはいつでも気軽に使えるようになることを願っています。
●PGPの仕組み 詳しいことは下記のリンク先を参照して下さい。
・PGPは秘密鍵と公開鍵の2つを作成する。またパスフレーズ(パスワードより長めの文字列)で本人確認を行う。
・公開鍵は通信相手などに配布する。秘密鍵とパスフレーズは人に知られてはいけない。
・秘密鍵と公開鍵はかけ算の前後のように対になっている。
・メールを暗号化するには、事前に入手した相手の公開鍵を使う。
・暗号化されたメールを受け取ったら、自分の秘密鍵とパスフレーズを使って復号化する。
・署名をするには自分の秘密鍵とパスフレーズを使って、メッセージ概要(ハッシュ値)を暗号化する。よって、署名した人の公開鍵によって正しく復元できれば、本人のものであると証明することができる。
・また送信者と受信者が同じパスワードを使って暗号/復号する従来の共通鍵方式の暗号(Conventional Encryption)も使うことができます。PGPを利用していないWindowsユーザでも復号できる暗号ファイル「自己復号アーカイブ(Self Decrypting Archive)」も作れますが、これらの場合パスワードのやりとりは第三者に知られないような方法で行ってください。
●推奨環境(Windowsの場合)
・PGP Version: PGP6.5.8ckt日本語版 (フリー。英語版やパッチ作業などは不要になりました)
→ ビジネスユースの場合はDOSプロンプト上でGPG(GnuPG)+日本語SHIFT-JIS言語ファイル
GUIが欲しい場合はGPGshellまたはWinPTを利用します。(ただし英語)
・メーラー(MUA):Becky!2・EdMaxシェアウェア版など(メーラー(MUA)のPGP対応状況参照)
自分はEdMaxフリー版を使っていますが、2.6互換モード(コマンドライン経由)になります
PGP付属ツールを使えば非対応のメーラーでも問題なく使えますが、文字コード(SJISとJIS)の問題に注意が必要。ただし送信時に勝手に改行位置やスペースなどを変換してしまうものでは、署名が使えないことがあります。
※ Edmaxフリー版でPGPが使えない場合
・edmax.ini を以下の項目を編集
GetFromPgpTxtAsc=0 → GetFromPgpTxtAsc=1
メモ
・上記の仕組みだけでは[公開鍵のなりすまし]を防ぐことはできません。そのためにPGPは信頼の輪(Web of Trust)というシステムを作っています。(私は参加していませんが...)
他人の公開鍵を取り込んで自分が署名するときは、鍵指紋(fingerprint)の照合などで本人確認してください。
例:私以外の人が勝手に<tashiro@tsunashima.com>と偽った鍵を作って、偽物の公開鍵の配布や署名ができてしまいます。
・niftyのアドレスなど<AAA00000@nifty.com>や<AAA00000@nifty.ne.jp>のように複数の表記がある場合、表記が違うとメーラーで自動的に復号化・検査できません。表記を統一するか、1つの鍵に複数のアドレスを付けてください。
・PGPを用いても、件名(Subject)などのヘッダ情報やメールのやりとりが行われたこと自体は隠すことはできません。
・指紋(fingerprint)は唯一であることは保証されていない。他の人とまったく同じフィンガープリントになることも極まれにありえる。
・複数の人に暗号化メールを送るには、相手全員の公開鍵を使うことによって、受信者全員が各自の秘密鍵で復元することができます。
・PGPの秘密鍵は絶対に他人に知られてはいけないので、できればローカル(自分の手元)のマシンに保存したほうがよいでしょう。(メールサーバと同じUNIXマシンに置いておくと、そのマシンの管理者が特権を悪用した場合やクラッカに特権を奪われた場合、暗号鍵を盗まれてしまいます)
・PGPフリー版は業務で使うこと(仕事用のメールアドレスで使うなど)はできません。商用版(PGP Corporation)を購入する、またはGPG(GnuPG)を利用してください。
●リンク(情報源)
・PGP User's Manual for Windows…インストール方法などはこちらが一番わかりやすいです
・まいとう情報通信研究会: サルにも分かるRSA暗号…代表的な公開暗号鍵方式のRSAについて、計算方法からなぜ解読できないかまで分かりやすく説明されています