connecting...
5 NEMberから投げnemがありました!!
メールの本文を企業に見られなくする簡単な方法
nem25.13xem (5) 189 2 4
2018-11-08 19:46:29その他

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


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


 


メールサービスの流れ


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


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


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


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


 


メールサービスの反逆


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


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


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


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


 


何とかする


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


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


簡単な流れとしては


本文(平文)作成 => 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となっています。)


 

通報

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

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

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

nemlogの無料ユーザー登録はこちらから
新規登録
NEMberのコメント

目指せ北海道

目指せ北海道
2018-11-09 02:59:27ID:6928

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

shinobu

shinobu
2018-11-08 21:27:13ID:6825

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

この記事を投稿したNEMber

DirtyMonacoinAPIつくった人
ブロックチェーンチョットワカル
6592