数据库应用安全:如何平衡加密与访问控制

发表于:2010-11-16 10:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王勇 译    来源:51Testing软件测试网采编

  摘要:本文介绍了在保护敏感数据以及平衡加密与访问控制方面,数据库应用安全的一些最佳实践。

  通常情况下,公司一些最敏感的数据存储在数据库中。这些数据包括医疗记录、员工记录、信用卡号码、社会保障号码等,它们受隐私法规的监管,必须加以保护。

  然而,与此同时,公司必须在敏感数据的安全性与可用性之间进行折中,以满足因合法的商业使用而访问这些数据的需求,包括为保持业务连续性而进行的备份和远程复制。最强大的数据隐私保护技术是加密。但是,为了既切实保证敏感数据的安全性而又不影响业务的连续性,使用加密技术时必须小心。在保护敏感数据以及平衡加密与访问控制方面,数据库应用安全的一些最佳实践值得借鉴:

  数据最小化与模糊处理

  保护敏感数据的最好、最有效的办法是当初就不存储或少存储数据。因此,公司应该经常检查下列数据最小化问题:

  该数据将来还需要吗?

  可以只存储用于身份验证的部分数据(例如社会保障号码的后四位)吗?

  可以使用其他不太敏感的数据(例如宠物的名字)进行身份验证吗?

  可以使用或存储数据的hash值(例如MD5、SHA)而不是原始数据本身吗?

  在许多情况下,这些问题可以减少需要存储的数据量并降低数据的敏感程度。

  数据加密

  公司可以对数据库中的数据进行加密,以防止其被盗或意外泄漏。在加密数据库中的数据时,有三个关键问题需要考虑:在何处加密数据、如何加密数据以及在何处存储密钥。下面将分别讨论这些问题:

  在何处加密数据——加密可以在应用层、数据库或底层存储器中进行。如果加密在数据库中进行,则还可以对特定字段、列、表或者整个数据库加密。当然,在应用层、数据库和底层存储器中加密各有利弊。

  由于应用层加密是在系统的最高层对数据进行加密,所以数据对应用层之下的各层都不可见。如果加密在应用层进行,则数据库、操作系统、网络以及数据经过的所有其他路径都只能看到加密后的形式。

  应用层加密的问题在于,通常会有多个高层应用程序需要访问数据,这些应用程序将需要密钥副本对数据进行解密。可以获得密钥副本的应用程序越多,密钥遭到泄漏的可能性就越大。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号