毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)

上传人:痛*** 文档编号:78474881 上传时间:2022-04-21 格式:DOC 页数:68 大小:809.03KB
收藏 版权申诉 举报 下载
毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)_第1页
第1页 / 共68页
毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)_第2页
第2页 / 共68页
毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)_第3页
第3页 / 共68页
资源描述:

《毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)》由会员分享,可在线阅读,更多相关《毕业论文网络安全(SSL协议)记录协议的实现(含外文翻译)(68页珍藏版)》请在装配图网上搜索。

1、北方工业大学学位论文网络安全(SSL协议)记录协议的实现摘要: 目前,随着Internet的迅速发展,信息安全引起了越来越多人的注意。特别是近年来电子商务、电子政务发展,如何保证传输数据的保密性、完整性已成为急需解决的问题。安全套接字层协议(Security Socket Layer Protocol, 简称SSL)是Internet上进行保密通信的一个安全协议,它的使用,保证了网上信息传输的保密性和完整性。SSL中的记录层协议是负责封装待传输的数据的,对数据进行压缩、加密和解密,并加入MD5验证吗,以确保数据在传输过程中的安全。要实现记录层协议,需要密码学基础知识,并对SSL协议的结构、原理

2、和其中的其他组成协议一定了解。另外,记录层协议并不是可以直接运行的程序,为此,要真正实现它,就需要将其集成到一个可以在网络间传输数据的软件,以验证记录层协议的各项功能。关键字:安全套接字层协议 记录层协议 密码学基础知识Network Security (SSL Protocol) Record Protocol RealizationAbstract:At present, along with Internet rapid development, the information security has brought to the more and more peoples atten

3、tion. Especially in recent years electronic commerce and the electronic government affairs developed, how guaranteed the secrecy and the integrity of the transmission data have become the question which urgent need to be solved. Security Socket Layer Protocol (Is called SSL) is a security protocol w

4、hich realizes the privacy communication on Internet, with it has guaranteed the intelligence transmission secrecy and the integrity on the net. In the SSL record protocol is responsible to pack the deferent data, carries on the compression, the encryption and the decipher to the data, and appends th

5、e MD5 confirmation to guarantee the data security in the transmission process. Implement the SSL record protocol, needs the cryptology elementary knowledge, and understands the structure, the principle and other composition protocol of SSL. Moreover, The SSL record protocol is not a procedure which

6、may run directly, therefore, needs to integrate it to software which may transmit data in the network, for confirming the each function of SSL record protocol.Keywords: Security Socket Layer Protocol, SSL record protocol, the cryptology elementary knowledge目 录一、 绪论.51.1 课题背景.51.2 国内外概况.61.3 课题内容及论文结

7、构.8二、 基础知识.92.1 密码学基础.92.1.1 概论.92.1.2 分组密码算法DES加密.112.1.3 RSA公钥算法.142.1.4 单向HASH函数算法MD5文摘算法.162.2 安全套接字层协议(SSL).172.2.1 SSL协议概述.172.2.2 SSL协议的主要内容.172.2.3 握手协议.182.2.4 密钥交换协议.212.2.5 记录层协议.212.2.6 报警协议.22三、 系统分析与设计.233.1 系统整体分析.233.2 系统整体设计.25四、 系统实现.284.1 MD5文摘算法.284.2 DES加密算法.324.3 加密前的分组填充与解密后的数

8、据合并.394.4 记录头内容及添加.42五、 系统运行测试 .43六、 小结.48七、 致谢.48八、 参考文献.49九、 英文材料翻译.509.1 翻译内容.509.2 英文原文.58一、 绪论1.1、 课题背景 迅速发展的Internet正在把世界联系成一个整体,极大地加速了信息流通的速度和吞吐量,加快了社会生活的步伐。但是,在缺乏保护的情况下,用户在网络上存储和传输的任何信息,都存在着被泄露和篡改的可能性。风险总是和利益紧密相联系的,人们从网络上获得的利益越大,可能遇到的风险也越大。随着社会逐步进入信息时代,我们每天产生、处理和传播信息的价值正在日益升高。我们不仅需要保护商业通信中的经

