PPAPとは、(P)パスワードZIPファイルを送り、その後に(P)パスワードを送る、(A)暗号化(P)プロトコルを表します。
2020年11月には内閣府などでも運用を禁止するなど世間的にも問題になっております。
要するに、一般的なネットワーク回線を使ってパスワードZIPファイルが盗聴されれば、
その後に送られるパスワードも盗聴される可能性が高いわけで、意味がないということです。
そこで、これに代わる安全な仕組みを考えてみました。
使い方
1. メールアドレスなど必要な情報を入力し、アプリのダウンロードURLを手に入れます。
2. あなたのユニークIDを含むアプリの「ダウンロードURL」入手したら、やり取りする相手に伝えます。
3. 相手はそのダウンロードURLから、専用の復号アプリ(無料)をダウンロードします。
4. 相手はダウンロードしたアプリを起動して「送信」ボタンを押すだけです。
アプリは自動的に、対となる「暗号鍵(公開鍵)」「復号鍵(秘密鍵)」を生成し、 暗号鍵だけを AttacheCase.NET へ送信、それを受けたサーバーはユニークIDを元に あなたへ「暗号鍵(公開鍵)」を添付してメール送信します。
5. AttacheCase.NET から送られてきた「暗号鍵(公開鍵)」でデータファイルを アタッシェケース(フリーソフト) で暗号化して相手に送信します。
相手は送られてきた暗号化ファイルを専用アプリへドラッグ&ドロップするだけで復号できます。
弱点
とはいえ、この仕組みは完璧ではなく「弱点」もあります。それを理解した上でご利用されると安全に運用できるかと思います。
2. で、 URLを送信するときに一般的なネットワークですと、盗聴者に知られてしまうこともあります。
ここで、不正に取得したパスを利用して、 4. のところで、「相手」になりすまして先に 公開鍵(暗号鍵)を送る可能性が考えられます。
ただし、AttacheCase.NET では、公開鍵(暗号鍵)の添付メールは一度しか送信されない
仕様になっておりますので、「相手」が送信ボタンを押し、送信が成功し、暗号化ファイルを受け取れる状態になっているか
電話などの別の手段を使って確認を取ることをすれば、より安全性は高まります。
また、ダウンロードオプションとして、「ダウンロード回数制限」「ダウンロード可能時間」がありますので、
その設定を行うことでも、盗聴の危険性を減らすことができます。
慣れてきたら、お互いにアタッシェケースを運用し、ローカルで公開鍵(暗号鍵)と、秘密鍵(復号鍵)
を生成してデータのやり取りを行うようにすれば、秘密鍵(復号鍵)は互いのローカルに保存され、
ネットワーク上を流れるのは互いの公開鍵(暗号鍵)のみになり、万全になります。
仕組み
暗号アルゴリズムは、いわゆるパスワード文字列で表された「共通暗号鍵」ではなく、「公開暗号鍵」方式を採用しています。
鍵は「暗号鍵」「復号鍵」という対(ペア)で使うことができ、片方の鍵からもう片方の鍵の生成が不可能という仕組みになっています。
つまり、「暗号鍵」は暗号化しかできず、「復号鍵」は復号しかできないということになります。
それを送信者は、ローカルで「ペア鍵」を生成し、暗号鍵(公開鍵)だけを相手に渡すことで、復号鍵(秘密鍵)は、 手元に残しておくことができます。暗号鍵から復号鍵を生成することは事実上、 不可能なので、盗聴者が通信経路上で暗号鍵を入手しても無意味です。
あとは、ローカルから一度も出たことのない復号鍵(秘密鍵)で、暗号化されたファイルを受け取ってから復号します。
AttacheCase.NETでは、 その中でも長年使用され、使いやすさと(今のところ)安全性が証明されている「RSA」というアルゴリズムを使っています。 大きな数の素因数分解が難しいことから安全性を得ています。このアルゴリズムでの公開鍵と秘密鍵は、 大きな(617桁の)素数のペアによる関数です。暗号文と公開鍵から元のデータを復号するのは、 その二つの素数の積を素因数分解するのに等しいと考えられます。
動作環境
アタッシェケース
.NET Framework 4.6以降
macOS Mojave以降
decoder
.NET Framework 4.6以降
macOS Mojave以降
料金
無料です。ご自由にお使いください。ただし、自己責任でのご利用をお願いいたします(お約束)