目前我参与开发一个基于 Java EE(更准确地说是 WebLogic 服务器)的系统,我想知道如何保护一些私有数据免受管理员的侵害。例如,系统的某些部分将遗留系统的凭据以纯文本形式存储在部署描述符中,这很糟糕,因为部署者可以读取应用程序配置文件(ejb-jar.xml
例如)并窃取强大帐户的用户名和密码。我想关闭这个安全漏洞,但不知道如何。
现在我对保护这种数据感兴趣:
- 登录
- 密码
- 用于对称加密的私钥
从这里我发现我可以使用 JCEKS 密钥库来保护此类信息,但我不明白如何使用它。我的应用程序仍应包含 kestore 密码和访问它的密钥密码。因此,depoyer 可以窃取密钥库和密钥的密码,找到我的安全存储并窃取凭证。显然,我可以撤销read
部署者帐户的权限,但随后他可以反编译我的应用程序并开发他自己的类似应用程序(或编辑我的应用程序),只需将安全数据打印到某个文件或通过电子邮件发送......现在我我卡住了……
谁能给我一些可以解释如何保护系统免受管理员攻击的链接?Weblogic 相关链接将是可取的。我完全理解不可能保护所有管理员,应该有一些security administrator
人负责密钥库管理等,但我想保护所有敏感数据免受其他人的侵害。
结果
jtahlborn和slim的答案都是正确的,但slims的答案更有趣。我认为在我的情况下,只接受签名的应用程序安装在服务器上是合适的。这个决定可以解决管理员对应用程序进行修改的问题。管理员将拥有来自密钥库和所有密钥的密码,但他们根本无权访问密钥库文件。只有特殊的安全管理员 ('rw') 和服务器 ('r') 才能访问密钥库文件。因此,每个人都将拥有密钥,但没有人(安全管理员除外)可以访问该盒子。