【问题标题】:Tomcat JDBC (Datasource) password encryption and decryptionTomcat JDBC(Datasource)密码加解密
【发布时间】:2021-12-31 00:27:01
【问题描述】:

我对Tomcat JDBC密码加密和解密有些顾虑。

据我所知,通常情况下,我们在 tomcat 上设置数据源,如下所示。

<Resource name="jdbc/MyDB"
      factory="nl.wimvanhaaren.tomcat.secured.EncryptedDataSourceFactory"
      secretKey="secretKeyId"
      auth="Container"
      type="javax.sql.DataSource"
      maxActive="100"
      maxIdle="30"
      maxWait="10000"
      username="databaseUser"
      password="dd30b6e87a972be1999fda04f657eca0"
      driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
      url="jdbc:sqlserver://localhost:1433;databaseName=MyDB"/>

或者我们在 DataSourceFactory jar 文件上设置 secretKey。

据我了解,在这些情况下,可以访问服务器的人可以通过以下方式提取实际密码:

  1. 使用 jar 文件和 tomcat 配置文件中的“secretkey”解密,或者
  2. 使用已在 jar 文件中包含“secretkey”的 jar 文件进行解密。

IBM WebSphere 在插入数据库密码时具有屏蔽功能,因此安全团队插入后没有人可以看到密码。 有没有办法在Tomcat上做到这一点?从现在开始(迁移),我需要在 Azure 上使用 tomcat 而不是本地 WebSphere,但在 google 上找不到与此相关的答案或内容。请帮忙~!

提前致谢。

【问题讨论】:

    标签: tomcat encryption jdbc jndi


    【解决方案1】:

    IBM WebSphere在插入数据库密码时具有屏蔽功能,因此安全团队插入后没有人可以看到密码

    它的工作方式与 Tomcat 基本相同,只是 WS 对密码是如何加密的记录较少。如果您使用存储的数据库密码、用于加密/解密密码的库和主密码/密钥(都存储在文件系统中),那么有权访问服务器的人也可以解密 WS 上的数据库密码。这个过程只是不那么透明。

    原则上是这样,一旦某个系统需要解密和使用某些数据,就需要手头有密钥(或获取密钥的凭据和参数)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多