zoukankan      html  css  js  c++  java
  • 《HTTP 权威指南》笔记:第十三章 摘要认证体制

    前言

    基本认证存在缺陷,摘要认证为了解决基本认知的一些缺陷,进行了进一步的完善,更加安全.

    流程

    摘要认证的特点是:永远不会以明文方式在网络上发送密码
    原理:通过发送一个「指纹」或者「密码的摘要」来验证其和自身是否匹配.
    具体流程如下:

    1. 请求-客户端向服务器请求一份加密的文档
    2. 质询-服务器向客户端要求得到用户名和密码摘要.
    3. 授权-客户端向服务器发送用户名和密码摘要.
    4. 成功-服务器向客户端发送文档

    摘要函数

    定义:

    摘要函数是一种单向函数,主要用于将无限的输入值转换为有限的浓缩输出值.

    举例:

    MD5 函数是一个摘要函数,输入一个任意长度的字节序列,输出一个 128 位的摘要.

    其他名字:

    • 加密的校验和
    • 单向散列函数
    • 指纹函数

    特殊令牌——nonce

    原因:

    为了防止重放攻击的危险,于是需要随机数令牌来防止这种危险.

    原理:

    1. nonce 这个随机数令牌每次验证都会发生变化,
    2. 然后在计算摘要之前,现将这个 nonce 的值加到密码上
    3. 这样使得摘要每次也发生变化

    摘要认证的握手机制

    1. WWW-Authenticate 质询报文-服务器发往客户端,其中包含了1. 域 2. 随机数 3. 算法
    2. Authorization 报文-客户端发往服务器,其中包含了 1. 密码的摘要 2. 选择的算法 3.随机数(如果客户端要对服务器进行验证的话)
    3. 服务器接收算法,并且计算出摘要,然后与客户端发送的摘要进行比较.(如果客户端对服务器进行验证,那么发送给客户端随机数)

    对称认证

    定义: RFC 2617 允许客户端对服务器进行认证.
    功能:提供一些重要的安全提升机制
    格式: 提供 qop 指令,即执行对称认证

    预授权

    定义: 在一般状态下,每一次请求都要有一次 request/challenge 的流程,预授权指在 success 的同时发送下一次的 nounce, 在客户端进行下一次请求的时候,就不需要经过 request/challenge 的流程了.
    有下面三种方式实现预授权:

    1. 服务器在向客户端发送的 Authentication-Info 首部中发送下一个随机数
    2. 服务器允许在一段时间内使用一个随机数
    3. 客户端和服务器使用同步的、可预测的随机数算法.

    qop

    定义:保护质量
    功能:用于让客户端和服务器对不同的类型的文件的质量进行协商
    位置: 

    1. WWW-Authenticate
    2. Authoriaztion
    3. Anthentication-Info

    值:

    1. auth:仅仅包含 HTTP 的请求方法和 URL
    2. auth-int:添加主体部分,因此具有报文完整性保护认证的特性,防止篡改

    摘要的计算

    概念与 A1, A2 定义

    • 函数: 单向散列函数 H(d), 以及摘要摘要 KD(s,d),其中 s 为密码, d 为数据
    • 包含安全信息的数据块,包括 s,称为 A1
    • 包含了非保密属性的数据块,称为 A2

    算法

    其中, H(d) 用于计算 A1 (包含密码)的 MD5, KD(s,D) 用于 A2 的 MD5 算法

    1. 若 qop 未定义,摘要算法为 KD(H(A!), :H(A2))
    2. 若 qop 定义: 摘要算法为 KD(H(A1), ::::H(A2)





  • 相关阅读:
    socket.io
    CUDA升级后
    QT安装
    windows时钟服务设置
    QT的DPI支持
    cudaDeviceProp结构体
    C#调用C++的dll各种传参
    「LibreOJ#516」DP 一般看规律
    「LibreOJ#515」贪心只能过样例 (暴力+bitset)
    [Codeforces888E]Maximum Subsequence(暴力+meet-in-the-middle)
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10659356.html
Copyright © 2011-2022 走看看