发明名称 一种SIP注册域内信令安全交互方法
摘要 本发明公开了一种SIP注册域内信令安全交互方法,该方法的注册认证过程采用RFC3261中定义的基于挑战的注册认证过程,但在该过程中使用了双密钥机制的数字证书,实现了双向的基于数字证书认证机制,并且安全的传送了用于非注册信令数字摘要认证的共享密钥SEED,非注册信令认证采用了实现简捷、高效、兼容性强的数字摘要认证方式,使安全计算开销微乎其微,实现了高安全性和高性能的并存。它可以防止服务器伪装攻击、Bye攻击、Cancel攻击、REFER攻击和UPDATE攻击等典型的SIP攻击。本发明利用了注册认证和非注册信令的关联,结合了双密钥认证的高安全性和数字摘要认证的高效性,具有较强的实用价值。
申请公布号 CN101710900B 申请公布日期 2012.07.25
申请号 CN200910260083.7 申请日期 2009.12.24
申请人 公安部第一研究所;北京中盾安全技术开发公司 发明人 张本锋;陈朝武;房子河;崔云红;樊志英;李硕;王学华;王楠;赵惠芳
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京中海智圣知识产权代理有限公司 11282 代理人 王冬华
主权项 一种SIP注册域内信令安全交互方法,其特征在于:包括两个相互关联的安全过程,即注册信令认证过程和基于数字摘要的非注册信令认证过程,注册信令认证过程为非注册信令认证过程提供对称的密钥。注册信令认证过程中服务器方使用nonce=A&B,A=E[PRs,H(From+To+Call‑ID+Contact+SEED)],B=E(PUd,SEED)其中,&为字符串连接分割符;+为字符串连接符;H为Hash运算;E为加密运算;注册服务器为s,注册服务器的公钥为PUs,私钥为PRs;设备为d,设备的公钥为PUd,设备的私钥为PRd;From、To、Call‑ID、Contact为REGISTER消息头域相应的字段值;SEED为服务器和设备间的共享密钥,SEED由服务器方产生,传递到设备方后设备方保存该共享密钥SEED;设备方使用D(PRd,B)=D[PRd,E(PUd,SEED)]=SEED获得共享密钥SEED,判断解密的D[PUs,E[PRs,H(From+To+Call‑ID+Contact+SEED)]]是否和H(From+To十Call‑ID+Contact+SEED)的结果相等;计算response的值,response=H(nonce+SEED),非注册信令认证过程摘要内容为H(From+To+Call‑ID+Date+SEED+SIP消息体);其步骤如下:(1)、注册信令认证过程;具体包括以下步骤:a)、设备上线向SIP注册服务器发送REGISTER注册消息;b)、SIP注册服务器收到REGISTER注册消息,生成随机数作为共享密钥SEED的值;c)、SIP注册服务器计算nonce值nonce=A&B,A=E[PRs,H(From+To+Call‑ID+Contact+SEED)],B=E(PUd,SEED);d)、SIP注册服务器以A&B为nonce值向设备发送401消息;e)、设备收到401消息,首先计算D(PRd,B)=D[PRd,E(PUd,SEED)]得到共享密钥SEED;然后计算H(From+To+Call‑ID+Contact+SEED)和D(PUs,A)=D[PUs,E[PRs,H(From+To+Call‑ID+Contact+SEED)]],当两者的值相同时,证明消息来自相应的注册服务器,即设备对SIP服务器做了认证;计算response值,response=H(nonce+SEED);f)、设备重新以H(nonce+SEED)为response值重新发送REGISTER注册消息;g)、SIP注册服务器收到注册请求,用自己保存的该设备的共享密钥SEED计算H(nonce+SEED),将计算结果和设备发送来的response做比较,相同时说明是相应设备发来的信令,即服务器对设备做了认证;h)、如果验证通过,SIP注册服务器则发送“200OK”到设备,至此,设备上线注册成功;(2)、基于数字摘要的非注册信令认证过程;具体包括以下步骤:a)、信令发起方用自己保存的共享密钥SEED计算并发送以H(From+To+Call‑ID+Date+SEED+消息体)为nonce值的SIP消息;b)、信令接收方取出接收到的消息的Date值,比对时间窗口,如果信令不在时间窗口内,丢弃该信令;否则,执行c;c)、信令接收方用相应设备的共享密钥SEED值和接收到的SIP信令的From、To、Call‑ID、Date以及消息体一起计算信令摘要值H(From+To+Call‑ID+Date+SEED+消息体),并和信令中的nonce值做比对,如果相同则转去执行d;否则,丢弃该指令;d)、信令接收方执行指令;e)、信令接收方计算并发送以H(From+To+Call‑ID+Date+SEED+消息体)为nonce值的SIP响应消息;f)、信令发起方取出接收到的消息的Date值,比对时间窗口,如果信令不在时间窗口内,丢弃该信令;否则,执行g;g)、信令发起方用自己保存的SEED值和接收到的SIP信令的From、To、Call‑ID、Date以及消息体一起计算信令摘要值H(From+To+Call‑ID+Date+SEED+消息体),并和信令中的nonce值做比对,如果相同时执行h;否则,丢弃该指令;h)、信令发起方执行指令。
地址 100048 北京市海淀区首都体育馆南路1号