《HTTP权威指南》学习笔记(三)
第三部分 识别、认证与安全(一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧)
第11章 客户端识别与Cookie机制
第12章 基本认证机制
内容:
HTTP定义了两个官方的认证协议:基本认证和摘要认证。
基本认证:在基本认证中,WEB服务器可以拒绝一个事务,质询客户端,请用户提供有效的用户名和密码。服务器会返回401状态码,
对这些摘要来说,最重要的是如果不知道密码的话,要想正确地猜出发送给服务器的摘要将是非常困难的。同样,如果有摘要,想要判断
对称密钥加密技术:在编码时使用的密钥值和解码时一样。 流行的对称密钥加密算法:DES、Triple、RC2、RC4
RSA算法(公开密钥加密系统) 数字签名 数字证书
HTTP 和 HTTPS事务
第三部分 识别、认证与安全(一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧)
第11章 客户端识别与Cookie机制
内容:
承载用户身份信息的HTTP首部
客户端IP地址跟踪,通过用户的IP地址对其进行识别
用户登录,用认证方式来识别用户
胖URL,一种在URL中嵌入识别信息的技术
cookie,一种功能强大且高效的持久身份识别技术
cookie是当前识别用户,实现持久会话的最好方式。
cookie分类:会话cookie(一种临时cookie,记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie被删除)
持久cookie(存储在硬盘上,浏览器退出,计算机重启时仍然存在。)
cookie的工作原理:cookie中可包含任意信息,但它们通常只包含一个服务器为了进行跟踪而产生的独特的识别码。
cookie的基本思想:让浏览器积累一组服务器特有的信息,每次访问服务器时都将这些信息提供给它。因为浏览器要负责存储cookie信息,
客户端IP地址跟踪,通过用户的IP地址对其进行识别
用户登录,用认证方式来识别用户
胖URL,一种在URL中嵌入识别信息的技术
cookie,一种功能强大且高效的持久身份识别技术
cookie是当前识别用户,实现持久会话的最好方式。
cookie分类:会话cookie(一种临时cookie,记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie被删除)
持久cookie(存储在硬盘上,浏览器退出,计算机重启时仍然存在。)
cookie的工作原理:cookie中可包含任意信息,但它们通常只包含一个服务器为了进行跟踪而产生的独特的识别码。
cookie的基本思想:让浏览器积累一组服务器特有的信息,每次访问服务器时都将这些信息提供给它。因为浏览器要负责存储cookie信息,
所以此系统被称为客户端侧状态。
图1 用会话Cookie跟踪用户
第12章 基本认证机制
内容:
认证就是要给出一些身份证明
HTTP的质询/响应认证框架:
HTTP的质询/响应认证框架:
图2 质询、响应、认证框架
HTTP定义了两个官方的认证协议:基本认证和摘要认证。
基本认证:在基本认证中,WEB服务器可以拒绝一个事务,质询客户端,请用户提供有效的用户名和密码。服务器会返回401状态码,
而不是200状态码来初始化认证质询,并用WWW-Authenticate响应首部指定要访问的安全域。浏览器收到质询时,会打开
一个对话框,请求用户输入这个域的用户名和密码。然后将用户名和密码稍加扰码,再用Authorization请求首部回送给服务器。
HTTP基本认证将用户名和密码打包在一起,并用Base-64编码方式对其进行编码。
一个对话框,请求用户输入这个域的用户名和密码。然后将用户名和密码稍加扰码,再用Authorization请求首部回送给服务器。
HTTP基本认证将用户名和密码打包在一起,并用Base-64编码方式对其进行编码。
基本认证的缺陷: 1.用户名和密码是以明文形式传输的,任何人都可以读取并将其捕获。
2.无法解决重放攻击问题(P327)。
3.密码社工。
4.无法防御中间人。
5.假冒服务器。
2.无法解决重放攻击问题(P327)。
3.密码社工。
4.无法防御中间人。
5.假冒服务器。
第13章 摘要认证
内容:
摘要认证: 基本认证的缺陷:极不安全。用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改。
安全的使用基本认证的唯一方式就是将其与SSL配合使用。
摘要认证是另一种HTTP认证协议,它试图修复基本认证协议的严重缺陷。具体来说,摘要认证进行了如下改进:
永远不会以明文方式在网络上发送密码;
可以防止恶意用户捕获并重放认证的握手过程;
可以有选择地防止对报文内容的篡改;
防范其他几种常见的攻击方式;
摘要认证并不是最安全的协议。摘要认证并不能满足安全HTTP事务的很多需求。对这些需求来说,使用传输层安全(TLS)和安全HTTP协议更合适
安全的使用基本认证的唯一方式就是将其与SSL配合使用。
摘要认证是另一种HTTP认证协议,它试图修复基本认证协议的严重缺陷。具体来说,摘要认证进行了如下改进:
永远不会以明文方式在网络上发送密码;
可以防止恶意用户捕获并重放认证的握手过程;
可以有选择地防止对报文内容的篡改;
防范其他几种常见的攻击方式;
摘要认证并不是最安全的协议。摘要认证并不能满足安全HTTP事务的很多需求。对这些需求来说,使用传输层安全(TLS)和安全HTTP协议更合适
摘要认证遵循“绝不通过网络发送密码。”客户端不会发送密码,而是会发送一个“指纹”或密码的“摘要”,这是密码的不可逆扰码。
客户端和服务器都知道这个密码,因此服务器可以验证所提供的摘要是否与密码相匹配。只拿到摘要的话,除了将所有的密码都拿来试试之外,
客户端和服务器都知道这个密码,因此服务器可以验证所提供的摘要是否与密码相匹配。只拿到摘要的话,除了将所有的密码都拿来试试之外,
没有其他方法可以找出摘要是来自哪个密码。
摘要认证的工作原理--图
单向摘要:摘要是“对信息主体的浓缩。”摘要是一种单向函数,主要用于将无限的输入值转换为有限的浓缩输出值。
常见的摘要函数MD5,会将任意长度的字节序列转换为一个128位的摘要。
单向摘要:摘要是“对信息主体的浓缩。”摘要是一种单向函数,主要用于将无限的输入值转换为有限的浓缩输出值。
常见的摘要函数MD5,会将任意长度的字节序列转换为一个128位的摘要。
对这些摘要来说,最重要的是如果不知道密码的话,要想正确地猜出发送给服务器的摘要将是非常困难的。同样,如果有摘要,想要判断
出它是由无数输入值中的哪一个产生的,也是非常困难的。
MD5输出的128位的摘要通常会被写成32个十六进制的字符,每个字符表示4位。
摘要-->加密的校验和、单向散列函数或指纹函数。
“截获摘要,并一遍遍地重放给服务器。摘要和密码一样好用。”为防止此类重放攻击的发生,服务器可向客户端发送一个称为“随机数”的特殊
摘要-->加密的校验和、单向散列函数或指纹函数。
“截获摘要,并一遍遍地重放给服务器。摘要和密码一样好用。”为防止此类重放攻击的发生,服务器可向客户端发送一个称为“随机数”的特殊
令牌。客户端在计算摘要前要先将这个随机数令牌附加到密码上。
摘要认证的握手机制--图
安全性考虑:首部篡改、重放攻击、多重认证机制、词典攻击、恶意代理攻击和中间人攻击、选择明文攻击、存储密码;
摘要认证的握手机制--图
安全性考虑:首部篡改、重放攻击、多重认证机制、词典攻击、恶意代理攻击和中间人攻击、选择明文攻击、存储密码;
第14章 安全HTTP
内容:
HTTP安全技术能够提供如下功能: 服务器认证、客户端认证、完整性、加密、效率、普适性、管理的可扩展性、适应性、在社会上的可行性。
HTTPS 是最流行的HTTP安全形式。HTTPS方案的URL以https://开头。
数字加密:
密码学是对报文进行编、解码的机制与技巧。 密码学基于一种名为密码的秘密代码。密码是一套编码方案-- 一种特殊的报文编码方式和一种解码方式的结合体。
内容:
HTTP安全技术能够提供如下功能: 服务器认证、客户端认证、完整性、加密、效率、普适性、管理的可扩展性、适应性、在社会上的可行性。
HTTPS 是最流行的HTTP安全形式。HTTPS方案的URL以https://开头。
数字加密:
密码学是对报文进行编、解码的机制与技巧。 密码学基于一种名为密码的秘密代码。密码是一套编码方案-- 一种特殊的报文编码方式和一种解码方式的结合体。
图3 加密原理
对称密钥加密技术:在编码时使用的密钥值和解码时一样。 流行的对称密钥加密算法:DES、Triple、RC2、RC4
RSA算法(公开密钥加密系统) 数字签名 数字证书
HTTP 和 HTTPS事务
SSL握手
OpenSSL 是SSL和TLS的最常见的开源实现。http://www.openssl.org
扩展阅读及思考
注:
OpenSSL 是SSL和TLS的最常见的开源实现。http://www.openssl.org
扩展阅读及思考
注: