版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DB2敏感数据加密敏感数据加密方法介绍方法介绍 客户服务中心运维小组 贾雷波 多年来,数据库已经能够阻止未经授权的人看 到其中的数据,这通常是通过数据库管理器中 的特权和权限来实现的。但当前,用户对敏感 数据的保密需求日益增长,用户希望某些数据 除了用户本人其它任何人不可访问,包括对表 中的数据有完全的访问权限的DBA。比如,在 应用程序中,用户输入的身份证号、银行卡号、 密码等信息,用户希望只有本人可以访问,其 它没有用户授权的任何人不能访问该数据。如 何实现当前用户的这些要求呢? 为了实现这种功能,DB2 内置了一些 SQL 函 数,这些函数允许应用程序加密和解密数 据。当将数据插入到数据
2、库中时,可以使 用用户提供的加密密码对其加密。当检索 该数据的时候,必须提供相同的密码才能 解密数据。 本文将简单介绍DB2 RC2加密算法并描述这 些 SQL 函数,同时给出一些关于如何使用 这些加密函数的例子,我们还将讨论在关 系数据库中使用加密数据的设计和性能相 关事项。 DB2 RC2加密算法 DB2采用RC2对称分组加密算法,它的输入 和输出都是位数据,通常RC2加密算法效率 比DES算法高两倍。RC2密码带有一个 128 位的密钥。这个 128 位的密钥是通过消息 摘要从密码得来的。加密密码与 DB2 认证 无关,仅用于数据的加密和解密。运用加 密函数加密数据时设置满足要求的密码,
3、 当检索数据的时候,必须提供相同的密码 才能解密数据。 DB2 RC2加密函数 Encrypt (StringDataToEncrypt, PasswordOrPhrase, PasswordHint) Decrypt_Char(EncryptedData, PasswordOrPhrase) GetHint(EncryptedData) Set Encryption Password StringDataToEncrypt 为要加密的字符串数据。 PasswordOrPhrase为密码字符串,其要求长 度为6-127字节。 PasswordHint为密码提示字符串,是一个可 选参数,其要求长
4、度为0-32字节,可以帮助 用户记忆用于对数据加密的 PasswordOrPhrase。(例如,可以使用 George 作为记忆 Washington的提示。) 列级加密 对于列级加密,要多次使用同一个密码的 情况,可以使用一个赋值语句设置寄存器 ENCRYPTION PASSWORD 的值,并令其在某 次连接期间内有效。 加密非字符值 DB2 RC2加密算法通常加密字符型数据,数 值和日期/时间等非字符数据类型的加密可 通过强制类型转换得到间接的支持,非字 符的 SQL 类型通过强制转换为 varchar 或 char,就可以被加密了。 加密示例: 行级加密 创建test表 DROP TAB
5、LE DB2INST1.TEST; CREATE TABLE DB2INST1.TEST (DATE VARCHAR(8), ID INTEGER, NAME VARCHAR(10), PASSWORD VARCHAR(500) FOR BIT DATA, BALANCE VARCHAR(500) FOR BIT DATA ); PASSWORD、BALANCE为要加密列,两列为 二进制字符串。 插入数据插入数据 insert into db2inst1.test values (20150101,1,name1,encrypt(name1password,111111,6g1),en cry
6、pt(char(1111.11),111111,6g1); insert into db2inst1.test values (20150102,2,name2,encrypt(name2password,222222,6g2),en crypt(char(2222.22),222222,6g2); insert into db2inst1.test values (20150103,3,name3,encrypt(name3password,333333,6g3),en crypt(char(3333.33),333333,6g3); insert into db2inst1.test va
7、lues (20150104,4,name4,encrypt(name4password,444444,6g4),en crypt(char(4444.44),444444,6g4); insert into db2inst1.test values (20150105,5,name5,encrypt(name5password,555555,6g5),en crypt(char(5555.55),555555,6g5); PASSWORD、BALANCE两列插入值为加密后 的二进制字符串。 查询数据 查询第一条解密后数据 select date,id,name,password,gethin
8、t(password) password_pwts,decrypt_char(password,1111 11) real_password, balance,gethint(balance) balance_pwts,decimal(decrypt_char(balance, 111111),10,3) real_balance from db2inst1.test where id=1; 查询结果 查询第五条解密后数据 select date,id,name,password,gethint(password) password_pwts,decrypt_char(password,555
9、5 55) real_password, balance,gethint(balance) balance_pwts,decimal(decrypt_char(balance, 555555),10,3) real_balance from db2inst1.test where id=5; 查询结果 列级加密 列级加密(column level encryption)意味着 对于一个给定列中的所有值都使用相同的 密码进行加密。这种类型的加密可以在视 图中使用,也可以在使用了一个公共密码 的情况下使用。当对一个或多个表中所有 的行使用相同的密钥时,ENCRYPTION PASSWORD 专用寄
10、存器将十分有用。 加密示例 列级加密 插入数据 delete from db2inst1.test; set encryption password=aaaaaa; insert into db2inst1.test values (20150101,1,name1,encrypt(name1password),encrypt(char(1111.11); insert into db2inst1.test values (20150102,2,name2,encrypt(name2password),encrypt(char(2222.22); insert into db2inst1.te
11、st values (20150103,3,name3,encrypt(name3password),encrypt(char(3333.33); insert into db2inst1.test values (20150104,4,name4,encrypt(name4password),encrypt(char(4444.44); insert into db2inst1.test values (20150105,5,name5,encrypt(name5password),encrypt(char(5555.55); 查询数据查询数据 查询解密后数据 select date,id,
12、name,password,gethint(password) password_pwts,decrypt_char(password,aaaa aa) real_password, balance,gethint(balance) balance_pwts,decimal(decrypt_char(balance, aaaaaa),10,3) real_balance from db2inst1.test; 查询结果 恶意更改第一条数据 update db2inst1.test set password=name1password,balance=1111.11 where id=1; 查询
13、恶意更改后的数据 解密恶意更改后的数据 目前交易系统加密数据 更改加密数据 更改后,密码333333生效,用新的密 码“333333” 登陆交易管理,可正常登陆。 性能 加密,就其本质而言,会使大部分 SQL 语句慢 下来,但是如果多加注意,多加判断,还是可 以将大量的额外开销降至最低的。加密数据对 于数据库的设计也有很大的影响,通常,您需 要对一个模式中的一些敏感数据进行加密,例 如身份号、银行卡号、密码等数据,而有些数 据值就不是那么适合加密了, 例如布尔值 (true 和 false),或者其他的像整数 1 到 10 这样的小型集合,这些值与列名一起很容易被 猜出,因此需要判断加密是否真的有用。 由于加密数据实质上是二进制数据,因此 对加密数据进行范围检查时需要扫描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025交通赔偿协议书模板
- 临时工劳动签订协议书七篇
- 债务协议范本
- 全国赛课一等奖初中统编版七年级道德与法治上册《增强安全意识》获奖课件
- 重庆2020-2024年中考英语5年真题回-教师版-专题07 阅读理解之说明文
- 《商务数据分析》课件-市场定位分析
- 企业安全管理人员尽职免责培训课件
- 《卓越的销售技巧》课件
- 养老院老人康复设施维修人员福利待遇制度
- 新冠救治和转运人员的闭环管理要点(医院新冠肺炎疫情防控感染防控专家课堂培训课件)
- 新概念英语第二册33课市公开课获奖课件省名师示范课获奖课件
- GB/T 39560.2-2024电子电气产品中某些物质的测定第2部分:拆解、拆分和机械制样
- 企业国际化经营战略规划与实施方案
- 2024-2025学年统编版道德与法治一年级上册教学设计(附目录)
- 空气动力学数值方法:有限体积法(FVM):二维气体动力学方程的FVM求解
- 2024年领导干部任前廉政知识测试试卷题库及答案
- 伤口造口专科护士进修汇报
- 第5章 一元一次方程经典例题 2024-2025学年人教版七年级数学上册
- 2024年秋季国家开放大学《经济数学基础12》形考任务(1-4)试题答案解析
- 大学生体质健康标准与锻炼方法(吉林联盟)智慧树知到期末考试答案章节答案2024年东北师范大学
- 任职资格体系3-某公司营销销售族销售、供应、客服和职能任职资格
评论
0/150
提交评论