目录
1.1、简介:
验证机制是Web应用程序所有安全机制中最简单的一种机制
应用程序必须核实用户提交的用户名和密码正确与否。如果正确, 就允许用户登录,否则就禁止用户登录
验证机制也是应用程序防御恶意攻击的中心机制。它处在防御未授权访问的最前沿, 如果用户能够突破那些防御, 他们通常能够控制应用程序的全部功能, 自由访问其中保存的数据。缺乏安全稳定的验证机制, 其他核心安全机制(如会话管理和访问控制)都无法有效实施
1.2、特点:
1、机制设计困难
设计一个安全的验证机制其实没有想的那么简单, 实际上是一件极其麻烦的事情。在现实世界中, Web应用程序验证机制通常是最薄弱的环节, 由此攻击者能够获得未授权访问。我们曾见过无数应用程序由于验证机制存在各种缺陷而被攻破的实例
2、规避目标缺陷
Web应用程序的大量设计和执行缺陷,这些缺陷之所以存在, 主要是因为应用程序设计者和开发者无法完全规避针对验证机制实施攻击能够实现什么目标。在绝大多数情况下, 只要认真分析一下某个应用程序, 就可以发现一些潜在的漏洞, 其中任何一个都足以破坏应用程序
3、细小缺陷
许多最常见的验证漏洞实际上极其简单。任何人都可以在登录表单中输入字典中的单词, 试图猜测有效的密码。另外应用程序中也隐藏着一些细微的缺陷, 只有对复杂的多阶段登录机制进行仔细分析后才能发现它们并对其加以利用。
2.1、简介:
当执行验证机制时, Web应用程序开发者可以采用各种不同的技术
基于HTML表单的验证
多元机制, 如组合型密码和物理令牌
客户端SSL证书或智能卡
HTTP基本和摘要验证
使用NTLM或Kerberos整合Windows的验证
验证服务
Web应用程序中最常用的验证机制是使用HTML表单获取用户名和密码, 并将它们提交给应用程序。因特网上90%以上的应用程序都采用这种机制。
2.2、示例:
1、在更加注重安全的因特网应用程序(如电子银行)中, 这种基本的机制通常扩展到几个阶段,要求用户提交其他证书, 如PIN号码或从机密字中选择的字符(HTML表单仍主要用于获取相关数据)
2、最为注重安全的应用程序(如为进行巨额交易的个人提供服务的私人银行) 通常采用使用物理令牌的多元机制。这些令牌通常产生一组一次性口令, 或者基于应用程序指定的输入执行一个质询-响应功能。随着这种技术的成本日渐降低, 可能会有更多应用程序采用这种机制。但是, 许多这类解决方案实际上无法解决它们旨在解决的威胁, 主要是钓鱼攻击和使用客户端木马的威胁
3、一些Web应用程序使用客户端SSL证书或在智能卡中执行加密机制。由于管理和分配这些项目的成本非常高昂, 通常只有为数不多的安全极其顶要的应用程序才会使用它们
4、因特网上的应用程序很少使用基于HTTP的验证机制(基本、摘要和整合Windows的机制),企业内联网更常采用这种机制。组织内部用户提供标准的网络或域证书, 应用程序通过以上一种技术对其进行处理, 再允许用户访问企业应用程序
5、一些应用程序还采用Microsoft Passport之类的第三方验证服务, 但暂时这种机制尚未得到大量使用。大部分与验证有关的漏洞和攻击适用于上面的任何一种技术。绝大多数应用程序普遍采用基于HTML表单的验证