connecting...
Google translation for articles :
5 NEMBER donated to you!!

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

nem25.13xem (5) 329 2 4

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

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

 

メールサービスの流れ

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

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

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

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

 

メールサービスの反逆

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

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

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

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

 

何とかする

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

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

簡単な流れとしては

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

 

Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register
Comments from NEMber
目指せ北海道
2018-11-09 02:59:27ID:6928

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

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

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

NEMber who posted this article

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

Why don't you read following articles?