(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf_第1页
(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf_第2页
(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf_第3页
(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf_第4页
(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(机械设计及理论专业论文)软件综合防伪及电子网络注册系统研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西北工业大学硕士论文 摘要 诗冀税软传楚一耱特殊懿裔磊,极努复剩,麴鹰保护较箨开发者鹣鬻l 盏, 防止软件被盗版,一直是计算机安全领域的重要课题。 通谶分析现有的各种软件保护技术,本文掇出并实现了一萃申基于b r o w s e r s e r v e r 絮掏的软件注册方案。该方案中用户端软件的注煺是自动竞成煦,它在 安装的时候将能够唯一标识计算机的硬件信息通过w e b 服务器传递给注册机, 淀鼹掇馒趣菜秘舞法生藏注瓒礤,然蜃髑网撵的方法返颡绘翅户溃软转定残注 册。在实际应用中该方索取得了较好的效果。 注瓣橇敖在一台客户端毫膝上,逶过w e b 鼹务器稻藤户端软俘逶行遴讯, 这样提高了系统的安全性。在生成注册粥的时候使用了d e s 、r s a 、m d 5 加密 算法。由于这些算法都怒公开的,为了迷惑破解者,需黉对d e s 、r s a 、m d 5 搬密算法的输入输出数据进行变换处理。本文使用了a c c e s s 数搬库来存储用户 信息和软件的注册信息,软件在注册时枪查软件序列号的合法髓以及注册的次 数,这榉寿剥予控割合法翅户黝注怒。嬲时,缨驹子数攥蓐,可以更好的管理 软件的发售。 关键词l 较捧傈护,软件热密,软释注麓,d e s ,r s a ,m d 5 堕j ! 三些叁堂堡土丝奎 a b s t r a c t t h ec o m p u t e rs o f t w a r e i sak i n do fs p e c i a l g o o d s ,e x t r e m e l ye a s y t ob e d u p l i c a t e d h o wt op r o t e c tt h ei n t e r e s t s o ft h es o f t w a r ed e v e l o p e ri s a l li m p o r t a n t s u b j e c to f c o m p u t e rs e c u f i t y t h r o u g ha n a l y z i n gv a r i o u sk i n d so fe x i s t i n gs o f t w a r ep r o t e c tt e c h n o l o g y , t h i s p a p e rh a sp u tf o r w a r da n di m p l e m e n t e d as o f t w a r er e g i s t r a t i o ns c h e m eb a s e do n b r o w s e r s e r v e rm o d e i nt h i ss c h e m e ,t h em g i s t r a t i o no fu s e r s e n ds o f t w a r ei s f i n i s h e da u t o m a t i c a l l y w h e ni n s t a l l i n g ,t h es o f t w a r et r a n s m i t sh a r d w a r e i n f o r m a t i o n t h a tc a l li d e n t i f yu s e r sc o m p u t e rt ot h er e g i s t e r i n gm a c h i n et h r o u g haw e b s e r v e r t h er e g i s t e r i n gm a c h i n eu s e sac e r t a i na l g o r i t h m t op r o d u c et h er e g i s t r a t i o nn u m b e r , a n dt h e nr e t u r n si tt ou s e r se n ds o r w a r et of i n i s hr e g i s t e r i n gi nt h es a m ew a y t h i s s c h e m eh a sm a d eg o o dr e s u l ti np r a c t i c e t h er e g i s t e r i n gm a c h i n ei sp l a c e do nac l i e n t ,i tc o m m u n i c a t e sw i t hu s e r s e n d s o f t w a r et h r o u g haw e bs e r v e r , i nt h i sw a y t h es y s t e m a t i cs e c u r i t yi si m p r o v e d d e s , r s a ,m d 5e n c r y p ta l g o r i t h m s a r eu s e dw h e np r o d u c i n gr e g i s t r a t i o nn u m b e r , b e c a u s et h e s ea l g o r i t h m sa r ea l lo p e n ,i no r d e rt op u z z l ec r a c k e r ,t h ei n p u ta n d o u t p u t d a t ao ft h e s e a l g o r i t h m s s h o u l db ec h a n g e du s i n gs o l n ec r y p t o g r a p h i c t r a n s f o r m a t i o n i nt h i ss c h e m e ,t h eu s e r sa n dr e g i s t e r e di n f o r m a t i o ni s s t o r eu s e d m i c r o s o f ta c c e s s t h er e g i s t e r i n gm a c h i n e c h e c k st h es o f t w a r ei dt h r o u g ha n a l y z i n g t h ei n f o r m a t i o ni nd a t a b a s e ,t h i sh e l p s t oc o n t r o lt h er e g i s t r a t i o no fl e g a l u s e r s m e a n w h i l e ,d a t a b a s e i sh e l p f u lt om a n a g et h es e l l i n go f s o f t w a r e k e y w o r d s :s o r w a r ep r o t e c t i o n ,s o f t w a r ee n c r y p t i o n ,s o f t w a r er e g i s t r a t i o n , d e s ,r s a ,i v l d 5 西北工业大学硕十学位论文 第一章绪沦 第一章绪论 1 1 软件保护概述 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及 其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列。 数据是使程序能正常操纵信息的数据结构。文档是与程序开发,维护和使用有 关的图文材料。 由于计算机软件是一种特殊的商品,极易复制,因此如何保护软件开发者 的利益,防止软件被盗版,一直是计算机安全领域的重要课题。1 9 9 4 年0 2 月 1 8 同中华人民共和国国务院颁布了中华入民共和国计算机信息系统安全保护 条例,为保护软件开发者的权益提供了法律保障。可是目前国内软件市场上盗 版泛滥,可见仅仅依靠一部中华人民共和国计算机信息系统安全保护条例 是无法制止软件盗版的,还需要软件开发者对软件采取一些适当的保护措施, 加密技术正是达到这一目地的核心手段。目前国内外大多数的商业软件都采用 了各种各样的加密措施,这些加密措施的应用,能够对软件的非法拷贝或非法 使用造成障碍,从而在一定程度上保护了软件开发者的商业利益。 软件的破解技术与保护技术是相对立的关系,它们是在互相斗争中发展进 步的。软件开发者为了维护自身的商业利益,不断地寻找各种有效的技术来推 迟软件被破解的时间,保护自身的软件版权:而破解者则受盗版所带来高额利 润的驱使或出于纯粹的个人兴趣,而不断开发新的破解工具,针对新出现的保 护方式进行跟踪分析以找到相应的破解方法。从理论上说,几乎没有破解不了 的保护。如果一种保护技术的强度强到足以让破解者在软件的生命周期内无法 将其完全破解,这种保护技术就可以说是非常成功的。 软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,列入开 发计划和开发成本中,并在保护强度、成本、易用性之间进行折衷考虑,选择 一个合适的平衡点。 西t i l t 业大学硕士学位论文第一章绪论 1 2 常用软件保护技术 当前软件保护方法大体来说可以分为依赖特定硬件的加密方案和不依赖硬 件的加密方案,又称为软加密和硬加密。 1 2 1 依赖硬件的加密方案 1 ) 软盘加密 这是在计算机上最为古老的一种加密方案,它的原理是在软盘的特殊位置 写入一些信息,软件在运行时要检验这些信息。这种软盘就好像一把钥匙。软 件开发商只需一次投资购买一套加密工具就可以自己制作多张钥匙盘。此方法 加密简单,成本低。像中文之星2 9 7 还在延用这种方式。但用户在执行软件 时必须要插入此软盘。因为软驱是慢速设备,多次检查软盘上的加密点会大大 拖慢程序的运行速度,所以一般加密软件只在软件运行开始的时候检查一次, 这样不能避免用户用一张加密盘启动多份软件。而且由于软盘是一种易损载体, 加密软件对软盘加密点的反复读写很容易造成软盘的损坏。而加密盘又不能备 份,软件公司要不断应付用户更换加密盘的请求。另外由于这种加密技术出现 的较早,硬解密的技术相对比较成熟,像双星公司的k i n g - c o p y 软件能拷贝大 多数的加密软盘,连加密点一起复制,复制后的软盘还是加密的。 2 ) 光盘加密 光盘加密以光盘为载体,具有成本低廉、速度快、不易损坏等优势。它的 出现,迎合了当今市场上批量大而价格低的教学软件、游戏软件、多媒体软件 的加密保护需要。其主要原理是利用特殊的光盘母盘上的某些特征信息是不可 再现的,而且这些特征信息大多是光盘上非数据性的内容,在光盘复制时复制 不到的地方。由于加密方式所限,不可能在用户自己刻录的光盘上实现这种加 密,必须是生产线上生产的光盘才能够实现,而且由于光盘的只读性,一旦加 密有错是无法修复的。 3 1 卡加密 在9 0 年代初,各种各样的汉卡涌现出来,而随之而来的卡加密技术也开始 风行。卡加密的好处是由于加密卡上面不仅仅可以存放数据,而且可以用硬件 2 西北工业大学硕七学位论文 第一章绪论 实现简单的算法,在软件的执行过程中可以随时访问加密卡,不会对软件运行 的速度带来太多的影响。由于加密卡是与计算机的总线交换数据,数据通讯协 议完全由卡的厂家制定,没有统一的标准接口,让软件解密者有无从下手的感 觉。像北大方正早期的印刷软件都是采用这种方法来加密的。但这种加密方案 需要打开计算机的机箱,占用扩展槽,一般还需要专门的人员来安装。另外, 由于加密卡设计上的某些问题,很容易同现有的硬件发生冲突。考虑到成本, 加密卡必须要批量生产,厂商一般不会对低价值的软件一下投入这么大的资金。 由于种种问题,这种加密技术现在已经难得一见了。 铷软件锁加密 软件锁是一个插在计算机打印口上火柴盒大小的设备,国内俗称为加密狗。 加密狗的内部硬件电路就是软件的“指纹”,在出售软件时,将与软件内部“指 纹”相一致的加密狗交给用户。用户在使用软件时,必须把加密狗连接到微机 的并口上,如果没有安装加密狗或者加密狗内部的“指纹”不匹配,则软件不 能运行,以此来达到保护软件的目的。 一般的加密狗包含了几十到几百字节的存储器,这种存储器是掉电保持的。 这样e p r o m 软件开发商可以利用加密狗中的存入软件e p r o m 运行时所需的 参数,然后通过加密狗提供的读函数又可以把存储器中的数据取出来用。这样, 如果软件不带加密狗,就无法读取运算所需的数据,得不到正常的执行结果, 从而达到加密的目的。还有一类具执行功能的加密狗,是针对需要更高加密强 度的软件商设计的。它除了e p r o m 外,还包含了微处理器,它的存在让加密 狗的反解密性能更强,更智能化。微处理器中固化了复杂的加密算法,这种算 法不可读,不可逆,也不可预知。加密狗还有“狗内执行”的功能。它在狗里 面开出块区域来让开发者存放程序中必须的一部分代码,这段代码由狗来代 替计算机执行,让狗成为软件中必不可少的一部分,从而将狗的功能最大地发 挥出来,将软件和狗融为一体。此外,由于硬加密是通过硬件来实现的。好的 加密狗还考虑到它与其它并口外设( 打印机、扫描仪等) 的兼容性,避免出现 找不到打印机或加密软件的情况。 3 西北工业大学硕十学位论文第一章绪沦 1 2 2 不依赖硬件的加密方案 1 ) 密码表加密 密码表加密是常用的一种加密方式。它一般在软件编写中设计一段密码的 程序,这段密码或者印在说明书上,或者用户向软件商询问。在软件运行的开 始要求用户根据屏幕的提示信息输入特定的答案。f 常情况下,只有输入正确 的密码,软件才认为是合法使用者。这种加密方案实现简单、使用广泛。但是, 因为密码表的特征字串很容易被复制,盗版者可以把整个密码表输入到计算机 中存成一个文件,同软件的盗版一同公布出来,所以很容易被盗版者利用。 2 ) 序列号加密 这种加密方式从某种角度来讲不是一套完整的加密方案,现今很多共享软 件大多采用这种加密方式。用户在软件的试用期是不需要交费的,一旦试用期 满还希望继续使用这个软件,就必须到软件公司进行注册,然后软件公司会根 据你提交的信息( 一般是用户的名字) 来生成一个序列号。当你收到这个序列号, 并在软件运行的时候输入进去,软件会验证你的名字与序列号之间的关系是否 正确,如果正确说明你已经购买了这个软件,也就没有日期的限制了。这种加 密方案实现简单,而且购买过程也完全在i n t e m e t 上实现,无论是开发者和购买 者都觉得很方便。不过有心的人可能已经注意到软件的名字与序列号之间的验 证是在你的计算机上完成的,很多黑客利用这个漏洞找出了名字和序列号之间 的换算关系,编写出一种叫k e y m a k e r 的程序。只要输入你的名字,这个程序 会帮助计算出序列号,再用你的名字和这个序列号输入软件中,就变成正版软 件了。也没有什么更好的方法来阻止用户扩散他注册后得到的序列号。 3 ) 许可证加密 这种方式在某种角度上说可以是序列号加密的一个变种,从网上下载的或 购买过来的软件并不能直接使用,软件在安装时或运行时会对你的计算机进行 一番检测,并根据检测结果生成一个你的计算机的特定指纹。这个指纹可以是 一个小文件,也可以是一串谁也看不懂的数。需要把这个指纹数据通过i n t e r n e t , e m a i l 电话,传真等方式发送到开发商那里,开发商再根据这个指纹给你一个注 册码或注册文件,得到这个注册码或注册文件后,按软件要求的步骤在你的计 4 西北工业大学硕士学位论文第一章绪论 算机上完成注册,软件方能使用。这个方法的买卖也是完全通过网络来进行的, 而且用户购买的软件被限制了只能在他自己的计算机上运行,换到其他的计算 机上,这个注册码或注册文件不再有效。但用户更换某些硬件设备也可能造成 注册码的失效而且用户得到软件后在完成注册工作前会有一段时间无法使用。 对于软件开发商来说服务与管理的工作量无疑也是非常巨大的。 1 3 软件解密技术简介 破解者通常使用静态分析和动态跟踪分析两类技术来分析被加密保护的软 件。把软件的加密过程了解清楚后,就可以找出相应的破解方法。 1 ) 静态分析 所谓静态分析,是指从反汇编出来的程序清单上分析程序流程,了解程序 各模块的功能及其相互关系。 高级语言编写的程序有两种形式,一种编译成机器语言在c p u 上执行,例 如v i s u a lc + + ,p a s c a l 等。由于机器语言与汇编语言几乎是一一对应的,因 此可将机器语言转化为汇编语言,这个过程称为反汇编( d i s a s s e m b l e r ) 。另一 种高级语言是边解释边执行,称之为解释性语言。如v i s u a lb a s i c3 0 4 0 、v i s u a l f o x p r o 等,这类语言编译的程序可以被还原成高级语言的原始结构,这个过程 称为反编译( d e c o m p i l e r ) 。常用的反汇编工具有:w 3 2 d a s m 、i d a p r o 、s o u r c e r 等,常用的反编译器有:e x d e c 、w k t v b d e 、u ) a s m 等。 2 ) 动态分析 所谓动态分析是指利用系统级调试器s o r i c e 或t r w 2 0 0 0 或v i s u a lc + + 自 带的调试器等一步一步跟踪分析软件的运行。通过对软件的动态跟踪、实时分 析,可以比较详细地了解软件中各个模块的技术细节。 1 4x p 机械c a d ( 黄金版) 简介 x p 机械c a d ( 黄金版) 是西北工业大学机械制图教研室廖达雄老师开发设 计的一个通用二维计算机辅助设计与绘图平台,是西北工业大学机械基础国家 教育基地核心项目一一图形中心软件研制部分。x p 机械c a d ( 黄金版) 是廖达雄 老师经过近十年的总结与研究,借鉴了当今许多优秀的计算机辅助设计与绘图 5 西北工业大学硕士学位论文第一章绪论 软件,如a u t o d e s k 公司的a u t o c a d 、p r o t e l 、北航海尔c a x a 电子图板、 武汉华中科技大学开目软件公司的开目c a d 、华中软件公司的i n t e c a d 等开发 出来的。它采用目前流行的v i s u a l c + + 6 0 编译器开发,以w i n d o w s x p 下的g d i + 作为图形支持内核,适用于w i n d o w s9 x ,w i n d o w sn t ,w i n d o w s2 0 0 0 等操作 系统。 x p 机械c a d ( 黄金版) 具有如下优点: 1 ) 提供了庞大的标准件及常用件库( 包括电气、液压等) ,不仅适宜绘制机 械图纸,也适宜绘制电路图、液压管路等。标准件库包括:螺纹紧固件、轴承、 型钢、液压符号、7 万多种电器符号及元器件封装等等,后续还将根据用户需求 反馈,进一步扩充。 2 ) 易学。具有随光标移动的详细操作说明,如按键功能、如何操作等等, 对初学者来说,仅需看提示,基本即可掌握软件命令使用。 3 ) 绘图效率高。具有输入点自动捕获、自动方向导航及大量方便、实用的 键盘命令,支持鼠标拖动、点击双操作。键盘命令独具特色,除用户可以根据 习惯方便自定义外,定义的命令字符还能及时反映到图标提示上,系统内部定 义的快捷键、热键,也能及时提示到屏幕上,无需帮助、无需记忆,只要在实 际绘图中多用几次即可掌握。 4 1 对外接口好。通过复制、粘贴或e m f 文件输出,可以将本软件绘制的 图形,按真实大小、线宽、线色、线型,1 :1 或用户自定义比例插入到w o r d9 7 2 0 0 0 中;能打开a u t o c a d l 4 2 0 0 0 的d w g 文件,并能将本软件绘制的图形原封不动 输出成d w g 文件,与a u t o c a d l 4 2 0 0 0 实现了图形双向交流;支持常见格式图 片文件插入与输出,如b m p 佃g ,g ,p n d e m f 等,能将本软件绘制的各种图 形,高精度、反锯齿输出成各种图片文件。 5 ) 软件尺寸小。安装文件的大小仅4 m 左右。 x p 机械c a d ( 黄金版) 更详细的介绍见h t t p :w w w 3 2 1 c a d c o m x p 机械c a d ( 黄金版) 的图例如图1 1 所示。 6 西北工业大学硕士学1 _ i ) = 论文第一章绪论 图1 1x p 机械c a d ( 黄金版) 的图例 1 5 本文的研究内容 本课题旨在为x p 机械c a d ( 黄金版) 开发一个成本低廉,具有较强加密强 度的软件保护方案,同时对软件保护技术做一些有益的探讨。 本文通过分析目前常用的软件保护技术,提出并实现了一种软件保护解决 方案网络注册。该方案已在实际中得到应用,取得了较好的效果。 本文的主要内容安排如下: 第一章绪论。 第二章 网络注册的系统架构。介绍网络注册的原理、系统架构和优缺点, 并提出了一种改进的网络注册方案,提高了网络注册的安全性。 第三章加密算法研究。介绍密码学的基本理论和数据加密标准d e s 、r s a 加密算法和m d 5 单向散列算法三种重要的加密算法以及这些加密算法在软件 保护中的应用。 第四章用户端软件注册和i n t e r n e t 服务器的实现。介绍生成机器指纹的方 7 西北工业大学硕十学位晗文 第章绪论 法,i n t e m e t 服务器的架构及其数据库的设计,以及用户端软件和注册机与 i n t e m e t 服务器通信的方法。 第五章注册机和验证函数的实现。介绍注册机和验证函数及其编程实现。 第六章结束语。总结了本文的研究成果以及存在的问题。 1 6 本章小结 本章首先阐述了软件保护的概状,常用软件保护和破解技术,然后介绍了 通用二维计算机辅助设计与绘图平台x p 机械c a d ( 黄金版) ,最后说明了本课 题的主要研究内容及本文的章节结构。 8 西北工业大学硕十学位论文第二章网络注册的系统架构 第二章网络注册的系统架构 2 1 网络注册概述 i n t e r n e t 的快速发展给软件保护技术提供了新的思路。网络注册就是一种 基于i n t e r n e t 的软件保护技术,它实际上是将许可证加密方式用i n t e m e t 的方 式来实现。网络注册使用一台i n t e r n e t 服务器作为注册机,软件在安装时,自 动连到注册机进行注册。整个注册过程是自动完成的,无需用户将软件序列号 和机器指纹寄给软件开发商,也无需开发商人工生成注册码,给用户和软件开 发商带来了很大的便利。 自动注册的前提是用户的电脑可以连上i n t e m e t 。如果用户无法连上 i n t e m e t ,则可以采用网页注册的方式,或者通过电话、传真、信件或者电子邮 件的方式取得注册码,完成软件的注册。 网页注册是软件开发商在i n t e m e t 上提供一个网页( 记为r e g i s t e r a s p ) 专门给 用户进行软件的注册。注册的过程是: 1 ) 软件安装时用户通过注册界面取得机器指纹; 2 ) 到任意一台可以连上i n t e r a c t 的电脑访问软件开发商提供的注册网址 r e g i s t e r a s p ,按照提示输入软件序列号和机器指纹; 3 ) r e g i s t e r a s p 将软件序列号和机器指纹发给注册机请求注册; 4 ) 注册机生成注册码并回传给r e g i s t e r a s p ; 5 ) 用户从r e g i s t e r a s p 取得注册码回到安装软件的电脑上完成注册。 通过电话、传真、信件或者电子邮件进行注册的过程如下: 1 ) 用户通过软件的注册界面取得机器指纹并将机器指纹和软件序列号通 过电话、传真、信件或者电子邮件发给软件开发商; 2 1 软件开发商使用注册机生成注册码,发给用户; 3 ) 用户得到注册码完成注册。 这几种注册方式中,注册码生成的方式都是一样的,自动注册方式只 是将用户和软件开发商的人工操作用程序代劳了而已。 9 西北工业大学硕士学位论文 第二章网络注册的系统架构 2 2 网络注册的原理 用户购买软件时得到一个软件系列号,不同的购买者得到的软件系列号是 不同的。软件在安装的时候从用户的电脑提取一些特征码,如c p u 、硬盘的系 列号、网卡的m a c 地址、操作系统的一些特殊信息等,经过一定的变换处理 生成机器指纹,由于不同的电脑具有不同的c p u 、硬盘的系列号、网卡的m a c 地址、操作系统的一些特殊信息等,所以不同机器的指纹是不一样的。软件取 得机器指纹后通过i n t e r n e t 向注册机提交软件系列号和机器指纹进行注册。所 谓注册机就是一个这样的程序:它根据软件系列号和机器指纹通过某种加密变 换形成一串字符,这就是所谓的注册码,这个程序放在一台i n t e r n e t 服务器上, 等待用户的注册请求。注册机生成注册码后将用户注册的有关信息存入数据库, 然后通过i n t e r n e t 传回给用户端的软件,用户端的软件将软件系列号和注册码 隐秘保存在用户的机器中,完成注册。 网络注册的系统架构如图2 1 所示。 n 峙竺竺竺。卜一 图2 1 网络注册的系统架构 完成注册后,软件就可以正常地使用了。软件在开始运行时或运行过程中 检查用户的软件系列号、机器指纹和注册码之间的关系,以确定是否是合法用 户,不合法则退出运行,从而达到了防止软件非法使用的目的。 2 3 网络注册的优缺点 网络注册是一种比较有前景的软加密方案,目前已经有些软件开始采用这 种加密方式。还有一些公司专门给软件开发商提供这种软件保护的解决方案。 网络注册具有如下的优点: 1 0 西北工业大学硕士学位论文第一章网络注册的系统架构 1 ) 加密强度高。网络注册与其他软加密方法相比,可以提供加密强度相 对较高的软件保护方案。它用用户机器指纹与软件系列号生成注册码,使一个 注册码只能用于一台电脑上,防止软件被非法复制和使用,从而保证了只有合 法的用户彳+ 能使用软件。和一般的软加密方法相比,由于这种加密方式与机器 特定的软硬件信息相关联,并且通过网络注册的方式,软件开发商可以用数据 库来保存和管理用户信息和软件注册信息以了解和控制软件的注册,所以网络 注册比一般的软加密方法具有更高的加密强度。 2 ) 成本低廉。同许多软加密方法一样,网络注册与大多数硬加密方法相 比,具有较低廉的成本,只需在软件中添加一段提取并加密处理机器特征码和 验证注册码的程序,然后在i n t e r a c t 上架设一台服务器作为注册机即可,不像硬 加密方法,需要额外的硬件,所以成本较低,适合于低端商业软件。 3 ) 便于软件开发商对软件的发售进行管理。由于在生成注册码时,注册 机可以将用户注册的相关资料保存到数据库,所以软件开发商可以通过分析数 据库中用户的注册信息了解软件的发售和注册的状况,从而更好地对软件的发 售进行管理。 网络注册也不可避免地存在一些不足之处。 1 ) 加密强度比硬加密方法低。作为一种软加密方法,网络注册有软加密 方法无法克服的缺陷。由于软加密方法的加密及验证都集中在程序的内部,这 就给破解者提供了可乘之机。当今计算机技术飞速发展,各种跟踪分析程序层 出不穷,给跟踪和分析程序的整个运行过程提供了很大的便利,破解者可以利 用这些工具分析并完全了解软件的加密方法,或者跳过软件的验证过程使软件 保护方法失效。硬加密方法可以将加密算法写入特殊的硬件内,这些硬件是软 件开发商提供的专门用于软件加密的设备,不了解这些硬件及其编程接口就很 难破解保存在其中的加密算法,所以硬加密方法具有较高的加密强度,这是软 加密方法无法达到的。 2 ) 网络注册可能会给用户带来一些不便之处。因为软件的注册码是与特 定的硬件信息相关的,用户如果更换某些硬件设备,就有可能导致注册码失效, 必须重新进行注册,这给用户带来了不便。软件提取机器特征码的时候,也可 以取得机器上的其他信息,包括用户的隐私等,也就是说,网络注册的方式使 两北t 业大学硕士学位论文 第二章刚络注册的系统架构 软件开发商可以取得用户机器上的很多信息,包括用户的私人信息,这样就给 用户造成一种侵犯其隐私的心理,这需要软件开发商和用户说明清楚。 3 1 网络注册会增加软件开发商服务与管理的工作量。用户通过电话、传 真、信件或者电子邮件的方式注册时会给软件开发商带来很大的工作量。 综上所述,网络注册有长处也有短处。没有一种软件保护方案是十全十美的, 软件要进行加密时应根据软件自身的特点选择合适的软件保护方案。网络注册 比较适用于在i n t e r n e t 上发售的低端商业软件。 2 4 网络注册的改进 2 4 1 改进方案的架构 一般网络注册方案中,注册机和存放用户购买、注册相关信息的数据库都 是放在i n t e m e t 的一台服务器上。由于i n t e m e t 的开放性,放在i n t e r n e t 服务器 上的程序和数据是很不安全的。破解者如果成功侵入该服务器,就可以得到注 册机,使软件保护方案彻底失效。本文对一般网络注册方案做了一些改进,改 进后的系统架构如图2 4 所示: 图2 2 改进的网络注册系统架构 改进的方案中,注册机和存放用户购买注册信息的后台数据库移到了另外 一台客户端电脑上,i n t e m e t 服务器的数据库只存放用户机器指纹、软件系列号 和注册机生成的注册码等对破解者意义不是很大的数据。注册机和i n t e r n e t 服务 器是基于b s 架构的,即使i n t e m e t 服务器被非法侵入,侵入者也得不到注册机, 1 2 西北工业大学硕士学位论文第_ 章网络注册的系统架构 也无法通过i n t e m e t 服务器获得放在另外一台客户端电脑上的注册机。 2 4 2 处理流程 改进的网络注册方案的处理流程如下: 1 ) 用户端软件向i n t e m e t 服务器发送注册请求。 2 ) i n t e m e t 服务器接收注册请求,将用户机器指纹、软件系列号存入数据 库,等待注册机来处理。 3 ) 注册机程序定时读取i n t e m e t 服务器的数据,检查是否有未处理的注册 请求,有则取出对应的用户机器指纹和软件系列号生成注册码,存放到本机数 据库和i n t e m e t 服务器的数据库中。 4 ) 用户端软件提交注册申请后,不断查询是否已经完成注册,完成则取 出注册码,在本机进行注册,完成注册过程。 用户端软件注册过程如图2 3 所示。 图2 3 用户端软件注册过程 两北工业大学硕士学位沦文第二章网络注册的系统架构 注册机处理流程如图2 4 所示。 图2 4 注册机处理流程 这种架构的网络注册方案由于重要的数据和注册机均放在一台客户端机器 上,外人无法得知该机器的地址,从而避免了非法入侵,使网络注册的安全性 得到了提高。 但是从注册的流程看,由于注册码不是i n t e r n e t 服务器生成的,用户端软件 注册时,i n t c m e t 服务器只是将软件序列号和机器指纹存放到数据库中等待注册 机来读取并处理,而注册机是每隔一段时间才进行这个操作的,因此这种注册 方式中,用户端软件注册的时间会比较长。考虑到软件在开始安装或用户更换 部分硬件设备时才需要进行注册,因此注册时虽然需要的时间稍长,一般来说, 用户还是可以接受的。另外还可以通过修改注册机读取待注册信息的时间间隔 来控制用户端软件的注册时间。如果该时间间隔过短,则服务器和注册机的负 担较重:如果过长则注册时间会变得较长。本文将该时间间隔设为三十秒时, 用户端软件注册的时间在一分钟之内,基本上可以达到要求。 1 4 西北t 业大学硕士学位论文第二章网络注册的系统架构 如果注册机和服务器的i n t e m e t 连接出现问题,注册就无法进行,因此需要 软件开发商保障注册机和服务器i n t e m e t 连接的畅通。 2 4 3 功能模块 本网络注册系统的功能模块如图2 5 所示。 图2 5 本网络注册系统的功能模块 整个系统主要由用户端软件、i n t e m e t 服务器和用户端软件三大块组成。 用户端软件是指软件开发商发售给用户的软件,运行在用户的电脑上,是 软件保护技术保护的对象。用户端软件需要有注册和验证两个模块。注册模块 负责提取机器信息生成机器指纹,然后向i n t e m e t 服务器注册,取得注册码后, 完成本软件的注册。验证模块主要的作用是检查本软件是否已注册,如果未注 册则让程序退出运行,这样保证了软件的合法使用。 i n t e m e t 服务器连接用户端软件和注册机的桥梁。它提供一个用户端软件与 注册机通讯的接口和一个网页注册模块,该模块使用一个特定的页面让用户取 得注册码。 注册机是利用软件序列号和机器指纹生成注册码的一段程序。它由自动处 理用户注册请求模块和人工生成注册码模块两部分组成。自动处理用户注册请 西北工业大学硕士学位论文第二章网络注册的系统架构 求模块是一个在后台运行的线程,它负责处理用户向i n t e m e t 服务器发出的注册 请求。人工生成注册码模块是在用户通过电话、传真、信件或者电子邮件的注 册方式时,使用它来生成注册码返回给用户。 2 5 本章小结 本章介绍了网络注册的原理、系统架构和优缺点,提出了一种改进的网络 注册方案,然后论述了该方案的安全性,接着介绍了它的处理流程以及功能模 块。 1 6 西北工业大学硕士学位论文第三章加密算法研究 第三章加密算法研究 软件保护技术中广泛应用到各种加密算法,使用的加密算法是否恰当直接 关系到软件保护技术的加密强度。 3 1 密码学概述 密码学( c r y p t o g r a p h y ) 是研究秘密通讯的科学,即研究对传输信息采取何种 秘密的交换以防止第三者对信息的窃取,目的是为了保护信息的保密性、完整 性、和安全性,加密算法是密码学的核心。 人们将以其最初的形式存在的信息称为明文( p l a i n t e x t ) ,可将明文通过某 种方式变换成难以理解的另一种信息,称为密文( c i p h e r t e x t ) ,这一变换处理过 程称为加密( e n c r y p t i o n ) ,记为c = e ( p ) 。相反的,把密文再转变为明文的过 程称为解密( d e c r y p t i o n ) ,记为p = d ( c ) 。对明文进行加密时采用的一组规则 称为加密算法,对密文解密时采用的一组规则称为解密算法。 加密算法和解密算法通常都是在一组密钥( k e y ) 控制下进行的,分别称为 加密密钥和解密密钥。若采用的加密密钥和解密密钥相同,或者实际上等同, 即从个易于得出另一个,称为单钥或对称密码体制( o n e k e yo rs y m m e t r i c c r y p t o s y s t e m ) 。常用的对称密码算法有:数据加密标准d e s ,国际数据加密算 法i d e a ,r c 5 ,s k i p j a c k ,b l o w f i s h 等。对称加密算法也称为私钥算法。在大 多数对称算法中,加、解密的密钥是相同的,它要求发送者和接收者在安全通 信之前约定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何 人都能对信息进行加、解密。若加密密钥和解密密钥不相同,从一个难以推出 另一个,则称双钥或公开密钥密码体制( t w o k e y o r p u b l i ck e y c r y p t o s y s t e m ) 。 常用的公开密钥算法有:r s a ,e l g a m a l ,数字签名算法d s a ,椭圆曲线加密 e c c 等。公开密钥算法使用两个密钥,一个称为公钥,另一个称为私钥,这两 1 7 西北工业大学烦士学位论文第三章加密算法研究 个密钥彼此相互关联,称它们为密钥对,使用密钥对中的一个密钥进行加密则 只能用另外一个进行解密。 加密和解密过程可以表示如下: 1 ) 无钥密码:不需要使用密钥的密码。 上厂i - 旦厂矿f l l 图3 1 无钥密码加解密过程 2 ) 单钥密码:加密和解密使用的密钥相同。 图3 2 单钥密码加解密过程 3 ) 双钥密码:加密和解密使用的密钥不相同。 3 2 常用加密算法 图3 3 双钥密码加解密过程 3 2 1 数据加密标准( d e s ) 数据加密标准( d a t ae n c r y p t i o ns t a n d a r d ,d e s ) 是美国国家标准局于1 9 7 7 年公布的由m m 公司研制的加密算法,并把它作为非机要部门使用的数据加密 标准。它一直是国际上商用保密通信和计算机通信的最常用的加密算法。 1 8 两北工业大学硕士学位沦文笫三章加密算法研究 d e s 是分组乘积密码,它用5 6 位的密钥将6 4 位的明文转换为6 4 位的密文, 其中密钥总长度为6 4 位,另外的8 位是奇偶校验。d e s 是一个对称算法,加密 和解密用的是同一算法。d e s 的安全性依赖于所用的密钥。 d e s 的加密过程如下所述: 1 ) 对于给定的明文t ,通过初始换位口将明文分成左半部分和右半部分, 前面的3 2 位记为l 0 ,后面的3 2 位记为。 2 ) 然后进行1 6 轮完全相同的运算,在每一轮中计算: l i = r j 1 ,r i = l 1o f ( r i ik j ) 其中,k i 为第i 轮使用的4 8 位子密钥,各k 均由初始密钥k 推导出。函数f 计算方法是: i 依据固定的扩展函数e 将变量r i 1 扩展为4 8 位二进制串e ( r j 1 ) 。 i i 计算e ( r i 1 ) o k ,并将结果分为8 个6 位的二进制串b 1 ,b 2 , b 8 。 i i i 使用8 个s 盒s 1 ,s 2 ,s 8 将b l ,b 2 ,b 8 转换为8 个二进 制串s i 圆i ) 。 i v 将8 个二进制串s l ( b 1 ) ,s 2 ( b 2 ) ,s 8 8 ) 合成一个3 2 位的二进 制串,然后使用一个固定换位p 对该3 2 位二进制串进行置换,得 到的结果作为函数f 的输出。 3 ) 应用初始换位疋的逆换位m 。1 对l 1 承1 6 进行置换,得到6 4 位二进制 串作为密文y 输出。 限于篇幅,本文在这里不详细介绍初始换位口,固定换位p 和8 个s 盒及 其处理过程。 d e s 加密算法流程如图3 4 所示。 1 9 西北工业大学硕士学位论文第三章加密算法研究 3 2 2r s a 加密算法 圈6 2d e s 加密算法 图3 4d e s 加密算法流程 r s a ( r i v e s t s h a m i r - a d l e m a n ) 加密算法是由r o nr i v e s t 、a d is h a m i r 和 l e n a d l e m a n 于1 9 7 8 年发布的,是目前最优秀的公钥方案之一,具有公开密钥 加密算法的特点: 1 ) 用加密密钥p k 对明文p 加密后,再用解密密钥s k 解密,即可恢复出 明文,或写为:d ( s k ,e ( p k ,p ) ) = p ; 2 ) 加密密钥不能用来解密自己加密的消息,即d ( p k ,e ( p k ,p ) ) p : 3 ) 在计算机上可以容易地产生成对地p k 和s k : 西北t 业大学硕士学位论文第二章加密算法研究 4 1 从已知的p k 实际上不可能推导出s k : 5 1 加密和解密的运算可以对调,即e ( p k ,d ( s k ,p ) ) = p 。 r s a 加密和解密算法是完全公开的,它易于理解和操作,也很流行,值得一提 的是它的专利( u s 专利4 4 0 5 8 2 9 ) 2 0 0 1 年到期。 可以按以下步骤生成一个r s a 密钥对: 1 1 选择两个大的不同的素数p 和q ,长度大约相同( 相同的位长度) ; 2 ) 计算n = p q ; 3 ) p ( n ) = ( p 一1 ) ( q 一1 ) ; 4 ) 选择e ,使它是妒( n ) 的一个互质数; 5 ) 确定d ,使得( d ) ( e ) = 1 m o d 妒( n ) ,并且d 妒( n ) 。 数字n 应该为2 0 0 位或者是一个更大的数字,这样,p 和q 都至少应该为 1 0 0 位的数字。在实际中使用的密钥至少应该有1 0 2 4 位。对于敏感信息,可以 考虑2 0 4 8 位或更长的密钥。 r s a 算法可用于数据加密也可用于数字签名。数字签名是一种使用加密认 证电子信息的方法,消息发出人对所发的消息调用c a 证书进行一系列加密后 形成的一个加密字符串,用以帮助接收人确认所接收消息的真实性与完整性。 r s a 用于数据加密时: 密文= ( 明文) 。m o d n 明文= ( 密文) 4r o o dn 私钥= d ,n 公钥= e ,n 有了e 和n 之后,计算d 的难度是提供安全性的依据。假设密钥对的拥有 者安全地保存私钥,而将公钥发布。这样,如果使用公钥加密信息,那么只有 拥有者才能将其解密。 r s a 用于数字签名时: 2 1 西北工业大学硕士学位论文第三章加密算法研究 密文= ( 明文) om o d n 明文= ( 密文) 。m o d n 私钥= d ,n ) 公钥= e ,n ) 对于数字签名,拥有者使用私钥加密信息。只有拥有者才能这样做,因为 私钥是安全地保存的。任何人都可以解密信息,以验证信息确实来自密钥对的 拥有者。 3 2 3m i ) 5 单向散列算法 单向散列函数也称为压缩函数、消息提要,它将给定信息转换成固定大小 ( 通常是更小) 的信息,输出的信息是代表原信息的唯一“指纹”,输入信息的任 何变化都将影响其输出,已知一个散列值,找出其输入信息是不可实现的。 散列函数一般记做:h = h ( m ) 。一个散列函数必须满足下面的要求: 1 1 h 能用于任何大小的数据块; 2 ) h 产生定长输出; 3 ) 给定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论