《图解HTTP》-第八章-确认访问用户身份的认证

每天做个总结吧,坚持就是胜利!

    /**
        @date 2021-07-01
        @description 《图解HTTP》-第八章-确认访问用户身份的认证
    */
复制代码

壹(序)

  1. 为确定用户是否真的具有访问系统的权限,需要核对用户本人才知道的或用户本人才有的信息,一般信息包括:
a. 密码:本人才知道的字符串
b. 动态令牌:本人持有的设备才会有的一次性信息
c. 数字证书:本人终端才有的信息
d. 生物认证:本人的虹膜或指纹
e. IC卡:仅限本人才持有的信息
复制代码
  1. HTTP/1.1使用的认证方式:
a. BASIC认证(基本认证)
b. DIGEST认证(摘要认证)
c. SSL客户端认证
d. FormBase认证(基于表单认证)
复制代码
  1. BASIC认证,使用不多

BASIC认证.jpg
4. DIGEST认证,使用不多
DIGEST认证.jpg
5. SSL客户端认证:借由HTTPS客户端证书完成认证,服务器可以确认访问是否来自已登陆的客户端
6. SSL客户端认证步骤:为达到SSL客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书,客户端证书需要一定的费用

1. 接收到需要认证资源的请求,服务器会发送Certified Request报文,要求客户端提供证书
2. 用户选择将发送的客户端证书后,将客户端证书信息以Client Certified报文的方式发给服务器
3. 客户端证书验证成功后,服务器领取客户端证书中的公开密钥,开始HTTPS通信
复制代码
  1. SSL客户端认证采用双因素认证:即认证过程中不仅需要密码这个因素,还需要申请认证者提供其他信息,换言之,除了使用客户端证书来认证客户端,还需要密码来确认是用户本人操作
  2. 基于表单认证:客户端向服务器端发送登陆信息,按登陆信息的验证结果来进行认证(比如Gmail的登陆)
  3. 认证多半是基于表单认证(即输入用户名/密码的形式进行登陆)
  4. 使用Cookie来管理Session
1. 客户端使用用户名/密码形式进行登陆
2. 服务器发放用以识别用户的SessionID,向客户端返回响应时,在首部字段Set-Cookie中写入SessionID
3. 客户端接收到SessionID后,将其作为Cookie保存在本地,再次发送请求时,会自动发送Cookie,此时就带上了SessionID,服务器可根据接收到的SessionID识别用户及其状态
复制代码

Session.jpg
11. 密码加盐(salt)与散列值(hash):服务器生成一段随机足够长的字符串,与密码组合起来形成散列值,然后保存,这样即使两个用户的密码相同,也会因为salt的不同导致散列值不同,这样可以很大程度上减少密码特征,攻击者就很难利用自己的密码特征库进行破解

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享