我的 JDBC 与数据库的连接是否使用 SSL?
如何知道与SQL服务器的JDBC连接是否安全(即使用SSL)?
例如,从URL中是否很明显。是所有 JDBC 驱动程序都支持与数据库服务器的 SSL 连接,还是 SSL 的使用仅取决于特定的数据库供应商?
如何知道与SQL服务器的JDBC连接是否安全(即使用SSL)?
例如,从URL中是否很明显。是所有 JDBC 驱动程序都支持与数据库服务器的 SSL 连接,还是 SSL 的使用仅取决于特定的数据库供应商?
是否所有 jdbc 驱动程序都支持与数据库服务器的 ssl 连接,并且 ssl 的使用仅取决于特定的数据库供应商?
JDBC 规范中没有规定对 SSL/TLS 的支持。因此,您不能期望在每个驱动程序中都使用它。
数据库服务器上的 SSL 配置可以从 JDBC URL 推断出来,但这不一定是确定性的。就 Oracle 而言,如果您注意到 URL 包含一个连接字符串,该字符串指示正在使用的协议是 TCPS 而不是 TCP,则表明使用了 SSL/TLS。如果您这样做是为了验证安全配置,我会称您为草率。
仅验证客户端配置以确定数据库服务器是否接受通过 SSL 的连接是不明智的,尤其是在不允许非 SSL 连接的情况下。用于验证 SSL/TLS 配置的机制因数据库而异,但在每种情况下都有用于配置数据库的适当安全指南。
但是,如果您想进行快速测试以验证连接是否通过SSl / TLS,那么您所要知道的就是SSL / TLS安全连接是通过握手启动的。如果您没有看到任何内容,则您的驱动程序未使用 SSL/TLS。为此,您需要嗅探网络流量(请确保您有权这样做)。当然,如果连接池正在使用中,则需要更长的时间来确定这种情况,因为池中的物理连接可能会一次又一次地重用(无需设置新连接)。同样,您可能还会发现nmap很有用,但我从未将其用于此目的。
请尝试以下链接以获取信息:
MySQL : http://www.razorsql.com/articles/mysql_ssl_jdbc.html
甲骨文 : http://www.dbforums.com/oracle/1620651-ssl-connection-jdbc-thin-driver.html
PostgreSQL : http://archives.postgresql.org/pgsql-jdbc/2003-08/msg00110.php
MS SQL Server : http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jdbc_drivers/mssqlserver.html