毕业设计(论文)网络应用软件注册码技术研究_第1页
毕业设计(论文)网络应用软件注册码技术研究_第2页
毕业设计(论文)网络应用软件注册码技术研究_第3页
毕业设计(论文)网络应用软件注册码技术研究_第4页
毕业设计(论文)网络应用软件注册码技术研究_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要在信息内容安全技术中,保证信息内容的安全性和完整性是重要的研究内容,也是当前国内外信息安全领域重点研究和发展的信息安全技术。在电子政务网、企业信息网等各种内部网中,越来越多的文件通过网络与便携式传输介质进行分发、传输和存储,其中涉及到大量的敏感信息。由于应用软件易于复制,而且复制后不留任何痕迹,因而可能引起非常严重的信息内容泄密问题。因此,防范应用软件的非法访问、复制和传播已经成为内部网必须重点解决的信息内容安全问题。注册码技术为解决应用软件分发和使用过程的安全性和可控性提供了一种有效的技术手段,它既能防止非授权用户非法获取应用软件,又能防止合法用户未经授权对应用软件进行篡改、复制、传播

2、和打印等。本文在对基于注册码技术的应用软件版权保护技术进行分析和研究的基础上,设计并实现了一个通用软件版权保护系统。本文主要包括以下方面的内容:对注册码技术进行了系统的分析和研究,包括:注册码技术的提出、意义作用、应用软件的泄漏与保护等。详细论述了基于注册码技术的应用软件版权管理技术,并分析了该技术的概念、分类、关键技术。详细研究了基于md5的通用软件注册码,进行了总体设计、数据声明、软件功能的代码实现。完成了对设计的软件注册码的功能测试。通过测试,证明了该系统的有效性,同时也证明了整个解决方案的可行性。最后进行了总结和展望。关键词:信息安全,注册码,应用软件保护,md5abstractgua

3、ranteeing the security and the integrity of information plays an important role in the research of information content security, which is also a key element in the research and development of information security both at home and abroad. currently more and more documents and files, especially those

4、with sensitive information, are being distributed, transmitted and stored in the form of electronic files in almost all kinds of internal netoworks such as e-government and enterprise netoworks. the problem is , however, electronic files are easily copied even without any trace at all, which brings

5、about the severe problem of information leak. therefore, it is urgent to solve the problem of how to prevent illegal access, copy and transmission in the field of information content security.register code technique proves to be an efficient technique in ensuring the security and controllablity of e

6、lectronic documents when being distributed and used. not only can register code prevent unauthorized user from illegal access to electronic documents, but also it can prevent authorized user from modifying, copying, transmitting and printing the electronic documents without authorization.through ana

7、lyzing and studying the rights protection of electronic documents based on register code technique, a protective system for the rights of electronic documents is also being designed and realized. this thesis mainly contains the following subjects:1. it contains a systematic analysis and research of

8、register code including its proposition、basic functions and leakage together with protection for application software. 2. it contains a detailed discussion of the rights managment technology of the application software based on register code and its realization mechanism. it also analyzes the concep

9、tion、classification and key technology.3. it contains a detailed discussion of the systerm design, data announcement and code for software function.4. it contains a functional test for desighed register code, through which we proved its efficiency and feasibility of the entire system.key words: info

10、rmation security, register code, application software protection, md5目 录摘 要iabstractii目 录iv第一章 绪论11.1 引言11.2 应用软件的泄漏与保护11.3 论文研究的主要内容21.4 论文章节安排3第二章 软件注册码技术分析42.1 软件注册码概念42.2注册码检查方法52.3注册码分类62.3.1 基于单纯软件的注册码62.3.2 基于软件与计算机特征码相结合的注册码72.3.2.1基于硬盘的注册码72.3.2.2基于网卡的注册码82.3.2.3基于cmos的注册码92.4 注册码关键技术102.4.

11、1 加密技术102.4.2 数字签名122.4.3 数字水印技术132.4.4 身份认证技术14第三章 通用软件注册码设计183.1总体设计183.2数据结构体声明233.3软件注册功能实现23第四章 通用软件注册码测试344.1 测试环境344.2 测试用例344.3 测试结论36第五章 结束语375.1 论文工作总结375.2 后续工作的展望37参考文献38致 谢39第一章 绪论1.1 引言近几年,随着internet 技术的发展,越来越显示出计算机网络在社会信息化中的巨大作用,已经成为21世纪知识经济社会运行的必要条件和基础设施。由于网络系统的开放性,以及现有网络协议和软件系统固有的安全

12、缺陷,使任何一种网络系统都不可避免地、或多或少地存在着一定的安全隐患和风险,使人们在享受网络所带来方便和效益的同时,也面临着网络安全提出的巨大挑战,如黑客攻击、计算机病毒、信息非法获取等,给网络信息安全带来严重的威胁,安全事件屡有发生,并造成了巨大的经济损失。网络信息安全问题引起了世界各国的普遍关注,纷纷投入巨大的人力和财力研究和开发信息安全技术和产品,为电子政务、电子商务以及企业信息化等一些信息敏感的应用领域提供信息安全保护。总体上,网络信息安全技术可分成行为安全和内容安全两大类。行为安全是指通过安全机制来保证所有的网络行为都符合网络安全策略,防范欺诈、攻击、破坏、泄密等不期望行为的发生。内

13、容安全是指通过安全机制来保证网络中发布和传送的信息内容是健康、真实、完整、受保护(版权、私密)的。1.2 应用软件的泄漏与保护在电子政务网、企业信息网等各种内部网中,越来越多的公文和文件采用应用软件形式进行分发、传输和存储,其中涉及到大量的敏感信息。由于应用软件易于复制,而且复制后不留任何痕迹,因而可能引起非常严重的信息内容泄密问题。据美国fbi调查显示,每年美国各种安全漏洞所造成的损失中,30%40%是由于电子文件泄密而造成的。一般的内部网与internet 不直接互连,它所面临的安全威胁主要来自于内部人员,而不是internet 中的黑客。通常,应用软件泄密主要有以下几种形式:1.有些计算

14、机病毒自动将应用软件发送给无权阅读的人,造成秘密信息泄密。2.由于操作失误将敏感文件拷贝到公共目录上或发送给其他人,使无权阅读的人能够阅读该文件。3.内部员工因离开公司或其它原因把敏感文件拷贝到软盘带走,或通过网络发送出去。4.内部员工通过非法手段取得访问权限来获得敏感文件,并非法进行传播和扩散。可见,在内部网中,安全威胁主要是来自于内部人员有意或无意的违规行为所造成的敏感信息泄密,所造成的损失和后果远比一般的黑客攻击要大得多。对于内部人员所引发的安全问题,传统的信息安全技术(如防火墙、入侵检测系统、访问控制、身份认证、虚拟专用网等)往往是无能为力的,因为这些信息安全技术大都是针对黑客入侵而设

15、计的,主要采用静态保护(如防火墙)和事后追踪(如入侵检测系统等)等方法,不能有效地防范敏感信息的非法复制和传播,以至于很多内部网建成后不仅不能发挥应有的作用,而且还可能成为信息泄密的秘密通道。由于应用软件是敏感信息的主要载体。因此防范应用软件的非法访问、复制和传播已经成为内部网必须重点解决的信息内容安全问题。在信息内容安全技术中,保证信息内容的安全性和完整性是重要的研究内容,也是当前国内外信息安全领域重点研究和发展的信息安全技术,人们提出了多种信息保护技术和安全解决方案,其中,数字版权管理(注册码技术)技术从版权保护的角度提出了解决数字作品在分发和使用过程中被非法复制和传播问题的新思路,能够有

16、效地保护保护数字作品版权,维护保护版权人的合法利益。数字作品包括视频、音频、图片、文本等各种数字作品。注册码技术为解决应用软件分发和使用过程的安全性和可控性提供了一种有效的技术手段,它既能防止非授权用户非法获取应用软件,又能防止合法用户未经授权对应用软件进行篡改、复制、传播和打印等。1.3 论文研究的主要内容本文的目的是提供基于注册码技术的应用软件保护技术的解决方案和系统实现。该系统不仅能够防范非授权用户非法获取应用软件,而且能够有效地防合法用户未经授权对应用软件进行篡改、复制、传播和打印,为解决应用软件分发和使用过程中的安全性和可控性提供了一种有效的技术手段和解决方案。本文在研究数字版权管理

17、关键技术的基础上,针对电子政务网和企业内部网应用软件分发和使用过程中所面临的安全风险,给出了这种基于注册码技术的应用软件版权保护系统的设计与实现。该系统能够有效地解决用户未经授权对应用软件进行修改、复制和打印等问题,增强了应用软件分发和使用过程中的安全性。论文的主要研究内容如下:1. 分析了应用软件版权保护系统的应用背景。介绍了该系统的核心技术注册码技术(digital rights management)的概念、功能定义、关键技术等。2. 研究了基于注册码技术的应用软件版权保护技术中涉及到的关键技术。3. 提出一种基于注册码技术的应用软件版权保护系统,并对该系统的体系结构,各个功能模块等都进

