Tomcat JDBC(Datasource)密码加密解密

Tomcat JDBC (Datasource) password encryption and decryption

我对TomcatJDBC密码加解密有一些顾虑

据我所知,通常,我们在 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. 使用来自 tomcat 配置文件的“secretkey”的 jar 文件进行解密,或
  2. 正在使用 jar 文件解密,该 jar 文件中已经包含“secretkey”。

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

提前致谢。

IBM WebSphere has masking feature when inserting DB password, so no-one can see the password after insert by Security Team

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

大体上是这样的,只要有系统需要解密和使用一些数据,就需要有密钥在手(或者凭据和参数获取密钥)。