Ma connexion JDBC à la base de données de l'utilisation de SSL ou pas?
Comment peut-on savoir si la connexion JDBC SQL server est sûr (c'est à dire qui utilise le protocole SSL) ou pas?
Est évidente, par exemple à partir de l'URL. Faire tous les pilotes JDBC en charge les connexions SSL pour le serveur de base de données, ou l'utilisation de SSL, tout dépend de la base de données spécifique vendeur?
- C'est DB-spécifique, oui, donc vous devrez être précis dans votre question.
Vous devez vous connecter pour publier un commentaire.
Support pour SSL/TLS n'est pas obligatoire dans la spécification JDBC. Donc ne vous attendez pas à chaque pilote.
Configuration SSL sur le serveur de base de données peut être déduit à partir de l'URL JDBC, mais ce ne doit pas être déterministe. Dans le cas d'Oracle, si vous remarquez que l'URL contient une chaîne de connexion qui indique que le protocole utilisé est de l'EPTC au lieu de TCP, qui pointe à l'utilisation de SSL/TLS. Si vous faites cela pour valider la configuration de la sécurité, je voudrais vous appeler bâclée.
Il est judicieux de vérifiez la configuration du client lui seul, de déterminer si la base de données du serveur accepte des connexions via le protocole SSL, surtout si non les connexions SSL sont interdits. Les mécanismes de vérification de la connexion SSL/TLS configuration varient à partir de la base de données de la base de données, mais il serait approprié de guides de sécurité pour la configuration de la base de données dans chaque cas.
Si vous voulez faire un test rapide toutefois, pour vérifier si la connectivité est sur SSl/TLS, puis tout ce que vous devez savoir, c'est que le protocole SSL/TLS connexions sécurisées sont engagées avec une poignée de main. Si vous ne voyez pas tout, alors votre pilote n'est pas à l'aide de SSL/TLS. Vous aurez besoin de détecter le trafic réseau pour cette (assurez-vous que vous avez l'autorisation de le faire). Bien sûr, il faudra plus de temps pour établir le cas si un pool de connexions ont été en usage, pour les connexions physiques dans la piscine peut être réutilisé une fois de plus (sans nouvelles connexions en cours d'installation). De même, vous pouvez également trouver nmap pour être utile, mais je n'ai jamais utilisé à cette fin.
encrypt=true
drapeau dans l'URL lecteurs de la configuration de savoir si le protocole SSL/TLS seront employées.STARTTLS
SMTP). Dans ce cas, la connexion en elle-même ne commencez pas avec une poignée de main, de sorte que vous avez à regarder plus de trafic avant de le voir. Il n'est pas toujours évident.oracle.net.ssl_server_dn_match
estfalse
par défaut.Essayez ces liens pour plus d'informations:
MySQL : http://www.razorsql.com/articles/mysql_ssl_jdbc.html
Oracle : 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
À mon avis, un moyen rapide, sûr et fournisseur neutre de manière à assurer, d'une connexion SSL entre votre client et votre serveur est d'utiliser s-tunnel.
s-tunnel (parfois aussi appelée "stunnel") vous donne beaucoup de flexibilité, tels que l'authentification mutuelle, etc, et permet toujours, les applications installées sur le Serveur de base de données à communiquer avec lui via une connexion non-SSL (SQL Server par exemple permet les connexions en trois modes (SSL OFF, SSL en Option, ou SSL Uniquement).
À l'aide de s-tunnel de votre connexion seraient acheminés à quelque chose comme ceci:
Par la mise en stunnel avec les règles de pare-feu vous pouvez avoir confiance que les connexions à distance à la base de données sont à l'aide de SSL.