18、行了论述。1.4 论文章节安排该论文对应用软件版权保护进行了深入的分析和研究,对开发的应用软件版权保护系统进行了总结,其主要内容包括:第一章:简要介绍了本文的研究背景和意义,以及论文结构安排。第二章:论述了注册码技术的发展背景、功能以及系统实现所涉及的关键技术。在此基础上,研究了基于注册码技术的应用软件版权保护技术。第三章:描述了应用软件版权保护系统的总体设计、模块功能、工作流程和详细实现。第四章:对各个模块进行了功能测试,通过测试证明了系统的有效性和方案的可行性。第五章:结束语,是对本课题的总结和对后续工作的展望。第二章 软件注册码技术分析由于计算机软件是一种特殊的商品,极易复制,且复制成本

19、很低,所以,尽管各国都制定了严格的软件保护法律,但是软件的盗版却不能杜绝。盗版给软件业带来了巨大的损失,因而出现了各种各样的软件保护方法。对于软件的保护,可以分为两大类:软件保护和硬件保护。软件保护,即采用单纯的软件来实现加密,主要有密码方式、软件自校验方式和钥匙盘方式。硬件方式是利用硬件和软件的相结合的方式来实现软件的保护的,基本的产品有:加密卡、软件狗和微狗等等。无论是软件加密还是硬件加密,都存在这样或那样的缺点,例如插在计算机并行口上的软件狗,如果有多个不同的软件需要保护,则需要串接或更换软狗,而有的软件狗串接时,可能会互相干扰,而有的在接打印机时,要求打印机供电。不同批的软件狗只能保护

20、不同批编译的软件。各种不同的厂商的软件不能利用同一软件狗等等。而且采用硬件的方式很容易被攻击,这是因为这种加密的方式电路不难,容易被仿制,因此很不安全。2.1 软件注册码概念目前,广泛使用的注册码软件保护技术是软件保护的一种重要方法。注册码,又称序列号,是用户在安装软件时输入的一系列号码。当用户从网络上下载某个共享软件(shareware)后,一般都有使用时间或功能的限制,当过了共享软件的试用期后,必须到这个软件的公司注册,方能继续使用。注册的过程一般是把用户自己的私人信息(如用户名、电子邮件地址、机器特征码等)告诉软件公司,同时支付一定的费用,软件公司根据预先写好的计算注册码的程序(注册机)

21、算出一个注册码,以电子邮件或电话方式通知用户。用户在得到这个注册码后,按注册需要的过程输入注册信息及注册码,如果注册信息是合法的,就能通过软件验证,软件就会取消各种限制,如时间限制、功能限制等等,成为完全正版的软件,否则只能作为有功能限制或时间限制的版本来运行。同时,注册的用户根据自己拥有的注册信息,得到售后服务。当软件推出新的版本后。注册的用户还可以向软件的作者提供自己的注册信息,得到版本升级服务。这种保护实现起来比较简单,不需要额外的成本,用户购买也比较方便。2.2注册码检查方法注册码检查方法软件验证注册码,其实就是验证用户信息和序列号之间的数学映射关系,这个映射关系是由软件设计者确定的,

22、如果映射关系越复杂,注册码就越不易破解。根据映射关系的不同,程序检查注册码的方法有如下几种。1)以用户信息作为自变量,通过函数f变换之后得到注册码。将这个注册码和用户输入的注册码进行比较或数值比较,以确定用户是否为合法用户。由于这种方法计算出来的注册码是以明文的形式存在机器的内存中的,很容易在机器的内存中找到,从而获得注册码。另外这种方法在生成注册码的同时,也再现了函数f,因此这种方法实际是不安全的。2) 通过注册码验证用户名的正确性。软件作者在给注册用户生成注册码的时候,使用的仍然是下面这种变换:这里要求函数f是可逆的。软件在检查注册码的时候则是利用f的逆变换f-1对用户输入的注册码进行变换

23、,如果变换的结果和用户名相同,则说明注册码正确。可以看到该种方法生成注册码的函数f未出现在软件中,而且正确注册码的明文也未出现在内存中,所以这种方法比第一种方法要安全一些。3)采用多个自变量的方法。上述的方法都是一个自变量检查注册码的方法。下面的方法采用的是:当对用户名和注册码进行变换时,如果得出的结果和某个值相等时,则认为是合法的用户名/注册码对。这个方法看上去很不错,但是可能失去了用户名与注册码一一对应的关系,软件开发者都很可能无法写出注册机来,为了维护用户名与注册码之间的唯一性,只要建立一个数据库就可以了.2.3注册码分类注册码是软件保护的一种基本方法,在实际生产中注册码保护占很重要的地

