|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。平安|计划关于Web使用程序,平安登录是很主要的。可是今朝年夜多半Web体系在发送登录暗码时是发送的明文,如许很简单被进侵者监听到暗码。固然,经由过程SSL来完成平安毗连是个不错的办法,可是良多情形下我们没举措将服务器设置为带有SSL的Web服务器。因而假如在登录体系中到场平安登录机制,则能够在没有SSL的Web服务器上完成平安登录。
要完成平安登录,能够接纳上面两种办法,一种基于非对称加密算法,另外一种基于hmac算法。上面我们来分离会商这两种办法。
非对称加密算法中,今朝最经常使用的是RSA算法和ECC(椭圆曲线加密)算法。要接纳非对称加密算法完成平安登录的话,起首必要在客户端向服务器端哀求登录页面时,服务器天生公钥和私钥,然后将公钥随登录页面一同传送给客户端扫瞄器,当用户输出完用户名暗码点击登录时,登录页面中的JavaScript挪用非对称加密算法对用户名和暗码用用公钥举行加密。然后在提交到服务器端,然后服务器端使用私钥举行解密,然后跟数据库中的用户名暗码举行对照,假如分歧,则登录乐成,不然登录失利。
看上往很复杂,可是这里有如许几个成绩。今朝RSA算法中,1024-2048位的密钥被以为是平安的。假如密钥长度小于这个长度,则以为能够被破解。但如许的长度凌驾了程序计划言语自己所同意的数字运算局限,必要经由过程摹拟来完成年夜数运算。而在Web体系的客户端,假如经由过程JavaScript来摹拟年夜数运转的话,效力将会是很低的,因而要在客户端接纳如许的密钥来加密数据的话,很多扫瞄器会收回实行工夫太长,中断运转的告诫。但是,解密大概密钥天生的工夫相对加密来讲要更长。固然解密和密钥天生是在服务器端实行的,可是假如服务器端是PHP、ASP如许的剧本言语的话,它们也将很难胜任如许的事情。ECC算法的密钥长度请求比RSA算法要低一些,ECC算法中160位的密钥长度被以为与RSA算法中1024位的密钥长度的平安性是等价的。固然仍旧要触及的摹拟年夜数运算,但ECC算法的密钥长度的运算量还算是能够承受的,可是ECC算法比RSA算法要庞大的多,因而完成起来也很坚苦。
对称加密算法比非对称加密算法要快很多,为何不接纳对称加密算法呢?由于对称加密算法必要数据发送方和承受方共用一个密钥,因而假如要在Web体系的发送方也就是客户端扫瞄器对暗码举行加密的话,就必要先从服务器端猎取密钥,但密钥的传送大概会被监听,加密今后的数据假如也被同时监听到的话,进侵者就能够间接使用监听到的密钥来对加密后的信息举行解密了。
可是假如我们不接纳加密算法而接纳散列算法对登录暗码举行处置的话,能够制止被间接解密出原文,可是假如间接接纳MD5大概SHA1来对登录暗码举行处置后提交的话,一旦进侵者监听到散列后的暗码,则不必要解密出原文,间接将监听到的数据提交给服务器,就能够完成进侵的目标了。并且,今朝MD5算法已被破解,SHA1算法例被证实从实际上可破解,就算接纳离线碰撞,也能够找出与原暗码等价的暗码来。以是间接接纳MD5大概SHA1来对暗码举行散列处置也是不成行的。
可是假如在散列算法中到场了密钥,情形就纷歧样了。hmac算法恰好作了如许的事变,上面我们来看看怎样用hmac算法完成平安登录。起首在客户端向服务器端哀求登录页面时,服务器端天生一个随机字符串,连同登录页面一同发送给客户端扫瞄器,当用户输出完用户名暗码后,将暗码接纳MD5大概SHA1来天生散列值作为密钥,服务器端发送来的随机字符串作为动静数据,举行hmac运算。然后将了局提交给服务器。之以是要对用户输出的暗码举行散列后再作为密钥,而不是间接作为密钥,是为了包管密钥充足长,而又不会太长。服务器端承受到客户端提交的数据后,将保留在服务器真个随机字符串和用户暗码举行不异的运算,然落后行对照,假如了局分歧,则以为登录乐成,不然登录失利。
这里客户端每次哀求时服务器端发送的随机字符串都是分歧的,因而即便进侵者监听到了这个随机字符串和加密后的提交的数据,它也没法再次提交不异的数据经由过程考证。并且经由过程监听到的数据也难以估计出密钥,以是也就没法假造登录信息了。
因而今朝来看,用hmac算法来完成平安登录体系的办法是最可行的。
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 |
|