简简单单谈下摘要认证

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步,能达到“挑战”和“密码不用明文传送”的效果便可;加密