24、位。通常,注册码按其设计的原理分成两类,一类是基于单纯软件的注册码,这种注册码完全依赖于软件的设计;另一类基于软件与计算机特征码相结合的注册码,这种注册码具有一机一码的特点。2.3.1 基于单纯软件的注册码基于单纯软件方法的注册码,就是单靠数学的方法生成的注册码。这种注册码实现比较简单,成本较低,理论基础较为丰富,因此在实践中基于这种注册码的软件比比皆是。在实际的设计中,通常使注册码与程序的某些关键代码和数据相关,比如用注册码或其散列值对程序的关键代码或数据进行解密当然,这些关键代码或数据在发行时是经过加密的),这样即使解密者通过修改指令来跳过软件注册,也无法使用,因为程序没有执行关键代码。典

25、型的使用方法是这样的:在软件程序中有一段加密过的密文s,这个s既可以是注册版本中的一段关键代码,也可以是一段必需的数据。当用户输入用户名和注册码之后计算解密时使用的密钥:密钥=f用户名,注册码)。对密文进行解密:明文d=decrypt(密文s,密钥)。利用某种散列方法计算解出来的明文d的校验值:校验值=hash(明文d)。散列方法可用md5.sha等。检查校验值是否正确。如果校验值不正确,说明注册码不正确,就拒绝执行。但是这种方法有一个严重的缺陷,就是可以复制,因为只要拥有这种软件的一份合法的拷贝,那么就可以无限制地复制这种软件,而且都能正常地使用,因此这种方法也起不到完全保护软件作用。2.3

26、.2 基于软件与计算机特征码相结合的注册码从上面的描述可以看出,基于单纯软件的注册码还是不能解决软件无限复制的问题,因此基于软件与计算机特征码相结合的注册码方法被提出。它是将软件方法与计算机特征相结合的一种方法,其重要特征是采用一机一码,即注册码与机器的特征相结合,这样一台机器上的注册码就无法在另一台机器上使用了,常用的机器特征有计算机网卡号、计算机cpu ill(奔腾m处理器以上)、硬盘序列号、首簇号和cmos等等。2.3.2.1基于硬盘的注册码基于硬盘的注册码方法有多种,如:基于文件首簇号方法、基于硬盘序列号方法等。下面以文件首簇号方法来说明这种注册码软件保护方法.dos的文件管理机制主要

27、是通过文件目录表(fdt)、文件分配表(fat),磁盘参数表及设备驱动程序来实施的。fdt中每一子项占32字节,称为目录登记项。该目录登记项记录了文件或子目录的名字、属性、文件生成或最后修改的日期或时间、文件的首簇号及文件的字节长度。首簇号占两个字节,记录dos分配给该文件的第一簇号,其后簇号安排在fat中。每一个文件都有一个以首簇号为头的簇链,以表示文件的大小和位置。文件执行时,dos先在fdt上查找是否存在该文件,如果存在,则从fdt中找出该文件的首簇号,然后利用fat簇链将文件装入内存。由于首簇号是由dos分配的,加上硬盘的容量大和规格品种多,复制的软件很难得到相同的首簇号。另外,如果用

28、专用工具修改首簇号,则会拆断簇链,导致文件丢失。这样,如果以首簇号为密钥加密,就能防止软件被非法复制。综合以上阐述,可得出如下结论:复制软件很难得到与被保护软件相同的首簇号;修改首簇号导致数据容易丢失。这种方法的方法看似无懈可击,但是,却存在着很大的漏洞,下面阐述对其的攻击。a机上有一合法程序是基于首簇号加密的,首簇号为na,将其拷贝到b机上,并用工具将其首簇号改为na, b上的该程序无法运行,团为文件数据被破坏了。将该文件改名再次拷贝到b机上,却能运行,因为文件运行检查首簇号,而首簇号已改为na。虽然,这种加密方法有不少修正,但是,找到攻击这种加密方法的手段并不难。也“不要迷信硬盘序列号”,

