一个好的数据库加密系统一般应满足哪些方面的要求
发布网友
发布时间:2022-03-27 17:44
我来回答
共2个回答
热心网友
时间:2022-03-27 19:13
我认为,至少需要满足下面4个方面的要求。
1、保证数据库系统的整体性能没有明显下降
众所周知,数据库系统的数据处理性能对整个业务系统的整体性能表现有决定性的作用,在某些场合,数据库必须保证处理能力维持在某个较高水平才能满足业务需要。另一方面,数据库加密系统是一个对数据库中数据进行加密保护的应用系统,在数据从业务系统存储到数据库时要对数据进行加密,这个过程中明文数据需要被加密成密文,在数据由数据库中被读取出来传递到业务系统时要对数据进行解密,这个过程中密文需要被解密成明文。加密和解密是个根据一定的算法逻辑进行循环运算的过程,这个过程对CPU会产生一定的消耗,会影响数据库的性能。
数据库加密系统可以有多种技术路线来实现,业界已经验证和使用的技术路线包括应用系统加密、前置代理加密、后置代理加密、表空间透明数据加密、文件系统加密和磁盘加密。其中应用系统加密和前置代理加密技术会极大地影响数据库性能,仅适用于小量数据加密场景;后置代理加密技术在某些场景上也会大幅影响数据库性能,使用场景有明显*;所以,好的数据库加密系统应该尽量使用后三种技术路线来实现。
2、保证数据安全
保存在数据库中的数据是用户的资产,因此,任何一个数据库加密系统都需要保证在有密钥的前提下能够对由自己加密的数据进行无损解密。因此,一个好的数据库加密系统应该具备密钥备份和恢复功能,以便于在加密机故障不可用时能够快速搭建新的加密机环境;另外,如果数据库加密系统提供了独立的工具或接口来实现加密机故障时用户数据的解密,则是更好的选择。
3、应用完全透明
数据库系统是为业务系统提供数据服务的,一个好的数据库加密系统应该对应用系统具备完全的透明性,这种透明性主要表现在:(1)部署数据库加密系统时,应用系统不需要做任何改造,即使是连接字符串都不需要修改;(2)在部署了数据库数据库加密系统后,数据库内部的存储过程、用户自定义函数、触发器、SQL代码段等可执行对象及主外键关系、各种索引、默认值、Check约束等均可以正常使用,也不需要做任何改变;(3)数据库自身的外围管理工具、第三方数据库工具等在部署数据库加密系统后仍然可以正常使用。
4、高可用性
数据库加密系统自身应具备高可用能力,可以以主备或多机的方式提供数据库加密服务,当其中的一台加密机发生故障时,其它加密机应可能快速接管加密服务,保证数据库系统和用户业务系统的可用性。
热心网友
时间:2022-03-27 20:31
您好,很高兴为您解答。
1.字段加密
----在目前条件下,加/脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。
2.密钥动态管理
数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。
3.合理处理数据 这包括几方面的内容。首先要恰当地处理数据类型,否则 DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。
4.不影响合法用户的操作
加密系统影响数据操作响应时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~