数据库怎么加密?

数据库怎么加密?,第1张

数据库加密作为近年来兴起的数据库安防技术,已经被越来越多的人所重视。这种基于存储层加密的防护方式,不仅可以有效解决数据库明文存储引起的泄密风险,也可以防止来自内部或者外部的入侵及越权访问行为。从技术手段上来看,现今数据库加密技术主要有三大类,分别是前置代理及加密网关方式、应用层加密方式以及后置代理方式,其中后置代理技术有有两种不同的技术路线,分别为:基于视图和触发器的后置代理技术和基于TDE技术的加密技术。你与安华金和了解下吧,以前他们还专门有过相关文章介绍。

1、性能:在我们决定加密数据时,需要考虑的一个最大问题是,其性能影响如何?而对这个问题的回答只能是“视方案而定”。在我们的经验中,透明加密执行起来很好,它对数据库的性能影响一般从5%到8%不等。本地数据库对象加密对性能的影响可达到15%到20%。所以,企业必须根据自己的配置状况和性能要求考虑好此问题。

2、 *** 作:如果你要加密介质,最好能够保证在需要时能够及时从此介质恢复。这就要求你经常测试磁带。同样道理,如果你使用密钥轮换来满足监管要求,就应当试这个过程的 *** 作过程和方式,并测试你的厂商如何处理生产环境中的新密钥和老密钥。你最好按照计划来进行,而不要在怀疑某个加密密钥遭受破坏后才去测试。

3、复杂程度:加密系统都很复杂。你必须考虑加密引擎在哪里,它如何加密数据及加密哪些数据,哪些数据不加密,怎样提供密钥等等。作为一位数据库管理员,你需要认识到这种复杂程度并保证自己完全理解加密系统如何工作,特别是在你要证实加密能够正确地满足合规要求时,这尤其重要。加密的复杂性不仅体现在部署方面,还体现在实施阶段。有人认为加密只不过是一个简单的数学公式问题,甚至还有人说,“咱能自己搞定!”。此言差矣。许多很有才的安全专家都在建设自己的加密系统时栽了跟头。不要去建立自己的安全加密系统。否则,轻则造成不安全,重则会丢失所有数据。所以,你应当采用一种经过检查的可信的加密产品。

4、密钥管理:你需要一个密钥管理系统来保护密钥。管理员不能将密钥存储到数据库中,也不能将密钥存放到磁盘上。企业应当将密钥管理规划到预算和 *** 作计划中。

用SQLCipher进行数据库加密。

SQLite目前已经是比较流行的数据存储 *** 作的API了。Android和iOS系统提供的API中 *** 作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。

代码设置:

如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;

如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;

唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源码中拷贝这个方法的逻辑,方便调用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10026997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存