29、因为有相关工具将其修改。可见,基于硬盘的加密方法也是不安全的,其实用性也不好。2.3.2.2基于网卡的注册码利用计算机指纹等参数对软件进行保护的方法是一种经济可行的软件保护方法。网卡的卡号是由专门的组织分配给网卡的生产厂家,每个网卡的卡号是由一个48位二进制码(或12位16进制码)组成的。每一网卡的卡号是唯一的,因此,可以利用网卡的唯一性对软件进行保护,这就是基于网卡的注册码原理。下面是一段获取网卡mac地址的程序。private string diskid() try managementobjectsearchersearcher=new managementobjectsearcher(

30、select * from win32_physicalmedia); string strharddiskid = null ; foreach(managementobject mo in searcher.get() strharddiskid = moserialnumber.tostring().trim(); break; return strharddiskid; catch return strharddiskid;用户获取软件的拷贝后,对软件进行安装,安装程序检测到机器的网卡卡号,用户通过电话或e-mail将网卡卡号传送到软件开发者,开发者通过密码程序计算一密码返还给用户,用

31、户将这一密码输入计算机中,完成注册。软件每次启动时都到注册表或注册文件的相应位置读取注册码并与软件生成的注册码比较,一致则是合法用户,否则是非法用户。由于注册码与用户计算机的硬盘号相关联,故其是唯一的,非法用户即使知道注册序列号与注册码也无法使用。2.3.2.3基于cmos的注册码基于cmos注册码的原理是cmos ram中的信息具有较好的隐蔽性和正常情况下的dos不可访问性,所以基于cmos ram的注册码是一种较好的软件保护方法。cmos ram是靠系统电源和后备电池供电的,其内容在主机电源关掉后不会丢失,它存储了计算机的软件、硬件配制的基本信息,共128个字节。系统加电时,要读取cmos

32、 ram中的内容对机器进行初始化的设置。但是并不是cmos ram中的128个字节都可以作为注册码的资源使用,因为在cmos ram中有些信息是随系统的状态而改变的。如果要想使软件限定在一台机器上运行,就只须将cmos ram中的部分信息读出,形成一数字或字符串信息,并加以处理。cmos ram中的l0h-2dh单元内容涉及到软盘、硬盘、内存等最基本的配置。而实际中各种软、硬件配置完全一致的机器几乎没有,因此,可以利用l0h-2dh单元的内容作为注册码的资源。这种方法的实现是通过对cmos ram中数据的读写两个端口来实现的,其中地址端口的地址为70h,数据端口的地址为71h,在读写cmos

33、ram数据时,可以通过将地址写入70h端口,然后从71h端口读出一个数据。利用这种方法就可以读出所有的稳定的cmos ram中的数据,根据这些数据就可以得到计算注册码的原始数据。软件在运行的过程中,通过读取cmos ram的数据进行运算的结果与保留单元中的数据比较,如果一致,则软件合法,否则不合法。通过这种方法,就可以将软件限定在该计算机上运行。由于不同的程序设计语言,因而使用的读写函数也是不一样的。 2.4 注册码关键技术注册码技术是一个相当大的领域,它涉及的技术非常的广泛,包括:密码学技术、数字签名、数字水印、身份认证等。2.4.1 加密技术目前的密钥体制从原理上可分为两大类,即对称密钥(

34、单钥)体制和公钥(非对称密钥)密钥体制。对称密钥体制与公钥体制是两种不同的加密机制,他们解决不同的问题。对称密码算法适合加密数据,它速度极快并且对选择密文攻击不敏感。公开密码算法可以做对称密码算法所不能做的事情,它更有利于进行密钥分配和加密协议的实现。1对称密钥算法对称密钥体制是一种传统密码体制,也称为私钥密码体制。在对称加密中,加密和解密采用相同的密钥,因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄漏出去,这样就可以实现数据的机密性和完整性。对称密钥体制如图2.1 所示。对称密钥的通信过程可以描述为: a用密钥生成器产生密钥k,并把k 通过秘密途

35、径(或密钥交换协议)送给b。 a把明文m用密钥k 加密得到的密文:c=ek(m) 把加密后的密文c 通过不安全的网络信道传送给b。 b采用同样的加密算法和密钥对c 进行解密,并得到明文:m=dk(c)。 b主动与a 通信时的过程与之相同。图 2.1 对称密钥体制对称加密系统最大的问题是密钥的分发和管理非常复杂、代价高昂。在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了大问题。对称加密算法的另一个缺点是不能实现数字签名。2公开密钥算法公开密钥算法也称非对称密钥体制,在该体制中,加密和解密是相对独立的,加密和解密使用两个不同的密钥,

36、其中加密密钥(公钥)向公众公开,解密密钥(私钥)只有解密人知道,非法用户根据公开加密密钥无法推算出解密密钥。公钥加密使用两个不同的密钥:一个是公开的,另一个是秘密的。数据加密和解密采用不同的密钥,一个是用来加密的公钥,另一个是用来解密的私钥,通信主体可以把自己的加密密钥公开出去,供别人与自己通信。公开密钥体制如图2.2 所示。公开密钥的通信过程可以描述为: b 把自己的加密公钥kub公开出去,可以通过网络,认证中心等。 a 得到b 的加密公钥kub,并用其加密信息得到密文。 a 把密文发给b。 b 用自己的解密私钥krb来解密密文c 得到明文m=dk(c)。 b 主动与a 通信时大体相同。图

37、2.2 公开密钥体制由于公开密钥加密系统的加密密钥是公开的,密钥的分配和管理就很简单。但在实际应用中,公开密钥加密系统并没有完全取代对称密钥加密系统,这 是因为公开密钥加密系统是基于尖端的数学难题,计算非常复杂,它的安全性更高,但它实现的速度却远赶不上对称密钥加密系统。在实际应用中可利用二者的各自优点,采用对称系统加密文件,采用公开密钥加密系统加密“加密文件”的密钥(会话密钥),这就是混合加密系统,它较好地解决了运算速度问题和密钥分配管理问题。因此,公钥密码体制通常被用来加密关键性的、核心的加密数据,而对称密码体制通常被用来加密大量的数据。2.4.2 数字签名对文件加密只解决了传送信息的保密问

38、题,而防止他人对传输的文件进行破坏,以及如何确定发信人的身份还需要采取其它的手段,这一手段就是数字签名技术。在电子商务安全保密系统中,数字签名技术有着特别重要的地位。通过数字签名能够实现对原始报文的鉴别与验证,保证报文的完整性、真实性、机密性和发送者对所发报文的不可抵赖性。实现数字签名有很多方法,目前采用较多的是公钥加密技术,如基于rsa date security 公司的pkcs(public key cryptography standards)、digital signature algorithm、x.509、pgp (prety good privacy)。1994 年美国标准与技术

39、协会公布了数字签名标准而使公钥加密技术得到了广泛应用。应用广泛的数字签名方法主要有三种,即:rsa 签名、dss 签名和hash 签名。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换来实现的,用des 算法、rsa 算法都可实现数字签名。但三种技术或多或少都有缺陷,或者没有成熟的标准。这里简单介绍一下hash 签名方法。hash 签名是最主要的数字签名方法,也称之为数字摘要法(digital digest)或数字指纹法(digital finger print)。该数字签名方法是将数字签名与要发送的信息紧密联系在一起,因此更适合于电子商务活动:将一个商务

40、合同的个体内容与签名结合在一起,比合同和签名分开传递,更增加了可信度和安全性。数字摘要(digital digest)加密方法也称为安全hash 编码法(sha:secure hash algorithm)或md5 (md standard for message digest),由ronrivest 所设计。该编码法采用单向hash函数将需加密的明文“摘要”成一串128bit 的密文,这一串密文亦称为数字指纹(finger print),它有固定的长度,且相同的明文摘要必定一致。这样这串摘要便可成为验证明文是否是“真身”的“指纹”了。只有加入数字签名及验证才能真正实现在公开网络上的安全传输。

41、数字签名的流程如下:1. 采用散列算法(如哈希算法)对原始报文进行运算,得到一个固定长度的数字串m,称为报文摘要(message digest),不同的报文所得到的报文摘要各不相同,但对相同的报文其摘要是唯一的。在数学上保证,只要改动报文中的任何一位,重新计算出的报文摘要值就会与原先的值不同,这样就保证了报文的不可更改性。2. 发送方生成报文的报文摘要,用自己的私钥对摘要进行加密来形成发送方的数字签名。3. 这个数字签名将作为报文的附件和报文一起发送给接收方。4. 接收方首先从接收到的原始报文中用同样的散列算法如哈希算法)计算出新的报文摘要m,再用发送方的公钥对报文附件的数字签名进行解密,得到

