身份认证信息
- 密码:只有本人才知道的字符串信息
- 动态令牌:是根据专门的算法生成一个不可预测的随机数字组合,一个密码使用一次有效;
- 数字证书:是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份;
- 生物认证:所谓生物识别技术就是,通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,利用人体固有的生理特性,(如指纹、脸象、虹膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。
- IC卡:也称智能卡(Smart card)、智慧卡(Intelligent card)、微电路卡(Microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式
常见认证方式
- BASIC认证(基本认证)\
- DIGEST 认证(摘要认证)\
- SSL 客户端认证\
- FormBase 认证(基于表单认证)
- BASIC认证(基本认证)
这不是加密处理,不需要任何附加信息就可以对BASIC进行解码,明文解码之后就是用户名和密码,在http等非加密的通信上,如果被窃听就会被盗,所以他不大常用。
- DIGEST 认证(摘要认证)
什么是DIGEST认证?
◆ 为弥补BASIC认证存在的弱点,从HTTP/1.1起就有了DIGEST认证。
◆ DIGEST认证同样使用质询/响应的方式,但不会像BASIC认证那样直接发送明文密码。\
一方先发认证要求给另一方,接着使用从另一方面收到的质询码生成响应码
DIGEST认证提供高于BASIC认证的安全等级,但是和https客户端相比还是很弱,DIGEST提供了密码被窃听的保护机制,但是不能防止用户伪装,密码被盗就会不安全,所以适用范围也有限。
- SSL 客户端认证
从使用用户ID和密码的认证方式来讲,只要二者的内容正确即可认证是本人的行为。但是如果用户ID和密码被盗,就很有可能被第三者冒充。利用SSL客户端认证则可以避免该情况的发生。
SSL 客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证, 服务器可确认访问是否来自已登录的客户端。(类似于银行网银,要求先输入用户名密码,成功还要下载证书,下载每次登录会把证书 通过http报文的方式发给服务器开始通信。)
具体步骤如下:
- 接收到需要认证资源的请求,服务器会发送Certificate Request报文,要求客户端提供客户端证书。
- 用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器
- 服务器验证客户端证书,验证通过后方可领取证书内客户端公开秘钥,然后开始HTTPS加密通信。
由于使用上的便利性及安全问题,HTTP协议标准提供的BASIC认证和DIGEST认证几乎都不怎么使用。另外SSL客户端认证虽然具有高度的安全等级,但因为导入及维持费用等问题。还未普及。比如SSH和FTP协议,服务器与客户端之间的认证是合乎标准规范的,并且满足了最基本的功能需求上的安全使用级别,因此这些协议的认证可以拿来直接使用。但是对于Web网站的认证功能,能给满足其安全使用级别的标准规范并不存在,所以只好使用由Web应用程序各自实现基于表单的认证方式。
- FormBase 认证(基于表单认证)\
- 使用最多的验证
- 基于表单的认证方法并不是在HTTP协议中定义的
- 使用由Web应该程序各自实现基于表单的认证方式
- 通过Cookie和Session的方式来保持用户的状态
基于表单的认证方法并不是在HTTP协议中定义的。客户端会向服务器上的Web应用程序发送登陆信息(Credential ),按登陆信息的验证结果认证。根据Web应用程序的实际安装,提供的用户界面及认证方式也各不相同。多数情况下,输入事先已登录的用户ID和密码登陆信息后,发送给Web应用程序.基于认证结果来决定认证是否成功。
基于表单认证本身是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登陆过的信息做匹配来进行认证的。但鉴于HTTP是无状态协议,之前已认证成功的用户状态无法通过协议层面保存下来。即,无法实现状态管理,因此即使当该用户下一次继续访问,也无法区分他与其他的用户。于是我们会使用Cookie来管理Session,以弥补HTTP协议中不存在的状态管理功能。