一种加密防篡改文件的生成和使用方法与流程

文档序号:26838776发布日期:2021-10-08 19:36阅读:223来源:国知局
一种加密防篡改文件的生成和使用方法与流程

1.本发明涉及嵌入式工业控制和信息安全技术领域,具体涉及一种面向电力二次设备数据文件的加密和防篡改的文件生成及使用方法。


背景技术:

2.随着信息技术的迅猛发展,计算机和服务器上存储的文件越来越多,大量的重要数据都是以文件明文的形式存储在系统里。但同时针对文件的攻击手段也在不断演进,造成数据丢失、泄露、系统崩溃等问题。如何保证重要文件的安全,是人们一直持续关注的问题。
3.随着电网建设的快速发展,电网的体系结构愈加复杂,电网安全稳定运行是关系国民经济和社会稳定的重要因素。近年来网络安全事件逐渐从黑客攻击转变为国家之间的对抗。如乌克兰国家电力系统大面积停电事件、棱镜门事件、委内瑞拉古里水电站事件等都是利用网络攻击实现战略目标的例子。而在网络空间战中,电力二次设备作为采集一次设备数据并控制一次设备的关键基础设施,当属最易受攻击的对象。现有电力二次设备对关键数据的保护力度还不够,如定值文件、录波文件、事件记录文件等常用明文存储或单纯地对文件进行加密,未能起到数据被破坏后的有效恢复和主动防御。当这些文件被人为篡改或由于设备异常断电及其他未知原因下发生数据变位,将直接影响电力二次设备的正常运行,产生对一次设备错误的测量结果和控制行为,严重威胁广大用户的用电安全。
4.目前在文件安全方面,人们想出了各种办法进行多方位多角度的防护,如访问授权、文件加密、文件防篡改等。如专利文件防篡改方法及装置(公开号cn108334788a,2018-07-27)通过应用向服务器发送权限请求,由服务器对应用进行风险判断,进而确定是否授予权限,避免非法应用越权访问、操作文件。文献网络安全中des文件加密的应用(电脑与电信,2019(07):49-51)提出了使用国际对称密码算法des算法对文件进行存储加密和读取解密,避免文件在存储和传输过程中信息的泄露。专利一种文件防篡改方法和装置(公开号cn110287733a,2019-09-27)通过将目标文件的文件名后缀信息使用预先设定的加密算法进行加密,确保接收端接收正确的加密的文件名后缀。避免文件名后缀被篡改对文件正常使用造成的影响。专利一种监控linux下文件变化并保障数据不被篡改的方法(公开号cn104850802a,2015-08-19)通过linux的shell脚本,来实现对linux目录下文件的监控,通过该脚本记录该目录下的原始文件;并在检测到文件发生变化时,将变化记录在日志文件中;并将指定目录下的文件,恢到原始状态,保证数据不被篡改。
5.在涉及文件的加密和恢复的方案,多采用组合多种密码算法对文件进行加密,达到对文件内容的保密。如文献一种aes算法和hash认证结合的文件加密方案(计算机技术与发展.2019(03):117-121)使用aes算法和hash认证相结合的加密方案对文件进行加密。在文件的恢复方面,多采用定时检测或在文件使用时校验是否被修改的方式,来检测文件是否被破坏。若文件被破坏则启用备份文件。如专利一种动态库的防篡改方法及装置(公开号cn109635522a,2019-04-16)在文件生成时添加数字签名,文件更新时通过数字证书验证数
字签名并备份文件,文件使用时定时检查是否被修改,若被修改则用备份文件替换。
6.然而现有大多数文件保护方面的专利技术和解决方案,常针对服务器等大型系统,不能适用嵌入式微型系统的场合。有些通过系统间的配合来控制文件访问权限,外部条件依赖性强,如专利文件防篡改方法及装置(公开号cn108334788a,2018-07-27)通过向服务器申请文件的访问权限,额外增加应用和服务器之间的通信消耗,同时需要配置专用的服务器来进行权限判别和授予。有些方案对系统资源的开销比较大,不适合嵌入式系统,如专利一种监控linux下文件变化并保障数据不被篡改的方法(公开号cn104850802a,2015-08-19)通过脚本或其他方式定时检测文件是否被修改,增加了系统的资源开销,降低了系统的运行性能。文献一种aes算法和hash认证结合的文件加密方案(计算机技术与发展.2019(03):117-121)和专利一种动态库的防篡改方法及装置(公开号cn109635522a,2019-04-16)只能检测出整个文件是否被篡改,对于文件中部分内容被篡改的情况无法精准定位、记录。并且现有的技术方案对检测出被篡改的文件,需要通过提前备份的文件来进行恢复。备份的文件需要有额外的安全的磁盘分区来存储,不利于文件在多个系统之间的拷贝、传输。


技术实现要素:

