数据库加密怎么做?

《Android 数据库加密方案》由会员分享,可在线阅读,更多相关《Android 数据库加密方案(2页珍藏版)》请在人人文库网上搜索。

数据库加密方案最近由于一些项目的平安性需要将数据库加密,一开头想到的就是先将数据库通过AES加密,然后运行时再解密,另一种是将数据库里的内容加密。(PS:新建的QQ群,有爱好可以加入一起研究:学习沟通群:,验证:eec)很快这两种计划都是不抱负的,第一种加密方式形同虚设,其次种,假如加密的字段是要查找数据就变得棘手。所以第三种计划就是在内存里解密,在网上查到SQLITE是支持加密的, 所以就按照网上的指导一步步地将SQLITE编译成支持加密的。那下一步就是怎样做成SDK去便利用法?第一个念头就是将原生的数据库用法方式移植过来,但做起来比开头想像的难了点,但终于

2、也在修修补补中完成了移植工作。一开头是用法Android2.2的数据库模块源码,但运行时会常常有一些问题浮现,后来用法Android4.0的数据库模块源码就解决了这些问题,固然,在开头是在Android4.0源码编译时,在Android4.0以上的手机运行是没问题,但在Android4.0以下就会报错。所以逼不自得就将Android4.0数据库模块移到Android2.2源码名目下编译,固然少不了要解决版本兼用的一些问题。Android原生是不支持数据库加密的,所以要想加密数据库就需要用法其它的方式。而这个SDK是从原生Android4.0源码里单独移植SQLITE模块,并将这个模块编译时加入

}

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

数据库加密变得越来越普遍,但由于缺乏加密也有一些重要的数据泄漏。姑且认为你开发过程中每一步都很谨慎,开发的web应用程序也有足够的能力对抗跨站脚本攻击,SQL注入和其他常见web漏洞,并熟悉所有安全项目的条款(OWASP),也知道所有的数据传输,在数据数据库的敏感字段加密。但是下一步你要把加密密钥放在哪里呢?是否有硬件安全模块(HSM)?大多数公司不使用HSM,他们应该出于安全考虑使用HSM。存储明文密码相当于把钥匙放在门垫上而没有任何安全感。

让我们从一个常见的Web应用程序框架开始。在典型的数据库加密Web应用程序中,应用程序将密钥直接存储在服务器的某个角落。这将被放置在逆向工程攻击中,并将导致一些操作安全问题。这是不使用HSM的结果,所以您应该使用HSM。

如何显著提高加密数据库的安全性?

HSM本质上是一个联合处理器。在计算机体系结构方面,HSM可能包含了von neumann机器的所有组件,包括存储、内存和处理能力。电脑使用二进制算法和内存,指令和数据可以存储在内存中,并且可以做出同样的处理,通过这种方式、不仅可以大大简化计算机的结构,并实现自动操作控制和提高操作速度提供了一个良好的条件。

HSM为主机本身提供了专用的离线加密服务。

如何显著提高加密数据库的安全性?

HSM致力于处理保护加密和加密过程,服务器内存无法访问重要数据,用户无法看到清晰的密钥,因此您可以确保应用程序和加密数据存在一个可信路径。在这一点上、你可能认为会有物理入侵,但是没有必要担心,HSM有一个防篡改的密封圈,可以阻止攻击者的电子窃听和无线电监控。

HSM可以用来预防什么?

HSM可以防止攻击者从敏感数据库中窃取信息。如果攻击者获得应用服务器的访问特权(存储明文密钥),则可以检索密码。无论密码多么复杂,即使它被编译、打包或更改,它也可以给逆向工程。从安全工程的角度来看,这不是最好的方法。

从操作安全的角度来看,让别人看到敏感的、加密的数据是不明智的。其中包括终端用户、开发团队、系统管理员和数据库管理员。从系统的角度来看,您不希望看到从产品服务器传播到工作服务器或开发服务器的敏感数据。如果您的数据库包含敏感数据,最好不要让任何人访问它。

由于HSM是由应用程序开发团队部署的,所以它属于程序安全领域,而不是基础设施安全。应用程序必须使用HSM供应商提供的应用程序编程接口(API)来创建专用于加密的操作。这些api包括常见的加密功能,如对称算法、非对称算法和解密操作、散列消息认证码、密码消息认证码、RSA、数字签名算法、diffie-hellman密钥交换、随机数生成、初始生成和格式。HSM编程接口可以由特定的供应商提供,例如IBM发布的通用加密体系结构,或者按照通用标准,比如pkcs11。显然、有人需要做一些谨慎的购物,以确保有合适的功能。

然而、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(一系列问答网站,每个网站都包含了不同的问题)来做一些深入的阅读。

}

使用SQLCipher确保您有一个全新的SQLite数据库。尝试用密钥对数据库进行编译时,由于某种原因它已经有数据只是试图对其进行解密。

这里是一些额外的信息。在这个例子中,encrypted.db是你创建的全新数据库和编译指示。

}

我要回帖

更多关于 sqlite数据库加密 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信