java - 对管理员隐藏私钥等

标签 java security jakarta-ee weblogic administration

目前我正在参与开发一个基于Java EE(更准确地说是WebLogic服务器)的系统,我想知道如何保护一些私有(private)数据免受管理员的侵害。例如,系统的某些部分将遗留系统的凭据以纯文本形式存储在部署描述符中,这很糟糕,因为部署者可以读取应用程序配置文件(例如,ejb-jar.xml)并窃取强大帐户的用户名和密码。我想弥补这个安全漏洞,但不知道如何做。

现在我有兴趣保护此类数据:

  1. 登录
  2. 密码
  3. 对称加密的私钥

来自here我发现我可以使用 JCEKS keystore 来保护此类信息,但我不明白如何使用它。我的应用程序仍应包含 kestore 密码和访问它的 key 密码。因此,部署者可以窃取 keystore 和 key 的密码,找到我的安全存储并窃取凭证。显然,我可以撤销部署者帐户的读取权限,但随后他可以反编译我的应用程序并开发他自己的类似应用程序(或编辑我的应用程序),该应用程序只需将安全数据打印到某个文件或发送它通过电子邮件...现在我陷入困境...

任何人都可以给我一些可以解释如何保护系统免受管理员攻击的链接吗? Weblogic 相关链接将更可取。我完全理解不可能保护所有管理员,并且应该有一些安全管理员负责 keystore 管理等,但我希望保护所有敏感数据免受其他人的侵害。

结果

jtahlbornslim 的答案都是正确的,但 slims 的答案更有趣。我认为就我而言,只接受签名的应用程序在服务器上安装是合适的。该决定可以解决管理员所做的应用程序修改的问题。管理员将拥有 keystore 和所有 key 的密码,但他们根本无权访问 keystore 文件。只有特殊的安全管理员(“rw”)和服务器(“r”)才能访问 keystore 文件。因此,每个人都拥有 key ,但没有人(安全管理员除外)可以访问该盒子。

最佳答案

除非您在应用程序启动时输入登录凭据,否则此问题无法解决(假设管理员无法访问应用程序内存,这可能不是一个安全的假设)。 任何涉及 key 与应用程序位于同一位置的解决方案都将导致管理员(具有应用程序文件系统访问权限)能够访问应用程序可访问的任何敏感数据。这类似于 DRM 问题(您不能给某人一个上锁的盒子和 key 并期望他们无法打开盒子)。

关于java - 对管理员隐藏私钥等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200619/

相关文章:

java - 无法连接到 Mariadb Xampp 数据库

java - Groovy:JLine不等待输入Gradle

java - 使用JPA和排它锁并发访问时会发生什么?

java - Java EE 6 中的 Multi-Tenancy 支持

java - Guice中的嵌套注释方法拦截

java - 在 JMeter 的 CSV 数据集中,每个线程使用相同的行

javascript - 哪些 HTML 标签可能包含 javascript 代码?

python - 如何通过 xmlrpc 安全地获得对 supervisord 的编程访问?

ruby-on-rails - 使用 authlogic_api 访问 Rails REST API

java - 如何在 Java MVC Web 应用程序中构造 Controller 类?