42、m。比较两个报文摘要m 和m,如果值相同,接收方就能确认该数字签名是发送方的,并且报文在传输过程中未被更改,否则就认为收到的报文是伪造的或者中途被篡改了。2.4.3 数字水印技术注册码技术将数字水印技术也纳入了其技术体系之中。当发现数字作品被非法传播时,可以通过提取出的水印来证明其版权所属或追查非法散播者。数字水印技术是信息隐藏学的一个重要分支,它对于数字多媒体产品的保护具有极其实用的研究价值。从数字信息版权保护的角度来看,数字水印技术解决的是如何在数字媒体中设置认证标记的问题,其工作原理就是内嵌不可感知的信息到图像或视频等信号中,从而用来确认版权所有者,并检测和跟踪侵权盗版行为。数字水印技术

43、并不能直接阻止拷贝行为,而是通过验证产品的所有权来揭露非法拷贝、传播行为,然后以法律的手段对其进行制裁,间接地打消盗版者非法复制的企图,从而起到保护知识产权的作用。数字水印技术的基本原理是通过在原始数据中嵌入秘密信息一一水印(watermark)来证实该数据的所有权。这种被嵌入的水印可以是一段文字、标识、序列号等。水印通常是不可视的,它与原始数据(如图象、音频、视频数据)紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据使用价值或商用价值的操作而保存下来。近年来,数字水印技术研究取得了很大的进步,目前比较典型的数字水印算法有;空域算法、变换域算法、压缩域算法、nec 算