9、济信息,而且还需要保护个人通信的隐私权。因此,世界上许多大公司和研究机构,都在争先致力于解决Internet上安全问题的研究,提出各种安全通信标准,或开发维护通信安全的软、硬件产品。随着计算机网络技术特别是Internet技术的发展,World Wide Web(WWW)系统己从最初的提供信息查询浏览一类的静态服务发展成可提供动态交互的网络计算和信息服务的综合系统,在此基础上可实现对网络电子商务、事务处理、工作流以及协同工作等业务的支持。但是,由于Internet的开放性,也给它带来了很多安全隐患,威胁到信息服务的安全使用。如何更有效地保护信息资源,提高计算机系统的安全性己经成为所有计算机网络

10、应用必须考虑和需要解决的一个重要课题。信息的安全性主要体现在以下几个方面:(1) 保密性:即信息不为非授权者知晓、能够有效地保密。(2) 完整性:从真实的信源发送到真实的信宿,中途没有被改动过。(3) 信息和信息系统的可用性:不会因为计算机病毒或被拒绝服务造成瘫痪。(4) 可控性:通过有效的控制技术和法规,防止犯罪分子利用安全手段对抗社会的管理和执法。(5) 信息行为的不可否认性:对发生的信息行为可出示具有法律公证和仲裁效果的证据。在计算机网络环境中,首先要考虑的就是网络传输过程中的安全性,具体体现为信息在网络传输中的保密性和完整性。安全套接字层(Secure Socket Layer, 简称

11、SSL)是解决WWW系统安全问题的一种实用方案,它工作在网络传输层之上,为网络应用程序提供保密通信和完整性验证等安全服务,它已经在Internet上得到了广泛应用,为WWW系统信息的安全传输提供了较好的保护。1.2、 国内外概况Internet已经成为全新的信息传播媒体,并成为社会高速发展的“火车头”。随着计算机网络技术的发展,信息技术的使用给人们的生活、工作带来许多方便之处,如便捷的网上购物、网上银行、银证转账、网上证券等等。但同时,由于Internet的开放性,随着网络应用水平的提高,出现了越来越多的安全隐患,如高科技犯罪、窃密泄密、黑客入侵、病毒侵扰等,其危害之严重、手段之高超。令人惊异

12、。网络不开放不行,特别是一个商业网络,不开放意味着无法为客户提供更好的网络服务,不开放意味着丧失用户及市场。可是,一旦敞开网络大门.人们在为网络资源优势得以充分发挥、网络技术得到发展、应用日渐广泛、服务质量和效率大大提高而击节称快的同时,网络安全问题也随之出现了。其实,信息安全传输始终是网络技术发展中的焦点问题之一,而在电子商务随着Internet的发展进入实用化阶段之后,这一矛盾变得尤为突出。根据美国联邦调查局的调查,美国每年因为网络安全造成的经济损失超过170。亿美元,75%的公司报告财政损失是由于计算机系统的安全问题造成的。超过50%的安全威胁来自内部,只有17%的公司愿意报告黑客入侵,

13、其他的由于担心负面影响而未声张。59%的损失可以定量估算,平均每个组织损失402万美元。信息安全与我国的经济安全、社会安全和国家安全紧密相连,是我国信息化进程中具有重大战略意义的问题。它综合性很强,涉及面很宽,又是高技术领域的一个制高点,将是一个国家综合实力的重要体现。因此,我们的信息安全研究要立足于我们国家的具体情况,同时引进国外的技术,走自主与引进相结合的道路。Internet网络系统可能受到以下几种威胁或攻击,从而导致网络崩溃、用户利益受到侵害或Internet网络无法正常从事网络服务。攻击者可以是:大集团公司或个人。(1)非法修改网络信息(Intranet)为达到某种目的,攻击者可在以

14、下两种情况下进行,一是当信息在Intranet上传送时,攻击者在线路上截获信息包并进行修改;二是非法侵入网络服务器(数据库),修改有关信息。(2)假冒攻击攻击者假冒成合法主机,从而进行非法活动,使用户蒙受损失。(3)重要信息非法泄露(Intranet或电子商务)这种攻击可分成以下两种情况:一是在重要信息通过Intranet信息交换时,攻击者在线路上进行窃听:二是侵入服务器数据库窃取信息。(4)否认/抵赖/伪造已提交或己接收的信息发方否认己提交的信息(订单、文件),收方否认或伪造己收到信息。(5) Internet拒绝服务Internet软件和网络数据库受到上述综合攻击,或超过服务器负载的恶意客

