When you use the Oracle JDBC client library to make an Oracle connection, is the password or the security-handshake encrypted by default? (Want to know if there is a risk that the password can be sniffed over the wire when making a connection using the Oracle JDBC client library)
Share
The password is always encrypted when in transit over the network.
That is not to say that it is impervious to attack. If an attacker can obtain the hash of a user’s password and they can monitor network traffic between a legitimate client and the database, then it is possible to obtain the plain-text password.
For the curious, here is a summary of the authentication process across various versions of the Oracle database software. The steps dealing with the transit of the encrypted password are in bold. It is not entirely intuitive which version of the authentication protocol is being used by the JDBC driver because it doesn’t always match its advertised version. This is because the client can negotiate which protocol it wishes to use. For example, the 11g JDBC driver may not necessarily use the 11g authentication protocol when connecting to an 11g database (it may fall back to the 10g authentication protocol). I forget which drivers use which protocols.
Authentication protocol in Oracle Database 8
Authentication protocol in Oracle Database 9i
Authentication protocol in Oracle Database 10g
Authentication protocol in Oracle Database 11g