安全に保管する必要のあるパスワードの大きなリストができ始めています。私はLastPassのようなパスワードマネージャーを探していましたが、これらは常にハッカーによって標的にされており、以前に侵害されてきたようです。
AES 256を使用して自分で暗号化したテキストドキュメントにパスワードを保存すると、何かが失われるのですか?次に、パスワードが必要なときに復号化しますか?
あなたが言及するこれらの妥協を考えると、自分でファイルを暗号化することは簡単だと思いますか?パスワードマネージャーのセキュリティ侵害につながる同じような落とし穴に陥らないことをどのようにして知っていますか?
AES 256は、計算上安全であると考えられています。すべてのコンピュータが同時に動作してキーをブルートフォースにした場合、当初から機能していたとしても、暗号化のキーを見つける可能性はほとんどありません。
ただし:安全なアルゴリズムは安全な実装を保証するものではありません。例を示すために、自分で質問する必要があるいくつかの質問を次に示します。
パスワードマネージャは、これらの(そしておそらく他の多くの)懸念事項を考慮して設計されています。特に自分がセキュリティの専門家でない場合、初めて自分で行うときにすべてを正しくすることはほとんど不可能です。
ボタンをクリックするだけでランダムなパスワードを生成する機能を失うことになります。つまり、利便性の欠如により、パスワードが脆弱になる傾向があります-パスワードマネージャーアプリの利点の1つは、オンラインでもオフラインでも、長い生成です。ランダムな文字列。
ただし、ファイルのコピーを紛失した場合でも、暗号化方式を正しく使用すれば、パスワードのセキュリティは安全に保たれます。
方法によっては、ショルダーサーフィンの新しい問題が発生する可能性があります。ほとんどのパスワードマネージャーでは、使用したいパスワードのみが表示されます。テキストファイルに複数のパスワードが含まれている場合、特定のパスワードを表示するときにそれらすべてを公開する可能性があります。複数のファイル、またはパスワード間に非常に大きなギャップがある単一のファイルを使用することで、それを回避できると思います。
また、復号化されたデータがディスクに書き込まれないという保証も得られない可能性があります。パスワードマネージャーアプリは、復号化されたパスワードをメモリに保持するように細心の注意を払う傾向がありますが、復号化の処理が自分で同じであることを確認する必要があります。 。
pass に興味があるかもしれません。
pass
では、各パスワードは、そのファイル名がパスワードを必要とするWebサイトまたはリソースのタイトルであるgpg暗号化ファイル内にあります。これらの暗号化されたファイルは、意味のあるフォルダー階層に整理され、コンピューターからコンピューターにコピーされ、一般に、標準のコマンドラインファイル管理ユーティリティを使用して操作されます。
pass
を使用すると、これらの個別のパスワードファイルの管理が非常に簡単になります。すべてのパスワードは~/.password-store
、およびpass
は、パスワードを追加、編集、生成、および取得するためのいくつかのNiceコマンドを提供します。これは非常に短くてシンプルなシェルスクリプトです。一時的にクリップボードにパスワードを入れ、git
を使用してパスワードの変更を追跡することができます。
AES 256を使用して自分で暗号化したテキストドキュメントにパスワードを保存すると、何かが失われるのですか?
セキュリティに関しては、違います。はい、便利です。パスワードの保存方法とキーの長さによって異なります。しかし、はい、あなたは間違いなくそれを自分で行うことができます。
あなたの点では、市販の製品を使わずに、自分のアプリケーションにローカルでパスワードを保存することをお勧めします。これらの製品に存在する脆弱性と、それらのアプリケーションを標的にしているハッカーの数がわからないためです。
独自のツールを作成する場合は、以下の点に注意する必要があります。
Java=を例に取ると(私はあなたがそれにどれほど精通しているのかわかりません)、以下の点を考慮する必要があります。
パスワードをテキストドキュメントに保存することで何かが失われるか
いいえ。正しいアルゴリズムを使用している場合は必要ありません。
AES 256?
Javaを使用している場合、JavaのCipherクラスにキーサイズの制限が実装されているため、これは不可能です。 Bouncycastle Crytoライブラリに依存するか、または 無制限の強度のJCE ファイルを使用する必要があります。ただし、暗号化されたデータをエクスポートする場合は、これを使用する前に Jurisdiction law を確認する必要があります。
私の提案は、AES 128を採用することです。これは、業界での事実上の標準のようなものだからです。
コンテキストで暗号化されたデータを保護するための獣の方法は、 Javaのオブジェクト暗号化 を使用することです。これは、DBを使用して暗号化されたデータを格納することは余分な負担になるためです。
暗号化キーを保存および配布する最良の方法の1つであるため、キーを Javakeyストア に保存します。
Javaアプリケーションを作成して、キーストアのパスワードを除き、暗号化と復号化を行うことができます。次のようなクラスを作成してパスワードを管理することができます。パスワードを復号化した後でキー検索を実行します。オブジェクトの配列/リスト。
public class PasswordStore {
private String Key;
private char[] passwd;
private Date Updated;
public String getKey() {
return Key;
}
public void setKey(String Key) {
this.Key = Key;
}
public char[] getPasswd() {
return passwd;
}
public void setPasswd(char[] passwd) {
this.passwd = passwd;
}
public Date getUpdated() {
return Updated;
}
public void setUpdated(Date Updated) {
this.Updated = Updated;
}
最後に、次のようなオブジェクトを暗号化できます。
private List<PasswordStore> passwords;
文字列は不変であり、メモリハイジャック攻撃に対して脆弱であるため、パスワードを文字列変数に格納しないなど、他の安全なプログラミング手法を使用することを覚えておいてください。
このタスク用に設計されたパスワードマネージャーが最適であるという一般的な意見には同意しますが、手間をかけて、いくつかのユースケースでは暗号化されたテキストファイルが適切に機能することを提案します。暗号化されていないデータがディスクに書き込まれないようにする必要があります。私が見つけた最良の方法は、テキストエディターでファイルを透過的に暗号化および復号化することです。
私はVIM=を目的に使用します。VIM 7.4では、~/.vimrc
ファイルに以下を追加します:
if !has("nvim")
:set cryptmethod=blowfish
endif
ここで新しいファイルを開きます。
$ vim -x secrets.txt
VIMはパスワードを2回要求します。
これで、-x
フラグなしでファイルを開くことができ、VIMは開くたびにパスワードを要求します。保存と編集は正常に機能します(VIMの場合は通常)。
Androidまたはファイルを復号化できるiOについては何も知りません。ご注意ください。通常のパスワードにはLastPassを個人的に使用しており、VIMコンパートメント化する必要があるいくつかの特殊作業の暗号化。