function act(no)
{
if(document.all.item(“x”+no).style.display==””) document.all.item(“x”+no).style.display=”none”;
else document.all.item(“x”+no).style.display=””;
}
前几天,思归提到数据库安全是个大问题,我深有同感,感觉现在大家在外围、应用安全上做的工作比较多,往往忽视了数据库的保护,而这部内容恰恰是最关键的信息资产,正好本人与同事最近刚翻译完成了一本这方面的著作,《数据库加密——最后的防线》近期将由电子工业出版社出版,本书中详细介绍了如何对数据库的数据进行加密,同时给出了 Java 样例代码。
译序节选>> (单击显示/隐藏)
安全性本身涉及的内容和范围非常广泛,从整体层次上来说,包括安全策略、安全管理、物理安全、网络安全、主机安全、应用安全、数据安全等许多领域,针对这些主题,业界已经提供了大量成熟的解决方案和最佳实践,从微观上来说,安全基础技术——密码学的发展也相当成熟。通过在以上各个层次中合理地使用密码技术,能够有效地满足绝大多数安全需求,关于这些内容的安全资料和书籍非常丰富,但是唯一令人遗憾的是,关于密码学在数据库中的应用这个领域,即数据库加密,却被很多安全专家和技术人员所忽视,很少有人去研究,因此也鲜有相关著作,其主要原因是大家一般寄希望于数据库管理系统来保护数据的安全性,但是在实际应用中,数据库管理系统所能提供的保护作用是有限的。
大多数情况下,应用系统中最有价值的资产就是商业数据,尤其对一些特定行业,如金融行业来说,数据的机密机至关重要,甚至事关企业的命运和发展。例如去年美国付款信息处理公司CardSystems遭受黑客入侵,造成了美国史上最大一起的数据泄露事件,此次泄密事件波及的信用卡用户多达4000万人,严重影响了全世界范围的数千万客户,甚至包括中国的数千名用户,这使得银行和信用卡公司不得不为所有客户重新换发所有信用卡,这不但带来了巨大的业务损失,更重要的是,对公司的声誉、客户的信心带来了沉重的打击。
由此可以看出,数据安全在整个系统安全中非常重要的一个环节,虽然应用程序和数据库管理系统可以为数据提供相当程度的安全保证,但是要看到,由于数据在物理上一般存储在单独的服务器上,攻击者可以很容易破解或绕过应用程序而直接访问数据库,另外,由于数据库管理系统使用不当或者攻击者绕过数据库管理系统来直接访问数据库所对应的原始文件,数据库管理系统所提供的安全保护也失效了,除此之外,那些合法的用户,如数据库管理员、应用开发人员都有可能轻易读取数据库中的内容,从而破坏数据的机密性。因此,如果不在数据库内部实施额外的安全措施,如数据库加密,就难以完全保证数据的安全性。
考虑到数据库系统的复杂性,因此保护数据库并对其进行加密也是一个非常错踪复杂的问题,如密码算法和模式的选择、密钥的管理等,如何才能有效地入手呢?《数据库加密——最后的防线》,这本来自业界领先的安全公司 Symantec IT应用与数据库安全项目主管的著作,将带给你这些问题的答案。
在本书中,作者Kevin Kenan全面地介绍了与数据库加密这个主题有关的方方面面的问题。包括了解保护数据的必要性,如何构建一个真正的数据库威胁模型,加强数据库安全的需求分析、对数据进行分类、如何编写与密码系统安全交互的数据库应用程序、避免常见的威胁数据库安全的漏洞和问题,以及如何在测试、部署、保护及终止过程中保护数据库应用的安全性等。
本书分为四大部分,第一部分首先介绍了安全性的基本含义及其在数据库中的具体体现,随后讲述了密码学和数据库的一些基础知识和密码学在数据库中的应用。在第二部分中,介绍了密码系统的基础架构和密码系统中的各个组件,如密钥库、密钥管理器、密码提供者、密码引擎等。
第三部分介绍了密码系统的项目管理,描述了一个项目开发生命周期的各个阶段应該注意的安全问题,如在需求阶段进行需求定义、确定策略、标准及算法,在设计阶段,提到了应該遵循的安全设计指南及最佳实践,并介绍了威胁建模及安全模式方面的内容。在开发阶段,介绍了应該注意的最主要的安全开发实践;在测试阶段,主要介绍了安全功能测试和穿透测试,前者是从正面的角度测试各种功能是否存在,而后者是从攻击者的角度来测试系统安全措施的有效性如何,是否存在任何漏洞。最后,介绍了应用程序在部署、运行及终止阶段应該注意的安全问题,这是一部分很容易被忽视的重要内容。
在第四部分中,作者针对之前描述的各种理论、技术与实践,给出了一个数据库加密系统的Java实现,这是本书中非常有价值的一部分内容,通过这部分代码,读者可以更准确、更深入地了解本书中的内容,最后,给出了这个示例系统的运行演示。这些代码可以在少量修改后,就可以应用到实际的项目中去。这部分代码可以从作者的网站(http://www.kevinkenan.com)上下载,其中包括了相关的使用说明,包括如何建立初始数据库等。
目录节选>> (单击显示/隐藏)
第一部分:数据库安全
1、数据库安全问题
1.1、数据库面临的攻击
1.2、保护数据库的外部需求
2、使用加密保护数据库
2.1、数据库知识的快速复习
2.2、密码学是什么
2.3、密码学应用
2.4、加密的风险
2.5、加密面临的攻击
2.6、混淆
2.7、传输加密
第二部分:加密基础设施
3、加密基础设施概述
3.1、应用程序架构
3.2、加密系统加构
3.3、加密密钥
4、加密引擎和算法
4.1、本地引擎
4.2、专用引擎
4.3、加密算法
5、密钥存储库、清单和管理组件
5.1、密钥存储库
5.2、密钥清单
5.3、密钥管理组件
6、加密提供者和使用者
6.1、提供者
6.2、使用者
第三部分:加密项目
7、加密项目的管理
7.1、安全意识
7.2、客户参与
7.3、项目范围
7.4、项目角色
8、增强需求的安全性
8.1、安全需求、策略和标准
8.2、一般需求
8.3、需求复查
8.4、确定加密标准
8.5、数据分类
9、提高设计的安全性
9.1、数据流图
9.2、设计指南
9.3、威胁建模
9.4、安全模式
9.5、设计密码系统
10、安全开发
10.1、安全开发指南
11、测试
11.1、安全功能测试
11.2、穿透测试
12、部署、保护与终止
12.1、部署
12.2、保护
12.3、终止
第四部分:示例代码
13、示例说明
13.1、工具和通用服务
13.2、引擎与密钥库示例
14、密钥库
14.1、本地密钥
14.2、本地密钥的存储
14.3、访问本地密钥
15、清单
15.1、密钥别名
16、密钥管理程序
16.1、密钥工具-KeyTool
17、引擎
17.1、本地引擎
18、票据与提供者
18.1、加密请求与解密结果
18.2、票据
18.3、提供者
19、使用者
19.1、客户信息
19.2、信用卡信息
19.3、客户管理对象
20、异常
21、示例系统运行演示
21.1、设置密钥
21.2、操作客户信息
21.3、替换密钥
21.4、替换加密密钥的密钥
查看:Amazon 原版信息