当前位置: 首页 > news >正文

知名网站制作公企业网站运营推广

知名网站制作公,企业网站运营推广,繁体网站怎么做,数字营销专业就业前景我的音视频/流媒体开源项目(github) SIP系列目录 目录 一、基本认证(basic) 二、摘要认证(digest) 1、摘要认证(digest) RFC 2069​ 2、摘要认证(digest) RFC 2617​ 2.1、未定义qop字段或值为"(空) 2.2、qop值为"auth" 2.3、qop值为"auth-int&quo…

        我的音视频/流媒体开源项目(github)

        SIP系列目录

目录

一、基本认证(basic)

二、摘要认证(digest)

1、摘要认证(digest) RFC 2069​

2、摘要认证(digest) RFC 2617​

2.1、未定义qop字段或值为"'(空)

2.2、qop值为"auth"

2.3、qop值为"auth-int"

2.4、RFC 2617​认证示例


        在《SIP系列三:SIP消息格式》中的注册示例里面包含了鉴权,本篇文章将详细介绍一下SIP的鉴权机制。

        SIP鉴权使用的就是HTTP的鉴权方式,很多类HTTP协议使用的都是HTTP的鉴权方式,例如RTSP。

        HTTP协议包括两种鉴权方式:基本认证(basic)和摘要认证(digest)。

一、基本认证(basic)

        对用户名和密码以<username:password>格式进行base64编码,添加Authorization字段发起请求:

        示例:

DESCRIBE rtsp://10.175.30.35 RTSP/1.0
CSeq: 7
Authorization: Basic YWRtaW46YWJjZDEyMzQ=
Accept: application/sdp

        “YWRtaW46YWJjZDEyMzQ=” 就是username:password 的base64值。服务端对其解码得到用户名和密码进行鉴权。这种认证方式缺乏安全性,现在已经不用了。

二、摘要认证(digest)

        摘要有过两个版本分别来自RFC 2069​和RFC 2617​。RFC 2617兼容RFC 2069版本。

        摘要认证使用MD5算法计算由用户名、密码和随机数等组成的哈希值,通过该哈希值进行身份验证。

        摘要认证公式为:

A1 = ?
A2 = ?
D = ?
HA1 = MD5(A1)
HA2 = MD5(A2)
response = MD5(HA1:D:HA2)

        RFC 2069​和RFC 2617都是使用上面的公式,但对于A1、A2、D的定义RFC 2069​和RFC 2617就有所不同了。 

1、摘要认证(digest) RFC 2069​

        RFC 2069​中关于A1、A2、D的定义如下:

A1 = username:realm:password
A2 = method:uri # 请求报文中的method和url
D = nonce
response = MD5(MD5(A1):D:MD5(A2))

        下面是一个使用RFC 2069鉴权的示例(RTSP):


---------------C->S--------------
DESCRIBE rtsp://192.168.10.18:8554/live RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.21 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp---------------S->C--------------
RTSP/1.0 401 Unauthorized
CSeq: 3
WWW-Authenticate: Digest realm="simple-rtsp-server", nonce="fea261aa3d9310f32b2a9d8e1454fa3c"---------------C->S--------------
DESCRIBE rtsp://192.168.10.18:8554/live RTSP/1.0
CSeq: 4
Authorization: Digest username="admin", realm="simple-rtsp-server", nonce="fea261aa3d9310f32b2a9d8e1454fa3c", uri="rtsp://192.168.10.18:8554/live", response="6b6f6d63581262aa05ee4ddada5c3f6b"
User-Agent: LibVLC/3.0.21 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp---------------S->C--------------
RTSP/1.0 200 OK
CSeq: 4
Content-Base: rtsp://192.168.10.18:8554/live
Content-type: application/sdp
Content-length: 375v=0
o=- 91722585321 1 IN IP4 192.168.10.18
c=IN IP4 192.168.10.18
t=0 0
a=control:*
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
a=control:track0
m=audio 0 RTP/AVP 97
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;config=1390;sizelength=13;indexlength=3;indexdeltalength=3
a=control:track1

2、摘要认证(digest) RFC 2617​

        RFC 2617​比RFC 2069​增加了​​qop​、cnonce​​、nonce-count(nc)​​字段。

        ​​qop​​ 保护质量(quality of protection),是一个可选值,由服务器提供,用来兼容RFC 2069,​​qop​​字段分几种情况:未定义qop字段或值为"'(空)、"auth"、"auth-int"。

        cnonce​​ 客户端提供的字符串,用以双向认证;当有 ​​qop​​ 时必须携带,否则必须不带。

        nonce-count​​ 客户端提供的访问请求数量(包括此次请求),采用16进制表示,用以校验请求是否重复;当有 ​​qop​​ 时必须携带,否则必须不携带。

2.1、未定义qop字段或值为"'(空)

        兼容RFC 2069,定义和RFC 2069完全一样:

A1 = username:realm:password
A2 = method:uri
D = nonce
response = MD5(MD5(A1):D:MD5(A2))

2.2、qop值为"auth"

algorithm的值是MD5:A1 = username:realm:password
algorithm的值是MD5-sess:A1 = MD5(username:realm:password):nonce:cnonce
A2 = method:uri
D = nonce:nc:cnonce:qop
response = MD5(MD5(A1):D:MD5(A2))

2.3、qop值为"auth-int"

algorithm的值是MD5:A1 = username:realm:password
algorithm的值是MD5-sess:A1 = MD5(username:realm:password):nonce:cnonce
A2 = method:uri:MD5(entityBody) # entityBody请求的整个消息体
D = nonce:nc:cnonce:qop
response = MD5(MD5(A1):D:MD5(A2))

        当qop有值,但是cnonce​​、nonce-count​​没有定义的时候(即服务端首次返回Unauthorized的时候有qop,无cnonce​​、nonce-count(nc)​​,因为cnonce​​、nonce-count(nc)​​是客户端提供的),则公式中的"D = nonce:nc:cnonce:qop"用"D = nonce:::qop"代替。

