欢迎投稿

今日深度:

在Sybase Adaptive Server Enterprise中保护数据隐私(1)

在Sybase Adaptive Server Enterprise中保护数据隐私(1)


安全漏洞

遍布于公司各处的数据库收集和存储着各种各样关键的个人隐私数据,如:社会保险号码,信用卡卡号,生日以及银行账户信息,同时相关医疗卫生和保险数据库存储着大量的病历信息。为了保护用户的隐私和杜绝数据失窃,人们已经采用了复杂而有效的安全措施和步骤来控制网络和数据库访问。

但是有一个方面有时会被忽视,那就是当公司丢失了计算机、存储设备或备份磁带、或者计算机被黑客侵入—— 个人数据将暴露无遗。

这种形式的数据暴露是屡见不鲜的,近来:

◆某研究机构报告其丢失了一台笔记本电脑,该电脑中存储着包括超过98,000份申请人的个人数据。
◆某医疗机构的两台计算机被窃导致185,000位病人的个人数据丢失。
◆某联邦承包商报告由于一台桌面计算机被窃,其35,000名股东将面临风险。

不幸的是,当这些窃贼得到了这些设备后,他们可以利用一些工具绕过数据库访问控制机制,从而直接读取磁盘物理块来恢复关键数据。

为了保护在介质如磁盘和备份磁带)上的数据,当今最有效的方法是在这些数据写盘之前就对其进行加密。

进行磁盘加密工作

为了有效管理磁盘加密并且提供高级别的安全防护,需要解决三个关键问题,而这正是Sybase ASE 加密选项所能够解决的。

首先,整个加密系统必须独立于应用系统,并且不能改动应用程序。大多数数据库管理系统和一系列的应用软件捆绑运行。对于应用程序的修改将会增加系统的开销并且提高实施安全系统的复杂性。而且这也引发了一系列新的问题,例如如何确保应用系统和安全软件接口的有效性,同时不会产生新的安全漏洞。这就是为什么简单的“加密”和“解密”应用功能并不足以适合整个安全解决方案的原因之一。

不同于其它解决方案,Sybase ASE 加密选项并不需要修改程序。相反的是,它可以直接通过数据库的安全管理机制对数据进行加密,同时保持现有应用和数据不变。由于Sybase的这种数据加密机制,数据库表结构并未发生变动,因此查询和数据操作代码都无需改动。

其次,密钥必须被妥善保管。缺乏对密钥的保护是安全系统经常碰到的问题。密钥的安全性是最基本的。通常系统内部管理密钥比在网络上传输密钥能更有效地保护密钥。

为了避免外部密钥的缺陷,Sybase ASE加密选项在服务器内管理密钥。密钥以一种加密格式存储在数据库的sysencryptkeys 表中。例如,为了给AES加密算法产生一个名为ssn_key的密钥,可以使用命令:

create encryption key ssn_key for AES

当这个命令执行后,新的ssn_key密钥就可以使用了。

利用Sybase ASE加密选项,改变密钥只需简单的两个步骤:产生一个新的密钥,然后利用新密钥进行加密。例如:

create encryption key new_ssn_key for AES
alter table employee modify ssn
encrypt with new_ssn_key

第三,以授权为基础的访问机制必须建立起来。通常有许多方式可以控制对于加密数据的访问。最简单的方式是将密匙提供给用户和应用。然后应用在对数据进行访问的时候将密匙传送到解密点。然而这种做法有两个主要缺陷:

◆为了可以对密匙进行操作,应用需要进行修改。
◆密匙被暴露在数据库之外。
◆密匙在传送的过程中必须加以保护
◆密匙的发布将成为新的问题,因为必须保证新密匙可以安全地发布给用户和应用程序。改变密匙同样面临这个问题。
◆多个程序访问公共加密数据需要共享密匙。

Sybase ASE加密选项通过利用以授权为基础的访问机制有效地避免了以上的问题。用户和用户组可以仅仅通过授权即可访问加密数据,而不需要用户和应用传输密匙。没有被许可的用户无法看到数据。表署主Table owners)通过GRANT 和 REVOKE命令就可以方便地管理许可控制。例如:为了给用户授权在customer表上的ssn列的解密许可角色 —— account_manager_role,表署主使用以下命令:

grant decrypt on employee(ssn) to account_manager_role

在这个例子中,只有拥有account_manager_role 角色的用户才能看到被解密的ssn列,而其他用户将会得到一个许可错误的报错信息。而在此过程中,应用无需修改。

保证安全性 —— 同时还有性能

Sybase ASE加密选项在列级别操作。 这可以很方便地加密个人隐私数据,如用户的社会安全号码等;而无需加密那些一般数据,例如居住地等。利用Sybase ASE加密选项提供的内置加密技术,数据库表署主可以利用ALTER TABLE命令的扩展方便地对现有表进行加密。例如:利用名为ssn_key的密钥对customer 表的ssn列进行加密,表署主可以利用以下命令:

alter table employee modify ssn
encrypt with ssn_key


www.htsjk.Com true http://www.htsjk.com/shujukugl/18218.html NewsArticle 在Sybase Adaptive Server Enterprise中保护数据隐私(1) 安全漏洞 遍布于公司各处的数据库收集和存储着各种各样关键的个人隐私数据,如:社会保险号码,信用卡卡号,生日以及银行账户信息...
评论暂时关闭