应用程序服务器数据源中的JDBC薄层加密

时间:2008-10-24 09:07:13

标签: database encryption jdbc datasource oc4j

我遇到了一篇有趣的文章,展示了如何使用java瘦客户端透明地加密jdbc连接。

http://javasight.wordpress.com/2008/08/29/network-data-encryption-and-integrity-for-thin-jdbc-clients/

但是我想知道如何为应用服务器(如oc4j)数据源实现这一点。

2 个答案:

答案 0 :(得分:1)

可以类似地完成。我相信Oracle AS在创建数据源时会在页面底部有一个选项,即添加属性。我相信你可以在那里添加以下内容并尝试一下。

// Set the Client encryption level  
"oracle.net.encryption_client" = Service.getLevelString(level)  

// Set the Client encryption selected list  
"oracle.net.encryption_types_client"= "(RC4_40)"

// Set the Client integrity level  
"oracle.net.crypto_checksum_client"= Service.getLevelString(level)  

// Set the client integrity selected list  
"oracle.net.crypto_checksum_types_client"="( MD5 )"

如果它成功了。请告诉我们。

谢谢, 富兰克林。

答案 1 :(得分:0)

某种程度上迟到的回复,但对于任何再次遇到这个问题的人来说

对于Enryption / Integrity:

您将需要在$ J2EE_HOME / config / data-sources.xml中手动插入此属性,如下所示: - 未经过彻底测试但应该可以正常工作,至少只需要很少的工作,但应该使用OracleDataSource工厂类 -

<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource" user=... >
     <connection-properties>
        <property name="oracle.net.encryption_client" value="REQUIRED123"/>
        <property name="oracle.net.crypto_checksum_types_client" value="(SHA1123)"/>
        <property name="oracle.net.crypto_checksum_client" value="REQUIRED"/>
        <property name="oracle.net.encryption_types_client" value="(AES256)"/>
     </connection-properties>
  </connection-factory>

对于SSL:

检查&#34;配置TCPS数据源&#34;此link

中的部分

富兰克林的解决方案无法正常工作,因为允许在OC4J中添加的属性仅限于某些枚举值,因此没有类似于&#34; oracle.net.encryption_client&#34;例如,无法添加...而是您将获得此oc4j error