`
yangzdpssoft
  • 浏览: 5867 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

web应用中,密码安全性的加密规则

阅读更多

问题描述:

在任何一个需要有用户参与的web应用中,就需要确保用户账号密码的安全性。比较常见的是MD5直接对密码加密,或者是通过加入随机数(盐值SALT)进行混淆加密。但这些规则对黑客来说并不是难事。那如何提高密码的安全性?

什么是MD5加密?

MD5的全称是Message-Digest Algorithm 5,MD5广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,来验证该用户的合法性。

什么是盐值加密?

非加盐值MD5等都可以通过大型的密码(如彩虹表)表进行对比解密,破解相对轻松。或者通过MD5解密网站可直接解密。由于使用加盐值以后的密码相当的安全,即便是你获得了其中的salt和最终密文,破解也是一个耗费相当多时间的过程,可以说是破解单纯MD5的好几倍。

什么是MD5(md5(password)+salt)加密规则?

由于使用加盐值以后的密码相当的安全,即便是你获得了其中的salt和最终密文,破解也是一个耗费相当多时间的过程,可以说是破解单纯MD5的好几倍,那么MD5(md5(password)+salt)加密规则的密文是如何产生的呢?

  • 首先我们得到的是明文的hash值
  • 进行计算获取MD5明文hash值
  • 随机生成加盐值并插入
  • MD5插入加盐值得到的hash
  • 得到最终的密文

加盐值的密文能否破解?

因为像windows hash(未进行syskey加密)、非加盐值MD5等都可以通过大型的密码(如彩虹表)表进行对比解密,所以相对而言相当的轻松,而带有加盐值的密文就相对而言复杂的多,现在的MD5表大概是260+G,如果加盐值的可能性有10000个,那么密码表的应该是MD5 size*10000,就可以解密出原MD5表能够解密的密码了,一些网站也提供了对应的salt解密,但是测试以后效果并不是非常好,如常规的admin888也未解密出,实在是遗憾,毕竟MD5本是不可逆的,带入随机值解密出最终密码的可能性就更低了,至少是相对大多数人而言的。

如果MD5盐值泄露?

如果没有盐,当我恰好知道自己的密码的MD5恰好和她的密码的MD5值一样,而我的密码是iloveu,那么她的密码一定就是iloveu。有了盐,即使我知道她的盐,因为MD5出来的差异大不同(Rule-4),所以我也无法知道她的密码,即使我们的密码是一样的。盐是要确保每个用户都是不一样的。一般的随机算法或时间函数都能实现这一点。

盐如果泄密了,黑客仍然能够通过穷举法得到我们的密码。方法是黑客使用与我们相同的加盐和搅拌方法,得到MD5值。所以就引入了一次一密的登录加密方法,一次一密不是我们每次都要改登录密码,而是我们每次登录之后,盐都是要重新计算,更新——我称这个是酱油。这给黑客破解我们的密码增加了相当大的难度。

是否还需要HTTPS安全证书协议?

其实,黑客不需要知道我们的密码,它们只需要截断消息,伪造session和消息,就能冒充我们。因此对于网上银行一类的网站,光有盐和酱油还是远远不够的。这就牵扯了ssl,证书,key,短信,token等等一堆的东西。网站不但要验证我们,我们也要验证网站。对于用户,你必须是我信赖的网站;对于网站,你必须是我的用户。

谁在用加盐值MD5算法?

目前多家的网站程序公司都已经加入了该算法,如常见的VBB论坛、discuz论坛等都采用了,甚至著名的Linux开源操作系统早已经加入了这种加密模式。可得而知,这种算法势必会在未来应用于更多的范围。

结论:

在普通的web应用中,尽量采用一次一密的登录加密方法。https安全证书是收费的,如果条件允许,可以结合https安全证书共同加密,提高加密级别。

 

分享到:
评论
2 楼 PTZhuf 2013-03-14  
好吧,经过使用wfetch发包测试,确实可以通过修改cookies中的jsessionid来伪造信息,伪装成已登录用户。

宙爷什么的~最棒了~~~~
1 楼 PTZhuf 2013-02-21  
“截断消息,伪造session和消息”
怎么伪造,http的请求不是低层是TCP/IP吗那个不是要先三次握手的。。。ip是无法伪造的,由网络供应商提供的路由决定。

相关推荐

    citrix 中文管理操作手册

    管理多个场中的应用程序及服务器 31 使用 Access Management Console 查看区域 31 管理用户会话和服务器进程 31 使用 Access Management Console 创建报告 31 使用 Access Management Console 配置应用程序访问权限 ...

    Windows Server 2003系统安全管理

    3.1 密码安全设置原则 3.1.1 不可让账号与密码相同 3.1 不可使用自己的姓名 3.1.3 不可使用英文词组 3.1.4 不可使用特定意义的日期 3.1.5 不可使用简单的密码 3.2 账户策略 3.2.1 密码策略 3.2.2 账户锁定策略 3.2.3...

    网站架构技术

    web应用防火墙 modsecurity NEC的 siteshell 网站安全漏洞扫描 信息加密技术及密钥安全管理 案例: CSDN 信息加密技术分类 单项散列加密 对称加密 非对称加密 密钥安全管理 将密钥和...

    vc++ 应用源码包_1

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    数据库应用程序实用攻略

    SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据...

    weixin027校园二手平台的设计与实现+ssm(源码+部署说明+演示视频+源码介绍+lw).rar

    采用了常见的安全措施,如密码加密存储、XSS攻击防护等。 性能优化可能包括数据库查询优化、缓存使用等。 附加资源: 源码:提供了完整的项目源代码。 部署说明:指导用户如何将应用部署到服务器上。 演示视频:...

    超级有影响力霸气的Java面试题大全文档

     对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。  Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless ...

    阐述大型数据库系统安全风险及策略.docx

    2.1.2 安全性,对数据信息进行加密处理,严格核实身份,避免安全风险。 2.1.3 完整性,要求保证数据信息在安全状态下的同时,确保内容、排序和程序的完好。 2.1.4 可调性,用户结合数据库运行状态进行适当调整和...

    Access+2000中文版高级编程

    13.6 应用自动化功能在Access中调用Outlook 415 13.6.1 创建Outlook邮件项目 416 13.6.2 在Access中创建Outlook任务项 417 13.6.3 从Access中向Outlook中输入联系人 419 13.6.4 从Access中删除Outlook中的...

    Access 2000中文版高级编程(part1)

    13.6 应用自动化功能在Access中调用Outlook 415 13.6.1 创建Outlook邮件项目 416 13.6.2 在Access中创建Outlook任务项 417 13.6.3 从Access中向Outlook中输入联系人 419 13.6.4 从Access中删除Outlook中的联系人...

    vc++ 应用源码包_2

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_6

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_5

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_3

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

Global site tag (gtag.js) - Google Analytics