15、户端的重复连接导致不能为正常的客户机提供服务。为了解决这些问题,人们提出了许多安全解决方案。安全Web可以由以下安全协议或方案支持:(1) 应用层实现。主要由安全超文本传输协议、安全超文本标记语言、XML、安全Java、安全Java类库、安全套接字层(SSL),安全远程登录协议SSH, PCT, OpenPGP (RFC2440)安全电子邮件和安全S/MIME、传输层安全协议TLS等协议支持。服务器端在HTTP软件包中实现,服务器可以在目录、文件、主页等多种层次上对信息进行保护。客户端在浏览器中实现。(2) 内核传输层实现。由安全套接字层(SSL2.0, 3.0)、安全TCP(S- TCP)和

16、传输层安全协议TLS协议支持。服务器和客户端均在操作系统内核的传输层实现。可以实现对应用层所有应用的透明保护。SSL由Netscape提出并应用于其浏览器中。随着Web浏览器技术的发展,SSLv2和v3己被工业界认可,并成为IETF的RFC草案。SSL之所以命名为“套接层协议”,是因为SSL具有与高层无关的特点,高层应用协议(如FTP,TELNET)可以在SSL协议之上透明传输。在高层协议传输数据之前,SSL协议可以协商密码算法和会话密钥;在数据传输阶段,SSL协议对数据加密,从而提供了保密性。SSL协议能够提供信道安全,具有以下三个基本特点:(1) 信道是保密的。经过握手之后,协商好的会话密

17、钥可以对信道上的信息加密。(2) 信道是经过验证的。通信的服务器端总是被加以验证,客户端可以选择性地加以验证。(3) 信道是可靠的。对信道中的信息加以完整性校验。1.3、 课题内容及论文结构本课题主要研究的是安全套接字层协议(SSL)中的记录层协议的实现,为了便于演示,将各功能应用于一个基于socket编程的即时文字通讯系统,以实现记录层协议的基础功能。最终实现使用记录层协议对传送的文字消息进行加密处理,达到信息安全传送的目的。本课题主要使用的环境是Windows和VB+ 6.0。本文按照如下的结构组织:第一章介绍课题的研究背景和国内外现状,以及课题的研究内容;第二章介绍安全通信的密码学基础和

18、SSL协议及SSL协议中各个组成协议,涉及分组加密算法(DES)、公钥加密算法(RSA)、单向HASH函数算法(MD5)等基本的密码算法;第三章介绍系统的分析与设计,给出系统的总体流程图;第四章介绍系统中主要的算法的原理并对实现加以说明;第五章描述系统的实验环境和运行界面。第六章对全文进行总结,并提出一些需要今后进一步完善的工作。二、 基础知识 本章主要介绍课题中涉及到的技术的基础知识,包括密码学基础和SSL协议内容及组成。2.1、 密码学基础信息安全技术的核心是密码,因此,在论及具体的安全技术及实现之前,先来介绍一下密码学方面的基础知识。本章主要从私钥密码、公钥密码和单向HASH函数这几个在

19、SSL中得到应用的密码体制进行介绍。2.1.1、密码学概论3如果说信息安全技术是新生事物,是伴随着“计算机”与“信息”概念的产生而产生的,那么,密码学却是古老的。自从人类有了部落和战争就有了密码。但是在过去,加密技术仅被军事和谍报人员以及某些大型商业企业所采用,应用范围十分有限。密码学也是一门与数学有关的深奥科学,有能力研究密码学的人为数不多。在经历了从简单到复杂,从神秘、封闭到开放,从技巧到科学,然后到技术的过程后,如今,密码技术已被广泛应用于商业领域,这门古老的技术在社会上得到了从未有过的广泛关注。密码技术的起源可以追溯到远古时代。其原因可想而知,只要有三个掌握了读和写的人,如果其中两人需

