前言:
而今兄弟们对“数据完整性检查算法”大致比较关怀,各位老铁们都想要剖析一些“数据完整性检查算法”的相关知识。那么小编同时在网摘上汇集了一些对于“数据完整性检查算法””的相关文章,希望姐妹们能喜欢,朋友们快快来了解一下吧!什么叫数据的完整性
数据的完整性通俗来说就是确保数据不受篡改。数据的完整性不是数据库的完整性,数据库的完整性是确保存储的数据是存储的数据状态的完整性,而数据完整性是数据内容的完整性。
数据完整性的意义
比如张三给李四通过网银转100块钱时,被黑客截取到信息,黑客修改张三转账信息的收款账户为黑客自己,那么张三转出去的钱就进去了黑客的账户里,同样,网上卖家也不想大家明明1元钱就可以买到价值1000元的商品。
传输过程数据完整性
等级保护2.0中要求使用校验技术或者密码技术保证重要数据传输过程中的数据完整性,但是实践中一般仅限于密码技术,而不是校验技术。
传输过程中的完整性主要有2种方法来实现:
方法1:通过TLS、SSH等协议实现。因为TLS、SSH等协议其实既能保证传输的完整性也能保证传输的保密性;
方法2:通过单独的哈希校验字段来实现,比如发送的username和password字段之外,新增一个verify字段,该字段是使用MD5、SM3、SHA256算法对username和password内容进行拼接后的字符串进行哈希计算值。接收方接受倒消息时,重新根据发送方相同的哈希算法对username和password字段的值进行再次计算,如果哈希值和verify字段的值相同,说明username和password字段没有被篡改。这种方式一般适合在加密机实现,且对应用系统的性能影响较小。
数据存储的完整性
存储过程中和传输过程中类似,只是目前测评实施中仅针对数据在数据库存储过程的完整性,并不针对在硬盘、文件、内存等存储中的完整性。
数据库存储过程中可以采用传输过程中的方法二来实现,只是有些数据库系统本身支持哈希算法,不需要调用第三方的加密机来实现。比如国产达梦数据库的商密版本支持SM3哈希算法,非商密版支持MD5和SHA1算法。
测评实践中如何判定
传输过程的完整性:如果采用了SSH、TLS协议或单独哈希校验,符合;
存储过程的完整性:如果采用了第三方加密机或者单独哈希校验,符合。
如果需要仅限于商密算法的话,SSH和TLS协议基本暂时无法符合,因为这两个都采用RSA等非国密算法,国密算法仅SM3能实现哈希校验,MD5、SHA1、SHA2等国际哈希算法全部不属于密码管理局批准的。