• Http 笔记 摘要认证


    摘要认证改进:

    1 永远不会以明文方式在网络上发送密码

    2 可以防止恶意用户捕获并重放认证的握手过程。

    3 可以选择地防止对报文内容的篡改。

    4 防范其他几种常见的攻击方式。

    摘要认证并不能满足安全http事务的很多需求。对这些需求来说,使用传输层安全 TLS和安全http https协议更为合适一些。

    客户端不会发送密码,而是会发送一个 指纹 或密码的 摘要,这是密码的不可逆扰码。客户端和服务器都知道这个密码。因此服务器可以验证所提供的摘要是否与密码相匹配。

    客户端请求了某个受保护文档

    在客户端能够证明其知道密码从而确认其身份之前,服务器拒绝提供文档。服务器向客户端发起质询,询问用户名和摘要形式密码。

    客户端传递了密码的摘要,证明它是知道密码的。服务器知道所有用户的密码,因此可以将客户提供的摘要与服务器自己计算得到的摘要进行比较,以验证用户是否知道密码。另一方在不知道密码的情况下,很难伪造出正确的摘要。

    服务器将客户端提供的摘要与服务器内部计算出的摘要进行对比。如果匹配,就说明客户端知道密码。可以设置摘要函数,使其产生很多数字,让人不可能幸运地猜中摘要。服务器进行了匹配验证之后,会将文档提供给客户端,整个过程都没有在网络上发送密码。

    摘要是对信息主体的浓缩,是一种单向函数,主要用于将无限的输入值转换为有限的浓缩输出值。常见的摘要函数MD5,会将任意长度的字节序列转换为一个128位的摘要。

    有时也将摘要函数称为加密的校验和、单向散列函数或指纹函数

    为防止重放攻击的发生,服务器可以向客户端发送一个称为随机数的特殊令牌,这个数会经常发生变化。客户端在计算摘要之前要先将这个随机数令牌附加到密码上去。

    在密码中加入随机数就会使摘要随着随机数的每一次变化而变化。记录下的密码摘要只对特定的随机值有效。

    摘要认证要求使用随机数,因为 重放弱点会使未随机化的摘要认证变得和基本认证一样脆弱。随机数是在www-authenticate质询中从服务器传送给客户端的。

    预授权方式:

    1 服务器预先在authentication-info成功首部中发送下一个随机数

    2 服务器允许在一小段时间内使用同一个随机数

    3 客户端和服务器使用同步的,可预测的随机数生成算法。

  • 相关阅读:
    Sizzle引擎原理与实践(四)
    Sizzle引擎原理与实践(一)
    Sizzle引擎原生getElementsByClassName对选择结果的影响(jQuery)
    【翻译】HTML5开发——轻量级Web Database存储库html5sql.js
    【翻译】向后兼容的DOM事件绑定
    软件工程实践2019第二次作业
    软件工程实践2019第一次作业
    软件工程实践2019第四次作业
    发表文章
    Web设计
  • 原文地址:https://www.cnblogs.com/caojuansh/p/13162313.html
Copyright © 2020-2023  润新知