LoginSignup
2
1

More than 3 years have passed since last update.

メールを令和化し【添付ファイルのZIP暗号化とパスワード別送】から脱出しようぜ!あと誤送信ミスも!!

Last updated at Posted at 2020-02-03

はじめに

送信先間違ったらワンナウト:point_up:
納品物ZIP添付してたらツーアウト:v:

暗号化ZIPしてたらセーフ:ok_woman:・・・と見せかけて

パスワード書いたメールも誤送してたら業務委託先チェンジ!!

そもそも、この運用だと一連の流れがセットで起こりやすいじゃん。。バズ記事にいまさらのっかるようでアレなんだが

平成のうちにやめたかった『ITの7つの無意味な習慣』

コメント欄の通り致し方なしのもある。ただ、はっきりとデメリットを言えるものとして令和ではパスワードは選手交代してくべきでしょう。PPAP運用を、のほほんと継続してるとその間コンピューターは性能向上するので突如ディスラプションを喰らうわけです。

GPUでZIPパスワードを解析する

秒間100億回と1.8億回試していることになります。

ヒエ~ッ

誤送信したらパスワード運用してようがガーキャンされる。爆速マシンを一時間だけとかクラウドの力でカジュアルにぶん殴る事もできちゃう(笑)。16文字ぐらい使っててもTwitterやらSNSから情報抜いてAIでパスワード予測もやろうと思えばできるでしょう。逃げれる気がしない。。

注意喚起や啓発記事も大事だ。そもそもSaaSとかOffice365、Gmailとか送信後キャンセルできるの使わないのが悪い。わかる。たしかにそう。
でも僕は手を動かしてもっとほかの選択肢を作ってみたい!!

こんな仕組みです

flow.png

  • 送信フォームからいつも通りメールします
  • 受信。ただ、受信者にはタイトルとURLがだけ送られてきます
  • 開くとQRが載ってます。受信者がアプリでQR読むと
  • 該当メールに可読フラグがたつので内容が読めます。やったね!

実装した技術的には

  • スマホ Cordova + React
  • サーバー Golang + redis + Hyperledger
  • メール表示画面 React + typescript

という無駄な大所帯です。笑 

雑魚コードはこちら
- Hyperledger
- Android apk
- Golang Server
- Web画面

動作な画面

(ヘボッな)フォーム画面から送信します
0.png
宛先の人がメールを受信します
2.png
URLを開くとQRが出てます
3.png
スマホアプリからメールアドレスを入力します
00.png
QR読ませます
33.png
読めました!あと添付ファイルもHTTPS配下で守られています
4.png

やっべ!誤送したーの場合

送信時に送り元にQRが届いています。スマホのアプリからメールを入力し、QRを読ませます
1.png
証拠隠滅されました!
5.png

この仕組みなら通信全体がHTTPSなので添付ファイル付けても安全に取得できるし、削除用QR付ければ誤送信後に取り消しする仕組みも可能。IMEIが危ないってならYubikeyとかFIDOに対応すれば強化できるね!
こんなかんじで既存のメールシステムをラップすれば冒頭の泥試合も無くなるとおもうんだ。どうでしょうかね。

イキりポイント


個人的にイキりたいのはHello worldレベルの実装ではあるものの、他のエコシステムと組み合わせることで暗号化をしないでも認証強度を高める部品としてブロックチェーンを使えた事で、これはこれまで「ただのKVSじゃん!」とか「(ブロックチェーンを)使う意味がない」というのとは別次元じゃないっすかね?
見ようと思えば見れちゃう。けどエコシステム上改ざんできないから問題無いよね。しかも利用者側がどんな値か確認できるから運用側まかせじゃない、各自の責でサービス使うよね。って建付けが出来ている。これだ!
なんでブロックチェーンって凄いの?の一片を実装できた気がする。スマートコントラクトには情シスは要らんのさ。満足満足じゃ。
え!?普通無いAPIサーバーの運用はどうするんだって????

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1