直连Oracle Cloud VM中非自治DB System数据库是否加密?
结论
你当前使用的直连链路默认未加密,和AWS RDS默认强制传输加密的逻辑不同:OCI上非自治的虚拟机形态DB System不会默认开启数据库连接传输加密,你目前未配置SSH隧道、连接串走普通TCP协议的场景下,SQL Developer和数据库之间的报文是明文传输的。
快速验证方法
- 会话状态查询:连接到数据库后执行以下SQL,直接读取当前会话的网络加密状态
SELECT SYS_CONTEXT('USERENV', 'NETWORK_PROTOCOL') AS connect_protocol, SYS_CONTEXT('USERENV', 'NETWORK_TRANSFORMATION') AS encryption_type FROM DUAL;
返回结果判断规则:如果encryption_type字段值为空或者为NONE,代表当前连接无加密;返回AES256/AES128等加密算法名称时,才代表连接已启用加密。
- 连接串配置排查:你提供的长连接串中明确指定
PROTOCOL=TCP,无TCPS协议配置、无SSL证书校验参数、无Oracle原生加密相关的连接属性,默认走明文传输逻辑。
配置逻辑说明
- OCI不同数据库服务的加密默认规则不同:自治数据库默认强制TCPS(TLS)加密,但是用户自行管理的虚拟机DB System属于IaaS层服务,传输加密配置完全由用户控制,平台不会做默认强制开启的预置。
- 你当前使用的1521端口是Oracle普通TCP监听的默认端口,未做加密配置的情况下,包括账号密码、业务数据在内的所有传输内容都可以被链路抓包读取。
- 不要直接套用AWS RDS的使用经验:AWS RDS for Oracle默认开启Oracle原生网络加密(NNE),OCI虚拟机DB System的默认镜像不会预置这个配置。
可选加密方案
- Oracle原生网络加密(NNE):无需配置证书,只需在数据库服务端的
sqlnet.ora文件中配置加密算法校验规则,同时在SQL Developer连接属性的「Oracle高级安全」项中勾选加密选项即可,不需要修改监听端口,仍然使用1521端口通信,配置成本更低。 - TCPS(TLS传输加密):需要在数据库侧配置服务端证书,默认使用2484端口监听,连接串需要将
PROTOCOL=TCP改为PROTOCOL=TCPS,同时在客户端配置证书信任规则,安全等级更高,符合等保合规的传输加密要求。
内容的提问来源于stack exchange,提问作者Thomas Carlton
相关产品推荐
相关产品推荐