7.发明目的:本发明的目的是提供一种面向电力二次设备数据文件的加密和防篡改的文件生成及使用方法,通过文件自身可完成文件完整性、安全性、授权访问、可恢复等功能,可解决现有技术中对文件访问授权流程复杂,对文件篡改监测资源消耗大,篡改内容定位不够精准、文件恢复需要额外开辟备份空间的问题。
8.技术方案:为实现上述目的,本发明所提供的一种加密防篡改文件的生成方法包括有以下步骤:
9.s1:电力二次设备应用写文件时带入授权信息码;
10.s2:文件系统生成原始文件后,在逻辑上将原始文件复制一份作为备份;
11.s3:将原始文件以1k字节为单位进行分组,对每个分组分别用对称加密算法进行加密;
12.s4:将加密后的分组使用摘要算法进行摘要计算,生产32字节的摘要,追加在加密后的分组数据后面;
13.s5:将每个加密分组及其摘要拼接起来,形成加密原始文件;
14.s6:对备份文件使用不同的摘要算法密钥和对称加密算法密钥进行s3至s5步骤的处理,形成加密备份文件;
15.s7:将访问本文件的授权信息码使用摘要算法加密,生成32字节的加密授权信息码;
16.s8:将加密原始文件、加密备份文件和加密授权信息码拼接在一起,形成最终的加密防篡改文件,其中加密授权信息码存放在最终的加密防篡改文件的最后32字节空间内。
17.一种防篡改文件的使用方法,其特征在于:包括有以下步骤:
18.s1:设备应用带入授权信息码访问文件;
19.s2:文件系统对授权信息码使用与加密过程相同的摘要算法进行加密,将加密结果和文件的加密授权信息码对比,若一致则允许访问,不一致则拒绝访问;
20.s3:若允许访问,文件系统将加密防篡改文件的最后32字节的加密授权信息码截去后,把剩余文件平均一分为二,形成原始区和备份区,分别对原始区和备份区按照(1k+32)字节大小进行分组,形成若干对分组,每一分组为1k字节和32字节两部分;
21.s4:依次对原始区内每一分组内的1k字节部分进行摘要算法运算,将结果与32字节部分进行比较,判断是否相同,相同则确认该分组完整,若原始区内分组都通过校验,说明在存储过程都未被篡改,则用原始区的分组使用对称加密算法进行解密,得到原始文件;若有一个分组没通过校验,说明该分组被篡改,记录该分组在文件中位置和内容到日志,留待备查,然后对备份区对应分组进行同样步骤的校验,对通过校验的分组进行对称加密算法解密;若两个分组都没通过校验,说明都被篡改,文件无法正确解密,打开失败,文件系统提示文件被篡改,无法打开,同时记录未通过校验的分组在文件中位置和内容到日志,留待备查;
22.s5:按照上述步骤,若原始区分组能够通过校验并且全部解密,或备份区对应分组能够通过校验并且全部解密,则将解密后的分组拼接在一起,得到原始文件,释放入内存,供应用使用。
23.作为优选,一种防篡改文件的生成方法和使用方法内所述对称加密算法选用aes算法、3des算法或国密sm4算法等算法。
24.作为优选,一种防篡改文件的生成方法和使用方法内所述摘要算法选用sha算法、md5算法或国密sm3算法等算法。
25.有益效果:(1)生成加密防篡改文件和解密文件的工作由文件系统完成,应用在写、读文件时只需带入授权信息码,不感知文件加密处理过程,实现应用和文件加密防篡改的解耦;(2)文件的访问权限记录在文件里,不需要额外的授权认证机制,实现了仅靠文件自身即可控制其访问权限的功能;(3)应用在写、读文件时可以不带授权信息码。文件系统在生成、读取文件时不处理授权信息码部分,可兼容现有的文件访问方式;(4)文件在存储期间不关注是否被篡改,只在读取时进行防篡改校验和篡改恢复,不需要额外的定时检测机制;(5)采用双区备份模式,每个区使用不同的摘要算法密钥和对称加密算法密钥,增加了文件的机密性;(6)双区分组交叉校验恢复模式,增加了恢复成功的概率。对于文件部分被篡改、意外变位等导致的文件损坏,有很高的修复率,解决了文件自恢复的难题;(7)可以精确定位到1k字节范围内的修改,方便日后的攻击分析;(8)原始文件和备份文件记录在一个文件内,文件相对来说较为独立,方便在系统间进行拷贝传输。
附图说明
26.图1是本发明的生成文件流程示意图;
27.图2是本发明的读取文件流程示意图。
具体实施方式
28.下面结合附图对本发明的具体实施方式作进一步的说明:
29.如图1所示,为本发明的加密防篡改文件的生成流程示意图,生成文件的具体步骤如下:
30.s1:电力二次设备应用带着授权信息码authmsg写文件,授权信息码为200字节的
明文数据,格式和内容由应用程序自行决定;
31.s2:文件系统生成原始文件后,获得文件大小sizefile(假设该文件大小为4k),开辟(sizefile*2)+(sizefile/1k)*32*2+32字节空间用来记录最终生成的加密防篡改文件;
32.s3:将原始文件以1k字节为单位进行分组,得到a、b、c、d四个分组,并复制一份a'、b'、c'、d'四个分组;
33.s4:使用国密sm4算法和sm4密钥key1对a分组进行加密运算,得到加密后1k字节的a1,同样的,分别对b、c、d分组做此操作,得到b1、c1、d1;
34.s5:使用国密sm4算法和sm4密钥key2对a'分组进行加密运算,得到加密后1k字节的a2,同样的,分别对b'、c'、d'分组做此操作,得到b2、c2、d2;
35.s6:使用国密sm3算法和sm3密钥key1对a1进行摘要运算,得到32字节的d
a1
,同样的,分别对b1、c1、d1做此操作,得到d
b1
、d
c1
、d
d1

