400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

HTTP认证模式:Basic&Digest

一. Basic 认证

创新互联专注于企业成都营销网站建设、网站重做改版、且末网站定制设计、自适应品牌网站建设、成都h5网站建设商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为且末等各大城市提供网站开发制作服务。

客户端以“ : ”连接用户名和密码后,再经BASE64加密通过Authorization请求头发送该密文至服务端进行验证,每次请求都需要重复发送该密文。可见Basic认证过程简单,安全性也低,存在泄露个人账号信息以及其他诸多安全问题。以下仅为原理演示,不代表真实情况:

  1. 客户端向服务器请求数据:

    GET / HTTP/1.1
    Host: www.myrealm.com

  2. 服务端向客户端发送验证请求401:

    HTTP/1.1 401 Unauthorised
    Server: bfe/1.0.8.18
    WWW-Authenticate: Basic realm="myrealm.com"
    Content-Type: text/html; charset=utf-8

  3. 客户端收到401返回值后,将自动弹出一个登录窗口,等待用户输入用户名和密码

  4. 将“用户名:密码”进行BASE64加密后发送服务端进行验证:

    GET / HTTP/1.1
    Host: www.myrealm.com
    Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx

  5. 服务端取出Authorization请求头信息进行解密,并与用户数据库进行对比判断是否合法,合法将返回200 OK。RFC 2617 规格中Basic认证不发送Authentication-Info头部,Authentication-Info头部是Digest认证中新增的

HTTP认证模式:Basic & Digest

 1 Hello {$_SERVER['PHP_AUTH_USER']}.

"; 9     echo "

You entered {$_SERVER['PHP_AUTH_PW']} as your password.

";10   }

HTTP认证模式:Basic & Digest

  

二. Digest 认证

Digest认证试图解决Basic认证的诸多缺陷而设计,用户密码在整个认证过程中是个关键性要素。

下为服务端发送的Digest认证响应头部实例及各指令含义说明:PHP官方文档中发送WWW-Authenticate头部时各指令之间用了空格,在Chrome下是不会弹出认证对话框的,应该换成”, “或”,“

WWW-Authenticate: Digest realm="Restricted area", qop="auth,auth-int", nonce="58e8e52922398", opaque="cdce8a5c95a1427d74df7acbf41c9ce0", algorithm="MD5"

下为客户端发送的Digest认证头请求部实例及各指令含义说明:

Authorization: Digest username="somename", realm="Restricted area", nonce="58e8e52922398", uri="/t.php", response="9c839dde909d270bc5b901c7f80f77d5", opaque="cdce8a5c95a1427d74df7acbf41c9ce0", qop="auth", nc=00000001, cnonce="9c30405c3a67a259"

下面将就摘要计算方法进行说明: 

  1. 算法的一般性表示

    H(data) = MD5(data)
    KD(secret, data) = H(concat(secret, ":", data))
  2. 与安全信息相关的数据用A1表示,则

    a) 采用MD5算法:
        A1=(user):(realm):(password)
    b) 采用MD5-sess算法:
        A1=H((user):(realm):(password)):nonce:cnonce
  3. 与安全信息无关的数据用A2表示,则

    a) QoP为auth或未定义:
        A2=(request-method):(uri-directive-value)
    b) QoP为auth-int:
        A2=(request-method):(uri-directive-value):H((entity-body))
  4. 摘要值用response表示,则

    HTTP认证模式:Basic & Digest

    a) 若qop没有定义:
        response
        = KD(H(A1),:H(A2))
        = H(H(A1),:H(A2))
    b) 若qop为auth或auth-int:
        response
        = KD(H(A1),::::H(A2))
        = H(H(A1),::::H(A2))

    HTTP认证模式:Basic & Digest

     

三. 安全风险


新闻名称:HTTP认证模式:Basic&Digest
URL网址:http://mbwzsj.com/article/jsoihc.html

其他资讯

让你的专属顾问为你服务