打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为Oracle 服务器和客户端配置网络数据加密和完整性_sqlnet.crypto_checksum
userphoto

2024.04.30 浙江

关注

Oracle 高级安全加密

安全密码系统的目的是基于密钥将明文数据转换为无法理解的密文,这样在不知道正确密钥的情况下很难(在计算上不可行)将密文转换回其相应的明文。在对称密码系统中,相同的密钥用于加密和解密相同的数据。Oracle Advanced Security 提供了高级加密标准 (AES)和 3DES 对称密码系统 ,用于保护 Oracle 网络服务流量的机密性。

高级加密标准 (AES):Oracle Advanced Security 支持联邦信息处理标准 (FIPS) 加密算法高级加密标准 (AES)。所有美国政府组织和企业都可以使用 AES 来保护网络上的敏感数据。该加密算法定义了三种标准密钥长度,分别为 128 位、192 位和 256 位。所有版本都在外部密码块链接 (CBC :Cipher Block Chaining )模式下运行。

Oracle Advanced Security 支持3DES 加密 (3DES),它使用 DES 算法的加密三遍消息数据。3DES 提供了高度的消息安全性,但会降低性能。性能损失的大小取决于执行加密的处理器的速度。与标准 DES 算法相比,3DES 通常需要三倍的时间来加密一个数据块。3DES 有两密钥和三密钥版本,有效密钥长度分别为 112 位和 168 位。两个版本都在外部密码块链接 (CBC :Cipher Block Chaining )模式下运行。

基于 Diffie-Hellman 的密钥协商

安全密钥 在多用户环境中分发是困难的。Oracle Advanced Security 使用众所周知的Diffie-Hellman 密钥协商算法来执行加密和数据完整性的安全密钥分发。

当使用加密来保护加密数据的安全性时,必须经常更改密钥以尽量减少密钥泄露的影响。因此,Oracle Advanced Security 密钥管理功能会随着每个会话更改会话密钥。

认证密钥折叠

Authentication Key Fold-in 的目的是在 Diffie-Hellman 密钥协商中击败可能的第三方攻击(历史上称为中间人攻击)。它通过将只有客户端和服务器知道的共享秘密与由 Diffie-Hellman 协商的原始会话密钥相结合,显著增强了会话密钥。

客户端和服务器开始使用 Diffie-Hellman 生成的会话密钥进行通信。当客户端向服务器进行身份验证时,他们会建立一个只有双方知道的共享秘密。Oracle Advanced Security 将共享密钥和 Diffie-Hellman 会话密钥相结合,生成更强大的会话密钥,旨在抵御中间人攻击。

注:身份验证密钥折叠功能是 Oracle Advanced Security 的一个嵌入式特性,不需要系统或网络管理员进行配置。

如何配置数据加密和完整性

网络或安全管理员设置加密和完整性配置参数。使用数据加密和完整性的客户端和服务器系统上的配置文件(sqlnet.ora文件)必须包含本节中列出的部分或全部参数。

在任何网络连接中,客户端和服务器都可能支持一种以上的加密算法和一种以上的完整性算法。建立连接后,服务器会从sqlnet.ora文件中指定的算法中选择要使用的算法(如果有)。

服务器搜索客户端和服务器上可用算法,并选择第一个同时在服务器端、也在客户端的算法。如果连接的一侧没有指定算法列表,则安装在该侧的所有算法都可以接受。如果任一方指定了未安装的算法,连接失败并显示错误消息ORA-12650 。

加密和完整性参数是通过修改客户端和服务器上的sqlnet.ora文件来定义。

您可以选择配置任何或所有可用的 Oracle Advanced Security 加密算法(下表 )和可用的完整性算法 (SHA-1)。每个连接会话仅使用一种加密算法和一种完整性算法。

注释:Oracle Advanced Security 选择在客户端和服务器上启用的第一个加密算法和第一个完整性算法。Oracle 建议您按照您喜欢协商的顺序选择算法和密钥长度,首先选择最强的密钥长度。

Algorithm NameLegal Value
RC4 256-bit keyRC4_256
RC4 128-bit keyRC4_128
RC4 56-bit keyRC4_56
RC4 40-bit keyRC4_40
AES 256-bit keyAES256
AES 192-bit keyAES192
AES 128-bit keyAES128
3-key 3DES3DES168
2-key 3DES3DES112
DES 56-bit keyDES
DES 40-bit keyDES40
  • DES: Data Encryption Standard (an old 56 bit encryption method)

  • 3DES168: triple DES with a three-key (168 bit) option

  • AES128: Advanced Encryption Standard with 128-bit key (currently the most use for data encryption)

  • AES256: Advanced Encryption Standard with 256-bit key (currently the most secure)

  • RC4_128: RC4 with 128-bit key (RC4 is the international standard for high-speed data encryption)

  • RC4_256: RC4 with 256-bit key

