When encrypting Network traffic to your database server, there are two different approaches.
One is to use Oracle Native Encryption by setting
SQLNET.ENCRYPTION_SERVER=requested
on the server sqlnet.ora and that’s about it. Very easy to setup and nothing to do on the client. Also it was a good choice for performance and security.
The other option is to setup SSL/TLS on the listener by setting
PROTOCOL=TCPS
On both the server listener.ora and the client tnsnames.ora. It is more complex and support authentication, server checks and multiple features.
I’ve write about this here:
There has been a lot of hassle with it. Back in the time, when it was part of Oracle Networking Option or later called Advanced Security Option, it was too expensive for most customers, and pretty unused. There were some nasty security issue with REMOTE_LISTENER and RAC in 9i/10g so Oracle decided to waived that requirement around 2011 if I recall correctly.
But nothing was ready, not even Oracle Enterprise Manager. Old jdbc Drivers where just hanging, firewalls were confused, sqldeveloper was hanging when selecting clobs, Oracle Support wasn’t helpful, really, I did not like it.
In 23ai Oracle updated his documentation and now recommends TLS over NNE in Security Guide – 19. Securing data for Oracle connections.
Per default, SSL in Oracle 23ai now supports TLS1.3, which is Post Quantum Cryptography (PQC) ready. If you care about security, TLS adoption for your Oracle listener is recommended