connecting...
5 NEMberから投げnemがありました!!

メールの本文を企業に見られなくする簡単な方法

25.13
xem

皆さん、メール使っていますか?

大抵の人は使っていると思います(きっとパソコンがなかった歴代の経団連会長も使っていたはず??)。

 

メールサービスの流れ

メールには様々な重要な情報が載っています。

そのため、メールの送信経路では暗号化され(されていないのもあるかもしれないが)、メールサーバーの間で送受信が行われます。

その後、メールサーバーの中に暗号化されて保存されます。

そして、ユーザーが見たい時に平文として見れるようユーザーの端末にデータを送ってくれるわけですね。

 

メールサービスの反逆

こんな便利な仕組みを提供しているメールサーバーを提供してくれる企業には頭上がらないですね。

しかし、重要な問題がありまして、暗号化する際の鍵はメールサービスを提供している企業が管理しているわけです。

つまり、彼らはメールの本文を見ようと思ったら見ることが可能なわけです。

うーむなかなか、怖いですね。

 

何とかする

この問題を解決するすごく簡単な方法があります。

初めからメールの本文を自分で暗号化しておけばよいのです。

簡単な流れとしては

本文(平文)作成 => RSAで暗号化 => 暗号文をメールに書く =>送信 => 暗号文をRSAで復号化 => 本文(平文)を見る

とすれば、企業は平文を見られないわけです。

 

この流れを更に詳細に書くと

本文(平文)作成 => 送信先の人間の公開鍵を送ってもらう => 公開鍵(pub1)で暗号化 =>

暗号文をBase64で符号化 => メール本文に書き込む => 送信 => Base64で逆符号化 => 送信先の人間の秘密鍵で復号化 => 送信先の相手本文(平文)が見れる!

という感じになります。

 

実際にやってみる

これはopensslを使えば簡単に実現出来ます。

まず、説明のためにいくつか変数を定義しておきます。

message.txt:平文の本文が書かれたファイル、pub.pem:送信先の人間の公開鍵、priv.pem:送信先の人間の秘密鍵

ちなみにmessage.txtの中身は

hello crypto world !

にしておく。

 

公開鍵と秘密鍵の作成

まず送信先の人間に鍵を作ってもらいます。スクリプトは以下のようになります。

$ openssl genrsa > priv.pem
$ openssl rsa -pubout < priv.pem > pub.pem

これで鍵の作成が出来ました。

 

暗号文の作成

鍵を受け取れたら暗号化しましょう。

$ cat message.txt | openssl rsautl -encrypt -pubin -inkey pub.pem | base64

このスクリプトによって暗号文が作成されます。

実際に実行してみると

LyW91m9YbSZOQMtJ0+Uu3IE+gPTBtQynmozr/wzozRF6ogy5Vlj2EPL+Kxh0mM4em4M9eqpe574e
0XX2tKkDo9Z1oHidQ1AktnddVaT9Xeq95pATC71L5hhBbQWhl8jPcAaKGUxpJYjZsnkkEDgaxH1u
84sTOVxDCY79A2LIFIhVxsXw65JUaDaEqu/AzKabmyAU5Zs5plw+trfE3LeW2MszQMfkKrcmoQlH
upWDQr54lvWwzkufWwS0vsekohaLSa9GdQCCeN3CncAMK4P7QUg49qXYYCd92i+JzEDhbv5S0P0V
TyywbRjsGxS0UyQt6QBjEAI8fsI5J3P4s4m/SQ==

こんな感じに符号化された暗号文が表示されます。

あとは、この表示された文字列をメールの本文に貼り付けて送信すればOKです。

 

暗号文を復号化する

受け取ったメールの本文をそのまま貼り付けて秘密鍵で復号化する。

$ echo "LyW91m9YbSZOQMtJ0+Uu3IE+gPTBtQynmozr/wzozRF6ogy5Vlj2EPL+Kxh0mM4em4M9eqpe574e0XX2tKkDo9Z1oHidQ1AktnddVaT9Xeq95pATC71L5hhBbQWhl8jPcAaKGUxpJYjZsnkkEDgaxH1u84sTOVxDCY79A2LIFIhVxsXw65JUaDaEqu/AzKabmyAU5Zs5plw+trfE3LeW2MszQMfkKrcmoQlHupWDQr54lvWwzkufWwS0vsekohaLSa9GdQCCeN3CncAMK4P7QUg49qXYYCd92i+JzEDhbv5S0P0VTyywbRjsGxS0UyQt6QBjEAI8fsI5J3P4s4m/SQ=="  |  base64 -d | openssl rsautl -decrypt -inkey priv.pem

すると

hello crypto world !

ちゃんと平文を見ることが出来る(^o^)v

 

*補足

base64の必要性:メール本文には文字でないと書き込めないため、バイナリデータを一度文字データに変換する必要がある。

 

まとめ

今回紹介した方法を使えば安全にメールを使うことが出来るようになります。

なかなかに手間がかかるのですが、個人のレイヤーで暗号化するには致し方なしです。

ちなみにShellScriptで説明したのは、中の人がWindows持っていないからということが理由だったりします。

(僕は何故かWindowsに嫌われているようで、今までに何個も帰らぬWindowsとなっています。)

 


118 views
メール RSA暗号 プライバシー
2018-11-08 19:46:29
nem投げnem 通報

nemlogで記事を書いて 仮想通貨nemをゲットしよう!

nemlogは暗号通貨nemを使用した寄付機能付きブログ投稿サイトです。
ブログを通じてユーザー同士がお互いにnemを寄付しあえるような環境づくりを目指して、nemlogはスタートしました。
あなたもステキ記事を投稿して暗号通貨nemをゲットしてみませんか?

nemがもらえる各種イベントも盛り上がっていますので、この機会にユーザー登録してみませんか?

nemlogの無料ユーザー登録はこちらから新規登録
目指せ北海道 コメント日時:2018-11-09 02:59:27ID:6928

ここでshellコマンド見るとは!僕もWindowsマシンが何台も帰らぬ人になってます。何が悪いんだろう。


shinobu コメント日時:2018-11-08 21:27:13ID:6825

本当に重要なメールのやり取りなら、これ位は、当たり前にならないといけないでござるな。精進精進


この記事を書いたNEMber

グリ
267
DirtyMonacoinAPIつくった人
ブロックチェーンチョットワカル
nem投げnem profile
6592
こちらの記事もどうぞ

1.8 XEM
33 2 2