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