目录第一章引言………………………………………………………….1第二章网络安全…………………………………………………….2第三章加密技术…………………………………………………….5第四章MD5工作原理……………………………………………….8第五章MD5算法…………………………………………………….10结束语…………………………………………………………………13致谢……………………………………………………………………14参考文献………………………………………………………………15附录源代码……………………………………………………….16WEB上用户口令安全传输的研究与实现数学计算机科学学院摘要:主要阐述利用MD5加密算法来保证WEB上用户口令的安全传输。首先利用MD5对用户口令进行一次加密,然后再利用MD5对该密文和一个随机数组成的信息进行加密,形成网络上传输的用户口令,避免用户口令以明文的形式在WEB上进行传输,从而有效地提高认证系统中口令传输的安全性。关键词:口令;MD5算法;网络安全ThestudyandimplementationoftheSecureTransferofUser’sPasswordonWEBSchoolofMathematicsandComputerScienceAbstract:Inthispaper,wemainlyexpoundhowtotransferourpasswordinsecurityonWEBbymeansofMD5.Firstly,weencryptthepasswordwithMD5andaddarandomnumbertotheencryptedpasswordtoformanewmessage.ThenencryptthemessagewithMD5againtohaveanewencryptedpasswordthatistobetransferredonWEB.EnhancesthesecurityofauthenticationsystembasedonWEBeffectively.Keywords:password;MD5algorithm;networksecurity1第一章引言随着计算机网络的发展,网络安全问题受到越来越大的关注。网络安全一直是Internet的一个薄弱环节,因为当初设计TCP/IP时并没有考虑网络的安全机制。如Telnet、Ftp、Email和基于WEB的应用系统等都是明文方式传输数据包,其中就有用户的帐号和口令等非常重要的数据。而这些数据包很容易被人通过特定的软件或硬件工具截取,通过分析数据包的内容,从而可以获得用户的帐号和口令,然后进行一些非法的活动。因此,用户ID和口令的安全传输的问题越来越受到人们的关注。Web程序使用一种称为会话状态管理(sessionstatemanagement)的技术来跟踪浏览器与服务器之间的交互,正如超文本传输协议所规定的那样,每个浏览器的请求都独立于其他浏览器,一个Web程序必须使用一些技巧,如cookie,隐藏的表格字段,或URL重写,来识别其与特定的浏览器的特定的会话。大多数服务器端开发环境如ASP,PHP,ColdFusion等使用cookie。使用会话状态管理的问题是从根本上说它是不安全的,一个黑客可以在服务器和用户浏览器之间截取用来管理会话状态的cookie,表格字段值,或是URL,一旦得手,他就可以利用这些信息来接管用户的会话。大多数服务器端的脚本开发环境允许你减少这种危险,例如你可以指定cookie的极短失效时间,使用难预测的会话状态信息。然而最安全的还是使用安全套接层(SSL),购买它后,你就可以不仅保护用户口令,还可以保护会话状态管理信息。如果你不使用SSL,让用户在你的程序中的安全敏感页面中每次都重新认证是个好主意,但是从用户角度出发,这实在是太麻烦了。最后,你必须考虑你和你的用户究竟愿意承担多大的风险。如果密码口令被曝光的危险很高,还是用SSL来构建你的程序吧,如果你不能使用SSL,那么就使用基于MD5的登陆过程。这至少能保护你的用户的口令。此外,选择一种允许保护会话状态信息的服务器端脚本技术。通常,当用户不使用SSL(即普通HTTP)登陆时,他(她)的口令从离开浏览器起至到达服务器为止始终是以明文状态暴露的。然而,利用一种称为单向函数的数学函数的帮助,我们可以设计一种并不暴露用户口令的登陆计划。一个函数是一种将集合A的元素映射到集合B的方法,每个集合A中的元素都对应于集合B中的一个确定元素。而一个单向函数的作用就是使逆向的推算非常困难,即,给定集合B的一个元素,很难从集合A中决定哪个元素(如果存在的话)是映射到B集合中的这个元素的。用户试图登陆到一个Web应用程序时,服务器端脚本提供用户一个包含有从数十亿可能值中产生的随机数的表格,当用户在此登陆表格中输入她们的ID和口令,客户端的脚本将这个随机数值添加到口令后并加以MD5单向运算。通过MD5算法对用户口令进行加密,可以有效提高用户口令在WEB上传输的安全性。2第二章网络安全2.1网络安全原则最初的计算机应用程序通常没有或很少安全性,这种情况一直持续了多年,知道人们真正认识到数据的重要性之前,人们虽然知道计算机数据有用,却没有加以保护。开发处理财务和个人数据的计算机应用程序时,对安全性产生了前所未有的需求。人们认识到,计算机数据是现代生活的重要方面。因此,安全的不同领域开始受到重视。网络安全原则包括保密性、完整性、鉴别、不可抵赖、访问控制和可用性等原则。保密性原则要求做到只有发送人和所有的接收人才能访问消息内容。如果非法人员能够访问消息内容,则破坏了保密性原则。鉴别机制可以建立身份证明,鉴别过程保证正确标识电子消息或文档来源。消息内容在发送方发出后和到达所有接受方之前发生改变时,就会失去消息的完整性。不可抵赖性是不允许发送消息者拒绝承认发送消息。访问控制原则确定谁能访问什么。可行性原则指定要随时向授权方提供资源。2.2网络面临的安全威胁计算机网络上的通信面临以下的4种威胁:(1)截获:攻击者从网络上窃听听人的通信内容。(2)中断:攻击者有意中断他人在网络上的通信。(3)篡改:攻击者故意篡改网络上传送的报文。(4)伪造:攻击者伪造信息在网络上传送。这些攻击又分为主动攻击和被动攻击。1.被动攻击被动攻击的攻击者只是窃听或监视数据传输,即取得中途的信息。这里的被动攻击者不对数据进行任何修改。事实上,这也使被动攻击很难被发现。因此,处理被动攻击的一般方法是防止而不是探测与纠正。图2.1又把被动攻击分成两类,分别是消息内容泄露和通信量分析。图2.1被动攻击消息内容泄露很容易理解。当发送保密电子邮件消息时,我们只希望对方才能访问,否则消息内容会被别人看到。利用某种安全机制,可以防止消息内容泄露。但是,如果传递许多这类消息,则攻击者可以猜出某种模式的相似性,从而猜出消息内容。被动攻击(截获)消息内容泄露通信量分析32.主动攻击与被动攻击不同的是,主动攻击以某种方式修改消息内容或生成假消息。这些攻击很难防止。但是,这时可以发现和恢复的。这些攻击包括中断、修改和伪造。在主动攻击中,会以某种方式修改消息内容。◆中断攻击又称为伪装攻击。◆修改攻击又可以分为重放攻击和改变消息。◆伪造会产生拒绝服务。图2.2显示了这个分类。图2.2主动攻击2.3口令安全性分析口令攻击是一个一般性的术语,它描述各种行为,包括任何解密、破译以及删除口令的行为,或者任何绕道口令安全机制的其他方法。在计算机的安全行方面,口令攻击时比较原始的。事实上,口令解密是任何电脑网络攻击者新手和解密者首先要学习的内容,这主要是因为口令解密只需要很少的技术和经验。在大多数情况下,一个脆弱的口令安全机制会危及整个系统的安全。攻击在开始时只获得有限次的访问权,通过攻击不弱的口令安全机制,所获得的访问权迅速扩大。通常情况下,仅仅通过口令的攻击,攻击者就可以获得登录的访问权,并且夺得对多个主机的控制权。网络攻击者为了获得目标系统的口令文件,试图以离线的方式破解口令。他们首先猜一个口令,然后,用于源文件系统中一样的加密算法来加密此口令,将加密的结果与文件中的加密口令比较,若相同则猜对了。因为很少有用户使用随即组合的数字和字母来做口令,许多用户使用的口令都可在一个特殊的黑字典中找到。在这种口令攻击中,入侵者并不穷举所有的字母数字的排列组合来猜测口令,而仅仅用网络攻击者字典中的单词来尝试。网络攻击者们已经构造了这样的字典,不仅包括了英语或其他语言中的常见单词,还包括了网络攻击者词语、拼写有误的单词和一些人名。已有的网络攻击字典包括了大约200000多个单词,用来猜测口令非常成功,而对现代的计算机来说,尝试所有200000多个单词是很轻松的事。主动攻击中断(伪装)修改伪造(拒绝服务)重放攻击改变消息攻击4网络攻击者只要获得一个用户的口令,尤其是特权用户的口令,就可以为所欲为了。防范的方法很简单,只要是自己的口令不在英语字典中,且不可能被别人猜测出就可以了。2.4口令攻击手段口令安全是保卫自己系统安全的第一道防线。人们总是试图通过猜测合法用户的口令来获得没有授权的访问。两个通行的做法,一是从存放了许多常用口令的数据库中选取一些“口令”来尝试,另一个做法是设法偷走口令文件,然后通过口令翻译工具来破译这些加密的口令。通常情况下,网络攻击者都喜欢等到一个系统的口令文件。在许多UNIX系统中,要得到口令文件并不是那么容易,因为口令文件只有超级用户可以读写。因此,口令文件如果能够被盗走,在绝大多数情况下,说明系统的超级用户的权限,在某种特定情况下,可以被攻击者直接或者地行使。攻击者之所以想到的系统存放口令的文件,是因为他们可以从口令文件中,破译出一些口令来,以便以后能够以合法的用户访问这台机器。因此,当超级用户发现系统中的口令文件被非法访问过时,一定要更换所有的用户的口令。当一个攻击者得到了初始的访问权时,就会到处查看,寻找系统中的其他安全漏洞,希望得到进一步的特权。因此,使系统安全的第一步便是是那些未被授权的用户不能进入系统。这就要教育用户懂得什么事口令安全并遵守安全规定。防止入侵者读取口令文件,可以减少他们登录进入系统的可能性。这需要人们知道的是,取得口令文件并不一定要登录进系统,而没有登录进系统照样可以进行许多攻击活动。口令攻击的主要有以下几种手段。1、社会工程学(SocialEngineering),通过人际交往这一非技术手段以欺骗、套取的方式来获得口令。避免此类攻击的对策是加强用户意识。2、猜测攻击。首先使用口令猜测程序进行攻击。口令猜测程序往往根据用户定义口令的习惯猜测用户口令,像名字缩写、生日、宠物名、部门名等。在详细了解用户的社会背景之后,黑客可以列举出几百种可能的口令,并在很短的时间内就可以完成猜测攻击。3、字典攻击。如果猜测攻击不成功,入侵者会继续扩大攻击范围,对所有英文单词进行尝试,程序将按序取出一个又一个的单词,进行一次又一次尝试,直到成功。据有的传媒报导,对于一个有8万个英文单词的集合来说,入侵者不到一分半钟就可试完。所以,如果用户的口令不太长或是单词、短语,那么很快就会被破译出来。4、穷举攻击。如果字典攻击仍然不能够成功,入侵者会采取穷举攻击。一般从长度为1的口令开始,按长度递增进行尝试攻击。由于人们往往偏爱简单易记的口令,穷举攻击的成功率很高。如果每千分之一秒检查一个口令,那么86%的口令可以在一周内破译出来。5、混合攻击,结合了字典攻击和穷举攻击,先字典攻击,再暴力攻击。5第三章加密技术3.1几种常见的加密技术加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公