HTTP权威指南(三)

HTTP权威指南笔记(三)

十一.客户端识别与Cookie机制

1.个性化接触
2.HTTP首部
From:用户的E-Mail地址
User-Agent:用户的浏览器软件
Referer:用户来源页面的URL
以及等等其他的
3.客户端IP地址
通常在HTTP首部并不包含客户端的IP地址,但web服务器可以找到承载HTTP请求的TCP连接另一端的IP地址
但是该方法有很多缺点:识别的是机器不是用户,动态分配IP,NAT转换,代理等等
4.用户登录
通过Authorization和WWW-Authenticate首部完成验证
5.胖URL
为每个用户生成特定版本的URL来追踪用户的身份
6.cookie
当前识别用户,实现持久会话的最好方式
会话cookie和持久cookie区别在于过期时间(会话cookie在关闭浏览器后就自动删除)
cookie域属性:domain,控制哪些站点可以看到这个cookie
cookie路径属性:path,在这个属性列出的URL路径前缀下的所有cookie都是有效的
(1)cookies版本0
set-cookie首部:强制的key和value,可选的Expires(定义cookie的实际生存期),可选的domain(只向指定的服务器主机名发送cookie),可选的path(为特定的路径发送cookie),可选的secure(只有在使用SSL连接是发送cookie)
cookie首部:key-value形式
(2)cookies版本1
set-cookie2首部:强制的key和value,强制的version(RFC2965为1),可选的comment(说明服务器准备如何使用这个cookie),可选的commenurl,可选的discard(客户端程序终止时,指示客户端放弃这个cookie),可选的domain,可选的max-age(用于设置以秒为单位的cookie生存期),可选的path,可选的port(只对指定端口号提供cookie),可选的secure
cookie首部:key-value形式
cookie2首部:负责在能够理解不同cookie规范版本的客户端与服务器之间进行互操作性的协商

十二.基本认证机制

1.认证
1.1 HTTP的质询/响应认证框架
1.2 认证协议与首部
认证的四个步骤

步骤 首部 描述 方法/状态
请求 第一条请求没有认证信息 GET
质询 WWW-Authenticate 说明需要提供用户名和密码 401
授权 Authentication 客户端重新发送请求并携带新首部 GET
成功 Authentication-Info 如果正确就返回文档 200

1.3安全域:通过realm指令

2.基本认证
使用base-64编码将用户名和密码进行编码然后传送

3.基本认证的安全缺陷
(1)基本认证通过网络发送用户名和密码,明文形式传送+base-64加密很容易被破解
(2)捕获加密后的字符串来访问服务器
(3)相同的用户名和密码
(4)没有提供任何针对代理和作为中间人的中间节点的防护措施
(5)假冒服务器很容易骗过基本认证

十三.摘要认证

1.摘要认证的改进
(1)用摘要保护密码:客户端不会发送密码,而是会发送一个“指纹”或密码的“摘要”
(2)单项摘要:主要用于将无限的输入值转换为有限的浓缩输出值,诸如MD5
(3)用随机数方式重放攻击:客户端在计算摘要之前要先将随机数令牌附加到密码上去
(4)摘要认证的握手机制:类似基本认证,但是需要服务器计算随机数发送给客户端
2.摘要的计算
3.增强保护质量
4.应该考虑的实际问题:多重质询、差错处理、保护空间、重写URI、缓存
5.安全性考虑

十四.安全HTTP

1.保护HTTP的安全:HTTPS是最流行的HTTP安全形式,使用HTTPS时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密。HTTPS在HTTP下面提供了一个传输级的密码安全层(SSL/TLS),大部分编解码工作在SSL中完成,所以在大多数情况下只需要用SSL的输入输出调用取代TCP的调用
2.数字加密
3.对称密钥加密技术:编码时使用的密钥值等于解码时使用的密钥值
(1)密钥长度与枚举攻击
(2)建立共享密钥:发送者和接收者有一个共享的保密密钥
4.公开密钥加密技术:公开密钥加密技术使用了两个非对称密钥,一个用来对主机报文编码,另一个用来对主机报文解码
RSA算法、混合加密系统和会话密钥
5.数字签名:附加在报文上的特殊加密校验码

  • 签名可以证明是作者编写了这条报文
  • 签名可以防止报文被篡改

6.数字证书
通常包含:对象的名称、过期时间、证书发布者、来自证书发布者的数字签名、对象的公开密钥等等
用证书对服务器进行认证
7.HTTPS——细节介绍
HTTPS将HTTP协议与一组强大的对称、非对称和基于证书的加密技术结合在一起
如果URL方案是HTTP,默认打开80端口
如果URL方案是HTTPS,默认打开443端口
建立安全连接:首先打开服务器443端口连接,一旦建立了TCP连接,客户端和服务器就会初始化SSL层,对加密参数进行沟通,并交换密钥。握手完成之后,SSL初始化就完成了,客户端就可以将请求报文发送给安全层了。在将这些报文发送给TCP之前,要先对其进行加密
SSL握手:交换协议版本号、选择一个两端都了解的密码、对两端的身份进行认证、生成临时的会话密钥,以便加密信道
8.例子
9.通过代理以隧道形式传输安全流量
HTTP通过新的名为CONNECT的扩展方法来发送明文形式的端点信息。CONNECT方法会告诉代理,打开一条到所期望主机和端口号的连接

猜你喜欢

转载自blog.csdn.net/u011955067/article/details/80152269
今日推荐