44、法、生理模型算法等。其中基于变换域算法的水印技术虽然隐藏信息量不能很大,但抗攻击能力强,很适合应用于数字内容版权保护系统中。这种算法是将数字信号的空间域数据通过某种变化方法转化为相应的频域系数,然后将水印信息叠加到这些系数上;变换域算法常用的变换方法有:离散傅里叶变换(dft)、离散余弦变换(dct)或离散小波变换(dwt)等。2.4.4 身份认证技术层出不穷的网络犯罪,引起了人们对网络身份的信任危机,如何证明“我是谁?”及如何防止身份冒用等问题又一次成为人们关注的焦点。 主要的身份认证技术分析 目前,计算机及网络系统中常用的身份认证方式主要有以下几种: 用户名/密码方式 用户名/密码是最简单

45、也是最常用的身份认证方法,是基于“what you know”的验证手段。每个用户的密码是由用户自己设定的,只有用户自己才知道。只要能够正确输入密码,计算机就认为操作者就是合法用户。实际上,由于许多用户为了防止忘记密码,经常采用诸如生日、电话号码等容易被猜测的字符串作为密码,或者把密码抄在纸上放在一个自认为安全的地方,这样很容易造成密码泄漏。即使能保证用户密码不被泄漏,由于密码是静态的数据,在验证过程中需要在计算机内存中和网络中传输,而每次验证使用的验证信息都是相同的,很容易被驻留在计算机内存中的木马程序或网络中的监听设备截获。因此,从安全性上讲,用户名/密码方式一种是极不安全的身份认证方式。

46、 智能卡认证 智能卡是一种内置集成电路的芯片,芯片中存有与用户身份相关的数据, 智能卡由专门的厂商通过专门的设备生产,是不可复制的硬件。智能卡由合法用户随身携带,登录时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。智能卡认证是基于“what you have”的手段,通过智能卡硬件不可复制来保证用户身份不会被仿冒。然而由于每次从智能卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息,因此还是存在安全隐患。 动态口令 动态口令技术是一种让用户密码按照时间或使用次数不断变化、每个密码只能使用一次的技术。它采用一种叫作动态令牌的专用硬件,内置电源、

47、密码生成芯片和显示屏,密码生成芯片运行专门的密码算法,根据当前时间或使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。用户使用时只需要将动态令牌上显示的当前密码输入客户端计算机,即可实现身份认证。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要通过密码验证就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份。 动态口令技术采用一次一密的方法,有效保证了用户身份的安全性。但是如果客户端与服务器端的时间或次数不能保持良好的同步,就可能发生合法用户无法登录的问题。并且用户

48、每次登录时需要通过键盘输入一长串无规律的密码,一旦输错就要重新操作,使用起来非常不方便。 usb key认证 基于usb key的身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。usb key是一种usb接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用usb key内置的密码算法实现对用户身份的认证。基于usb key身份认证系统主要有两种应用模式:一是基于冲击/响应的认证模式,二是基于pki体系的认证模式。 技术的回归 传统的身份认证技术,一直游离于人类体外,有关身份

49、验证的技术手段一直在兜圈子,而且兜得越来越大,越来越复杂。以“用户名口令”方式过渡到智能卡方式为例,首先需要随时携带智能卡,其次容易丢失或失窃,补办手续繁琐冗长,并且仍然需要你出具能够证明身份的其它文件,使用很不方便。 直到生物识别技术得到成功的应用,这个圈子才终于又兜了回来。这种“兜回来”,意义不只在技术进步,站在“体验经济”和人文角度,它真正回归到了对人类最原始生理性的贴和,并通过这种终极贴和,回归给了人类“绝对个性化”的心理感受,与此同时,还最大限度释放了这种“绝对个性化”原本具有的,在引导人类自身安全、简约生活上的巨大能量。 生物识别技术主要是指通过可测量的身体或行为等生物特征进行身份

