《http权威指南》读书笔记12
概述
最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。
摘要认证
1.安全使用基本认证的唯一方式是将其与SSL配合使用。
2.摘要认证相比基本认证的改进:
- 永远不会以明文方式在网络上发送密码。
- 可以防止恶意用户捕获并重放认证的握手过程。
- 可以有选择地防止对报文内容的篡改。
- 防范其他几种常见的攻击方式。
3.摘要认证的基本原理是,客户端不会发送密码,而是会发送一个“指纹”或密码的“摘要”,这是密码的不可逆扰码。客户端和服务器都知道这个密码,因此服务器可以验证所提供的摘要是否与密码相匹配。只拿到摘要的话,除了将所有的密码都拿来试试之外,没有其他方法可以找出摘要是来自哪个密码。
4.摘要是“对信息主体的浓缩”。摘要是一种单向函数,主要用于将无限的输入值转换为有限的浓缩输出值。常见的摘要函数MD5,会将任意长度的字节序列转换为一个128位的摘要。对这些摘要来说,最重要的是如果不知道密码的话,要想正确地猜出发送给服务器的摘要将是非常困难的。
5.摘要函数有时也被称为加密的校验和、单向散列函数或指纹函数。
6.为了防止黑客截获摘要来进行转发,服务器可以向客户端发送一个称为随机数的特殊令牌,这个数会经常发生变化(可能是每毫秒,或者是每次认证都变化)。客户端在计算摘要之前要先将这个随机数令牌附加到密码上去。随机数是在www-Authenticate质询中从服务器传送给客户端的。
7.摘要认证的三步握手机制:
- 服务器会计算一个随机数,放在www-Authenticate质询报文中,发给客户端。
- 客户端选择一个算法,计算出密码和其它数据的摘要,放在一条Authentication报文中发回服务器,如果客户端要对服务器进行认证,可以发送客户端随机数。
- 服务器接受摘要、选中的算法以及支撑数据,计算出与客户端相同的摘要,然后将它与本地生成的摘要进行比较,验证是否匹配。
8.预授权:在普通的认证方式中,事务结束之前,每条请求都要有一次请求/质询的循环。但是如果客户端事先知道下一个随机数是什么,就可以取消这个请求/质询循环,这样客户端就可以在服务器发出请求之前,生成正确的Authorization首部了。如果客户端能在服务器要求它计算Authorization首部之前就将其计算出来,就可以预先将Authorization首部发送给服务器,而不用进行请求/质询了。
9.由于摘要认证使用了随机数技术来破坏重放攻击,所以对摘要认证来说,预授权要稍微复杂一些,主要有以下三种方式:
- 服务器预先在Authentication-Info成功首部中发送下一个随机数;(破坏了管道化,因为在发布下一条请求之前,一定要收到下一个随机值才行)
- 服务器允许在一小段时间内使用同一个随机数;(降低了安全性,但是可以控制这个时间,在安全与时间中找到平衡。)
- 客户端和服务器使用同步的、可预测的随机数生成算法。(通过共享的密钥,生成第三方无法轻易预测的、相同的随机数序列)
10.对称认证:RFC 2617扩展了摘要认证机制,允许客户端对服务器进行认证。这是通过提供客户端随机值来实现的,服务器会根据它对共享保密信息的正确了解生成正确的响应摘要,然后服务器在Authorization-info首部中将此摘要返回给客户端。
11.在摘要认证中,质询的www-Authenticate:domain字段对保护空间作了更精确的定义。
12.安全性考虑:
- 首部篡改。
- 重放攻击。
- 多重认证攻击。
- 词典攻击。
- 恶意代理攻击和中间人攻击。
- 选择明文攻击。(预先计算的词典攻击和批量暴力型攻击)
- 储存密码被入侵。
13.防止选择明文攻击的一种方法就是配置客户端使用可选的cnonce指令,这样响应就是基于客户端的判断产生的,而不是服务器提供的随机数(这个随机数可能会被攻击者入侵)产生的。
《http权威指南》读书笔记12的更多相关文章
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- css权威指南读书笔记
今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...
- 经典的性能优化最佳实践 web性能权威指南 读书笔记
web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...
- css权威指南读书笔记-第10章浮动和定位
这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...
- Android权威编程指南读书笔记(1-2章)
第一章 Android应用初体验 1.4用户界面设计 <?xml version="1.0" encoding="utf-8"?> ADT21开发版 ...
- Java性能优化权威指南-读书笔记(三)-JVM性能调优-内存占用
新生代.老年代.永久代的概念不多说,这三个空间中任何一个不能满足内存分配请求时,就会发生垃圾收集. 新生代不满足内存分配请求时,发生Minor GC,老年代.永久代不满足内存分配请求时,发生Full ...
- Kafka权威指南 读书笔记之(三)Kafka 生产者一一向 Kafka 写入数据
不管是把 Kafka 作为消息队列.消息总线还是数据存储平台来使用 ,总是需要有一个可以往 Kafka 写入数据的生产者和一个从 Kafka 读取数据的消费者,或者一个兼具两种角色的应用程序. 开发者 ...
- Hadoop权威指南读书笔记
本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系 ...
- JS权威指南读书笔记(七)
第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target ...
- JS权威指南读书笔记(六)
第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...
随机推荐
- JS判断图片是否加载完成 背景图404 快到碗里来
面对这个问题 我最多做到表面笑嘻嘻 …… 真不知道测试怎么那么…… 啥都能给你测出来 有的没的都能给你测出来 算了算了 谁让本仙女本精灵本可爱温柔大方善解人意呢 …呵呵呵 ————————————正 ...
- cookie设置和清除,解决跨目录读取不到cookie值
cookies.setCookie("UserType", result.UserType, null, '/'); cookies.deleteCookie("User ...
- Windows操作系统发展历程
1964年贝尔实验室(Bell).麻省理工学院(MIT)及美国通用电气公司(GE)为了开发出一套安装在大型主机上多人多工的操作系统开发了Multics系统.Multics是一个全面的,通用编程系统.后 ...
- 《Java核心技术卷1》拾遗
之前对Java的基础知识有过学习,现在开始学习<Java核心技术卷1>,将一些新学的知识点,做简要记录,以备后续回顾: 1.double (1)所有的“非数值”都认为是不相同的 if(x= ...
- 低版本的Chrome,打开url时,报错,IE确可以打开;
解决办法:打开注册表,添加以下内容,之后重启服务器: [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters]Ena ...
- CPDA-战略管理
战略管理-PEST分析-市场分析-竞争环境分析-SWOT分析-内/外部因素评价矩阵-国际化/多元化战略 战略管理: 战略分析->战略制定->战略实施->战略评价->战略分析,四 ...
- vim编辑器中没有高亮显示,退格键不能使用的问题
在~/.vimrc下添加如下内容,立即生效
- su与su -的区别
su命令从普通用户切换到root用户下虽然可以切换,但是切换过后它所属的环境变量没有切换回原本属于root本身该有的环境变量,使用su - root 就可以切换会本来用户所属自身的变量
- lombok学习
lombok的官方地址:https://projectlombok.org/ lombok的Github地址:https://github.com/rzwitserloot/lombok lombok ...
- python 递归实现汉诺塔算法
def move(n,a,b,c): if (n == 1): print ( "第 ", n ," 步: 将盘子由 " ,a ," 移动到 &quo ...