基本认证:

// (a)客户端:查询
GET /cgi-bin/checkout?cart=17854 HTTP/1.1// (b)服务器:质询
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Shopping Cart"// (c)客户端:响应
GET /cgi-bin/checkout?cart=17854 HTTP/1.1
Authorization: Basic YnJpYW4tdG90dHk6T3ch// (d)服务器:成功,返回信息
HTTP/1.1 200 OK

基本认证的缺陷在于:账号和密码是明文发送,不安全.
摘要认证:

// (a)客户端:查询
GET /cgi-bin/checkout?cart=17854 HTTP/1.1// (b)服务器:质询
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digestrealm="Shopping Cart"qop="auth,auth-int"nonce="66C4EF58DA7CB956BD04233FBB64E0A4"// (c)响应
GET /cgi-bin/checkout?cart=17854 HTTP/1.1
Authorization: Digestusername="bri"realm="Shopping Cart"nonce="66C4EF58DA7CB956BD04233FBB64E0A4"uri="/cgi-bin/checkout?cart=17854"qop="auth"nc=0000001,cnonce="CFA9207102EA210FFC1120F6001110D073"response="E483C94FOB3CA29109A7BA83D10FE519"// (d)成功
HTTP/1.1 200 OK
Authorization-Info: nextnonce="29FE72D109C7EF23841AB914F0C3B831"qop= 0auth0rspauth="89F5A4CE6FA932F6C4DA120CEB754290"cnonce="CFA9207102EA210EA210FFC1120F6001110D073"....

摘要认证的3个组件:

// *摘要由以下3个组件计算出来:
// 1.由单向散列函数H(d)和摘要KD(s,d)组成的一对函数,其中s表示密码,d表示数据
// 2.一个包含了安全信息的数据块,包括密码,称为A1
// 3.一个包含了请求报文中非保密属性的数据块,称为A2

安全性相关的数据(A1)

// A1是密码和受保护信息的产物,它包含有用户名、密码、保护域和随机数等内容

与报文有关的数据(A2)

// 数据库A2表示的是与报文自身有关的信息,比如URL、请求方法和报文实体的主体部分
// A2有助于防止方法、资源或报文被篡改

摘要认证会话

// 客户端在响应保护空间的WWW-Authenticate质询时(请求账号、密码信息),会启动一个此保护空间的认证会话
// 在客户端收到另一条来自保护空间的任意一台服务器的WWW-Authenticate质询之前,认证会话会一直持续

预授权

// 在普通的认证方式中,事务结束之前,每条请求都要有一次 请求/质询 的循环
// 如果客户端事先知道下一个随机数是什么,就可以取消这个 请求/质询 循环
// 这样客户端就可以在服务器发出请求之前,生成正确的Authorization首部了.

对称认证

// RFC 2617扩展了摘要认证机制,允许客户端对服务器进行认证.
// 通过提供客户端随机数来实现的.
// 它是可选的.

增强保护质量

// 可以在三种摘要首部中提供qop(保护质量)字段:WWW-authenticate、Authorization和Authentication-Info
// 通过qop字段,客户端和服务器可以对不同类型及质量的保护进行协商.

多重质询

// 服务器可以对某个资源发起多重质询.如:服务器不了解客户端的能力,可以既提供基本认证质询,又提供摘要认证质询
// 客户端在面对多重质询时,必须以它所支持的最强的质询机制来应答

差错处理

// 在摘要认证中,如果某个指令或其值使用不当,或者缺少某个必要指令,就应该使用响应400 Bad Request
// 如果请求的摘要不匹配,就应该记录一次登录失败.某客户端连续多次失败可能说明有攻击者正在猜测密码

保护空间

// 阈值,与被访问服务器的标准根URL结合在一起,定义了保护空间
// 通过域可以将服务器上的受保护资源划分为一组保护空间,每个空间都有自己的认证机制 和/或 授权数据库

参考《HTTP权威指南》P308~P318

http --- 基本认证与摘要认证相关推荐

  1. [转]asp.net权限认证:摘要认证(digest authentication)

    本文转自:http://www.cnblogs.com/lanxiaoke/p/6357501.html 摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密 ...

  2. asp.net权限认证:摘要认证(digest authentication)

    摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web AP ...

  3. HTTP的认证方式之DIGEST 认证(摘要认证)

    核心步骤: 步骤 1: 请求需认证的资源时,服务器会随着状态码 401Authorization Required,返回带WWW-Authenticate 首部字段的响应.该字段内包含质问响应方式认证 ...

  4. (chap8 确认访问用户身份的认证) DIGES认证(摘要认证)

    1. 定义 为了弥补BASIC不加密的缺点,DIGEST同样适用质询/响应的方式,但不会像BASIC直接发送明文,给对方的只是相应摘要以及知讯码产生的计算结果,所以比起BASIC认证,密码泄露的可能性 ...

  5. RTSP鉴权认证之基础认证和摘要认证

    RTSP认证类型 基本认证(basic authentication):http 1.0提出的认证方案,其消息传输不经过加密转换因此存在严重的安全隐患: 摘要认证(digest authenticat ...

  6. java http 摘要认证_HTTP - 摘要认证

    基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与 ...

  7. rtsp摘要认证协议流程

    1. rtsp摘要认证协议流程 RTSP协议,全称Real Time Streaming Protocol,是应用层的协议,它主要实现的功能是传输并控制具有实时特性的媒体流,如音频(Audio)和视频 ...

  8. HTTP的几种认证方式之BASIC 认证(基本认证)

    目录 1.BASIC 认证(基本认证)的步骤 2.BASIC 认证的的缺点 3.Java + SpringBoot 实现 BASIC 认证的Demo 4.测试 5.注意事项 6.Java + Spri ...

  9. WebApi接口安全认证——HTTP之摘要认证

    摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法.它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全.从技术上讲,摘要认证是使用随机数来阻止 ...

最新文章

  1. com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'user'
  2. 使tomcat和lighttpd使用service启停
  3. docker中创建RabbitMQ并在管理端界面打开
  4. 看《长安十二时辰》可以了解哪些算法知识
  5. 社区发现SLPA算法
  6. Spring: Spring AOP 方面/切面(Aspect)
  7. python个人所得税怎么写分录_个人所得税的会计分录!
  8. c语言冒泡排序的两种实现方式,c语言中冒泡排序的实现原理是什么?
  9. 在线字符串转列表工具
  10. 30-40岁的程序员们,请把一些账算清楚,为过冬做准备(一)
  11. 武当功夫在现代2 视频
  12. Modelica资料整理
  13. 【Quant】80+面试,5个offer,Quant大神总结分享各家quant面试题
  14. zuul+ribbon实现负载均衡
  15. 100层楼和两个玻璃球的问题
  16. gitter 卸载_最佳的Gitter渠道:数据科学和机器学习
  17. so库方法的调用过程
  18. 从Idea到付诸实践,你必须要知道的
  19. networkx2.5知识梳理
  20. 【线下沙龙免费报名】像阿里巴巴一样工作_听干货分享欣赏阿里西溪园区风景

热门文章

  1. qt开发环境 - c++字符串操作
  2. mod游戏什么意思计算机,MOD运算
  3. 从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...
  4. NSURLSession的应用
  5. TypeScript泛型
  6. 五款帮助创业者迅速熟悉互联网创业的在线学习工具
  7. Java生鲜电商平台-深入订单拆单架构与实战
  8. 一个 Dubbo 服务启动要两个小时
  9. 天平称重【递归解法】
  10. variable 'xxx' unsafe in 'case'的处理