20、要相互之间传递一些信息而不希望被第三者读懂,就需要使用密码技术。古希腊时,斯巴达的将军们需要通过信使来传递军情,为了防止机密消息被拦截或者被信使偷看,他们使用了一种原始的密码技术:将消息写在一个狭窄的羊皮纸条上,再将这个纸条螺旋状地卷绕在一个圆棍上。当这个纸条被卸下来后,只有找到一个与原来的圆棍尺寸精确匹配的圆筒才能读懂纸上的内容。这是有历史记载以来较早使用密码技术的一个例子。现代数字计算机的发展可以说和密码技术结下了不解之缘。早在第二次世界大战时,就有一些早期的数字计算机被盟军用于破解德军用电子加密机器(Enigma)加密的消息,加速了二战的胜利结束。在计算机出现以前,密码技术只有两种基本形

21、式代换(substitution)和移位(transposition),最有效的密码也只能用到五至六个代换或移位操作。有了计算机的帮助,消息的加解密可以用到成百上千个代换或移位操作,而且速度大大提高。计算机大大推动了密码技术的发展。加密和解密是成对出现的概念。加密(encryption)是将一个明文消息(plaintext) 用数学方法来重新组织成为密文消息(cipher text)的过程,它使得除了合法的接收者外,任何其他人都很难恢复原来的明文消息或读懂变化以后的密文消息:解密是用数学方法反过来将密文变化为明文的过程。通常,加密和解密中用到的数学方法是一组规则,称为加密/解密算法,它们在一组

