密码学是一种广泛采用的技术来确保机密性。不考虑实现缺陷,它有一个关键点:密钥存储。如果密钥被盗,整个系统将受到威胁。
编辑 :
让我指定上下文以使问题不那么广泛:
- 这里解决了一个 java web 应用程序
- 更具体地说,它使用的是 spring 框架版本 3
- spring security 3.1 用于保护应用程序
- mysql5 数据库可用
- 应用服务器是tomcat6或tomcat7
- 服务器机器不在我的控制之下
也许问题可以集中在这种情况下,但正如所指出的,密钥存储的问题与所采用的技术是横向的。然而,一些库可能会提供可以以某种方式促进工作的特殊功能。一个明确的观点是,必须在安全性和做实际事情的需要之间找到一个权衡。为了完成分析,很明显,所需的安全级别取决于要保护的信息的价值。翻转我们的想法来执行超级安全的策略(需要付出很多努力)来保密客户的鞋码是没有意义的。
在这里,我必须保护电子邮件密码(将存储在数据库中)。我认为这些信息平均很关键。
我在这里寻找的是合理努力的最佳解决方案。
所以问题很明确:你会将这些信息存储在哪里?
- 你将它存储在数据库中吗?所以它应该被加密,这需要另一个密钥(你在哪里存储第二个密钥?)
- 你把它放在
.war
包里吗?您如何防止未经授权的访问源? - 你采取不同的策略吗?
您的策略的动机将不胜感激。谢谢你