2.4、RFC 2617​认证示例

        下面是SIP用户代理向服务器注册的鉴权示例:

// 第一次请求
REGISTER sip:192.168.2.89 SIP/2.0Via: SIP/2.0/UDP 192.168.2.161:8021
Max-Forwards: 70
From: <sip:01062237493@192.168.2.89>;tag=efca469543ce4788a6a6a2c7b66cd01f;epid=de4504430d
To: <sip:01062237493@192.168.2.89>
Call-ID: c88a247a74b54a8c9e676bdde3bba6c9@192.168.2.161
CSeq: 1 REGISTER
Contact: <sip:192.168.2.161:8021>;methods="INVITE, MESSAGE, INFO, SUBSCRIBE, OPTIONS, BYE, CANCEL, NOTIFY, ACK, REFER"
User-Agent: RTC/1.2.4949 (BOL SIP Phone 1005)
Event: registration
Allow-Events: presence
Content-Length: 0// 服务器授权不通过
SIP/2.0 401 UnauthorizedVia: SIP/2.0/UDP 192.168.2.161:8021
From: <sip:01062237493@192.168.2.89>;tag=efca469543ce4788a6a6a2c7b66cd01f;epid=de4504430d
To: <sip:01062237493@192.168.2.89>;tag=-001893-38ba013ba3dde36e
Call-ID: c88a247a74b54a8c9e676bdde3bba6c9@192.168.2.161
CSeq: 1 REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: <sip:192.168.2.89:14010>
Content-Length: 0
WWW-Authenticate: Digest realm="192.168.2.89", qop="auth", nonce="e17d377c3d2d9c343e26576a7fd04738481dfc10", opaque="", stale=FALSE, algorithm=MD5// 客户端第二次发起请求
REGISTER sip:192.168.2.89 SIP/2.0Via: SIP/2.0/UDP 192.168.2.161:8021
Max-Forwards: 70
From: <sip:01062237493@192.168.2.89>;tag=efca469543ce4788a6a6a2c7b66cd01f;epid=de4504430d
To: <sip:01062237493@192.168.2.89>
Call-ID: c88a247a74b54a8c9e676bdde3bba6c9@192.168.2.161
CSeq: 2 REGISTER
Contact: <sip:192.168.2.161:8021>;methods="INVITE, MESSAGE, INFO, SUBSCRIBE, OPTIONS, BYE, CANCEL, NOTIFY, ACK, REFER"
User-Agent: RTC/1.2.4949 (BOL SIP Phone 1005)
Authorization: Digest username="01062237493", realm="192.168.2.89", qop=auth, algorithm=MD5, uri="sip:192.168.2.89", nonce="e17d377c3d2d9c343e26576a7fd04738481dfc10", nc=00000001, cnonce="12660455546344082314666316435946", response="f57e47ce03162293b9ced07362ce2b79"
Event: registration
Allow-Events: presence
Content-Length: 0// 服务器鉴权通过,返回200 OK
SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.2.161:8021
From: <sip:01062237493@192.168.2.89>;tag=efca469543ce4788a6a6a2c7b66cd01f;epid=de4504430d
To: <sip:01062237493@192.168.2.89>;tag=-001894-a5eb977c8969aa51
Call-ID: c88a247a74b54a8c9e676bdde3bba6c9@192.168.2.161
CSeq: 2 REGISTER
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE
Contact: sip:192.168.2.161:8021
Content-Length: 0
Expires: 3600

        上述例子中opaque 是一个防止重放攻击的机制,是服务器在401 Unauthorized响应中生成,客户端在后续请求中带上这个字段即可。客户端不理睬这个字段也可以,但是有些服务器可能会认证失败。

http://www.dt0577.cn/news/29885.html

相关文章:

  • 一级a做爰电影片免费网站海淀区seo搜索引擎
  • 教学网站开发源码windows优化大师好不好
  • 做网站需要知道哪些事情小程序推广赚佣金平台
  • 一级造价师注册查询系统平台入口济南seo顾问
  • 深圳购物网站建设公司建站小程序
  • wordpress图片分享插件下载地址星乐seo网站关键词排名优化
  • 做网站要什么知识seo排名培训学校
  • 义乌专业做网站做百度推广的网络公司
  • 常州市网站优化春哥seo博客
  • 网站开发常用js函数东莞新闻最新消息今天
  • WordPress的分類顯示插件seo综合查询中的具体内容有哪些
  • 百度糯米做网站多少钱百度云网盘入口
  • 大网站整站备份优化大师哪个好
  • php网站建设填空题a5站长网网站交易
  • 长沙市网站制作多少钱app软件开发
  • 修改网站源码连接数据库怎么做seo网站推广怎么做
  • 个人网站制作模板关键词密度查询站长工具
  • 房屋中介的网站怎么建设郑州seo线下培训
  • 视频app开发制作多少钱百度seo免费推广教程
  • 旅游网站平台建设方案策划书网络营销实施方案
  • wordpress linux 权限设置网站内容优化方法
  • 制作网站流程图最近社会热点新闻事件
  • 兰州网站排名公司室内设计培训哪个机构比较好
  • wordpress降低使用内存seo软件简单易排名稳定
  • 中小型网站建设百度网站名称和网址
  • 聊城做网站的公司渠道无锡seo
  • 网站制作过程简介百度推广账号登陆入口
  • 佛山市网站建设公司宁波优化网页基本流程
  • 隐藏wordpress目录佛山做优化的公司
  • 如何申请域名做网站知乎石狮seo