Oracle sqlnet.encryption_server 加密传输

检查是否使用加密传输

注意事项及影响:

① 该项加固需要与业务确认是否有9i 客户端连接,9i 不支持

②采用规避方案如下:

10g:  

sqlnet.encryption_server = requested

sqlnet.encryption_server = rejected

11g:

sqlnet.encryption_server = rejected

sqlnet.encryption_server = requested

加固完用sqlplus登陆确认是否正常

该项加固完,可能在alert文件中产生TNS-12599: TNS:cryptographic  报错,需要在sqlnet.ora 中添加DIAG_ADR_ENABLED= OFF 参数,将错误记录到sqlnet.log 中

 

 

该项整改影响客户端到数据库的连接,需要谨慎操作,修改完确认连接是否正常

序号

操作内容

操作步骤

责任人

时间

1

登陆主机

su - oracle

 

 

2

检查监听和数据库状态

lsnrctl status

sqlplus ‘/as sysdba’

select open_mode from v$database;

 

 

3

进入oracle_home

cd $ORACLE_HOME/network/admin

 

 

4

备份sqlnet.ora

cp sqlnet.ora sqlnet.ora_bak

 

 

5

编辑sqlnet.ora

11g增加下面的内容进行规避,不影响业务

sqlnet.encryption_server = rejected

sqlnet.encryption_server = requested

 

11g则增加如下两行

sqlnet.encryption_server = requested

sqlnet.encryption_server = rejected

 

 

 

6

测试登陆

用sqlplus 登陆数据库测试登陆是否存在异常如果存在异常无法登陆则回退

 

 

7

检查数据库状态

Select open_mode from v$database;

 

 

8

检查业务连接是否正常

需要业务验证

 

 

9

待有业务连接时查看alert日志

对于11g 数据库在业务连接正常时需要检查alert 日志,是否存在TNS-12599: TNS:cryptographic 报错信息;如果存在则在sqlnet.ora中增加如下参数

DIAG_ADR_ENABLED= OFF

该错误则会记录到 $ORACLE_HOME/network/log/sqlnet.log 中否则alert 日志将会很大

 

 

10

观察alert日志

记录观察alert日志是否还存在报错信息

 

 

Oracle 高级安全分为两部分:

1.网络传输加密(包括ssl)

2.完整性校验

一.网络传输加密:

网络传输加密即将客户端也server段之间传输的数据进行加密:Oracle提供了很多加密方法来实现这一功能,完整性校验也同样依赖这些加密算法来实现

实施:

  1. 首先看一下,你当前的数据库是否安装了oralce 高级安全组件,oracle是否帮你安装了相应的加密算法。

1.1先看组件

[oracle@Database1 admin]$ adapters

Installed Oracle Net transport protocols are:

    IPC

    BEQ

    TCP/IP

    SSL

    RAW

    SDP/IB

 

Installed Oracle Net naming methods are:

 

    Local Naming (tnsnames.ora)

    Oracle Directory Naming

    Oracle Host Naming

    Oracle Names Server Naming

 

Installed Oracle Advanced Security options are:

 

    RC4 40-bit encryption

    RC4 56-bit encryption

    RC4 128-bit encryption

    RC4 256-bit encryption

    DES40 40-bit encryption

    DES 56-bit encryption

    3DES 112-bit encryption

    3DES 168-bit encryption

    AES 128-bit encryption

    AES 192-bit encryption

    AES 256-bit encryption

    MD5 crypto-checksumming

    SHA-1 crypto-checksumming

    Kerberos v5 authentication

RADIUS authentication

2.网络传输安全加密的方式:

网络传输加密需要在客户端可服务端两面分别配置,如应用也要加密则需要改程序。

高级网络安全的配置文件就是本机的sqlnet.ora文件。

 

关于网络传输加密的配置条目大约有3行

SQLNET.ENCRYPTION_SERVER = [accepted | rejected | requested | required]

默认值:accepted

SQLNET.CRYPTO_SEED = 'qweqwe123123'

长度10-70字母和数字(9i中必填10g中可填可不填)

SQLNET.ENCRYPTION_TYPES_SERVER= (RC4_128)加密算法

默认值是all available algorithms

下面是设置对照表,off表示加密失效,on加密开启,conn fails 设置失败。

 

 另外如果两端的配置文件中SQLNET.ENCRYPTION_TYPES_SERVER所选的加密算法   不一样也会连接失败。但是一段有加密算法一端没有也没事。

 

客户端存在两种模式:

1、通过oracle客户端软件连接数据库

2、通过jdbc驱动连接oracle数据库

通过oracle客户端的情况:

启用传输加密和校验的主要方法是通过服务器端和客户端的sqlnet.ora文件实现。

配置方法:

理论上需要在数据库server端和oracle客户端都修改sqlnet.ora文件,但因为client端默认传输加密级别是ACCEPTED,默认一致性校验级别是ACCEPTED,所以只需要在服务器端设置如下参数就可以打开传输加密和一致性校验功能,而不需要再对client端的sqlnet.ora进行设置(知识拓展部分介绍)。

 

在oracle服务器端编辑sqlnet.ora文件,添加参数:

SQLNET.ENCRYPTION_SERVER = REQUIRED               ----加密级别

SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256      ----加密算法

SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED     --- 一致性能校验

设置参数后对新建立的session起作用。

 

 

Client Setting

Server Setting

Encryption and Data Negotiation

REJECTED

REJECTED

OFF

ACCEPTED

REJECTED

OFF

REQUESTED

REJECTED

OFF

REQUIRED

REJECTED

Connection fails

REJECTED

ACCEPTED

OFF

ACCEPTED

ACCEPTED

OF不配置的情况下默认就是这种

REQUESTED

ACCEPTED

ON

REQUIRED

ACCEPTED

ON

REJECTED

REQUESTED

OFF

ACCEPTED

REQUESTED

ON

REQUESTED

REQUESTED

ON

REQUIRED

REQUESTED

ON

REJECTED

REQUIRED

Connection fails

ACCEPTED

REQUIRED

ON 这是上面配置的方法

REQUESTED

REQUIRED

ON

REQUIRED

REQUIRED

ON

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/81455923
今日推荐