狠狠撸

狠狠撸Share a Scribd company logo
<Insert Picture Here>




Advanced Security Option
高级安全选件
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
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
Oracle 高级安全性
    动态和静态数据
             Oracle 高级安全
             强认证           应用服务器/客户端

                           Oracle高级安全
                           网络加密

             数据读取               数据存盘           备份数据库
             自动解密               自动加密
Oracle高级安全
透明数据加密

                                  Redo apply
                                 redo logs 包含加密数据




                      备份文件数据加密
Oracle Advanced Security
概览

? 透明数据加密(TDE)
 –   无需应用修改
                                                       Strong
 –   表空间加密与列级加密                                     Authentication
 –   内置密钥管理
 –   加密RMAB备份集和数据泵导出集                               Network
 –   加密Oracle Securefiles (LOBS)                   Encryption


? 网络加密
 – SSL/TLS
 – 本地 – 无证书要求
                                   75000   (        )    ^#^*>*


                                    Encrypted Disks, Backups,
? 强验证                                        Exports
 – Kerberos, PKI , RADIUS
Oracle Advanced Security
TDE 列加密

? Database 10g Release 2版本开始可用
 – 推荐在版本10.2.0.4 及后续版本使用
 – 新?nomac? 选项 (每个加密值可节省20个字节)
? 加密应用表中的敏感数据
 – 信用卡号, SSN, 各类密码, …
? 密钥管理
 – 每张表一个密钥
 – 表密钥再用TDE主密钥进行加密– 2 级密钥架构
职责分离

                Wallet 密码与
                System 或 DBA 密码分开
                无权访问wallet



     DBA 启动
     Database




安全DBA 打开含有master key 的 wallet
主密钥和列密钥

                         主密钥加密列密钥



       Master key存储于
       PKCS#12 wallet




安全DBA 打开含有主密钥 的 wallet

                            列密钥 加密列中的数据
TDE 列级加密
与Oracle Enterprise 惭补苍补驳别谤集成
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
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';


? 在加密列上的范围扫描不能使用索引
? 在数百万行的表上成功运行大量卡类处理业务
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可获得完整数据类型的列表和更多信息
LAB
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
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 列级加密


网络加密


强验证
Oracle Advanced Security
 TDE可用于数据泵和RMAN

? Oracle Data Pump 数据泵
  – 批量导出/导入到操作系统文件中
  – 使用ENCRYPTION参数来加密dump文件
  – 数据泵expdp命令可使用一个密码或ASO中更安全的主密钥来加密
    数据


? Oracle RMAN
  – 用于数据备份和恢复



? 使用自身主密钥或密码来加密导出集或备份集
? RMAN和数据泵可同时压缩和加密
Oracle Advanced Security
 透明数据加密的密钥管理

? 内置密钥的生命周期管理
 – 产生, 存储, 转换和销毁主密钥
 – 软件wallet钱包 或 HSM存储密钥
? 硬件安全模块 (HSM):
 – 特殊目的的硬件
 – 开放的PKCS#11接口使得Oracle用户可广泛选择各类HSM提供商




              Open Master Key
                                Master Key


   Security
    DBA
Oracle Advanced Security
 加密非结构性数据

? Oracle SecureFiles数据类型
  – Oracle数据库11g中新的非结构性数据类型
  – 与LOB数据类型类似,但更快且功能更多
  – 与本地文件系统相比,非结构性数据可以更快且更安全维护


? 使用透明数据加密来保护
  – 对存储在数据库中的非结构性数据,提供额外保护
  – 加密整个表空间或单独的SecureFile字段
  – 可用于DICOM影像和财务合同扫描件
Oracle Advanced Security
创建一个加密的表空间
Oracle Advanced Security
对表空间加密

? 使用关键字“Encrypt”,创建新表空间


   CREATE TABLESPACE securespace2
   DATAFILE
   '/home/user/oradata/secure01.dbf'
   SIZE 150M ENCRYPTION
   DEFAULT STORAGE(ENCRYPT);




 注 – 缺省算法是 AES 128
LAB
表空间加密
架构
                            SQL Layer

? 数据库级别加密
 – 在I/O期间加密/解密数据块            Buffer Cache
 – 数据块在缓冲区被解密以应对频繁访问        “SSN = 834-63-..”
? 磁盘上不保存明文数据
 –   回滚块
 –   排序/连接的临时块
 –   重做日志
                            data blocks
 –   闪回日志                  “*M$b@^s%&d7”
? 与TDE密钥管理集成
                   undo                          temp
                  blocks                        blocks
                           redo logs
                            flashback logs
表空间数据加密深入
? 11g中新的基于块级别静态数据加密技术,
  写时加密,读时解密
