图解HTTP读书笔记.第八章
第八章
HTTP使用的认证方式
- BASIC认证(基本认证)
- DIGEST认证(摘要认证)
- SSL客户端认证
- FormBase认证(基于表单认证)
BASIC认证及其步骤
- 当需要BASIC认证时,服务器随着状态码401 Authorization Required,返回带WWW-Authenticate首部字段的响应。该字段内包含认证的方式(BASIC)即Request-URI安全域字符串(realm)
- 接收到状态码401的客户端为了通过BASIC认证,需要将用户ID和密码发送。发送的字符串内容由用户的ID和密码构成,两者之间以冒号链接后,再经过Base64编码处理。加入ID密码均为“guest”,经过Base64编码,最后结果则为Z3V1c3Q6Z3V1c3Q=。将这串字符写入首部字段Authorization后,发送请求。(输入密码账号即为此过程)
- 如果验证通过,则返回一条包含Requet-URI资源的响应
Base64不是解密方式,而是编码方式,可以明文解码。
DIGEST认证
DIGEST认证仍然使用质询响应的方式,但不会像BASIC那样直接发送明文密码
使用了质询响应方式(challenge/response)但不会像BSAIC那样发送明文密码
所谓质询响应方式是指,一开始一方会先发送认证请求给另一方,接着使用从另一方接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方法
因为发送给对方的指示响应摘要及由质询码产生的计算结果,密码泄露的可能性就降低了
- 请求需要认证的资源时,服务器会随着状态码401 Authorization Required,返回带着WWW-Authenticate首部字段的响应。该字段内包含响应方式认证所需的临时质询码(随机数,nonce)
首部字段WWW-Authenticate内必须包含realm和nonce这两个字段的信息。客户端就是依靠向服务器回送这两个值进行曲儿
Nonce是一种每次随401响应生成的任意随机字符串。该字符串通常推荐由Base64编码的十六进制数的组成形式。 - 接收到401状态码的客户端,返回的响应中包含DIGEST认证必须的首部字段Authorization信息
首部字段Authorization内必须包含username,realm,nonce,uri和response的字段信息。其中realm和nonce就是之前从服务器接收到的响应中的字段。
Username是realm限定范围内可进行认证的用户名,
Uri即Request-URI的值,但考虑到经过代理转发后的值可能被修改,因此事先会复制一份副本保存在uri中
response也可以叫做Response-Digest,存放经过MD5运算后的密码字符串,形成响应码。 - 接收到包含首部字段Authorization请求的服务器,会确认认证信息的正确性。认证通过后则返回Request-URI资源的响应
SSL客户端认证的认证步骤
需要事先将客户端证书发给客户端,且客户端必须安装证书
- 接收到认证资源的请求,服务器会发送certificate request报文,要求客户端提供客户端证书
- 用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器
- 服务器验证客户端证书,验证通过后方可领取证书内客户端的公来密钥,然后开始HTTPS加密通信
SSL客户端认证采用双因素认证
SSL客户端认证不会仅依靠证书完成认证。一般会和机遇表单认证组合形成一种双因素认证来使用。所谓双因素认证指的是,认证过程中不仅需要密码一个因素,还需要申请认证者提供其他持有信息,从而作为另一个因素。
第一个认证因素的SSL客户端证书用来认证客户端计算机,第二个认证因素的密码则用来确定这是用户本人所为。
基于表单的认证
客户端会向服务器上的Web应用程序发送登陆信息,按登陆信息的验证结果认证。
认证多半为基于表单认证
session管理及Cookie应用
基于表单认证的标准规范尚未有定论,一般使用Cookie来管理session(会话)
基于表单认证本身是通过服务器端的web应用,将客户端发送过来的用户ID和密码与之前登陆过的信息做匹配来进行验证
但鉴于HTTP是无状态协议,之前成功登陆的用户组状态无法通过协议层面保存下来,即无法实现状态管理,也无法区分他与其他客户。所以用Cookie来管理session。
图解HTTP读书笔记.第八章相关推荐
- 图解HTTP读书笔记(十)
图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. ...
- 《算法图解》读书笔记—像小说一样有趣的算法入门书
前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...
- 《Microsoft Sql server 2008 Internal》读书笔记--第八章The Query Optimizer(1)
<Microsoft Sql server 2008 Interna>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397.h ...
- 《算法图解》读书笔记
这是一本很入门的算法书,介绍的东西还算简单明了,大体补充了一些自己没理解的东西. 粗略地看了一下,感觉还是"纸上得来终觉浅,绝知此事要躬行!" <<算法图解>&g ...
- 《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5)
<Microsoft Sql server 2008 Internals>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397 ...
- 红宝书读书笔记 第八章
对象.类与面向对象编程 属性的类型 内部属性用两个中括号如[ [ Enumerable ] ] 开发者不能直接访问 数据属性 数据属性:数据属性包含一个保存数据值的位置.值会从这个位置读取,也会写入到 ...
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
8.1 云数据中心面临的安全挑战 因为云化和SDN化的网络特点(网元出现的位置随意性更大,出现和消失的时间不定): 首先会导致安全业务开通周期长: 其次SDN的自动化能力是现在安全业务所不能达到的,很 ...
- [swift 进阶]读书笔记-第八章:错误处理 C8P2 错误和函数参数
第八章:错误处理 8.2 抛出和捕获 本小节主要讲了概念do catch throws 相关的东西 先想想我们在上一节讲了Result类型 知识点1: swift不会返回一个Result来表示失败,而 ...
- 《算法图解》读书笔记(二)
第六章--图--广度优先搜索 1.解决最短路径问题(shortest-path problem)的算法被称为广度优先搜索(breadth first search). 2.图由节点(node)和边(e ...
最新文章
- Linux环境安装phpredis扩展
- sql group by 取每组符合条件_从零学SQL-经典面试题
- 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
- python知识:如何多窗口切换
- 我的Serverless实战——引领云计算的下一个十年
- 4.openstack之mitaka搭建glance镜像服务
- 微软Power BI报表服务器学习总览
- URL报错: unknown protocol
- [Ext JS 7]ClassRequire错误解决
- java 类型通配符_java中泛型之类型通配符(?)
- 亚马逊无人超市Amazon Go这次是真的真的开业了
- [导入]在asp.net中实现观察者模式,或有更好的方法(续)
- 开机选择启动项的快捷键
- vb还是python强大-最难学的七大编程语言,VB 第一,Python垫底,看你学的排第几...
- 物联网技术体系(一)
- 农林牧渔行业S2B2C系统网站提升品牌知名度,提升盈利水平
- web第六课:div标签和span标签
- 汤姆猫代码python_用树莓派实现会说话的汤姆猫
- 动目标检测算法——高斯混合背景建模
- 修改Thinkphp-cmf上传视频大小限制