36.s7:使用国密sm3算法和sm3密钥key2对a2进行摘要运算,得到32字节的d
a2
,同理,分别对b2、c2、d2做此操作,得到d
b2
、d
c2
、d
d2

37.s8:使用国密sm3算法和sm3密钥key3对授权信息码authmsg进行摘要运算,得到32字节的d
am

38.s9:将a1、d
a1
、b1、d
b1
、c1、d
c1
、d1、d
d1
、a2、d
a2
、b2、d
b2
、c2、d
c2
、d2、d
d2
、d
am
依次拼接起来,得到最终加密防篡改文件,其中加密授权信息码d
am
存放在最终的加密防篡改文件的最后32字节空间内。
39.因为该加密防篡改文件的每一小部分都是sm4或sm3加密后的,所以整个文件都是加密后的密文,保证了文件的机密性。
40.在防篡改方面,本实施例中修改部分字段,比如修改b1和d
d2
字段。在应用读取文件时,如图2所示,本实施例读取文件的步骤如下:
41.s1:电力二次设备应用带着授权信息码authmsg'读取该加密防篡改文件;
42.s2:文件系统获取该加密防篡改文件的最后32字节d
am

43.s3:使用国密sm3算法和sm3密钥key3对应用带入的授权信息码authmsg'进行摘要运算,得到32字节的d
am
',将d
am
和d
am
'相比较,若相同,说明应用带入的授权信息码正确,允许应用访问该文件;若不同,应用带入的授权信息码错误,禁止应用访问该文件,若允许应用访问该文件,文件系统进入第4步,继续对该加密防篡改文件进行解密和防篡改处理;
44.s4:截去最后32字节的d
am
字段,将剩下的文件平均一分为二,分别为原始区和备份区;
45.s5:将原始区以(1k+32)字节为单位进行分组,共得到4组,每一组再分为1k字节和32字节两部分,得到a1、d
a1
、b1、d
b1
、c1、d
c1
、d1、d
d1
,同理,将备份区进行类似处理,得到a2、d
a2
、b2、d
b2
、c2、d
c2
、d2、d
d2

46.s6:校验原始区,使用国密sm3算法和sm3密钥key1对a1进行摘要运算,将摘要结果和d
a1
相比较,发现两者相等,说明a1和d
a1
在存储期间未被修改过,a1值得信赖,同理,对b1、d
b1
、c1、d
c1
、d1、d
d1
进行类似处理,发现c1和d1值得信赖,但b1计算出来的摘要结果和d
b1
不相等,说明b1或d
b1
在存储期间被修改过,b1不值得信赖,记录b1、d
b1
的位置和内容到日志,以待后续检查分析;
47.s7:同s6进行备份区的校验,发现a2、b2、c2值得信赖,d2不值得信赖,记录d2、d
d2

位置和内容到日志;
48.s8:解密原始区,使用国密sm4算法和sm4密钥key1对a1进行解密,得到原始数据a,同理,对c1、d1进行类似处理,得到原始数据c、d;
49.s9:同步骤8解密备份区,使用国密sm4算法和sm4密钥key2对b2进行解密,得到备份数据b';
50.s10:因为备份数据b'和原始数据b相同,故将a、b'、c、d相拼接,可得到恢复后的原始文件;
51.s11:对日志文件b1、d
b1
、d2、d
d2
和同类日志文件进行搜集分析,找出被攻击的特点和规律,采取进一步的防范措施。
52.以上给出了具体的实施方式,但本发明不局限于以上所描述的实施方式。本发明的基本思路在于上述基本方案,对本领域普通技术人员而言,根据本发明的教导,设计出各种变形的模型、公式、参数并不需要花费创造性劳动。在不脱离本发明的原理和精神的情况下对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1