22、密钥(加密密钥/解密密钥)的控制下进行操作。一个数据加密系统示意如图2-1:图2-1 密码系统示意图一个密码体制由以下五部分组成:明文空间M(由全体明文所组成的集合);密文空间C(由全体密文所组成的集合);密钥空间K(包括加密密钥空间和解密密钥空间:分别代表由全体加密密钥和解密密钥所组成的集合);由加密密钥所确定的加密规则(算法) (eK)之集;以及由解密密钥所确定的解密规则(算法) (dK)之集。但加密规则和解密规则之间必须相匹配,即每一个加密规则都对应一个解密规则,使得对任意的一个明文,先加密后解密仍是该明文,即( (M) =M.根据加密密钥e和解密密钥d是否相同或本质上等同,即从其中一个

23、容易推出另一个,可将现有的密码体制分为两种:一种是私钥(或对称)密码体制,这种体制的加密密钥和解密密钥或者相同或者本质上等同,即从其中一个容易推出另一个,其典型代表是数据加密标准(DES, Data Encryption Standard),是由美国国家技术标准协会(NIST)和IBM 公司在70年代提出的;另一种是公钥(或非对称)密码体制,这种体制的加密密钥和解密密钥不相同,并且从其中一个很难推出另一个,这样加密密钥可以公开,而解密密钥可由用户自己秘密保存,其典型代表是RSA,由麻省理工学院的Ronald Rivest 和 Adi Shamir 教授以及南加州大学的Leonard Adlem

24、an教授开发。DES的研究和以RSA为代表的公钥密码体制的研究大大地推动了密码技术的深入研究和社会应用,在相当长一段时期内是国际通行的主流密码体制。在实际应用系统中,经常是将上述两种密码体制综合起来,构成公钥/私钥体制混合密码系统。在这样的系统中,较慢的公钥算法被用于交换一个随机的“会话密钥”,然后会话密钥被用来生成私钥算法的密钥。通常,一个会话密钥仅仅被用来加解密一次就抛弃。著名的个人信息加密系统PGP、安全套接字层SSL等许多应用公钥体制的实用系统都是基于这样的工作原理。根据对明文的加密方式的不同,又可将私钥密码体制分为两类:一类是流密码,在这类体制中,明文按字符逐位地被加密;另一类是分组

25、密码,在这类体制中,先将明文分组(每组含有多个字符),然后逐组地进行加密。粗略地讲,分组密码是用一个固定的变换对一个比较大的明文数组进行操作;而流密码是用一个时变的变换对单个明文字符进行操作。公钥密码体制大都是分组密码,一般不再按明文的加密方式对其进行分类。我们通常所说的分组密码特指私钥分组密码。信息安全技术除了包括信息的保密,还涉及信息的可靠性。加密技术可以防止信息被无关的第三方解密或读取,即被动式的攻击,但是不能防止第三方对信息的伪造和篡改,即主动式的攻击。单向HASH 函数是解决信息可靠性的一种有效体制。单向HASH函数可以将任意长度的信息浓缩为一个固定长度的文摘,其典型代表是消息摘要算

26、法(Message Digest 5,简称MD5),由麻省理T学院的Ronald Rivest教授开发,RSA Data Security Incorporation公司发布。2.1.2、分组密码算法DES加密6DES是目前最广泛使用的分组密码算法之一。它是由美国IBM公司的W.Tuchman 和 C.Meyer 于1971-1972年研制成功的。它的基础理论是1967年美国Horst Feistel 提出的理论。它是另一个被称为“LUCIFIER”的IBM公司的密码算法的改进版本。IBM 公司公布了该算法后,1977年美国联邦政府在当年颁布的“联邦信息处理标准(FIPS, Federal I

27、nformation Processing Standard)”第46号中将其确定为联邦标准。自那以后,规定每隔五年由美国国家保密局(NSA)做出评估,并重新批准它是否继续作为联邦加密标准。美国目前正在征集和评估新的数据加密标准,该标准被称作AES,以替代到期的DES.DES是一个使用了56比特有效密钥的64比特分组密码算法。是一个16轮的迭代 Feistel 型密码。加、解密算法一样,但加、解密时所使用的子密钥的顺序刚好相反。DES在每一个包含64比特数据和56比特密钥的组内执行一系列的重排、替换和再组合操作。64比特输入数据先被排列,然后被输入到一个应用静态排列和替换表(称为S-BOX)的

28、函数中。这些比特被用48比特的密钥组合后再交换排列。迭代执行这个操作16次,每次都使用不同的排列替换表以及不同的密钥位。最后执行一次排列,将产生一个64位输出数据。在这个算法中,任何一个输入数据位的不同,都将引起输出数据位出现极大变化。DES的硬件实现的加密速率大约为20M比特/秒;软件实现的速率大约为400-500 K比特/秒。DES专用芯片的加密和解密的速率大约为1G比特/秒。目前对DES最尖锐的批评之一就是DES的密钥太短。现在依靠Internet的分布式计算能力,用穷搜法破译DES已成为可能。从而使人们认识到随着计算能力的增长,必须相应地增加算法的密钥长度。为此,人们提出了三次DES算

29、法(Triple-DES)。在实践中最常用的三次DES加密的方式是:1.用密钥1加密;2用密钥2解密;3.用密钥3加密。这种方法将密钥长度扩展了三倍,加大了破解的难度。并且,只要将三个密钥设成相同的值,它就可以与一次DES算法实现向下兼容。DES在实际使用中有多种操作模式,例如电码本模式(ECB模式),密文链接模式(CBC模式),密文反馈模式(CFB模式)以及输出反馈模式(OFB模式)。这些模式既可以以分组密码方式实现也可以流密码方式实现。1. ECB模式(electronic code book)这种模式 是所有模式中最基本的一种。每次加密的分组是64位二进制位,所用的密钥也是64位二进制位

30、,但由于其中有8位二进制位是用于校验的,因此实际的密钥位数是56位。每个将要被加密的消息必须分成64位二进制位大小的分组,如果最后一分组不足64位,必须补齐。ECB对每组进行加密,加密后将各组密文合并成密文消息。密文中的每一位都是密钥的每一位和64位明文中每一位的函数,也就是说,明文或密钥中的一位发生变化将导致密文中50%的位发生变化。很明显,在这种模式中,每组的密文都和其它组的密文独立。因此,相同的明文组将产生相同的密文组,这样就会泄露明文的数据模式.而这种泄露通常是不可接受的。2.CBC模式(cipher block chaining)这种模式和ECB模式一样,也要将明文分成64位二进制的

31、组,最后一组不足64位的要进行填充。所不同的是,每一当前要加密的分组将和前一分组的结果进行一次模2加。有时,最开始的一块和一个初始向量(IV. Initialization vector)进行一次模2加。由于,每组密文是1V 和所有的前面的密文组的函数,所以可以避免像ECB模式下的那种明文数据模式的泄露。3.CFB模式(cipher feed back)这种模式使用DES产生密钥流对明文进行加密,并且将加密后的密文返回到输入端输入。因此,密钥序列是初始向量IV和反馈的密文的函数。这种模式采用的是流加密的方式,可以作用于1-64位二进制位。如果不足64位,则输出密文的多余位可以被扔掉。这种不用填

32、充位的模式能够节省宝贵的网络带宽。4.OFB模式这种模式将一个分组密码转化成一个流密码。它具有普通流密码的优缺点,如没有错误传播,利于加密冗余较大的数据。但这种模式并不适合在开放系统中作为安全通信的基础。在这里就不再详述了。2.1.3、RSA公钥算法6公钥密码的思想最早可以追溯到1975年。当时,斯坦福大学电子工程系的Whitfield Diffie和Martin Hellman撰写了一篇论文“多用户加密技术”,文中虽然没有提及任何具体的公钥加密系统,但是讨论了公钥加密系统找到后的各种应用。1976年5月,Diffie和Hellman提出了一个指数密钥交换加密算法,即后来著名的Diffie-H

33、ellman算法,并且发表在他们的论文“密码学的新方向”中,这是历史上第一个公钥算法。这个算法指明了香农在1949年发表的论文“保密通信的信息理论”中所提出的将密码建立在解某些已知的数学难题之上的具体实现途径。紧接着,Rivest、 Shamir和Adleman 于1977年提出了第一个比较完善的公钥密码体制,它既可用于加密,又可用于签名,这就是著名的RSA公钥密码体制。公钥密码体制实质上是计算机复杂性理论发展的结果。私钥密码体制的缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的。而公钥密码体制可使通信双方无须事先交换密钥就可建立起保密通信。公钥算

34、法要比私钥算法慢得多。在实际通信中,一般利用公钥密码体制来保护和分配(交换)密钥,而利用私钥密码体制加密消息。公钥密码体制主要用于认证(比如数字签名,身份识别等)和密钥管理等。公钥密码体制的出现为解决私钥密码体制的密钥分配开辟了一条广阔的道路。目前国际上己经提出了许多种公钥密码体制,但比较流行的和被人们认可的公钥密码主要有两类,一类是基于大整数因子分解问题的,其中最典型的代表是RSA公钥密码体制;另一类是基于离散对数问题的,影响比较大的有椭圆曲线公钥密码体制。由于计算机的处理器和存储设备性能不断提高,分解大整数的能力日益增强,对RSA公钥密码的安全带来了一定的威胁,512比特模长的RSA体制己

35、经不安全。人们建议使用1024比特模长,要保证20年的安全就要选择1280比特模长,增大模长带来了实现上的难度。而基于离散对数问题的公钥密码在目前技术下有512比特模长就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,能设计出密钥更短的公钥密码体制,因而受到了国际上广泛的关注RSA算法是Rivest、Shamir和Adleman于1977年提出的第一个比较完善的公钥密码体制,其安全性是基于分解大整数的困难性,其理沦基础是一种特殊的可逆模指数运算。RSA算法可以表述如下:1、钥匙配制假设m为要传送的报文,任选两个大素数p与q,使得n=pq m;选择正整数e,

36、使得e与(p-1)(q-1)互质;利用辗转相除法,求得d,使ed mod (p-1)(q-1)=1,其中mod是整数求余运算。(e,n)是用于加密的公开密钥,可以公布出去;(d, n)是用于解密的秘密密钥,必须保密。2、加密过程c=mod n ,c既是对应于明文m的密文。3、解密过程m=mod n ,m既是对应于密文c的明文。RSA算法是公钥加密领域内最为著名的算法,但是它存在的主要问题是算法的运算速度较慢。因此,在实际的应用中通常不采用这一算法对信息量大的信息(如大的EDI交易)进行加密。对于加密量大的应用,公钥加密算法通常用于私钥加密方法密钥的加密。因数分解是个不断发展的领域。由于计算机的

37、处理能力提高很快,分解大整数的能力不断增强,RSA公钥密码的安全存在一定的威胁。n的长度为512比特的RSA体制已经不太安全,实际系统中需要进一步增大模长。但是模长增大运算速度将会很慢。而基于椭圆曲线上的离散对数问题的公钥密码在模长很短的情况下就能够保证其安全性,有希望与RSA一争高低,因而受到了国际上广泛的关注。2.1.4、单向HASH函数算法MD5文摘算法6 MD5的全称是Message-Digest Algorithm 5(简称MD5),在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。Message-Digest泛

38、指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫readme.t

39、xt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。一些黑客破获这种密码的方法是一种被称为“跑字典”的方法。有两种方法得到字典,一种是日常搜集的

40、用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。即使假设密码的最大长度为8,同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2).+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。2.2、安全套接字层协议(SSL)11本节介绍了SSL协议的内容与组成,并详细介绍协议中各个部分的相关知识。2.2.1、SSL协议概述SSL协议的提出是为了在WEB系统

