2017-02-14 12 views
1

私たちはすべてのサイトでセキュリティアップデートを実施しています。その際には、転送時にデータを暗号化し、残りのデータを暗号化します。aspnet_Profileテーブルに格納されたデータを暗号化する必要があります

SSL証明書を追加すると、転送時にデータが暗号化され、ユーザーの個人的な詳細として分類されるデータベース内のすべてのデータを暗号化する必要があります。

これらの詳細の一部は、aspnet_profileテーブルに格納されています。

この表に格納されているデータの暗号化に関するアドバイスはありますか? 本当にセキュリティ更新プログラムの一部としてデータを暗号化する必要がありますか?

答えて

0

です。ユーザーの情報にアクセスできるようにしたいのですか、またはユーザーはそのデータにアクセスできる唯一のユーザーですか?

データベースがWebサーバーとは別のサーバーに格納されている場合や、別のサーバーに格納されている場合は、データの暗号化は意味があります。データを解読してユーザーに提示するには、解読する必要があります。暗号化されたデータとキーが同じサーバーにあり、そのサーバーが侵害された場合、攻撃者はすべてのものを復号化することができます。それらを別々に保管すると、2台(またはそれ以上)のサーバーを妥協する必要があります。これはおそらくより困難になります。また、暗号化は重要な作業であるため、機密データを暗号化するだけで済みます(シナリオでは機密扱いとみなされます)。パスワードのようなデータは暗号化するのではなく、代わりにハッシュして塩漬けするべきです(オンラインでは、その方法に関する情報が豊富です)。すべてを暗号化する場合は、各ユーザーに異なるキーを割り当てる必要があります。そのため、1つのキーが侵害された場合、1人のユーザーのみが影響を受けます。

ユーザーに保存された情報を表示させたい場合は、暗号化せずに別のデータベースに保存するか、独自のキーで暗号化しない限り、その情報にアクセスできないことを確認する必要があります。パスワードを失ったユーザーは、自分のキーを使って情報をバックアップしていない(または目的に反する平文で保存している)場合、問題が発生します。あなたがデータのコピーを持っていても、データの回復とは、あなたの鍵(平文で保存されていない場合)を使用してそれを復号化し、ユーザが設定した新しい鍵で再度暗号化することを意味します。データの量が多い場合、これは重大な作業になります。最後に、ユーザーだけにアクセス権と完全な責任を持たせたい場合は、にすべてという名前でアクセスできないようにする必要があります。クライアント側で暗号化を行うことが望ましいです。この場合も、機密データのみを暗号化する方が良いでしょう。また、ユーザーログインのユーザー名やパスワードなどの情報は暗号化しないでください。同じような原則のハッシュ処理がこの機会のパスワードにも適用されます。

どちらのシナリオでも、キーを紛失すると、すべてがのデータを失う可能性があることに注意してください。また、AES CFBモードのような良い暗号化方式を使用する必要があります。

全体として、それは良いアイデアであろうとなかろうが、本当にあなたの持つデータの機密性と予算に依存します。定期的なバックアップが必要になるだけでなく、キーを紛失しないよう注意しながら処理する必要があります。追加のサーバーも必要になるでしょう。ウェブサイトのトラフィック量が多い場合は、この重い作業に対処するために強力なサーバーが必要になるでしょう。

関連する問題