Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwendet meine JDBC-Verbindung zur Datenbank SSL oder nicht?

Unterstützung für SSL/TLS ist in der JDBC-Spezifikation nicht vorgeschrieben. Sie können es also nicht bei jedem Treiber erwarten.

Die SSL-Konfiguration auf dem Datenbankserver könnte von der JDBC-URL abgeleitet werden, dies muss jedoch nicht deterministisch sein. Im Fall von Oracle, wenn Sie feststellen, dass die URL eine Verbindungszeichenfolge enthält, die angibt, dass das verwendete Protokoll TCPS anstelle von TCP ist, was auf die Verwendung von SSL/TLS hinweist. Wenn Sie dies tun, um eine Sicherheitskonfiguration zu validieren, würde ich Sie als schlampig bezeichnen.

Es ist unklug, die Client-Konfiguration allein zu überprüfen, um festzustellen, ob der Datenbankserver Verbindungen über SSL akzeptiert, insbesondere wenn Nicht-SSL-Verbindungen nicht zugelassen sind. Die Mechanismen zur Überprüfung der SSL/TLS-Konfiguration sind von Datenbank zu Datenbank unterschiedlich, es gibt jedoch in jedem Fall geeignete Sicherheitsleitfäden für die Konfiguration der Datenbank.

Wenn Sie jedoch einen schnellen Test durchführen möchten, um zu überprüfen, ob die Verbindung über SSL/TLS erfolgt, müssen Sie nur wissen, dass SSL/TLS-gesicherte Verbindungen mit einem Handshake initiiert werden. Wenn Sie keine sehen, verwendet Ihr Treiber kein SSL/TLS. Dazu müssen Sie den Netzwerkverkehr schnüffeln (stellen Sie sicher, dass Sie dazu berechtigt sind). Natürlich würde es länger dauern, den Fall festzustellen, wenn ein Verbindungspool verwendet würde, da die physikalischen Verbindungen im Pool möglicherweise immer wieder wiederverwendet werden (ohne dass neue Verbindungen aufgebaut werden). Ebenso könnte nmap für Sie nützlich sein, aber ich habe es nie für diesen Zweck verwendet.