41、上为通信双方提供统一的安全解决方案,即在TCP上提供一种通用的数据传输安全机制,任何可以在TCP连接上运行的协议都能够使用SSL协议加以保护。通常把SSL的API设计成普通网络API的形式,从而可以非常方便的为几乎所有的协议提供某种程度的安全。目前SSL的最新版本是1996年Netscape公司在SSLv2的基础上提出的第三版本SSLv3,该版本得到T广泛的应用,已经成为业界标准。Netscape browser 和Microsoft explorer等流行的WEB浏览器均支持该协议。前面提到IS07498_2中规定了五大安全服务,SSL采用数字证书、对称/非对称密钥加密、消息摘要和数字签名等

42、技术提供了身份认证、数据保密、数据完整性三大安全服务。2.2.2、SSL协议的主要内容SSLHandshakeProtocolSSL ChangeCipher SpecProtocolSSL AlertProtocolApplicationData protocolSSL Record ProtocolTCP/IP图2-2 SSL协议结构图如图2-2所示,SSL协议是一个分层协议,从结构上可分为两层:底层为记录层协议(record protocol),实现对数据的分块、加密、压缩与解压缩、完整性检查,分装各种高层协议;高层为握手层,它由四个并列的协议构成:握手协议(hand shake pro

43、tocol) 、修改密码参数协议(change cipher spec protocol),报警协议(SSL alert protocol),应用数据协议(application data protocol).下面分别介绍一下组成SSL的4个子协议。2.2.3、握手协议握手协议在SSL记录层之上,它产生会话状态的密码参数。当SSL客户端和服务器开始通信时,他们协商一个协议版本、选择密码算法、对彼此进行验证、使用公开密钥加密技术产生共享秘密。这些过程在握手协议中进行,其过程如图2-2所示:图2-2 握手协议流程说明如下 :在客户端发送Client Hello信息后,对应的服务器回应Server

