zoukankan      html  css  js  c++  java
  • HTTP SIP 认证

    HTTP请求报头: Authorization
    HTTP响应报头: WWW-Authenticate
     
    HTTP认证 
    基于 
    质询 
    /回应( 
    challenge/response)的认证模式。
     
    ◆ 摘要认证 digest authentication   ← HTTP1.1提出的基本认证的替代方法
        服务器端以nonce进行质询,客户端以用户名,密码,nonce,HTTP方法,请求的URI等信息为基础产生的response信息进行认证的方式。
        ※ 不包含密码的明文传递
        
        摘要认证步骤:
         1. 客户端访问一个受http摘要认证保护的资源。
         2. 服务器返回401状态以及nonce等信息,要求客户端进行认证。
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Digest
    realm="testrealm@host.com",
    qop="auth,auth-int",
    nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
    opaque="5ccc069c403ebaf9f0171e9517f40e41"
         3. 客户端将以用户名,密码,nonce值,HTTP方法, 和被请求的URI为校验值基础而加密(默认为MD5算法)的摘要信息返回给服务器。
               认证必须的五个情报:
         ・ realm : 响应中包含信息
         ・ nonce : 响应中包含信息
         ・ username : 用户名
         ・ digest-uri : 请求的URI
         ・ response : 以上面四个信息加上密码信息,使用MD5算法得出的字符串。
     
    Authorization: Digest 
    username="Mufasa",  ← 客户端已知信息
    realm="testrealm@host.com",   ← 服务器端质询响应信息
    nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",  ← 服务器端质询响应信息
    uri="/dir/index.html", ← 客户端已知信息
    qop=auth,   ← 服务器端质询响应信息
    nc=00000001, ← 客户端计算出的信息
    cnonce="0a4f113b", ← 客户端计算出的客户端nonce
    response="6629fae49393a05397450978507c4ef1", ← 最终的摘要信息 ha3
    opaque="5ccc069c403ebaf9f0171e9517f40e41"  ← 服务器端质询响应信息
         4. 如果认证成功,则返回相应的资源。如果认证失败,则仍返回401状态,要求重新进行认证。
     
        特记事项:
         1. 避免将密码作为明文在网络上传递,相对提高了HTTP认证的安全性。
         2. 当用户为某个realm首次设置密码时,服务器保存的是以用户名,realm,密码为基础计算出的哈希值(ha1),而非密码本身。
         3. 如果qop=auth-int,在计算ha2时,除了包括HTTP方法,URI路径外,还包括请求实体主体,从而防止PUT和POST请求表示被人篡改。
         4. 但是因为nonce本身可以被用来进行摘要认证,所以也无法确保认证后传递过来的数据的安全性。
     
       ※ nonce:随机字符串,每次返回401响应的时候都会返回一个不同的nonce。 
       ※ nounce:随机字符串,每个请求都得到一个不同的nounce。 
          ※ MD5(Message Digest algorithm 5,信息摘要算法)
             ① 用户名:realm:密码 ⇒ ha1
             ② HTTP方法:URI ⇒ ha2
             ③ ha1:nonce:nc:cnonce:qop:ha2 ⇒ ha3
  • 相关阅读:
    嵌入式开发之web服务器---boa移植
    图像处理之基础---去污算法
    图像处理之基础---傅里叶
    图像处理之基础---卷积
    图像处理之基础---各种滤波
    二维矩阵卷积运算实现
    图像处理之基础---卷积傅立叶变换中的复数
    图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
    Live555 中的客户端动态库.so的调用方式之一 程序中调用
    20个Flutter实例视频教程-01节底部导航栏和切换效果的制作-1
  • 原文地址:https://www.cnblogs.com/logo-fox/p/3824166.html
Copyright © 2011-2022 走看看