我正在努力主动解决我的 Jetty 网络服务器盒的安全问题——尤其是在存储 SSL key 信息方面,尽管我想要一个通用的解决方案。 Apache 使用 privilege separation以便它以 root 身份启动,以便它可以读取 protected SSL key 文件(和其他安全配置),然后切换到一些普通用户以实际服务器 HTTP 请求。但是 Java 没有执行此操作的机制。
关于如何在 Java 网络应用程序中实现相同级别的安全性有什么建议吗?我的要求包括:
secret 信息只能由 root 读取。
任何解锁 key 等的密码都不应配置到代码中,以免与服务器具有相同用户级别权限的人无法轻易获得它们。
我在 Amazon EC2 下运行,所以我希望安全性尽可能自动化——即运算符(operator)无需输入交互式密码。
一种可能性是使用 ~LDAP 将 secret 信息与应用程序分开,并且只将 LDAP 访问用户名/密码烘焙到应用程序中。但我正在寻找更好的解决方案。
感谢您提供任何信息。
编辑:
我希望解决方案涵盖 SSL 但考虑到我想限制访问的其他 secret 。我在最初的帖子中没有说清楚。
最佳答案
您描述的 Apache 技术由可选的 jetty-setuid 功能提供。
参见 http://www.eclipse.org/jetty/documentation/current/setuid.html
关于java - 如何使用 Java web 服务器实现 "privilege separation"的一些度量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16071578/