简简单单谈下摘要认证

SIP认证过程源自HTTP摘要式认证(HTTP Digest Authentication),它是一种基于质询的安全机制:当服务器收到一个请求,将质询请求的发起者,要求提供相应的身份信息。服务器发出的质询中会包含生成的唯一字符串序列,仅可用于本次质询。请求者和服务器共享同一密码,请求者使用该密码和临时生成的字符串序列得到一个响应值。当请求者再次发送包含这个响应值的请求时,服务器就可以用来对请求进行认证。利用这种机制,密码就可以不用明文的方式传送。

第一次读是否感觉都感觉拗口?看图说话最直接(我随便画的,能说明意思就好):

1)UAC首先发送一个不包含认证信息的SIP请求消息 (如INVITE或REGISTER)到UAS。
1.2)UAS向客户端发回一个请求鉴别的SIP消息,这个消息代表了挑战。对于 UAS这些值包含在 WWW-Authentcaite 头字段中。
2)UAC根据消息中的质询信息,重新生成一个请求消息发送给UAS。消息中包含鉴权信息,包括用户名以及UAC对userId,password,nonce,key计算生成的加密结果response。
2.1)UAS将接收到的respones与自己根据相同算法计算得到的结果比较,若一致,则返回200 0K消息表示认证通过。

当然算法最终还是认定的,在应用中可以不完全拘泥摘要认证的规范,只要做到摘要认证的这2步,能达到“挑战”和“密码不用明文传送”的效果即可;

 

posted @ 2016-01-14 17:36  CopyPaster  阅读(950)  评论(0编辑  收藏  举报