1、Microcomputer Applications Vol.39,No.10,2023文章编号:10 0 7-7 57 X(2023)10-0064-04工程设计数字图纸DXF格式文件的篡改检测定位方法范荣全,郑晓波,曾嵘,向圣军,陈少卿,吕俊杰(1.国网四川省电力公司,四川,成都6 10 0 0 0;2.国网四川省电力公司天府新区供电公司,四川,成都6 10 0 0 0;3.成都荣耀科技有限公司,四川,成都6 10 0 0 0)摘要:传统设计文件的不可复改都是靠纸板蓝图保证,但随着信息化的发展,强烈需要一种能高效检测定位电子版设计文件是否发生复改和定位篡改位置的技术。将多元素DXF格式设计
2、文件分解,按元素提取最重要的层、块、实体元素和实体数量,构成设计文件的特征。将提取的特征作为底层叶子,利用基于MD5算法的默克尔树得到防篡改码。通过对比防改码可以检测是否发生复改和定位篡改位置。理论分析和实验表明,本方法可以检测文件是否改并进行定位。对1MB设计文件生成防篡改码仅需2 S,满足实践需要。关键词:设计文件;MD5算法;数字图纸;复改检测定位中图分类号:TP309.2基金项目文献标志码:A微型电脑应用2 0 2 3年第39 卷第10 期Tampering Detection and Positioning Methodof Engineering Design Digital Dr
3、awing DXF Format FilesFAN Rongquan,ZHENG Xiaobo,ZENG Rong,XIANG Shengjun,CHEN Shaoqing,LU Junjie?(1.State Grid Sichuan Electric Power Company,Chengdu 610000,China;2.State Grid Sichuan Electric Power Company Tianfu New Area Power Supply Company,Chengdu 610000,China;3.Chengdu Rongyao Technology Co.,Lt
4、d.,Chengdu 610000,China)Abstract:The immutability of traditional design files is guaranteed by cardboard blueprints,but with the development of infor-matization,there is a strong need for a technology that can efficiently detect and locate electronic design files for tampering andlocate the tampered
5、 position.The multi-element DXF format design file is decomposed,and the most important layers,blocks,entity elements and the number of entities are extracted to form the features of the design file;the extracted features are used asthe bottom leaves,and the Merkle tree based on MD5 algorithm is use
6、d to obtain tamper-proof code.By comparing the tamper-resistant code,it is possible to detect whether tampering has occurred and locate the tampering location.Theoretical analysisand experiments show that this method can detect whether the file is tampered and locate it.It only takes 2 seconds to ge
7、neratea tamper-proof code for a 1 MB design file,which meets practical needs.Key words:design file;MD5 algorithm;digital drawing;tampering detection and positioning0引言目前有关文件防篡改的技术主要针对常见格式位图文件和SHP格式矢量图文件。工程系统设计文件格式一般为DXF,具有多层次、多元素等特征,单层次单元素的位图篡改检测、定位技术不适用,而SHP文件和DXF文件相互转换中会丢失大量数据,因此现有针对SHP格式的矢量图文件的防篡
8、改技术不适用于工程系统设计文件的篡改检测。现基金项目:国网四川省电力公司依托工程基建实用新技术研究项目(GWSCJJ-XJS-2020-01)作者简介:范荣全(196 6 一),男,硕士,教授级高级工程师,研究方向为电力自动化;郑晓波(198 0 一),男,硕士,高级工程师,研究方向为电力自动化;曾嵘(197 9一),男,硕士,研究方向为能源电力;向圣军(196 9一),男,硕士,研究方向为电网建设;陈少卿(197 9),男,本科,研究方向为电气工程及其自动化;吕俊杰(198 5一),男,硕士,高级工程师,研究方向为电气工程。64.有很多方法只能判断文件是否被篡改,并不能对篡改处进行定位。现有
9、篡改检测、定位算法均不适用于DXF格式设计文件,需要对DXF工程文件设计有针对性的篡改检测和定位方法。1相关研究重要的设计文件不仅会受到外部黑客的攻击,还会受到Microcomputer Applications Vol.39,No.10,2023内部的恶意破坏和非法篡改。近年来,一些研究团体和学者对文件篡改定位已开展了很多相关的研究工作,取得了一定的研究成果。林意等11提出将文件头信息作为图像像素灰度值进行处理,利用MD5构造的哈希函数生成文件头的信息摘要值,并将消息摘要值作为水印,以可逆不可见的方式嵌人DICOM图形,使用提取水印与重新生成水印的差异进行文件头信息篡改检测,该方法对文件头信
10、息篡改具有极强的敏感性、较高的准确性,对大文件处理效率过慢。陈阳等2 提出一种支持篡改定位的电子航海图零水印算法,在ENC文件以经纬度表示的离散点坐标数据分布规律的基础上,构造离散点经纬度坐标校验码的二值序列,引人经纬度坐标校验码和格网分块技术,在保证ENC数据精度的同时,具备点位篡改定位的特性,主要应用在电子航海图数据的版权保护上。SU等提出了一种基于混合Sudoku的图像篡改检测脆弱水印算法,水印虚拟地嵌人每个像素对中,产生临时坐标信息,然后将临时信息坐标隐藏到覆盖图像中,实验表明精度较高,有效定位出篡改位置,但不适用于DXF文件。彭一航等提出一种基于递进式混合特征的篡改图片识别算法。算法
11、针对SIFT特征无法区分自然相似区域与篡改区域的问题,结合矩特征的优点,提取合成子块的递进式混合调整来降低算法的虚警率。算法可以有效防止传统图片复制-粘贴的图片改方式,但DXF文件篡改存在数据变更问题,并不适用。2设计文件篡改检测定位方法本节针对DXF文件设计篡改检测与定位方法。首先,详细分析DXF文件的结构,找出改变元素会显著改变的关键部分。提取这些关键部分元素借助默克尔树生成防篡改码2-3。最后通过对比实时生成的篡改码与原始保存的防篡改码是否一致来判断文件是否被篡改,并通过回溯默克尔树定位被篡改的位置。DXF结构如图1所示。电力系统设计文件(DXF格式)Tables应用程序ID(APPID
12、)表尺寸样式(DIMSTYPE)表线型(LTYPE)表格用户坐标系(UCS)表视口配置(VPORT)表2.1DXF文件结构解析DXF图形文件结构DXF文件由标题段(Header)、表段(T a b le s)、块段(Block)、实体段(Entities)和文件结束段(EoF)共5部分组成。DXF通过每一行存储相关数据,每两基金项目行为一个组,第一行为组的代码,第二行为组值,一个组就代表了一个数据的含义和值,DXF文件由大量的组构成。经过研究,对内容比较敏感的是其中的表图层(Layer)、块段(Blocks)和实体段(Entities),文件只要有改动必然反映在这些元素里。所以虽然DXF文件结
13、构相当复杂,但根据需求,只要获取其中的层表、块段和实体段,就可以完成相应实体的提取4-5。2.2设计文件特征获取将DXF格式的工程系统设计文件进行分解,并按关键字提取特征。将层元素、块元素和实体元素对应的序列进行拼接,将拼接结果作为设计文件的特征。(1)将表图层中的关键字“TABLE2LAYER5”作为表图层的开始,将关键字“OENDTAB”作为表图层的结束,将关键字“0 LEYER5”所分割的数据作为表图层的数据分片,以关键字定位并提取表图层的每一个数据段构成表图层数据序列LI,L2,,Ln。(2)将块段中的关键词“0 SECTION2BLOCKS”作为块段的开始,将关键字“10 0 AcD
14、bBlockEnd0ENDSEC”作为块段的结束,将关键字“OENDBLK5”所分割的数据作为块段的数据分片,以关键字定位并提取块段的每一个数据段构成块段数据序列B1,B2,,Bm。(3)将实体段中的关键词 0 SECTION2ENTITIES作为实体段的开始,将关键字“OENDSEC”作为实体段的结束,将关键字“10 0 AcDbEntity8”所分割的数据作为实体段的数据分片,以关键字定位并提取实体段的每一个数据段构成实体段数据序列Ei,E2,,Es。(4)把实体段中变量的个数定义为实体数量s。2.3防复改码生成将电力系统设计文件的特征Li,L2,,L,Bi,Bz,,BmEi,E2,Es
15、作为底层叶子,之后相邻的两个节点的哈希值合并成一个字符串,然后计算这个字符串的哈希值,得到的就是这两个节点的父节点的哈希值。如果该层树节点个数是单数,那么对于最后剩下的节点,直接进行哈希运算Header以获取父节点的值6。循环重复上述计算过程,最终计算得Classes到最后一个节点的哈希值,将该节点的哈希值作为整棵树的表块记录(BLOCK_RECORD)哈希,将默克尔树的根节点哈希值作为设计文件的防篡改表图层(LAYER)码。DXF防篡改码Merkle图,如图2 所示。表文字样式(STYLE)提取,并分段表查看(VIEW)BlocksEntitiesObjects图1DXF结构图微型电脑应用2
16、 0 2 3年第39 卷第10 期RootHash(wowI)WoHash(wo+wi)WoHash(Wo+W1)WOW1Hash(LI)EHash(L2)Hash(B1)Hash(B2)Hash(B3)Hash(E1)Hash(E2)LIL2图2DXF防篡改码Merkle图2.4复改检测由于防篡改码生成比较耗时,为了提高检测效率,在比较时先对比提取的实体是否一致:如果实体个数都不同,则肯定被篡改过;如果实体数目一致再生成篡改码作进一步65.WIHash(W2+W3)WIW2Hash(W2+W3)Hash(W4+W5)W2W3B1B2W3Hash(W6+W7)W4W5B3E1W6Hash(E3
17、)E2E3W7Microcomputer Applications Vol.39,No.10,2023对比。(1)若均通过则获取区块里的工程系统设计文件,结束篡改检测定位。(2)若未通过,则获取当前工程系统设计文件的默克尔树,并将其与区块内的默克尔树中各个层的特征值进行对比,根据图层-影响此图层块段-影响此块段实体的顺序,定位设计文件被篡改的数据段,并生成篡改报告。篡改报告包括被算改过的数据段集合7-8 3实验分析3.1DXF解析本文实验了不同大小设计文件的篡改检测定位效果和效率,实验中使用的开发语言为Python。获取一个简易的DXF图形,打开后如图3所示。图3DXF篡改前可视化图这图形主要
18、由4条直线和10 个圆圈组成。对这个DXF分析,DXF文件篡改前结构组成,如图4所示。CIRCLE44CIRCLE45CIRCLE46CIRCLE47CIRCLE48CIRCLE49CIRCLE4ACIRCLE4BCIRCLE4CCIRCLE4DLINE52LINE53LINE54LINE55DXFversion:AC1015LAYER CoUnt is 1BLoCKScountis3ENTITYCOUnt is 14图4DXF文件篡改前结构组成图可以得知这个文件是由编号44-4D的圆组成和编号52-55的线段组成,DXF版本号为AC1015,层段为1个,块段为3个,实体段为14个。3.2篡改
19、检测对DXF文件进行更改,将其中2 个圆改成两个线段。修改后如图5所示。图5DXF篡改后可视化图然后对该DXF文件进行解析,得图6。基金项目。原图形圆44和圆45变为线段9 8 和线段9 9。文件版本号变为AC1032,层由1个变为2 个。通过分析可以得到图形由多少类型的小块构成,那么该图形有多少实体。若删去一个线段99,实体便会变为13个,如图7 所示。CIRCLE46CIRCLE47CIRCLE48CIRCLE49CIRCLE4ACIRCLE4BCIRCLE4CCIRCLE4DLINE52LINE53LINE54LINE55LINE98DXFversion:AC1032LAYERCoUnt
20、 is2BLOCKS countis3ENTITY cOUntis 13图7 DXF文件篡改后结构组成图判断实体数量是否发生变化。如实体数量发生变化,文件被篡改。通过解析文件可以发现,文件具体发生变化的是哪个图形。对初始文件实体进行MD5哈希,如图8 所示。对DXF文件图形进行修改,将圆44和圆45变为线段98和线段9 9,两个MD5值发生变化,如图9 所示。两个MD5值发生变化,可以判断DXF文件被篡改。经过类似对比过程可以发现DXF设计文件的改动,目前实验检测准确率为9 8%以上,小型文件基本是百分百的检测准确率。66.微型电脑应用2 0 2 3年第39 卷第10 期CIRCLE46CIR
21、CLE47CIRCLE48CIRCLE49CIRCLE4ACIRCLE4BCIRCLE4CCIRCLEE4DLINE52LINE53LINE54LINE55LINE98LINE99DxFversion:AC1032LAYERCoUntis 2BLOCKScountis3ENTITY coUnt is 14图6 DXF文件篡改后结构组成图Microcomputer Applications Vol.39,No.10,2023e6752b36-95fb-11eb-971a-bca8a6b2e5b1e6752b37-95fb-11eb-9f1f-bca8a6b2e5b1e6752b38-95fb-1
22、1eb-902a-bca8a6b2e5b1e6752b39-95fb-11eb-b9ff-bca8a6b2e5b1e6752b3a-95fb-11eb-bab1-bca8a6b2e5b1e6752b3b-95fb-11eb-a3eb-bca8a6b2e5b1e6752b3c-95fb-11eb-8af6-bca8a6b2e5b1e6752b3d-95fb-11eb-b76f-bca8a6b2e5b1e6752b3e-95fb-11eb-8cfa-bca8a6b2e5b1e6752b3f-95fb-11eb-a295-bca8a6b2e5b1e6755262-95fb-11eb-9c35-bca
23、8a6b2e5b1e6755263-95fb-11eb-bd84-bca8a6b2e5b1e6755264-95fb-11eb-a126-bca8a6b2e5b1e6755265-95fb-11eb-bf23-bca8a6b2e5b1图8 篡改前实体MD5值e6752b38-95fb-11eb-902a-bca8a6b2e5b1e6752b39-95fb-11eb-b9ff-bca8a6b2e5b1e6752b3a-95fb-11eb-bab1-bca8a6b2e5b1e6752b3b-95fb-11eb-a3eb-bca8a6b2e5b1Hee6752b3c-95fb-11eb-8af6-b
24、ca8a6b2e5b1e6752b3d-95fb-11eb-b76f-bca8a6b2e5b1一e6752b3e-95fb-11eb-8cfa-bca8a6b2e5b1e6752b3f-95fb-11eb-a295-bca8a6b2e5b1e6755262-95fb-11eb-9c35-bca8a6b2e5b1e6755263-95fb-11eb-bd84-bca8a6b2e5b1一e6755264-95fb-11eb-a126-bca8a6b2e5b1e6755265-95fb-11eb-bf23-bca8a6b2e5b1e6755266-95fb-11eb-b23b-bca8a6b2e5b
25、1e6755267-95fb-11eb-b0f5-bca8a6b2e5b1图9 篡改后实体MD5值3.3性能分析以上是篡改方法有效的简单实验示例。下面对真实的DXF文件生成完整的默克尔树,其根节点哈希值就是防篡改码。为了观察不同大小DXF文件生成防篡改码的效率,本实验以10 0 KB、1M B和10 MB等3个不同大小量级的DXF文件为例。首先对3个文件进行解析,生成根节点的数量如图10所示。16.0001400012.00012.00080006000400020000100 KB图10 根节点生成数量情况通过图表可以发现,若DXF文件量级达到10 MB,生成根节点的数量会达到上万个。基金项
26、目不同大小文件生成根节点的时间如图11所示。18r1614121086420100KB图11根节点生成时间情况如今大部分DXF文件的大小都是在10 0 KB到1MB之间,10 0 KB大小文件生成根节点只需要0.2 s左右,而1MB的文件生成根节点需要2 s左右,满足实际需要。4总结本文提出了一种设计文件改检测定位的方法,将多元素的DXF格式设计文件分解,按元素提取最重要的层、块、实体元素和实体数量,构成设计文件的特征;接着,将提取的特征作为底层叶子,利用默克尔树得到文件防改码。实验表明该方法可以检测并定位设计文件的篡改位置,检测准确率在98%以上,小型文件达到10 0%,且对比较大的设计文件
27、的处理效率也在秒级,满足实际使用需要。本文仅针对DXF格式文件改检测方法进行研究,在后续研究中,仍需对其他格式文件防篡改技术进行完善。参考文献林意,廖琴枝基于无损水印的DICOM文件头信息篡改检测J.计算机工程,2 0 16,42(5):151-155.2 王升,范思宇,杜玉洁,等.基于区块链技术的文档防篡改系统J.网络安全技术与应用,2 0 2 1(2):31-32.3赵屹.电子文件防篡改技术对档案管理的影响及启示J.中国档案,2 0 2 0(4):6 9.4周黎.基于区块链技术的防篡改审计系统设计J.微型电脑应用,2 0 2 1,37(12):2 0 6-2 0 8.5全蕾.结合图像恢复的方块编码压缩图像防篡改方法J.兵器装备工程学报,2 0 19,40(10):136-141.6 武利庆,杨彬,张宁,等。哈希值校验技术在电子数据防篡改中的应用初探J.中国计量,2 0 2 1(4):9 8-9 9.7 左小雄,常见篡改文件及其检验方法J.法制博览,2019(10):128-131.1 MB100MB文件大小微型电脑应用2 0 2 3年第39 卷第10 期1 MB文件大小8张勇,徐云燕。基于文件监控和自定义判定树的网页防篡改机制J.电脑知识与技术,2 0 17,13(2 3):14-16.100MB(收稿日期:2 0 2 1-12-0 7)67
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100