失效的身份认证和会话管理

时间:2024-02-23 22:22:07

什么是身份认证❓

常见的身份认证可见于以用户名密码的形式进行系统登录,在安全性较高的情况下,还会伴有很多登录认证方式。

认证方式又有很多种,EX:静态口令、OTP(动态口令)、AD域认证、证书、验证码等。

身份认证的结果往往是获得一个令牌,通常放在Cookie中,之后对用户身份的识别根据这个授权的令牌进行识别,而不需要每次都要登陆。

什么是会话管理❓

客户端不断地向服务端发送请求并获得响应的一系列交互过程,请求并建立关联的过程被称为会话管理。

 

 

 在服务端第一次接收到客户端的请求的时候,会产生一个初始化的会话,并分配给该会话一个标识符。在后面的请求中,客户端的请求都必须包含此标识符,拥有此标识符,服务端才会把新的请求和对应的会话联系起来。

什么是Cookie❓

其实cookies是由网络服务器存储在你电脑硬盘上的一个txt类型的小文件,它和你的网络浏览行为有关,所以存储在你电脑上的cookies就好像你的一张身份证,你电脑上的cookies和其他电脑上的cookies是不一样的;cookies不能被视作代码执行,也不能成为病毒,所以它对你基本无害。

什么是失效的身份认证和会话管理❓

原理:程序员再开发Web程序是,开发人员往往只关注Web程序所需要实现的功能。常常会建立自定义的认证和会话方案。但是要正确的实现这些方案是很难的,产生的结果就是在用户:退出、密码管理、超时重登、记住我、密码找回、账户更新等方便出现很多漏洞。因为每一个功能的实现方式都不同,所以想找出这些漏洞有时就很困难。

危害:这些漏洞的存在,就会使得恶意用户有机可乘,可能会被窃取或操纵用户的会话和Cookie,进而模仿网络上的合法用户。

 

如何判断是否存在失效的身份验证和会话管理❓

首先需要明白,最需要保护的数据是认证凭证和会话ID。

1️⃣ 用户身份验证没有使用哈希(Hashing)或加密保护。

2️⃣ 认证凭证是否可猜测,或者能够能够通过薄弱的账户管理功能重写。