? 数据在I/O(块)级别进行加密解密,而不是在内存中
  (与列级TDE不同,它是在服务进程的PGA中进行加密)
? 加密仅对I/O不利, 因此加密性能上开销比列级TDE好
? SQL访问路径不会改变
  (然而会被CBO识别为需要一些开销)
? 加密算法
 – AES128, AES192, AES256, 3DES168 (缺省AES128)
 – 使用CFB (cipher feedback) 模式来保持空间
? 每个表空间/日志文件有唯一密钥
? 表空间和日志文件的密钥,由Wallet钱包里的主密钥保护
  (使用AES256)
表空间数据加密
 密钥管理
? 与列级TDE使用方式一样,主密钥由外部Wallet钱包维护
? 每个表空间有一个加密密钥,物理存放在数据文件的头部
  数据块里
? 对跨越多个数据文件的加密表空间来说,表空间密钥冗余
  存放在每个数据文件的头部
? 主密钥用来解密表空间的密钥
? 主密钥也可像列级TDE一样进行转换
  (如 ALTER SYSTEM SET ENCRYPTION KEY 命令)
? 目前不能重置表空间加密密钥
 – 可选方式是创建新的加密表空间,再将数据从原有表空间移动过来
? 11gR2中主密钥得到统一(创建 保存 转换)
如何将已有表空间转换为加密表空间

? 没有ALTER TABLESPACE命令,来自动转换未加密表
  空间成加密表空间
? 进行转换的步骤:
 – 备份原先未加密的表空间 (非常重要!).
 – 使用加密选项来创建新表空间
 – 从原先表空间移动对象到新的加密表空间
   (确保重建任何失效的索引)
 – 删除原先的表空间
 – 如果需要的话将新表空间更名为原先表空间的名称
分区表与加密表空间


? 一个分区表可以是:
  – 所有分区在同一个加密表空间里
  – 部分分区在不同的加密表空间里
  – 部分分区在未加密的表空间,部分表空间在加密的表空间里


? 检查DBA_TAB_PARTITIONS 视图查看详情

  TABLE_NAME          PARTITION_NAME       TABLESPACE_NAME      ENC
  -------------------- -------------------- -------------------- ---
  SALES_LIST          SALES_WEST           DATA02               NO
  SALES_LIST          SALES_CENTRAL        DATA03_ENC           YES
索引使用 – 揭示事实


? 每一个索引叶子键和rowid相关
  – File#, Block#, Row Offset
? 索引键进入SGA时被解密
? Rowid提供给服务器进程表中数据的位置, 然后表数据
  块进入SGA时被解密
? 因此索引仍旧会被CBO使用,而不论索引是否和表在同
  一个加密表空间里,或不同加密表空间里,亦或是未加密
  的表空间里
Transparent Data Encryption透明数据加密
表空间还是列级加密?

? 以下情况使用表空间加密:
 –   很难确认所有的敏感数据
 –   想加密大量数据
 –   想使用索引范围扫描
 –   需要使用传输表空间功能
? 以下情况使用列级加密:
 – 仅想加密少数字段
 – 基于HSM来管理密钥
 – 更容易重置表密钥和主密钥
? 两种技术可在同一数据库中共用
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
LAB
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
Q&A

More Related Content

翱谤补肠濒别数据库高级安全选件础厂翱介绍

  • 1. <Insert Picture Here> Advanced Security Option 高级安全选件
  • 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 列密钥 加密列中的数据
  • 9. TDE 列级加密 与Oracle Enterprise 惭补苍补驳别谤集成
  • 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可获得完整数据类型的列表和更多信息
  • 13. LAB
  • 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
  • 21. LAB
  • 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中主密钥得到统一(创建 保存 转换)
  • 25. 如何将已有表空间转换为加密表空间 ? 没有ALTER TABLESPACE命令,来自动转换未加密表 空间成加密表空间 ? 进行转换的步骤: – 备份原先未加密的表空间 (非常重要!). – 使用加密选项来创建新表空间 – 从原先表空间移动对象到新的加密表空间 (确保重建任何失效的索引) – 删除原先的表空间 – 如果需要的话将新表空间更名为原先表空间的名称
  • 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使用,而不论索引是否和表在同 一个加密表空间里,或不同加密表空间里,亦或是未加密 的表空间里
  • 28. Transparent Data Encryption透明数据加密 表空间还是列级加密? ? 以下情况使用表空间加密: – 很难确认所有的敏感数据 – 想加密大量数据 – 想使用索引范围扫描 – 需要使用传输表空间功能 ? 以下情况使用列级加密: – 仅想加密少数字段 – 基于HSM来管理密钥 – 更容易重置表密钥和主密钥 ? 两种技术可在同一数据库中共用
  • 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
  • 30. LAB
  • 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
  • 32. Q&A