信息安全 | 等保测评2.0:应用的数据完整性
moboyou 2025-04-09 13:13 13 浏览
1. 说明
本篇文章主要介绍应用系统测评时数据完整性相关的基础知识和内容。
2. 测评项
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
3. 完整性
是指信息在传输、交换、存储和处理过程中,保持信息不被破坏或修改、不丢失和信息未经授权不能改变的特性,也是最基本的安全特征。
那么如果是传输过程中的完整性,也即当数据在传输过程中,接收方应该至少具备判断接收到的数据是否完整,如是否被篡改过,或是否因为网络等原因没有接收完整等。
4. 校验技术
校验技术我不怎么了解,实际测评中也没怎么遇到过,比如CRC循环校验等,这里就不多说了。
5. 密码技术
常用来实现数据的完整性判断的密码技术为“单向散列函数”,一般也叫Hash(哈希)算法、散列算法、杂凑算法,下文统称哈希算法。实现数据完整性的判断,往往需要在原始数据里再附加一些额外数据,然后接收方接收到所有数据后,通过一些算法,实现完整性的判断。
那么为什么常用哈希算法来实现完整性判断呢?这里要先说说哈希算法。
哈希算法有一个输入与输出,输入任意长度的数据,会输出一个固定长度的值(哈希值)。且输入的数据不同,输出的哈希值也不同,哪怕只有1bit的不同,产生的哈希值也会完全不一样,且没有规律。
另外,由于输入的值的范围是无限的,而输出的值的范围确实固定的(长度固定了),所以一个MD5值实际上必然对应着无数的原文。但一个合格的哈希算法中,会让这种情况出现的概率极低。
回到完整性来,利用哈希算法,比如MD5算法,可以轻松的实现一个基本的完整性校验方法。当客户端向服务器端发送数据时,在数据原文后面附加上数据的MD5值,一并发送过去。
当服务器端收到数据后,使用MD5计算出数据原文的MD5值,再与附加的MD5值进行对比,即能得数据是否被篡改。如别人修改了原文部分,则无法通过校验。或者修改了MD5值部分,那也无法通过校验。
不过这种简单的方法是还是有很大的漏洞的,因为你的输入值和输出值都是明文,别人经过尝试,可以很快的推断出你所使用的是哪一种哈希算法。
得知后,别人修改原文部分之后,再使用你约定使用的哈希算法,算出哈希值部分,这样就能够在篡改数据的情况下通过校验了。所以可以再加上一些措施,对于原文A,计算出其哈希值B,然后使用某加密算法对哈希值B进行加密,得到C,最后传输“A+C”。
接收方收到数据后,对C进行解密,得到B,然后计算出A的哈希值D,对比B和D,即可得知结果。这样情况下,别人就没办法得知你使用的哈希算法了,因为你对哈希值B进行了加密。一旦修改了A或者B部分,都无法通过校验。
当然,其实这还是有漏洞,因为没有使用随机值或者时间戳,每次传输原文A,最终传输的值都是“A+C”,对方重复几个流程,可得到“D+Z”、“V+M”等等数据。
然后,当传输A时,用“D+Z”整个替换“A+C”,也能通过校验,这叫做重放攻击。
6. 测评项a
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
实际测评过程中,极少有自己编程实现这整个过程的,因为一般情况下没有必要自己造一个轮子,水平不够造的轮子还容易有很多的漏洞。对于B/S类型的应用系统来说,一般都是使用HTTPS协议,HTTPS协议同时实现了保密性和完整性。
而对于C/S类型的应用系统来说,如果是直接连接数据库的那种,要看数据库是否配置了SSL,在连接的时候是否使用了SSL。
或者是否使用了其他的密码技术来实现完整性,比如在“等保测评2.0:Oracle身份鉴别(下)”中,Oracle在进行参数上的配置后,即可保证数据传输过程中的完整性。而如果是使用中间件(也即客户端不直接和数据库打交道)的C/S类型的应用系统,要看是否使用了SSL。
实际测评过程中还是很简单的,甚至你都不需要了解相关的密码知识。不过最好还是要懂一些,万一真有自己编程实现这个过程的,你也不至于完全不明白。
另外,如果连密码算法都是自己实现的,且不属于国家密码部门核准的密码算法,一般顶多给部分符合。因为这种自己造的轮子(密码算法),根本没有得到验证,其安全性很值得怀疑。
7. MD5的安全性
MD5是大家最常用的密码算法,也有人说MD5不够安全,应该使用更安全的SHA256等哈希算法。
这其实要看MD5不安全在哪方面:
2005年山东大学的王小云教授发布算法可以轻易构造MD5碰撞实例,此后2007年,有国外学者在王小云教授算法的基础上,提出了更进一步的MD5前缀碰撞构造算法“chosen prefix collision”,此后还有专家提供了MD5碰撞构造的开源的库。
什么是碰撞实例呢?举个例子,比如原文A,其MD5值为B。当我们拿到B时,可以很快的构造出一个C(C可能是A也可能不是),这个C的散列值也是B。
在这种情况下,MD5在保证数据完整性或实现数字签名方面,确实有很大的问题。
8. 测评项b
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
这里要注意和传输过程分开区别,传输过程是一个短暂的、动态的、进行过程,而这里的存储则其实应该理解为长期的保存的过程。
当然,存储是否有短暂的、动态的、进行过程?当然是有的,比如你用记事本或者任何程序保存数据时,当你下指令保存数据后,程序就会将内存中的数据保存至硬盘当中,这个就是短暂的存储过程。但明显的,测评项指的应该是长期的保存过程。
应用系统中,一般都会将重要的数据存储到数据库当中。那么在数据库中,如何使用密码技术保证数据库中的数据一旦被非法篡改,你就能发现呢?在实际测评中,我没遇到过实现的相关例子,只是自己设想了一个简单的模型。比如存储用户的个人信息的表中,有姓名、性别、号码等字段,然后除了这个字段,再添加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(姓名+性别+号码)+SHA256(姓名) )。
然后算出哈希值。这样,每次存储、更新数据的时候,都按照这个算法计算哈希值,存储到校验字段中。每次读取数据的时候,也按照这个算法,再次计算出哈希值,看是否等于校验字段的值。
这样,一旦出现了非法篡改,就能够得知,不过这个不能抵御重放攻击,还需要再使用一些其他的措施,这里就不多说了。
虽然这一项基本没人实现,但是至少被测评方问你怎么实现的时候,你可以大概回答下,不至于说我也不知道。
另外,如果应用系统存储了一些重要文件(比如个人照片)等,也需用使用校验技术或密码技术保证其完整性。
这个理论上也可以实现,比如个人照片文件,一般来说,在数据库应该也会有一个表存储其相关属性,比如路径等,再增加一个校验字段,按照一定的算法,比如:SHA256 ( SHA256(个人照片)+SHA256(路径) )。然后算出哈希值,存储到校验字段中。每次使用的时候,进行校验。或者为了降低资源占用,可以写一个定时脚本、策略等,定时进行校验。
相关推荐
- 电子EI会议!投稿进度查
-
今天为大家推荐一个高性价比的电子类EI会议——IEEE电子与通信工程国际会议(ICECE2024)会议号:IEEE#62199截稿时间:2024年3月25日召开时间与地点:2024年8月15...
- 最“稳重”的滤波算法-中位值滤波算法的思想原理及C代码实现
-
在信号处理和图像处理领域,滤波算法是一类用于去除噪声、平滑信号或提取特定特征的关键技术。中位值滤波算法是一种常用的非线性滤波方法,它通过取一组数据的中位值来有效减小噪声,保留信号的有用特征,所以是最稳...
- 实际工程项目中是怎么用卡尔曼滤波的?
-
就是直接使用呀!个人认为,卡尔曼滤波有三个个关键点,一个是测量,一个是预测,一个是加权测量:通过传感器,获取传感器数据即可!预测:基于模型来进行数据预测;那么问题来了,如何建模?有难有易。加权:主要就...
- 我拿导弹公式算桃花,结果把自己炸成了烟花
-
第一章:学术圈混成“顶流”,全靠学生们把我写成段子最近总有人问我:“老师,您研究导弹飞行轨迹二十年,咋还顺带研究起月老红绳的抛物线了?”我扶了扶眼镜,深沉答道:“同志,导弹和爱情的本质都是动力学问题—...
- 如何更好地理解神经网络的正向传播?我们需要从「矩阵乘法」入手
-
图:pixabay原文来源:medium作者:MattRoss「机器人圈」编译:嗯~阿童木呀、多啦A亮介绍我为什么要写这篇文章呢?主要是因为我在构建神经网络的过程中遇到了一个令人沮丧的bug,最终迫...
- 电力系统EI会议·权威期刊推荐!
-
高录用率EI会议推荐:ICPSG2025(会议号:CFP25J66-PWR)截稿时间:2025年3月15日召开时间与地点:2025年8月18-20日·新加坡论文集上线:会后3个月内提交至S...
- EI论文写作全流程指南
-
推荐期刊《AppliedEnergy》是新能源领域权威EI/SCI双检索期刊,专注能源创新技术应用。刊号:ISSN0306-2619|CN11-2107/TK影响因子:11.2(最新数...
- JMSE投稿遇坑 实验结果被推翻
-
期刊基础信息刊号:ISSN2077-1312全称:JournalofMarineScienceandEngineering影响因子:3.7(最新JCR数据)分区:中科院3区JCRQ2(...
- 斩获国际特等奖!兰理工数学建模团队为百年校庆献礼
-
近日,2019年美国大学生数学建模竞赛(MCM-ICM)成绩正式公布。兰州理工大学数学建模团队再创佳绩,分别获得国际特等奖(OutstandingWinner)1项、一等奖(Meritorious...
- 省气象台开展人员大培训岗位大练兵学习活动
-
5月9日,省气象台组织开展首次基于Matlab编程语言的数值模式解释应用培训,为促进研究性业务发展,积极开展“人员大培训、岗位大练兵”学习活动起到了积极作用。此次培训基于实际业务需求,着眼高原天气特色...
- 嵌入式软件培训
-
培训效果:通过系统性的培训学习,理论与实践相结合,可以胜任相关方向的开发工作。承诺:七大块专业培训,可以任意选择其中感兴趣的内容进行针对性地学习,每期培训2个月,当期没学会,可免费学习一期。本培训内容...
- 轧机支承辊用重载中低速圆柱滚子轴承滚子修形探讨
-
摘 要:探讨了轧机支承辊用重载中低速圆柱滚子轴承滚子修形的理论和方法,确定关键自变量。使用Romax软件在特定载荷工况条件下对轴承进行数值模拟分析,确定关键量的取值范围。关键词:轧机;圆柱滚子轴承;滚...
- 数学建模EI刊,如何避雷?
-
---权威EI会议推荐会议名称:国际应用数学与工程建模大会(ICAMEM)截稿时间:2025年4月20日召开时间/地点:2025年8月15日-17日·新加坡论文集上线:会后2个月内由Sp...
- 制造工艺误差,三维共轭齿面怎样影响,双圆弧驱动的性能?
-
文/扶苏秘史编辑/扶苏秘史在现代工程领域,高效、精确的传动系统对于机械装置的性能和可靠性至关重要,谐波传动作为一种创新的机械传动方式,以其独特的特性在精密机械领域引起了广泛关注。在谐波传动的进一步优化...
- 测绘EI会议——超详细解析
-
【推荐会议】会议名称:国际测绘与地理信息工程大会(ICGGE)会议编号:71035截稿时间:2025年3月20日召开时间/地点:2025年8月15-17日·德国慕尼黑论文集上线:会后2个...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle 数据导出导入 (16)
- oracle两个表 (20)
- oracle 数据库 使用 (12)
- 启动oracle的监听服务 (13)
- oracle 数据库 字符集 (20)
- powerdesigner oracle (13)
- oracle修改端口 (15)
- 左连接 oracle (15)
- oracle 标准版 (13)
- oracle 转义字符 (14)
- asp 连接 oracle (12)
- oracle安装补丁 (19)
- matlab三维图 (12)
- matlab归一化 (16)
- matlab求解方程 (13)
- matlab坐标轴刻度设置 (12)
- matlab脚本 (14)
- matlab多项式拟合 (13)
- matlab阶跃函数 (14)