资讯中心

如何有效的提高加密数据库的安全性

  

 

数据库加密变得越来越普遍,但由于缺乏加密也有一些重要的数据泄漏。姑且认为你开发过程中每一步都很谨慎,开发的web应用程序也有足够的能力对抗跨站脚本攻击,SQL注入和其他常见web漏洞,并熟悉所有安全项目的条款(OWASP),也知道所有的数据传输,在数据数据库的敏感字段加密。但是下一步你要把加密密钥放在哪里呢?是否有硬件安全模块(HSM)?大多数公司不使用HSM,他们应该出于安全考虑使用HSM。存储明文密码相当于把钥匙放在门垫上而没有任何安全感。
Web应用程序框架
让我们从一个常见的Web应用程序框架开始。在典型的数据库加密Web应用程序中,应用程序将密钥直接存储在服务器的某个角落。这将被放置在逆向工程攻击中,并将导致一些操作安全问题。这是不使用HSM的结果,所以您应该使用HSM。
如何显著提高加密数据库的安全性?
科普:什么是HSM?
HSM本质上是一个联合处理器。在计算机体系结构方面,HSM可能包含了von neumann机器的所有组件,包括存储、内存和处理能力。电脑使用二进制算法和内存,指令和数据可以存储在内存中,并且可以做出同样的处理,通过这种方式、不仅可以大大简化计算机的结构,并实现自动操作控制和提高操作速度提供了一个良好的条件。
HSM为主机本身提供了专用的离线加密服务。

如何显著提高加密数据库的安全性?
HSM致力于处理保护加密和加密过程,服务器内存无法访问重要数据,用户无法看到清晰的密钥,因此您可以确保应用程序和加密数据存在一个可信路径。在这一点上、你可能认为会有物理入侵,但是没有必要担心,HSM有一个防篡改的密封圈,可以阻止攻击者的电子窃听和无线电监控。
HSM可以用来预防什么?
HSM可以防止攻击者从敏感数据库中窃取信息。如果攻击者获得应用服务器的访问特权(存储明文密钥),则可以检索密码。无论密码多么复杂,即使它被编译、打包或更改,它也可以给逆向工程。从安全工程的角度来看,这不是最好的方法。
从操作安全的角度来看,让别人看到敏感的、加密的数据是不明智的。其中包括终端用户、开发团队、系统管理员和数据库管理员。从系统的角度来看,您不希望看到从产品服务器传播到工作服务器或开发服务器的敏感数据。如果您的数据库包含敏感数据,最好不要让任何人访问它。
HSM是如何实施的?
由于HSM是由应用程序开发团队部署的,所以它属于程序安全领域,而不是基础设施安全。应用程序必须使用HSM供应商提供的应用程序编程接口(API)来创建专用于加密的操作。这些api包括常见的加密功能,如对称算法、非对称算法和解密操作、散列消息认证码、密码消息认证码、RSA、数字签名算法、diffie-hellman密钥交换、随机数生成、初始生成和格式。HSM编程接口可以由特定的供应商提供,例如IBM发布的通用加密体系结构,或者按照通用标准,比如pkcs11。显然、有人需要做一些谨慎的购物,以确保有合适的功能。
遵从FIPS-140-2标准
然而、HSM不受PCI合规的托管,它们为大多数支付方案使用。当前HSM的管理标准为来自美国国家标准和技术委员会,称为美国联邦信息处理标准(缩写:FIPS-140-2)。事实上、若你需要储存信用卡数据,你非常应该使用HSM。2009年PCI安全需求查看请点这里,2012年更新内容可以在这里查看。
然而,HSM并不是由PCI管理的,它被用于大多数支付方案。目前HSM的管理标准来自美国的国家标准和技术委员会,即美国联邦信息处理标准(缩写:FIPS-140-2)。事实上,如果您需要存储信用卡数据,您非常应该使用HSM。
当HSM遵循fips-140-2标准,广泛应用于支付行业时,所有行业数据库的安全系数都得到了极大的提高。记住、你的医疗记录对网络犯罪而言比你的信用卡更有价值,所以要保持警惕。
如何开始使用加密?
幸运的是,HSM认证产品有一个“票据交换所”,同时也有很多关于硬件安全模型的讨论,包括基于网络模块存储系统设计,以及其他定制设计。然而,本文的目的是对HSM进行高层次的介绍,同时鼓励用户去SANS研究所和Stack Exchange(一系列问答网站,每个网站都包含了不同的问题)来做一些深入的阅读。