暗号・復号はユーザのブラウザで行われ、一切サーバーへデータは送信されません。
暗号化された情報は、復号URLのパラメータに含まれます。
本サービスは、ユーザが入力したパスフレーズから「PBKDF2」を利用しAESキーを生成しています。
ランダムなソルトで、HMAC/SHA-256ハッシュ関数を100,000回通されます。(反復回数は指定可能)
AESキーと初期ベクトルを使い、AESにより暗号化されます。
TXT-Crypter | Evernote | |
---|---|---|
キー生成 | PBKDF2 | PBKDF2 |
反復回数 | 100,000回~(指定可能) | 50,000回 |
暗号 | AES - 256bit | AES - 128bit |
復号URLは、基本的にはご自身だけがアクセスできる場所に保管しましょう。
他人にURLが知られなければ、不正に復号されることはありません。
たとえ復号URLが他人に知られたとしても、パスフレーズを知らなければ復号することはできません。
本サービスは、手動で復号する方法を公開しています。(もちろんパスフレーズは必要です)
万が一、本サービスが利用できなくなり、復号できなくなることを避けるためです。
一方で、不正に復号されないか心配になるかもしれません。
推測されやすいパスフレーズではない場合でも、総当たりで突破されないか考察してみましょう。
仮に、パスフレーズに英字(大文字・小文字) + 数字 + 記号32文字種を8桁入力した場合、6,095,689,385,410,816パターン(94文字の8乗)存在します。
私のPC(Core i5 11世代)では、初期値の反復回数100,000回で、1回の暗号化時間はおおよそ800msかかりました。
分かりやすく2回/秒だとすると、1日に172,800回しか試行できません。
このペースで総当たりしようとしても約一億年かかる計算です。
8桁でも上記ですので、さらに桁数を多くすると途方もないパターンになります。
さらに反復回数を大きくすることにより、1回の復号時間がかかり総当たりにもっと時間がかかります。
また攻撃者はパスフレーズの総当たりに加え、反復回数も総当たりする必要があります。
この時点で、かなり安心できると思います。
特に、パスフレーズに日本語を含めることをお勧めします。
日本語の総当たりは実質不可能だと思います。
ここまでお読みになり、不正に復号される可能性は限りなくゼロに近いと思いますが、万が一解読されたらどうでしょう。
暗号化するテキストは、サイト名、ID、パスワードをセットにしないようにしましょう。
例えば、一回の暗号化では「パスワード」のみにしましょう。
仮に不正に復号されパスワード「だけ」が知られたとしても、それがどのサイトのパスワードなのか、IDは何か、攻撃者には分かりません。