基于dxf格式cad文档保护系统置乱模块的设计与实现毕业论文(编辑修改稿)内容摘要:

主流文档编辑软件的密码保护功能,相应的破解工具可以轻易的获得。 比如 Passware Password Recovery Kit 等。 从安全功能上来说,现有编辑软件所提供的安全功能简单,一般都是通过对称加密实现文档的保密性,而且通过用户对密钥的记忆实现所谓的访问控制。 即使实现了部分权限管理功能的最新版本的 MS OfficeWord,其权限管理功能也十分容易破解。 但是针对 WORD、 PDF等格式的文档,已经存在了许多专业的文档加密工具,通过这些工具我们可以实现比较有效的文档保护。 AutoCAD 自带安全功能分析 AutoCAD 自带的安全功能主要包括以下几种方式: (1) 自带口令安全 —— AutoCAD 自带的口令安全选项和 Word 口令安全选项大体相同,通过市面上存在的一些针对 Word 的破解软件,我们不难发现想做出针对 AutoCAD 的破解软件并不是十分困难。 (2) 电子传递 —— 电子传递功能让用户可以把当前的图形和相关的文件打包到一个单独的传选集中,它可以帮助用户将图形文件打包,以 加密的形式在 互联网上传送。 (3) Autodesk Streamline—— Autodesk Streamline 为工程提供了一种易于使用的宿主环境,它可以帮助用户安全地共享设计和工程数据、更有效地进行协作并改善整个产品生命周期内的业务流程。 通过以下三种方式为用户的设计数据提供安全保护:验证、访问控制和加密 [3]。 开发及应用现状分析 通过对市面上流通的一些相关加密软件进行分析,不难发现,大多数软件所使用的保护措施主要通过以下几种形式。 (1) 权限控制 —— 通过限制用户的一些操作来实现文档的保护,这样难免在使用软件的过程中带来一定的不便,而且破解方法也比较多。 (2) 密码控制 —— 通过设定密码来保护文档,市面上存在很多密码破解程序,通过这些软件,可以在很短的时间内破解由数字、字母构成的密码。 哈尔滨工业大学本科毕业设计(论文) 3 (3) 禁止网络,部分硬件的使用 —— 同样,给用户带来很大的不便。 由于 CAD 图是一种是矢量图,同标量 图相比,要在矢量图里嵌入信息具有比较大的难度 [5]。 对于矢量图形的一些加密处理技术还不够成熟,因此直接对 CAD 文档进行数字加密技术应用的比较少 [6]。 本文研究的主要内容 本文主要研究 如何通过使用一些比较行之有效的方法,对 CAD 文档进行一系列的保护工作,包括权限管理,文档置乱,篡改提醒,信息隐藏等 我的工作 的重点在于如何 对文档中的图形,文字等实体要素进行处理,通过一些加密手段,使图纸信息可以得到保密。 同时还不应该破坏文档本身的内容,通过解密操作,可以使文档得以还原。 本文主要针对以下内容进行了研究: (1) 用户 监控模块的设计与实现; (2) 文档置乱以及还原模块的设计与实现; (3) 置乱算法的研究分析; (4) 程序与 AutoCAD 软件的兼容。 哈尔滨工业大学本科毕业设计(论文) 4 第 2章 系统 需求分析 和整体 框架 主要开发内容 由于 CAD 文档的重要性,针对 CAD 文档的一些泄密事件也层出不穷。 虽然已经有了一些加密软件,但是总体效果并不是十分理想,破解方法比比皆是。 我们系统的整体开发内容就是开发出一个全面,有效的针对 CAD 文档的保护系统,通过这个系统,用户可以比较方便地对 CAD 文档进行保护工作,同时也不会影响到平时的工作。 针对 CAD 文档的保护方法,我们的系统主要可以分为下面几个主 要模块,见图 21。 文 档 保护 系 统权 限 控 制 信 息 隐 藏 篡 改 提 醒 文 档 置 乱 安 全 日 志 图 21 系统整体模块 其中权限控制模块就是通过控制用户的权限来保护文档。 信息隐藏是在对一些重要信息进行加密隐藏。 篡改提醒通过对文档内部实体元素进行一种不可逆的映射,通过比较映射关系,可以很有效的文档是否被他人恶意修改。 本人所负责的模块为文档置乱模块。 这个模块需要实现的主要功能就是在文档保存的时候,对其内部的图形实体元素,文字标注等信息进行一种可逆的转化。 用户只有在特定的环境下,才可以对文档解密成功。 这样就可以使这个文 档在脱离了特定环境时,不会将信息泄露。 哈尔滨工业大学本科毕业设计(论文) 5 需求分析 由于项目的分工,我对其他模块的了解并不是十分深入。 接下来,我就仅对我所负责的模块进行分析。 文档置乱模块根据自身的功能还可以分为几个小模块,主要包括:用户监视模块,文档转换模块,实体置乱模块(根据各种实体的不同,还可以进一步细化),信息加密模块,文档恢复模块。 我们力求令整个系统的工作对用户都是透明的,用户在使用软件的过程中,甚至感受不到文件正在被加密解密。 本模块主要在用户关闭,打开文件的时候进行工作。 用户监控模块功能需求 本系统需要作为一个插 件嵌入到 AutoCAD 软件中,在用户进行关闭,另存为,打开等操作的时候,调用整个文档置乱模块。 通过本模块,系统可以捕捉到用户 的操作,在进行相应操作的时候系统进行相应的 处理。 文档转换模块功能需求 我们的系统是建立在 DXF 格式文件的基础上的。 AutoCAD 文件是以DWG 格式进行储存,通过对 DWG 文件的研究,我们发现 Autodesk 公司对DWG 文件进行了很好的保护。 我们从 DWG 文件中得到的仅仅是很紧凑的二进制代码,如果直接对这些二进制代码进行加密的话,需要非常大工作量的计算,这是用户所无法忍受的。 这个模块提供了一个将 DWG 格式文件与 DXF 格式文件之间的相互转换。 AutoCAD 软件产生的图纸文件是 DWG 格式, DXF 是一种开放标准的矢量图形文件,我们的系统通过对 DXF 文档进行相应操作,然后转换成 DWG格式文件。 实体置乱模块功能需求 CAD 图纸是由各种实体元素构成的,例如点、线段、各种图形、文字标注等。 这个模块的功能就是针对各种不同的元素,进行不同的可逆的置乱操作。 并将置乱过程中所用到的辅助信息存储起来。 具体功能主要包括: 哈尔滨工业大学本科毕业设计(论文) 6 (1) 点坐标的处理(例如直线的起点,终点) (2) 长度的处理(例如圆的半径长度) (3) 复杂图形的处理(例如正多边形的处理) (4) 标注的处理(包括静态标注、动态标注等) (5) 文字信息的处理 信息加密模块功能需求 在实体置乱的过程中,将产生许多信息,例如运算用的矩阵。 通过这些信息,可以对文档进行恢复。 因此需要在对文档进行处理后对这些信息进行储存。 这些信息如果以明码的方式进行储存,这样就非常容易被破解,因此我们需要对这些信息进行加密处理。 实体 恢复模块功能需求 在用户打开文件的时候,这个文件其实已经是经过置乱的,如果直接返回给用户,用户是没办法得到有用的信息的。 因此,我们需要在用 户打开文件的时候,对文档进行恢复工作。 系统整体框架 本系统致力于保护 CAD 文档的安全,而 CAD 文档的安全性问题主要是人为造成的。 因此我们的系统通过用户监控模块来对用户的行为进行监控,然后调用其它的相关模块对 CAD 文档进行保护工作。 用户监控模块贯穿于整个过程。 系统整体框架如图 22 所示。 用 户 监 控 模 块用 户 操 作 ( 保存 等 )文 档 转 换 模 块 文 档 处 理 模 块 文 档 转 换 模 块进 行 保 存 等 操作 图 22 系统整体框架 其中用户监控模块用于对用户行为进行监控,当用户作出类似于保存,打开,关闭等操作时,该模块截断 AutoCAD 软件的命令,然后调用我们的哈尔滨工业大学本科毕业设计(论文) 7 系统 模块对文档进行保护。 文档转换模块用于将 DWG 文件转换成可供我们处理的 DXF 文件。 文档处理模块的主要功能是对安全性较低的文档进行处理,使其内部的实体进行一种可逆性的转换,使文档信息得到保护。 本章小结 本章对 我们所开发的系统,以及本人所负责模块进行了简单的介绍。 确定了系统的功能需求,使我们对系统的有了比较直观的了解。 然后还给出了系统的一个整体框架,以方便理解我们系统的工作原理。 哈尔滨工业大学本科毕业设计(论文) 8 第 3章 用户监控模块的 设计 与实现 我们所开发的内容包括文档置乱,篡改提示,数字印章等模块,这些模块都需要面临着一个共同的问题,在什 么时刻运行我们的程序,如何在这些时刻运行我们的程序。 这个问题如果无法解决,那么其他功能都无法有效地实现其作用。 因此本模块是其它模块正常运行的一个前提,不仅我所负责的模块需要使用到,其他模块也将使用到这个模块的功能。 本模块所要实现的功能是对用户的行为进行监控,在用户做出某些操作,比如关闭文档,另存为,打开文档的时候,截获系统传递的消息,并做出相关操作。 在具体实现方法的选择上,我们考虑了 2 个方法,一个是使用 Windows钩子函数,另一个是 ObjectARX 反应器。 Windows 钩子函数 Windows 的钩 子函数可以认为是 Windows 的主要特性之一。 利用它们,您可以捕捉您自己进程或其它进程发生的事件。 通过 “ 钩挂 ” ,您可以给Windows 一个处理或过滤事件的回调函数,该函数也叫做 “ 钩子函数 ” ,当每次发生您感兴趣的事件时, Windows 都将调用该函数 [7]。 一共有两种类型的钩子:局部的和远程的。 局部钩子仅钩挂 你 自己进程的事件。 远程的钩子还可以将钩挂其它进程发生的事件。 远程的钩子又有两种: 基于线程的 —— 它将捕获其它进程中某一特定线程的事件。 简言之,就是可以用来观察其它进程中的某一特定线程将发生的事件。 系统 范围的 —— 将捕捉系统中所有进程将发生的事件消息。 安装钩子函数将会影响系统的性能。 监测 “ 系统范围事件 ” 的系统钩子特别明显。 因为系统在处理所有的相关事件时都将调用您的钩子函数,这样您的系统将会明显的减慢。 所以应谨慎使用,用完后立即卸载。 还有,由于您可以预先截获其它进程的消息,所以一旦您的钩子函数出了问题的话必将影响其它的进程。 记住:功能强大也意味着使用时要负责任。 钩子函数根据事件又可以分成以下几种类型: (1) 键盘钩子和低级键盘钩子可以监视各种键盘消息。 (2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消 息。 哈尔滨工业大学本科毕业设计(论文) 9 (3) 外壳钩子可以监视各种 Shell 事件消息。 比如启动和关闭应用程序。 (4) 日志钩子可以记录从系统消息队列中取出的各种事件消息。 (5) 窗口过程钩子监视所有从系统消息队列发往目 标窗口的消息。 这些钩子,几乎可以覆盖了所有的 Windows 操作。 但是使用钩子函数将会面临许多问题: 系统移植问题 —— 这边所提到的钩子函数,主要指 Windows 钩子函数,当我们的系统需要在其他操作系统进行工作的时候,比如在 LINUX 下,那么,我们的系统是否可以工作呢,我们是否需要对钩子函数重新进行编写呢 进程问题 —— 如果我们使用了局部钩子 ,将需要对 AutoCAD 本身的进程进行修改,嵌入钩子函数,这样无疑难度是比较大的。 使用远程钩子,将需要建立一个新的进程,对 AutoCAD 进程进行监控,那么,如何通过这个进程来控制 AutoCAD 的进程,如何防止用户通过终止进程来取消监控,都将构成较大的问题。 技术问题 —— 由于之前没有接触过钩子函数,因此需要从头开始学习,需要多长时间才能掌握这项技术,这是无法估计的。 因此,技术方面所带来的风险其实是相当大的。 ObjectARX 反应器 ObjectARX 中的 ARX 表示 AutoCAD 的运 行时扩展( AutoCAD Runtime eXtension )。 ObjectARX 是 一 个综 合 的 API ( Application Programming Interface),他包含了将 200 多个类和 3000 多个函数 [8]。 ObjectARX 反应器其实也可以算是一种钩子函数 ,与 Windows 钩子函数不同的是 ,他是以类似于插件的形式 ,嵌入到 AutoCAD 程序中 .其所监视的事件 ,也是针对一些 AutoCAD 所特有的事件。 经常使用到的 ObjectARX 反应器主要有以下几种类型: (1)数据库反应器 AcDbDatabaseReactor: 数据库反应器监视在 AutoCAD数据库范围内的事件,例如添加或去除实体。 (2)AutoCAD 编辑反应器 AcDbEditorReactor: 编辑反应器监视在用户编辑图形文件时发生的事件,例如发出命令,或关闭一个当前的活动。 (3)对象反应器 AcDbobjectReactor: 对象反应器可以监视在指定对象被更改、复制或删除时发生的事件。 (4)AutoCAD 文档管理反应器 AcApDocManagerReactor: 从 R20xx以来 ,哈尔滨工业大学本科毕业设计(论文) 10 AutoCAD 是一个多文档环境。 文档管理反应器监视 在 MDI模式下图形文档窗口事件,例如打开、关闭、切换图形文档等等。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。