暗号化は、機密性を確保するために広く採用されている技術です。実装上の欠陥を考慮していませんが、重要な点が 1 つあります。秘密鍵のストレージです。秘密鍵が盗まれると、システム全体が危険にさらされます。
編集 :
質問の幅を狭めるためにコンテキストを指定させてください。
- ここでは、Java Web アプリケーションが扱われます
- より具体的には、Spring Framework バージョン 3 が使用されます。
- spring security 3.1 は、アプリケーションを保護するために使用されます
- mysql5 データベースが利用可能です
- アプリケーションサーバーは tomcat6 または tomcat7 です
- サーバーマシンは私の管理下にありません
おそらく、質問はこのシナリオに集中することができますが、指摘したように、秘密鍵のストレージの問題は、採用されているテクノロジーに横断的です。ただし、一部のライブラリは、何らかの形で作業を容易にする独特の機能を提供する場合があります。明確なポイントは、セキュリティと実用的なことを行う必要性との間でトレードオフを見つけなければならないということです。分析を完了すると、必要なセキュリティ レベルは、保護する情報の価値に依存することは明らかです。顧客の靴のサイズを秘密にしておくために、非常に安全な戦略 (非常に多くの労力を必要とする) を強制するために、考えを変えることは無意味です.
ここでは、電子メールのパスワードを保護する必要があります (これはデータベースに保存されます)。この情報は平均して重要だと思います。
ここで私が探しているのは、合理的な努力による最善の解決策です。
質問は非常に明確です:この情報をどこに保存しますか?
- データベースに保存しますか?したがって、暗号化する必要があり、これには別のキーが必要です (そして、この 2 番目のキーをどこに保存しますか?)
.war
パッケージの中に保管していますか?ソースへの不正アクセスをどのように防止していますか?- 別の戦略を採用しますか?
あなたの戦略の動機は高く評価されます。ありがとうございました