每天做个总结吧,坚持就是胜利!
/**
@date 2021-07-01
@description 《图解HTTP》-第八章-确认访问用户身份的认证
*/
复制代码
壹(序)
- 为确定用户是否真的具有访问系统的
权限
,需要核对用户本人才知道的或用户本人才有的信息,一般信息包括:
a. 密码:本人才知道的字符串
b. 动态令牌:本人持有的设备才会有的一次性信息
c. 数字证书:本人终端才有的信息
d. 生物认证:本人的虹膜或指纹
e. IC卡:仅限本人才持有的信息
复制代码
- HTTP/1.1使用的认证方式:
a. BASIC认证(基本认证)
b. DIGEST认证(摘要认证)
c. SSL客户端认证
d. FormBase认证(基于表单认证)
复制代码
- BASIC认证,
使用不多
4. DIGEST认证,使用不多
5. SSL客户端认证:借由HTTPS
的客户端证书
完成认证,服务器可以确认访问是否来自已登陆的客户端
6. SSL客户端认证步骤:为达到SSL客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书,客户端证书需要一定的费用
1. 接收到需要认证资源的请求,服务器会发送Certified Request报文,要求客户端提供证书
2. 用户选择将发送的客户端证书后,将客户端证书信息以Client Certified报文的方式发给服务器
3. 客户端证书验证成功后,服务器领取客户端证书中的公开密钥,开始HTTPS通信
复制代码
- SSL客户端认证采用
双因素认证
:即认证过程中不仅需要密码
这个因素,还需要申请认证者提供其他信息
,换言之,除了使用客户端证书
来认证客户端,还需要密码
来确认是用户本人操作 - 基于
表单认证
:客户端向服务器端发送登陆信息
,按登陆信息的验证结果来进行认证(比如Gmail的登陆) - 认证多半是基于表单认证(即输入用户名/密码的形式进行登陆)
- 使用
Cookie
来管理Session
:
1. 客户端使用用户名/密码形式进行登陆
2. 服务器发放用以识别用户的SessionID,向客户端返回响应时,在首部字段Set-Cookie中写入SessionID
3. 客户端接收到SessionID后,将其作为Cookie保存在本地,再次发送请求时,会自动发送Cookie,此时就带上了SessionID,服务器可根据接收到的SessionID识别用户及其状态
复制代码
11. 密码加盐(salt)
与散列值(hash):服务器生成一段随机
的足够长
的字符串,与密码组合
起来形成散列值,然后保存,这样即使两个用户的密码相同,也会因为salt
的不同导致散列值不同,这样可以很大程度上减少密码特征
,攻击者就很难利用自己的密码特征库进行破解
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END