2017-12-01 10 views
0

私はいくつかのユーザープロファイル情報をAESで暗号化したいと考えています。 ユーザーが登録すると、彼が提供するパスワードが使用されます。パスワードに16の長さがない場合は、AESに必要なキーの長さ(16ビット)を0にして16ビットに補完し、その鍵で私はこの時点で私のAESの鍵は安全であることを知っています。なぜなら誰もそれらを知っているのは彼ら自身のユーザー以外であるからです。AESパスワード保存問題

ユーザーがログインするとき、私は彼のパスワードを使って同じ16ビットプロセスを行い、自分のデータを復号化します。私が持っている問題は、パスワードの回復です。ユーザーがパスワードを忘れた場合、データは永遠に失われます。この問題の改善策や回避策はありますか?

ありがとうございました。

+0

これは、暗号化エンジニアリングに関するもので、crypto.stackexchange.comに属しているため、この質問を議論の対象外としています。 –

+3

もう一つのポイントは、おそらくビットとバイトが混ざっているということです。さらに、キーの導出方法はASCIIビットからおそらく派生しているのでセキュアではありません。ここで安全です... pbkdf2のように – DarkSquirrel42

+0

プロファイル情報を保存するには何の価値があるのですか?あなたが使用しない/使用できないデータを収集する理由書き込み専用メモリを作成しました。 – lockcmpxchg8b

答えて

1

が安全であるため、パスワードハッシュ(または、より正確には、パスワードベースのキー導出関数-PBKDF)を使用して0で埋めてください。パスワードはではなく、ではなく、128以上のランダム化ビットで構成されるキーと同じものです。

キー(またはパスワード)をリカバリする代わりに、ランダムなデータキーでデータを暗号化することができます。次に、このデータキーをユーザーのキーで暗号化することができます。 さらに、は、公開鍵(RSA)を使用してデータ鍵を暗号化します。秘密鍵は、分離されたストレージやバックオフィスのどこかで安全に保つことができます。あるキーと別のキーとの暗号化は、というキーラップと呼ばれます。

一部のデータは秘密にしておきたい場合があります。その場合、バックオフィスの公開鍵で暗号化しないでください。あなたのサーバーではなく、ユーザーの場所にこの種のデータを暗号化する可能性があります。

関連する問題