为Oracle 服务器和客户端配置网络数据加密和完整性
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 Name | Legal Value |
---|---|
RC4 256-bit key | RC4_256 |
RC4 128-bit key | RC4_128 |
RC4 56-bit key | RC4_56 |
RC4 40-bit key | RC4_40 |
AES 256-bit key | AES256 |
AES 192-bit key | AES192 |
AES 128-bit key | AES128 |
3-key 3DES | 3DES168 |
2-key 3DES | 3DES112 |
DES 56-bit key | DES |
DES 40-bit key | DES40 |
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提供最大网络安全量:
REJECTED | ACCEPTED | REQUESTED | REQUIRED |
---|---|---|---|
拒绝 | 接受 | 请求 | 要求 |
无论如何也不会启用安全服务 | 如果对方需要或请求,选择此值以启用安全服务,否则不启用安全服务 | 如果对方允许,选择此值以启用安全服务,如果对方拒绝则关闭安全服务 | 选择此值以启用安全服务或阻止连接 |
开启加密或完整性配置参数默认值:ACCEPTED
Client Setting | Server Setting | Encryption and Data Negotiation |
---|---|---|
REJECTED | REJECTED | OFF |
ACCEPTED | REJECTED | OFF |
REQUESTED | REJECTED | OFF |
REQUIRED | REJECTED |
Connection fails:连接终止错误信息ORA-12650
|
REJECTED | ACCEPTED | OFF |
ACCEPTED | ACCEPTED | OFF 该配置为默认配置 |
REQUESTED | ACCEPTED | ON |
REQUIRED | ACCEPTED | ON |
REJECTED | REQUESTED | OFF |
ACCEPTED | REQUESTED | ON |
REQUESTED | REQUESTED | ON |
REQUIRED | REQUESTED | ON |
REJECTED | REQUIRED |
Connection fails:连接终止错误信息ORA-12650
|
ACCEPTED | REQUIRED | ON |
REQUESTED | REQUIRED | ON |
REQUIRED | REQUIRED | ON |
下面的矩阵表格更加直观:ORA-12660、ORA-12650
Rejected | Accepted | Requested | Required | |
---|---|---|---|---|
Rejected | OFF | OFF | OFF | ORA-12660 |
Accepted | OFF | OFF | ON | ON |
Requested | OFF | ON | ON | ON |
Required | ORA-12660 | ON | ON | ON |
配置客户端、服务器端的加密和完整性参数
On the server:
vi sqlnet.ora## 配置加密SQLNET.CRYPTO_CHECKSUM_SERVER = requiredSQLNET.CRYPTO_CHECKSUM_TYPES_SERVER= (SHA1)#(可选)在加密种子字段中,输入 10 到 70 个随机字符。客户端的加密种子不应与服务器的相同。SQLNET.CRYPTO_SEED = 'fajoidaidnoiyukasdfmds.kmkmkd'sqlnet.crypto_seed = <10_to_70_random_characters>#Default: qwertyuiopasdfghjkl;zxcvbnm,.s1## 配置完整性SQLNET.ENCRYPTION_SERVER = requiredSQLNET.ENCRYPTION_TYPES_SERVER= (AES256, AES192, AES128)
On the client:
SQLNET.ENCRYPTION_CLIENT = [accepted | rejected | requested | required]
SQLNET.ENCRYPTION_TYPES_CLIENT = (valid_encryption_algorithm [,valid_encryption_algorithm])
SQLNET.CRYPTO_CHECKSUM_CLIENT = [accepted | rejected | requested | required]
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (valid_crypto_checksum_algorithm [,valid_crypto_checksum_algorithm])
加密后对性能影响
加密后数据包会变大,性能也会下降:(Markdown自带表格不能合并单元格,只能使用HTML了):
性能损耗排序:3DES > DES > AES > RC4
Algorithm | None | MD5 | SHA-1 | |||
Time | %None | Time | %None | Time | %None | |
None | 79.6 s | 80.5 s | 101% | 82.4 s | 104% | |
---|---|---|---|---|---|---|
DES | 104.7 s | 132% | 107.1 s | 135% | 108.2 s | 136% |
3DES168 | 151.8 s | 191% | 153.9 s | 193% | 155.6 s | 196% |
AES128 | 88.8 s | 112% | 90.5 s | 114% | 92.1 s | 116% |
AES256 | 91.8 s | 115% | 93.5 s | 117% | 94.2 s | 118% |
RC4_128 | 81.6 s | 103% | 82.5 s | 104% | 85.0 s | 107% |
RC4_256 | 81.7 s | 103% | 82.8 s | 104% | 85.0 s | 107% |
为Oracle 服务器和客户端配置网络数据加密和完整性相关推荐
- ifix怎么装服务器系统上,ifix服务器和客户端配置
ifix服务器和客户端配置 内容精选 换一换 准备好服务端和客户端,根据组网规划完成物理服务器的物理组网.本文档中以3台客户端和3台TaiShan服务器作为服务端为例.本次部署流程中以3台客户端节点和 ...
- 组态王登录服务器为空,组态王服务器与客户端配置
组态王服务器与客户端配置 内容精选 换一换 准备好服务端和客户端,根据组网规划完成物理服务器的物理组网.本文档中以3台客户端和3台TaiShan服务器作为服务端为例.本次部署流程中以3台客户端节点和3 ...
- 组态王客户机服务器系统,组态王服务器与客户端配置
组态王服务器与客户端配置 内容精选 换一换 当出现以下问题时,可以参考本章节排查解决.可以直接访问后端业务,但是无法通过负载均衡访问后端业务.通过私网IP可以访问负载均衡,但是公网IP无法访问负载均衡 ...
- ifix如何设画面大小_ifix5.1环境下的ifix服务器、客户端配置
ifix5.1环境下的ifix服务器.客户端配置 本实验是在 IFIX5.1 版本下做的 IFIX 服务器.客户端配置,实现 IFIX 客户端对 IFIX 服务器的读.写,并且两台服务器互为备用(主机 ...
- 【Centos7 NTP 服务器和客户端配置(含离线状态) 附赠手动配置系统时间】
Centos7 NTP 服务器和客户端配置(含离线状态)附赠手动配置系统时间 一.搭建NTP服务器 1.查看服务器.客户端操作系统版本 2.查看服务器是否安装ntp,系统默认安装ntpdate: 3. ...
- NTP-Chrony 服务器和客户端配置
文章目录 NTP 服务器和客户端配置 一.NTP服务器 1.1 NTP服务器安装 1.2 NTP服务器配置及初步试运行 1.2.1 服务试开启 1.2.2 配置NTP文件 1.2.3 重启服务并查看 ...
- 修改 ifix 历史配置 服务器名,IFIX5.1环境下的IFIX服务器、客户端配置
<IFIX5.1环境下的IFIX服务器.客户端配置>由会员分享,可在线阅读,更多相关<IFIX5.1环境下的IFIX服务器.客户端配置(15页珍藏版)>请在人人文库网上搜索. ...
- FJ集团企业级邮件服务器---iRedMail客户端配置
FJ集团企业邮件服务器---iRedMail客户端配置 一.Roundcube Webmail设置: 1.登录:注:用户名:paul 密码:XXXX 2.发邮件: 如下图所示: 二.客户端outloo ...
- oracle客户端更改字符集,oracle 服务器跟客户端字符集的查看和修改
oracle 服务器和客户端字符集的查看和修改 查看和更改oracle数据库字符集 1 数据库服务器字符集select * from nls_database_parameters, 其来源于prop ...
最新文章
- nagios报警不发邮件
- python 匹配段落_Python3 如何使用正则表达式匹配段落开头?
- 【C语言】【笔试题】模拟实现memcmp
- 靶场环境vulhub的安装
- FreeRTOS 事件标志组 ——提高篇
- ElasticSearch对地理数据查询(二)
- Pycharm 解决pip遇到的错误:module 'pip' has no attribute 'main'
- 微信小程序上传的视频显示封面 我是阿里云oss的实现
- vnc用户名 查看linux_vnc用户名未被识别,5步教你如何解决vnc用户名未被识别
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_2_网络通信协议...
- 使用Android Studio向SVN上传新项目
- 《系统集成项目管理》第九章 项目成本管理
- Java——Json语法介绍与使用(详细介绍)
- 内存不够清理方法,costdown项目时如果裁剪不下来,也可以参考
- 谷歌翻译插件突然不可用提示Tkk更新失败的解决办法
- 【Nape教程】认识Nape空间
- [Python]plt.figure()、plt.subplot() 、plt.subplots()函数
- Xiaojie雷达之路---雷达原理(二刷)脉冲法测距
- python爬取驴妈妈旅游桂林周边景点信息
- 知星社:学会了什么?
热门文章
- office2010连接服务器响应慢,Office2010打开文件卡顿,解决办法?
- android 获取拼音首字母,Android开发 - 汉字转拼音首字母
- HDU-6750:Function(容斥)
- 刺激战场的android安装目录是,刺激战场数据安装包在哪个文件夹 | 手游网游页游攻略大全...
- objc非主流代码技巧
- 【CodeForces 1100F】异或线性基 | 贪心 | 离线区间最大异或和 | E
- UVA 10801 Lift Hopping(最短路)
- POJO、DO、DTO、VO的区别
- 腾讯开放的黄图自动识别系统
- 荣耀8x系列新机解锁双喇叭设计,小米没做到的它做到了