企业用户在设计系统的时候往往总是首先考虑让它们方便于用户访问信息,这样容易导致的一个现象是:把太多注意力放到简化访问方面,而忽略了必须确保只有授权的用户才能够访问资源。
不过现在企业都已经意识到,其业务价值不可避免地与其核心系统中的信息绑定在一起,信息从核心系统泄漏,就如同水可以从有孔的热水器中泄漏一样,很快,而且会大量流失……
因此,作为信息安全管理人员或者IT管理人员,必须想办法保护公司珍贵的信息资源,但同时不能盲目地抑制访问权限。IT人员经常都不得不在安全性和可用性之间寻找平衡,但通常还是没有对哪些授权客户应该看到哪些信息给予太多关注。事实上,在大多数企业组织中,大多数用户(不管是授权还是没有授权的)都可以看到比他们实际应该看到的多得多的信息。
那么,到底应该怎么保护公司敏感数据,确保只有授权的用户可以访问呢?解决方法看起来并不少。
加密数据库
首先,在数据库中挑选一些领域进行加密,如针对包含信用卡信息的数据进行加密。不可否认,这将会在某种程度上减慢数据库的执行。但是同时我们也看到,现在一些先进的加密/解密技术正在变得越来越快速,服务器在多核处理器的充实下也在日渐强大,而今天的数据库也能够充分发挥这些多核服务器的性能优势来应对这些任务。当然,少数CPU使用率在15%以下的服务器除外。
有了大量的处理器处理能力,也许有的人会认为有足够的能力来加密整个数据库了,其实我们还是不建议这么做,因为加密是会很快吞噬掉掉处理器所提供的那点富裕空间的,加密了的数据会耗费数据库的很多空间,而且还需要大量的加密/解密工作来取出或存入数据。
当决定要对整个表格进行加密时,你需要考虑几个因素。如果你加密整个数据库,每个表格的加密钥匙数量严格来说应该只有一个——除非是你跨表格使用密钥,这就减少了必需管理的密钥数量。别小看这一点,这是非常有吸引力的,因为根据你改变密钥的频率以及你需要保留数据的时间长度,你的密钥库也许会变得非常庞大。可不幸的是,重新使用密钥也会降低整体安全性,给了攻击者更多机会来获得“金钥匙”——它将会准许访问数据库甚至所有存储数据中的所有信息。
当然,你也可以选择仅对表格中某些栏的数据进行加密,而不是对整个表格进行加密。但是仍然没有检索具有加密栏的数据库的尚方宝剑,你仍然需要索引密钥一样的东西。如果你选择对表格中的栏进行加密,同样每一栏都需要一个特定的密钥,这显然增强了安全性,但却给密钥管理带来了更大的压力。有些解决方案可以让你使用加密的栏来作为索引,但是进行原始栏的解密来更新索引这个过程是令人痛苦的缓慢,并且当数据库中的所有数据都被加密时,调试也会非常困难。
你还可以对每行的所有数据加密,但是付出的成本相对于回报来说是很不值的,举个简单的例子,如果攻击者只能看到客户的性别,那谁会在意呢?一些厂商已经编造出一些临时解决方案,如在加密前对数据进行压缩,但是检索的数量会随着系统使用的时间流逝而增加,那就意味者很有可能最终你还是需要一个基于某一个已经加密的栏的索引。从这点来说,我们所知道的所有临时解决方案似乎也就没有太大意义了。