パスワードをファイルで管理するならAES256で暗号化しよう!
まず結論ですが、PCで簡単に、かつ、自力でパスワードを管理したい場合は英数字混在文字8桁以上を使ってAES256で暗号化したzipファイルで管理しましょう。
もちろん、より強固にガードしたい場合は記号を含めたり、桁数を長くすればよいですが、最低ラインとしては英大小文字数字混在8桁が目安になるかと思います。
なお、AES256でのzipはWindows10などのOSではデフォルトではサポートしていないため、7-zipなどの対応ソフトが必要です(7-zipはフリーソフトです)。
少し手間ですが、お金も掛かりませんし、安心・安全を手に入れるためなのでしっかり対応しましょう。パスワードがもし漏れたら大変ですからね。
自宅PCで簡単にパスワードを管理したい
私は自力でパスワード管理したい派です。
私はブラウザはchromeを使っているので、Webで入力するパスワードはgoogleが覚えてくれてオートコンプリートされます。なので、パスワードがわからなくなることは稀なのですが、googleに全パスワードを委ねるのもリスキーだし正直気持ち悪いです。万が一、googleからパスワード情報が消えてしまったらどうしようもなくなりますし、今後永久にgoogleが存続できる保証もありません。
パスワード管理用のサービスやソフトもあるのですが、その提供元が信頼できるかどうかの問題は結局付きまとうし、何よりもパスワード管理にお金を使いたくない(パスワード管理サービス・ソフトはほとんどが有料です)。
というわけで、自力でパスワードを管理するに至ったわけです。
自力でのパスワード管理方法
自力でのパスワード管理でまず思いつくのが、メモ帳(テキストファイル)に情報を直書きする方法。でもこれは説明するまでもなく危険すぎます。そのファイルさえ見つけてしまえばパスワードがばれてしまうわけですから、PCにパスワード書いた付箋を貼ってるのと大差ないです。
じゃあ、そのテキストファイルにパスワードを付けようってなるのですが、ここが悩みどころ。
なるべく汎用性を持たせつつ、かつ、安全に管理したいわけです。
パスワード付きzip
まず思いつくのがパスワード付きzip。
でも、これは気を付けたほうがいいです。比較的手軽に設定できるパスワード付きzipですが、復号化する処理が軽いため、ありとあらゆる文字の組み合わせを試す総当たり攻撃(ブルートフォース攻撃)でパスワードを解読される可能性が高いのです。
英大小文字+数字の62字を使って8桁のパスワードを設定する場合を想定してみましょう。
wikipediaの総当たり攻撃のページでは8桁の英大小文字数字混在のパスワード解読には約50年かかると記載されていますが、これは10年以上も前である2008年のデータになります。同じサイトには、当時のスーパーコンピュータの性能と比較した場合、2016年の市販GPU1つでその10倍の処理能力があるとも記載されており、この数字は遠い過去の話だと思ってみたほうが良いです。
実際、2020年の処理能力だと13時間程度で解読可能、との見解もあるようです。今はAWSなどのクラウドサービスを使えば超高性能の処理能力を気軽に試すことができる状況なので、もっと早く解読できるような気もします。いずれにしても、ブルートフォース攻撃の脅威はより高まっていると考えて間違いなさそうです。
AES256でのzipパスワードの強度
秘密鍵認証などを使って暗号化すれば安全性が高まるのですが、ちょっと手間ですね。鍵の管理も必要になりますし。
そこで目を付けたのがzipパスワードをAES256の暗号化方式で暗号化する方法。
Windows 10などのOSではデフォルトでは対応していないので、ソフトのインストールが必要ですが、ファイル暗号化のメジャーなフリーソフトである7-zipが対応してます。
AES256は復号するのに時間がかかるため、zip標準の暗号化に比べるとブルートフォースに時間がかかります。
どれくらいかかるかというと、7-zipのヘルプファイルに以下のように書かれてます。
AES encryption
7-zip(v19.00)のhelpより
7-Zip supports encryption with the AES-256 algorithm. This algorithm uses a cipher key with length of 256 bits. To create the key, 7-Zip uses a derivation function based on an SHA-256 hash algorithm. A key derivation function produces a derived key from a text password defined by the user. To increase the cost of an exhaustive search for passwords, 7-Zip uses a big number of iterations to produce the cipher key from the text password.
Tips for selecting password length
Here is an estimate of the time required for an exhaustive password search attack, when the password is a random sequence of lowercase Latin letters.
The most complex task for password search attack is SHA-256 calculation. Special SHA-256 hardware or GPU can be used to accelerate password search attack. Now modern GPU can provide about 10 times more performance for SHA-256 calculation than modern CPU. And special SHA-256 hardware can provide about 20 times more performance than GPU.
We suppose that one user with a budget of about $2000 (for GPUs) can check 10000 passwords per second and an organization with a budget of about 10^9 USD (one thousand million US dollars) can check 3 * 10^12 passwords per second. We also suppose that the processor in use doubles its performance every two years; so, each additional Latin letter of a long password adds about 9 years to an exhaustive key search attack.
The result is this estimate of the time to succeed in an attack:
Single Attackで8桁の復号に1年かかります。組織的な攻撃を受けた場合は1秒と瞬殺ですが、私は組織的な攻撃を受けるような身ではないので無視します(笑)
1年もかけて私のパスワードファイルを復号しようとする人はいないでしょう、ってことで、パスワードファイルは7-zipを使ってAES256でzip形式に暗号化することに決めました(パスワードは8桁以上)。
まとめ
様々なサービスを利用する際にパスワードが必要になりますが、パスワードは複雑なものを設定しなければならないし、使いまわしも禁止。もはや全てのパスワードを記録せずに記憶しておくことは不可能です。
なるべくお手軽に安全にパスワードを管理したい人は、テキストファイルで管理して、AES256で暗号化する方式がお勧めです(もちろん、設定するパスワードはなるべく長く複雑なものにしてくださいね。最低でも英大小文字数字混合で8桁以上です)。
最後に、それでも不安という方には紙にパスワードを書いて家に保存しておくことをお勧めします。デジタル化しないのはサイバーリスクから身を守る最良の方法なのです。
ただ、その紙を紛失してしまうリスク等、物理管理ならではのリスクがあることも忘れずに。
ということでパスワード管理の方法についてでした。
この情報が皆様のお役に立てると幸いです!
コメント