50、认证的一种技术。生物特征是指唯一的可以测量或可自动识别和验证的生理特征或行为方式。生物特征分为身体特征和行为特征两类。身体特征包括:指纹、掌型、视网膜、虹膜、人体气味、脸型、手的血管和dna等;行为特征包括:签名、语音、行走步态等。目前部分学者将视网膜识别、虹膜识别和指纹识别等归为高级生物识别技术;将掌型识别、脸型识别、语音识别和签名识别等归为次级生物识别技术;将血管纹理识别、人体气味识别、dna识别等归为“深奥的”生物识别技术。 与传统身份认证技术相比,生物识别技术具有以下特点: (1) 随身性:生物特征是人体固有的特征,与人体是唯一绑定的,具有随身性。 (2) 安全性:人体特征本身就是个人

51、身份的最好证明,满足更高的安全需求。 (3) 唯一性:每个人拥有的生物特征各不相同。 (4) 稳定性:生物特征如指纹、虹膜等人体特征不会随时间等条件的变化而变化。 (5) 广泛性:每个人都具有这种特征。 (6) 方便性:生物识别技术不需记忆密码与携带使用特殊工具(如钥匙),不会遗失。 (7) 可采集性:选择的生物特征易于测量。 (8) 可接受性:使用者对所选择的个人生物特征及其应用愿意接受。 基于以上特点,生物识别技术具有传统的身份认证手段无法比拟的优点。采用生物识别技术,可不必再记忆和设置密码,使用更加方便。 就目前趋势来看,将生物识别在内的几种安全机制整合应用正在成为新的潮流。其中,较为引

52、人注目的是将生物识别、智能卡、公匙基础设施(pki)技术相结合的应用,如指纹key产品。pki从理论上,提供了一个完美的安全框架,其安全的核心是对私钥的保护;智能卡内置cpu和安全存储单元,涉及私钥的安全运算在卡内完成,可以保证私钥永远不被导出卡外,从而保证了私钥的绝对安全;生物识别技术不再需要记忆和设置密码,个体的绝对差异化使生物识别树立了有始以来的最高权威。三种技术的有机整合,正可谓是一关三卡、相得益彰,真正做到使人们在网上冲浪时,不经意间,享受便捷的安全。 总之,注册码技术还处于快速发展与不断拓宽过程中。第三章 通用软件注册码设计在对注册码技术深入分析和研究的基础上,设计并实现了一个基于

53、md5的通用软件注册码版权保护系统,如图3.1。系统支持win32格式的文档,设计了从整体框架、关键数据结构、算法实现的整个过程。在后面的论述和系统实现中,以exe格式文件为保护对象。图3.1 基于md5的软件注册实现3.1总体设计md5的全称是message-digest algorithm 5(信息-摘要算法),用于确保信息传输完整一致。对md5算法简要的叙述可以为:md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 在md5算法中,首先需要对信息进行填充,使

54、其位长对512求余的结果等于448。因此,信息的位长(bits length)将被扩展至n*512+448,即n*64+56个字节(bytes),n为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长=n*512+448+64=(n+1)*512,即长度恰好是512的整数倍。这样做的原因是为了满足后面处理中对信息长度的要求。 md5中有四个32位被称作链接变量(chaining variable)的整数参数,他们分别为:a=0x0123456

55、7,b=0x89abcdef,c=0xfedcba98,d=0x76543210。 当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。md5算法流程图如下。 图3.2 md5算法流程将上面四个链接变量复制到另外四个变量中:a到a,b到b,c到c,d到d。 主循环有四轮(md4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。以下是每

56、次操作中用到的四个非线性函数(每轮一个)。 f(x,y,z) =(x&y)|(x)&z) g(x,y,z) =(x&z)|(y&(z) h(x,y,z) =xyz i(x,y,z)=y(x|(z) 假设mj表示消息的第j个子分组(从0到15),s表示循环左移s位。ff(a, b, c, d, mj, s, ti)表示 a = b + (a + (f(b, c, d) + mj + ti) s)图3.3 第一轮单次循环示意图gg(a, b, c, d, mj, s, ti)表示 a = b + (a + (g(b, c, d) + mj + ti) s)图3.4 第二轮单次循环示意图hh(a, b, c, d, mj, s, ti)表示 a = b + (a + (h(b, c, d) + mj + ti) s) 图3.5 第三轮单次循环示意图ii(a, b, c, d, mj, s, ti)表示 a = b + (a + (i(b, c, d) + mj + ti) s)图3.6 第四轮单次循环示意图这四轮(64步)是:/*第1轮*/ /*以abcd j

温馨提示

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

评论

0/150

提交评论