44、Hello信息,否则产生一个致命错误,导致连接的失败。Client Hello和Server Hello用于在客户端和服务器之间建立安全增强功能,并建立协议版本号、会话标识符、密码组和压缩方法。此外,产生和交换两组随机值:ClientHello.random和ServerHello.random。在Hello信息之后,如果需要被确认,服务器将发送其证书信息。如果服务器被确认,并且适合于所选择的密码组,就需要对客户端请求证书信息。现在,服务器将发送Server Hello Done信息,表示握手阶段的Hello信息部分已经完成,服务器将等待客户端响应。如果服务器己发送了一个证书请求(Certif

45、icate Request)信息,客户端可回应证书信息或无证书(No Certificate)警告。然后发送Client Key Exchange信息,信息的内容取决于在Client Hello和Server Hello之间选定的公开密钥算法。如果客户端发送一个带有签名能力的证书,服务器发送一个数字签名的Certificate Verify信息用于检验这个证书。这时,客户端发送一个Change Cipher Spec信息,将Pending Cipher Spec(待决密码参数)拷贝到Current Cipher Spec(当前密码参数)。然后客户端立即在新的算法、密钥和密码下发送结束(Fini

46、shed)信息。对应地,如果服务器发送自己的Change Cipher Spec信息,并将Pending Cipher spec拷贝到Current Cipher Spec,然后在新的算法、密钥和密码下发送结束(Finished)信息。这一时刻,握手结束,客户端和服务器可开始交换其应用层数据。下面对Handshake Type的各类信息作一介绍。l Hello Request(问候请求)服务器可在任何时候发该信息,如果客户端正在一次会话中或者不想重新开始会话,客户端可以忽略这条信息。如果服务器没有和客户端进行会话,发送了Hello Request,而客户端没有发送Client Hello,那么

