然后是数据加密,数据加密和数据认证正好相反,使用接收方的公钥对数据进行加密,传输的过程中,即使数据被黑客截获,也无法使用这些密文,接收方收到密文后,用自己的私钥对密文进行解密,从而完成了一次数据的加密传输。
通讯过程的示例如下图所示,Alice需要发给Bob一段加密的信息,因此Alice就用Bob的公钥对明文进行加密后传输给Bob,Bob收到信息后,使用自己的私钥对密文进行解密,就可以解密出明文,也就完成了对Alice的发来密文的解密过程。
目前的公开密钥算法主要有RSA和ECC,RSA是比较老的算法,基于大质数分解,速度较慢,ECC(椭
圆曲线)是最新的公钥加密算法,基于离散对数计算,速度比RSA快,安全性据说更高一些。
当然,上面的所说的技术只是最为基本的身份认证技术,只是适合一般网站应用,对于电子商务和银行来说需要更为复杂和权威的安全认证系统。目前比较流行的是PKI技术。PKI(Public Key In frastructure)是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。PKI技术已经被广泛应用于电子政务和电子商务,被证明是保证基于互联网的电子政务和电子商务安全的最佳解决方案。完整的PKI建设需要大量的资金和人力才能完成,这里就不多介绍了。
登录认证
MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是
因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。
安全登录系统的设计与实现方案
作者:andot时间:2005-12-15文档类型:原创来自:CoolCode.CN
对于Web应用程序,安全登录是很重要的。但是目前大多数Web系统在发送登录密码时是发送的明文,这样很容易被入侵者监听到密码。当然,通过SSL来实现安全连接是个不错的方法,但是很多情况下我们没办法将服务器设置为带有SSL的Web服务器。因此如果在登录系统中加入安全登录机制,则可以在没有SSL的Web服务器上实现安全登录。
要实现安全登录,可以采用下面三种方法,一种基于非对称加密算法,一种基于对称加密算法,最后一种基于散列算法。下面我们来分别讨论这三种方法。
非对称加密算法中,目前最常用的是RSA算法和ECC(椭圆曲线加密)算法。要采用非对称加密算法实现安全登录的话,首先需要在客户端向服务器端请求登录页面时,服务器生成公钥和私钥,然后将公钥随登录页面一起传递给客户端浏览器,当用户输入完用户名密码点击登录时,登录页面中的JavaScript调用非对称加密算法对用户名和密码用用公钥进行加密。然后再提交到服务器端,服务器端利用私钥进行解密,再跟数据库
中的用户名密码进行比较,如果一致,则登录成功,否则登录失败。
看上去很简单,但是这里有这样几个问题。目前RSA算法中,1024-2048位的密钥被认为是安全的。如果密钥长度小于这个长度,则认为可以被破解。但这样的长度超过了程序设计语言本身所允许的数字运算范围,需要通过模拟来实现大数运算。而在Web系统的客户端,如果通过JavaScript来模拟大数运行的话,效率将会是很低的,因此要在客户端采用这样的密钥来加密数据的话,许多浏览器会发出执行时间过长,停止运行的警告。然而,解密或者密钥生成的时间相对于加密来说要更长。虽然解密和密钥生成是在服务器端执行的,但是如果服务器端是PHP、ASP这样的脚本语言的话,它们也将很难胜任这样的工作。ECC算法的密钥长度要求比RSA算法要低一些,ECC算法中160位的密钥长度被认为与RSA
算法中1024位的密钥长度的安全性是等价的。虽然仍然要涉及的模拟大数运算,但ECC算法的密钥长度的运算量还算是可以接受的,但是ECC算法比RSA算法要复杂的多,因此实现起来也很困难。
对称加密算法比非对称加密算法要快得多,但是对称加密算法需要数据发送方和接受方共用一个密钥,密钥是不能通过不安全的网络直接传递的,否则密钥和加密以后的数据如果同时监听到的话,入侵者就可以直接利用监听到的密钥来对加密后的信息进行解密了。
那是不是就不能通过对称加密算法实现安全登录呢?其实只要通过密钥交换算法就可以实现安全登录了,常用的密钥交换算法是Diffie-Hellman密钥交换算法。我们可以这样来实现密钥的安全传递,首先在客户端向服务器端请求登录页面时,服务器端生成一个大素数p,它的本原根g,另外生成一个随机数X a,然后计算出Y a=g X a mod p,将p、g、Y a连同登录页面一起发送给客户端,然后客户端也生成一个随机数X b,计算Y b=g X b mod p,然后再计算K=Y a X b mod p,现在K就是密钥,接下来就可以用K作密钥,用对称加密算法对用户输入进行加密了,然后将加密后的信息连同计算出来的Y b一同发送给服务器端,服务器端计算K=Y b X a mod p,这样就可以得到跟客户端相同的密钥K 了,最后用客户端加密算法的相应解密算法,就可以在服务器端将加密信息进行解密了,信息解密以后进行比较,一致则登录成功,否则登录失败。需要注意的时候,这里服务器端生成的随机数X a和客户端生成的随机数X b都不传递给对方。传递的数据只有p、g、Y a、Y b和加密后的数据。
但是如果我们不采用加密算法而采用散列算法对登录密码进行处理的话,可以避免被直接解密出原文,但是如果直接采用MD5或者SHA1来对登录密码进行处理后提交的话,一旦入侵者监听到散列后的密码,则不需要解密出原文,直接将监听到的数据提交
给服务器,就可以实现入侵的目的了。而且,目前MD5算法已被破解,SHA1算法则被证明从理论上可破解,就算采用离线碰撞,也可以出与原密码等价的密码来。所以直接采用MD5或者SHA1来对密码进行散列处理也是不可行的。
但是如果在散列算法中加入了密钥,情况就不一样了。hmac算法正好作了这样的事情,下面我们来看看如何用hmac算法实现安全登录。首先在客户端向服务器端请求登录页面时,服务器端生成一个随机字符串,连同登录页面一同发送给客户端浏览器,当用户输入完用户名密码后,将密码采用MD5或者SHA1来生成散列值作为密钥,服务器端发送来的随机字符串作为消息数据,进行hmac运算。然后将结果提交给服务器。之所以要对用户输入的密码进行散列后再作为密钥,而不是直接作为密钥,是为了保证密钥足够长,而又不会太长。服务器端接受到客户端提交的数据后,将保存在服务器端的随机字符串和用户密码进行相同的运算,然后进行比较,如果结果一致,则认为登录成功,否则登录失败。当然如果不用hmac算法,直接将密码和服务器端生成的随机数合并以后再做MD5或者SHA1,应该也是可以的。
这里客户端每次请求时服务器端发送的随机字符串都是不同的,因此即使入侵者监听到了这个随机字符
串和加密后的提交的数据,它也无法再次提交相同的数据通过验证。而且通过监听到的数据也无法计算出密钥,所以也就无法伪造登录信息了。
对称和非对称加密算法不仅适用于登录验证,还适合用于最初的密码设置和以后密码修改的过程中,而散列算法仅适用于登录验证。但是散列算法要比对称和非对称加密算法效率高。
全新功能的Hermes刮起升级旋风
近日,21CN自主研发的千万级用户规模的系统—Hermes大容量电子邮
件系统(简称:Hermes系统),经过为期两年的稳定运行后,正式登陆中国服务市场。Hermes系统是国内最新一代系统,系统架构及应用功能设计融合了21CN9年运营的经验并充分吸取了市场上已有产品的各项优点,运行以来受到广大用户好评。此次企业版正式推出,备受业界及广大企业用户关注,相信必将延续之前的上佳表现
在针对企业用户的邮箱服务中,各大邮件运营商之间的竞
争日趋激烈,而邮件系统更新换代、应用功能升级就成为运营商击败竞争对手、迅速占领市
场的杀手锏。与此同时,激烈的竞争也让客户在选择时,无论从产品本身还是品牌
字符串长度计算工具
上都拥有了比以往更加广阔的空间。因此,各大运营商不遗余力推动全新邮箱技术
的研发来满足客户的需求。作为“中国领先的电信级专家”,21CN在此背景下潜心
多年推出全新的,以巩固“中国第一品牌”的地位。
系统安全性、可靠性如何?收发速度如何?够不够稳定,会不会经常性的服务
中断甚至丢失邮件?这是每个企业客户选用邮件服务时最关注的问题。Hermes系统已经彻
底解决了用户这些后顾之忧。
高可靠性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。