文章前言
身份验证是网站必不可少的一项业务功能设计,而身份验证机制的选择和设计也会带来诸多的安全问题,在本篇文章中我们将介绍网站使用的身份验证机制以及这些验证机制中存在的安全漏洞并对一些安全防护机制和设计中存在的缺陷和绕过方式进行简易的刨析和演示,同时会对不同身份验证机制中存在的固有安全漏洞进行分析,最后我们会介绍如何使身份验证机制尽可能安全的方法
身份验证
身份验证是验证用户或客户端身份的过程,网站可能会暴露给任何连接到互联网的人,这使得身份验证机制成为有效的网络安全不可或缺的一部分,身份验证使系统能够验证用户是否具有访问特定资源或者执行敏感操作的权限,在认证过程中用户需要提供身份因子来进行认证,常见的身份认证因子有以下几种:
- 知识因素: 用户知道的信息,比如:常见的密码、个人识别码(PIN))或密码、预先设定的安全问题答案
- 持有因素: 用户拥有的事物,比如:硬件令牌、智能卡、手机、USB密钥,通过设备上的特定代码、令牌或证书来证明身份
- 生物因素: 用户个人特质或特征,比如:指纹识别、面部识别、语音识别,以及诸如击键特征和语言模式等行为生物识别特征
- 时间因素: 用户在特定时间内的请求,比如:在限定时间内用户才能登录到服务,此时间之外的所有访问尝试将被阻止或限制
- 位置因素:用户个人所处的位置,比如:组织可以限制位于特定位置的特定设备进行身份验证尝试,具体取决于员工登录到其系统的方式和位置
认证授权
身份认证(Authentication)和授权(Authorization)是信息安全领域中两个重要的概念,它们主要用于管理对系统资源的访问