47、就发生致命错误,关闭同客户端的连接。l Client Hello (客户端问候)当客户端第一次连接到服务器时,应将Client Hello作为第一条信息发给服务器。Client Hello包含了客户端支持的所有压缩算法,如果服务器均不支持,则本次会话失败。l Server Hello (服务器问候)Server Hello信息的结构类似Client Hello,它是服务器对客户端的Client Hello信息的回复。l Server Certificate(服务器证书)如果要求验证服务器,则服务器立刻在Server Hello信息后发送其证书(Certificate)。Certificate的

48、类型必须适合密钥交换算法,通常为x.509 v3 Certificate或改进的x.509 Certificate.l Certificate Request(证书请求)如果和所选密码组相适应,服务器可以向客户端请求一个证书(Certificate)。如果服务器是匿名的,则在请求客户端Certificate时会导致致命错误。l Server Hello Done(服务器问候结束)服务器发出该信息表明Server Hello结束,然后等待客户端响应。客户端收到该信息后检查服务器提供的Certificate是否有效,以及服务器的Hello参数是否可接受。l Client Certificate(客

49、户端证书)该信息是客户端收到服务器的Server Hello Done后可以发送的第一条信息。只有当服务器请求Certificate时才需发此信息。如果客户端没有合适的Certificate,则发送“没有证书”的警告信息,如果服务器要求有“客户端验证”,则收到警告后宣布握手失败。l Client Key Exchange(客户端密钥交换)信息的选择取决于采用何种公开密钥算法。参见上述Server Key Exchange.l Certificate Verify(证书检查)该信息用于提供客户端Certificate的验证。它仅在具有签名能力的客户端Certificate之后发送。l Finis

50、hed(结束)该信息在Change Cipher Spec之后发送,以证明密钥交换和验证的过程已顺利进行。发方在发出Finished信息后可立即开始传送秘密数据,收方在收到Finished信息后必须检查其内容是否正确。2.2.4、密钥交换协议密钥交换协议的存在是为了使密码策略能得到及时的通知。该协议只有一个消息(是一个字节的数值),传输过程中使用当前的加密约定来加密和压缩,而不是改变后的加密约定。客户方和服务器方都会发出改变加密约定消息,通知接收方后面发送的记录将使用刚刚协商的加密约定来保护。客户方在发送握手密钥交换和证书检验消息后发送改变加密约定消息;服务器方则在成功处理从客户方接收到的密钥

51、交换消息后发送。一个意外的改变加密约定消息将导致一个Unexpected Message警报。当恢复之前的会话时,改变加密约定消息将在问候息后发送。2.2.5、记录层协议(record protocol)SSL记录协议可为SSL连接提供保密性业务和消息完整性业务。保密性业务是通信双方通过握手协议建立一个共享密钥,用于对SSL负载的单钥加密。消息完整性业务是通过握手协议建立一个用于计算MAC的共享密钥。SSL将被发送的数据分为可供处理的数据段,它没有必要去解释这些数据,并且这些数据可以是任意长度的非空数据块。接着对这些数据进行压缩、加密,然后把密文交给下一层网络传输协议处理。对收到的数据,处理过

52、程与上相反,即解密、验证、解压缩、拼装,然后发送到更高层的用户。l 分段SSL记录层把上层送来的数据块切分成以16K()字节为单位的SSL明文记录块,最后一块可能不足16K。在记录层中,并不保留上层协议的消息边界,也就是说,同一内容类型的多个上层消息可以被连接起来,封装在同一SSL明文记录块中。不同类型的消息内容还是会被分离处理,应用层数据的传输优先级一般比其它类型的优先级低。l 记录块的压缩和解压缩被切分后的记录块,将使用当前会话状态中定义的压缩算法来压缩。一般来说,都会有一个压缩算法被激活,但在初始化时都被设置成使用空算法(即不使用数据压缩)。压缩算法将SSL明文记录转化为SSL压缩记录。使用的压缩必须是无损压缩,而且不能使压缩后数据长度增加超过1024字节(在原来数据就已经

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!