关于谈判加密和完整性

要协商是否打开加密或完整性, 通过Oracle Advanced Security 加密和完整性配置参数指定四个可能的值。这四个值按安全性增加的顺序列出。该值REJECTED提供客户端和服务器通信之间的最小安全量,该值REQUIRED提供最大网络安全量:

REJECTEDACCEPTEDREQUESTEDREQUIRED
拒绝接受请求要求
无论如何也不会启用安全服务如果对方需要或请求,选择此值以启用安全服务,否则不启用安全服务如果对方允许,选择此值以启用安全服务,如果对方拒绝则关闭安全服务选择此值以启用安全服务或阻止连接

开启加密或完整性配置参数默认值:ACCEPTED

Client SettingServer SettingEncryption and Data Negotiation
REJECTEDREJECTEDOFF
ACCEPTEDREJECTEDOFF
REQUESTEDREJECTEDOFF
REQUIREDREJECTEDConnection fails:连接终止错误信息ORA-12650
REJECTEDACCEPTEDOFF
ACCEPTEDACCEPTEDOFF 该配置为默认配置
REQUESTEDACCEPTEDON
REQUIREDACCEPTEDON
REJECTEDREQUESTEDOFF
ACCEPTEDREQUESTEDON
REQUESTEDREQUESTEDON
REQUIREDREQUESTEDON
REJECTEDREQUIREDConnection fails:连接终止错误信息ORA-12650
ACCEPTEDREQUIREDON
REQUESTEDREQUIREDON
REQUIREDREQUIREDON

下面的矩阵表格更加直观:ORA-12660、ORA-12650

RejectedAcceptedRequestedRequired
RejectedOFFOFFOFFORA-12660
AcceptedOFFOFFONON
RequestedOFFONONON
RequiredORA-12660ONONON

配置客户端、服务器端的加密和完整性参数

On the server:

  1.  vi sqlnet.ora
  2.  ## 配置加密
  3.  SQLNET.CRYPTO_CHECKSUM_SERVER = required
  4.  SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER= (SHA1)
  5.  #(可选)在加密种子字段中,输入 10 到 70 个随机字符。客户端的加密种子不应与服务器的相同。
  6.  SQLNET.CRYPTO_SEED = 'fajoidaidnoiyukasdfmds.kmkmkd'
  7.  sqlnet.crypto_seed = <10_to_70_random_characters>
  8.  #Default: qwertyuiopasdfghjkl;zxcvbnm,.s1
  9.  ## 配置完整性
  10.  SQLNET.ENCRYPTION_SERVER = required
  11.  SQLNET.ENCRYPTION_TYPES_SERVER= (AES256, AES192, AES128)

On the client: 

  1. SQLNET.ENCRYPTION_CLIENT = [accepted | rejected | requested | required]
  2. SQLNET.ENCRYPTION_TYPES_CLIENT = (valid_encryption_algorithm [,valid_encryption_algorithm])
  3. SQLNET.CRYPTO_CHECKSUM_CLIENT = [accepted | rejected | requested | required]
  4. SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (valid_crypto_checksum_algorithm [,valid_crypto_checksum_algorithm])

加密后对性能影响

加密后数据包会变大,性能也会下降:(Markdown自带表格不能合并单元格,只能使用HTML了):

性能损耗排序:3DES > DES > AES > RC4

AlgorithmNoneMD5SHA-1
Time%NoneTime%NoneTime%None
None79.6 s80.5 s101%82.4 s104%
DES104.7 s132%107.1 s135%108.2 s136%
3DES168151.8 s191%153.9 s193%155.6 s196%
AES12888.8 s112%90.5 s114%92.1 s116%
AES25691.8 s115%93.5 s117%94.2 s118%
RC4_12881.6 s103%82.5 s104%85.0 s107%
RC4_25681.7 s103%82.8 s104%85.0 s107%

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
The ‘OraOLEDB.Oracle.1‘ provider is not registered on the local machine的原因
WPA-PSK/ WPA2-PSK
Oracle ORA-12640 验证适配器初始化失败
AIX精华文章汇粹 : 在AIX5.3系统上安装oracle9i和weblogic
使用 Oracle 的 Security External Password Store 功能实现数据库加密登陆
国密SM算法有哪些
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服