问题描述:
在任何一个需要有用户参与的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安全证书共同加密,提高加密级别。
相关推荐
本资料"WEB应用安全(ppt)"将从HTTP请求和HTTP响应两个关键角度探讨Web应用的安全性。 首先,我们来详细了解一下HTTP请求。HTTP是Web应用的基础,它定义了客户端(通常是浏览器)与服务器之间通信的格式和规则。当...
### Web开发安全规范知识点 #### 一、概述 **背景简介** 随着互联网的普及和Web技术的快速发展,Web安全面临的挑战日益严峻。...通过上述规范的实施,可以显著提高Web应用的安全性,减少因安全漏洞导致的风险。
在Spring Security中,密码的加密是非常关键的一部分,因为这直接关系到用户数据的安全性。本示例将介绍如何在Spring Security中自定义密码加密方式,以及如何处理认证成功和失败的情况。 首先,我们需要了解Spring...
Web安全性测试是针对Web应用程序进行的一种评估过程,旨在发现并修复可能导致数据泄露、系统破坏或非法访问的潜在安全漏洞。这个过程涵盖了多个关键领域,以确保Web应用在运行时能够提供安全的用户体验。 首先,...
当用户提交新密码后,Web应用会通过安全的方式(如SSL/TLS加密)将请求发送到AD服务器,服务器验证请求并更新用户的密码信息。同时,为了审计和安全目的,这些修改会被记录在日志中。 在部署AD自助修改密码时,还...
在IT行业中,尤其是在Web开发领域,`web.config`文件是一个至关重要的配置文件,它用于存储ASP.NET应用程序的各种配置信息,如数据库连接字符串、身份验证设置、URL重写规则等。当这些信息涉及到安全性,比如数据库...
在网络安全领域,渗透测试是确保Web应用程序安全的关键步骤。OWASP(开放网络应用安全项目)的Web应用程序安全测试指南...通过深入理解和实践这些测试方法,可以有效地提高Web应用的安全性,减少被黑客攻击的风险。
《Web应用程序安全手册》是一本全面探讨Web应用安全的指南,旨在帮助开发者、系统管理员以及安全专业人士理解并解决Web应用中的安全问题。Web应用程序在现代社会中扮演着至关重要的角色,但同时也面临着各种安全威胁...
在.NET框架中,Web.config文件是ASP.NET应用程序的配置文件,它存储了应用程序的各种设置,如...通过学习和实践这些内容,开发者可以更好地理解和掌握C#中Web.config的加密与解密技术,从而提高应用程序的安全性。
4. 加密传输:使用HTTPS等加密协议,确保数据在传输过程中的安全性。 5. 日志记录与审计:完整记录系统活动,以便追踪异常行为和调查安全事件。 6. 安全配置:正确配置服务器、数据库和其他组件,避免默认密码和公开...
渗透性测试还涉及到Web应用防火墙(WAF)的评估。WAF可以检测并阻止恶意流量,但有时也会误报,因此需要确保其规则设置得当。此外,测试者还需要了解如何绕过WAF,以发现潜在的未被防护的漏洞。 在Web安全中,身份...
Web服务的安全性是确保网络应用数据安全和用户隐私的关键领域,尤其在ASP.NET框架下,开发者需要采取多种措施来保护其应用程序。以下是一些主要的安全机制及其详细解释: 1. **基本验证和简要验证**:这两种是ASP...
Web应用程序自身的安全性也不容忽视。例如,SQL注入、跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是常见的Web攻击方式,开发者应当遵循OWASP(开放网络应用安全项目)的最佳实践,对输入进行验证和过滤,防止这些...
除了上述操作,还有其他策略可以进一步增强Web应用的安全性。例如,定期更新和打补丁以修复已知的安全漏洞;启用SSL/TLS加密以保护数据传输;使用防火墙和入侵检测系统来监控和阻止异常流量;以及实施严格的访问...
综上所述,通过在SSM框架中融合Shiro安全框架以及集成Web漏洞防护代码,可以显著提升Web应用的安全性。这种方法不仅可以有效地抵御常见的Web安全威胁,还能确保系统的稳定性和可靠性。未来的研究可以进一步探索更多...
对称加密速度快,适合大量数据的加密,而非对称加密安全性更高,但计算复杂度较高,通常用于密钥交换和数字签名。 在网络信任体系中,数字签名和证书机制是密码技术的重要应用。数字签名利用非对称加密技术,既能...
在本节中,我们将深入探讨ASP.NET Web应用程序的安全性,特别是在使用Visual Studio 2005开发环境下的安全实践。ASP.NET是微软推出的用于构建Web应用程序的框架,它提供了丰富的功能来确保应用的安全性,包括身份...
随着Web应用的复杂性和依赖性的增加,Web安全变得越来越重要。《白帽子讲Web安全》这本书深入浅出地讲解了这些概念和技术,对于开发者、安全工程师以及对网络安全感兴趣的任何人都是一份宝贵的资源。通过阅读和理解...
在Web应用中,正确地实现密码输入控件对于提高用户体验和保障数据安全至关重要。本文将深入探讨JavaScript在创建和管理密码输入控件方面的核心知识点。 1. **HTML基础** 在HTML中,`<input type="password">`标签...
应用密码学是信息安全领域的一个核心学科,它涉及使用复杂的数学算法来保护数据的安全性和隐私性。密码学能够确保数据在存储和传输过程中的机密性、完整性、真实性和不可否认性。本部分内容将详细探讨应用密码学的...