Más contenido relacionado La actualidad más candente (20) Similar a Oracle数据库高级安全选件ASO介绍 (20) Oracle数据库高级安全选件ASO介绍2. Oracle 数据库安全性 Data Masking
历经30多年的创新 TDE Tablespace Encryption
Oracle Total Recall
Oracle Audit Vault
Oracle 10g Oracle Database Vault
透明数据加密
EM 配置扫描
细粒度审计 (9i)
Oracle 9i 安全应用程序角色
客户端标识符 / 身份传播
Oracle Label Security (2000)
代理验证
Oracle 8i 企业用户安全性
全局角色
虚拟专用数据库 (8i)
数据库加密 API
Oracle 7 强身份验证 (PKI, Kerberos, RADIUS)
原生网络加密 (Oracle7)
数据库审计
1977 政府客户 2010
3. Oracle 数据库安全性
为实现安全性与合规性的“纵深防御”
加密与屏蔽
• Oracle Advanced Security
• Oracle Secure Backup
• Oracle Data Masking
访问控制
• Oracle Database Vault
• Oracle Label Security
监控
• Oracle Audit Vault
Encryption & Masking • Oracle Configuration Management
Access Control • Oracle Total Recall
Monitoring
4. Oracle 高级安全性
动态和静态数据
Oracle 高级安全
强认证 应用服务器/客户端
Oracle高级安全
网络加密
数据读取 数据存盘 备份数据库
自动解密 自动加密
Oracle高级安全
透明数据加密
Redo apply
redo logs 包含加密数据
备份文件数据加密
5. Oracle Advanced Security
概览
• 透明数据加密(TDE)
– 无需应用修改
Strong
– 表空间加密与列级加密 Authentication
– 内置密钥管理
– 加密RMAB备份集和数据泵导出集 Network
– 加密Oracle Securefiles (LOBS) Encryption
• 网络加密
– SSL/TLS
– 本地 – 无证书要求
75000 ( ) ^#^*>*
Encrypted Disks, Backups,
• 强验证 Exports
– Kerberos, PKI , RADIUS
6. Oracle Advanced Security
TDE 列加密
• Database 10g Release 2版本开始可用
– 推荐在版本10.2.0.4 及后续版本使用
– 新„nomac‟ 选项 (每个加密值可节省20个字节)
• 加密应用表中的敏感数据
– 信用卡号, SSN, 各类密码, …
• 密钥管理
– 每张表一个密钥
– 表密钥再用TDE主密钥进行加密– 2 级密钥架构
7. 职责分离
Wallet 密码与
System 或 DBA 密码分开
无权访问wallet
DBA 启动
Database
安全DBA 打开含有master key 的 wallet
8. 主密钥和列密钥
主密钥加密列密钥
Master key存储于
PKCS#12 wallet
安全DBA 打开含有主密钥 的 wallet
列密钥 加密列中的数据
10. Oracle Advanced Security
加密列
• 在现存的表中加密列:
alter table credit_rating modify (person_id encrypt)
• 创建带有加密列的新表:
create table orders (
order_id number (12),
customer_id number(12),
credit_card varchar2(16) encrypt);
注 – 缺省算法是 AES 192
11. Oracle Advanced Security
列级加密性能
• 使用索引同样查询以达到最优性能
Alter table credit_rating modify
(PERSON_ID encrypt no salt)
Create index person_id_idx on credit_rating
(PERSON_ID)
Select score from credit_rating where
PERSON_ID='235901';
• 在加密列上的范围扫描不能使用索引
• 在数百万行的表上成功运行大量卡类处理业务
12. Transparent Data Encryption 透明数据加密
列级加密部署步骤
确认具有敏感信息的字段
1 Credit Card numbers, SSN …
TDE是否支持该数据类型?
2 TDE supports datatypes most commonly used for PII data
3 字段是否正好是外键或范围扫描索引的一部分?
Simple Data Dictionary Query
4 加密现存和新数据
EM, SQL*Developer GUI or Command line DDL, Alter Table…..
访问OTN可获得完整数据类型的列表和更多信息
14. Oracle Advanced Security
表空间加密
• 加密所有类型应用数据 SQL Layer
– 加密整个表空间
– 无需确认特定字段 Buffer Cache
– 在数据类型,索引查询或外键上无限制 “SSN = 987-65-..”
• 高性能
– 无额外存储开销
– 高性能 (平均~ 5%)
– 与Oracle高级压缩配合使用 – 数据块在被
压缩前被压缩 data blocks
“*M$b@^s%&d7”
• 应用无须修改
– 支持所有数据类型 undo temp
blocks blocks
– 支持索引范围扫描
redo flashback
logs logs
15. Oracle Advanced Security
不同版本的不同特性
Oracle Oracle Oracle Oracle
Database 9i Database 10g Database 11g Database 11g
Release 2 Release 2 Release 1 Release 2
TDE with Exadata
TDE 使用HSM表空间加密
TDE 表空间加密
TDE 针对SecureFiles列级加密
TDE 使用HSM列级加密
TDE 列级加密
网络加密
强验证
16. Oracle Advanced Security
TDE可用于数据泵和RMAN
• Oracle Data Pump 数据泵
– 批量导出/导入到操作系统文件中
– 使用ENCRYPTION参数来加密dump文件
– 数据泵expdp命令可使用一个密码或ASO中更安全的主密钥来加密
数据
• Oracle RMAN
– 用于数据备份和恢复
• 使用自身主密钥或密码来加密导出集或备份集
• RMAN和数据泵可同时压缩和加密
17. Oracle Advanced Security
透明数据加密的密钥管理
• 内置密钥的生命周期管理
– 产生, 存储, 转换和销毁主密钥
– 软件wallet钱包 或 HSM存储密钥
• 硬件安全模块 (HSM):
– 特殊目的的硬件
– 开放的PKCS#11接口使得Oracle用户可广泛选择各类HSM提供商
Open Master Key
Master Key
Security
DBA
18. Oracle Advanced Security
加密非结构性数据
• Oracle SecureFiles数据类型
– Oracle数据库11g中新的非结构性数据类型
– 与LOB数据类型类似,但更快且功能更多
– 与本地文件系统相比,非结构性数据可以更快且更安全维护
• 使用透明数据加密来保护
– 对存储在数据库中的非结构性数据,提供额外保护
– 加密整个表空间或单独的SecureFile字段
– 可用于DICOM影像和财务合同扫描件
20. Oracle Advanced Security
对表空间加密
• 使用关键字“Encrypt”,创建新表空间
CREATE TABLESPACE securespace2
DATAFILE
'/home/user/oradata/secure01.dbf'
SIZE 150M ENCRYPTION
DEFAULT STORAGE(ENCRYPT);
注 – 缺省算法是 AES 128
22. 表空间加密
架构
SQL Layer
• 数据库级别加密
– 在I/O期间加密/解密数据块 Buffer Cache
– 数据块在缓冲区被解密以应对频繁访问 “SSN = 834-63-..”
• 磁盘上不保存明文数据
– 回滚块
– 排序/连接的临时块
– 重做日志
data blocks
– 闪回日志 “*M$b@^s%&d7”
• 与TDE密钥管理集成
undo temp
blocks blocks
redo logs
flashback logs
23. 表空间数据加密深入
• 11g中新的基于块级别静态数据加密技术,
写时加密,读时解密
• 数据在I/O(块)级别进行加密解密,而不是在内存中
(与列级TDE不同,它是在服务进程的PGA中进行加密)
• 加密仅对I/O不利, 因此加密性能上开销比列级TDE好
• SQL访问路径不会改变
(然而会被CBO识别为需要一些开销)
• 加密算法
– AES128, AES192, AES256, 3DES168 (缺省AES128)
– 使用CFB (cipher feedback) 模式来保持空间
• 每个表空间/日志文件有唯一密钥
• 表空间和日志文件的密钥,由Wallet钱包里的主密钥保护
(使用AES256)
24. 表空间数据加密
密钥管理
• 与列级TDE使用方式一样,主密钥由外部Wallet钱包维护
• 每个表空间有一个加密密钥,物理存放在数据文件的头部
数据块里
• 对跨越多个数据文件的加密表空间来说,表空间密钥冗余
存放在每个数据文件的头部
• 主密钥用来解密表空间的密钥
• 主密钥也可像列级TDE一样进行转换
(如 ALTER SYSTEM SET ENCRYPTION KEY 命令)
• 目前不能重置表空间加密密钥
– 可选方式是创建新的加密表空间,再将数据从原有表空间移动过来
• 11gR2中主密钥得到统一(创建 保存 转换)
26. 分区表与加密表空间
• 一个分区表可以是:
– 所有分区在同一个加密表空间里
– 部分分区在不同的加密表空间里
– 部分分区在未加密的表空间,部分表空间在加密的表空间里
• 检查DBA_TAB_PARTITIONS 视图查看详情
TABLE_NAME PARTITION_NAME TABLESPACE_NAME ENC
-------------------- -------------------- -------------------- ---
SALES_LIST SALES_WEST DATA02 NO
SALES_LIST SALES_CENTRAL DATA03_ENC YES
27. 索引使用 – 揭示事实
• 每一个索引叶子键和rowid相关
– File#, Block#, Row Offset
• 索引键进入SGA时被解密
• Rowid提供给服务器进程表中数据的位置, 然后表数据
块进入SGA时被解密
• 因此索引仍旧会被CBO使用,而不论索引是否和表在同
一个加密表空间里,或不同加密表空间里,亦或是未加密
的表空间里
29. Oracle Advanced Security
网络加密和强验证
• 加密和数据库的所有通信
– AES (128, 192, 256 bit keys)
– RSA RC4 (128, 256-bit keys)
– 3DES (2 and 3 key)
– Diffie-Hellman key exchange
• 基于校验实现数据完整性
– SHA-1
– 自动侦测修改,重放和丢包
• 强验证
– Kerberos, PKI
– RADIUS
31. Oracle Advanced Security
总结主要的功能点
TDE TDE
Tablespace Column
Encryption Encryption Hardware
Security Module
Strong Network
Authentication Encryption
Master Key
Oracle Wallet
Encrypted
Exports
RMAN / TDE Fully
Encrypted Database
Backups to Disk