按照目前的国际规范,IMS认证方式主要有IMS AKA、SIP Digest、NASS-IMS Bundled Authentication(NBA)以及GPRS-IMS Bundled Authentication(GBA)几种方式。其中NBA和GBA认证的主要思路是IMS核心网信任接入网络(NASS、GPRS)为用户分配的IP地址,因此不涉及鉴权参数的使用,本文仅根据个人理解列举了IMS AKA和SIP Digest过程中各参数的用途。

IMS AKA

username

即用户的IMPI。

K

IMS AKA认证过程中的根密钥,除RAND之外的其他鉴权参数计算过程中全部需要使用K。K分别存储在ISIM(或终端)以及HSS中,永远不会在网络上传输。

RAND

由HSS生成的随机数,HSS和ISIM(或终端)通过RAND和K可以计算IK/CK/RES/XRES。RAND在鉴权过程中会从HSS一直传递至终端。

XRES

XRES由HSS通过K和RAND计算得到,这个参数从HSS传递至S-CSCF,不会继续向下传输。S-CSCF通过比对从XRES和从终端得到的RES来对用户身份进行认证。

RES

RES由终端通过K和RAND计算得到,并在鉴权响应中携带该参数。该参数从终端传送至S-CSCF。

IK

完整性密钥。终端和HSS分别计算该参数,HSS计算的IK会一直传递至P-CSCF。终端与P-CSCF之间建立IPSec所使用的完整性密钥即为该参数。

CK

加密密钥。终端和HSS分别计算该参数,HSS计算的CK会一直传递至P-CSCF。终端与P-CSCF之间建立IPSec所使用的加密密钥即为该参数。

SQN

终端与HSS同步的序列号。这个序列号是计算AUTN的中间值。当网络与终端的SQN失配时,终端会从新发起REGISTER请求,携带auts参数,用于SQN同步。这个参数不会在网络上传输,分别由终端和HSS本地维护。

AUTN

用于终端对网络的认证。该参数从HSS一直传递至终端,终端收到鉴权挑战后,会根据SQN计算XAUTN,然后与收到的AUTN进行比对,以此来对网络进行认证。

SIP Digest

username

即用户的IMPI。

password

该参数的性质与IMS AKA中的K类似,即终端与网络之间共享的一个“秘密”,用于网络对终端的认证,这个参数同样不会在网络上传输。但是与K也有不同,password通常不会直接用于计算鉴权结果,而是使用对password的哈希结果,即通常所说的H(A1),HSS会在Cx查询时将H(A1)传递给S-CSCF。在终端与P-CSCF之间使用TLS时,建立TLS使用的密钥不一定根据这个password生成。

nonce

该参数与IMS AKA中的RAND类似,用于计算认证结果,与IMS AKA不同的是nonce值由S-CSCF生成,而不是从HSS得到。

response

该参数与IMS AKA中的RES类似,终端首先通过password计算得到H(A1),然后再结合nonce值计算得到response。这里需要注意一点,当需要进行完整性保护(见qop)时,计算response的输入需要增加消息体,也就是SIP消息的body部分(不包括Header)。

qop

也就是"quality of protection",可以取的值目前有auth和auth-int。当鉴权过程中包含了qop参数时,计算response的输入须加入cnonce和nonce-count。当qop取值为auth-int时,表示需要进行完整性保护(见response)。终端发出第一条REGISTER请求时不会携带qop,S-CSCF返回401响应时携带qop参数并在其中包含网络支持的qop能力,终端再次发起REGISTER请求时携带qop参数,由终端确定使用的qop能力。这里有个问题:在TS24.229的描述中,没有出现qop的auth-int取值,我最初的想法是P-CSCF会修改REGISTER消息(如加入via头),这样就破坏了消息的完整性从而导致鉴权失败,但是转念一想SIP Digest完整性保护的是SIP消息体而不会保护消息头,那么就是说P-CSCF有可能修改消息体,但是REGISTER消息中又不会携带消息体,为什么3GPP没有使用SIP Digest的完整性保护能力呢?这件事目前还没有想明白,望大侠指点。

cnonce

简单的理解就是client nonce,即终端产生的nonce。在RFC 2617的描述中,该参数主要有两个用途,一是供终端对网络进行认证;另一个是避免一种叫做"chosen plaintext"的攻击(不太清楚这种攻击的机理)。对于作用一,网络侧收到REGISTER消息应后,会通过cnonce计算rspauth参数并在200 OK中返回给终端,终端以此对网络进行认证(类似于IMS AKA中使用AUTN的方式)。对于作用二,RFC 2617是这样解释的:中间人攻击者可以随意生成nonce并让终端通过nonce计算response值,这样攻击者就可以比较方便地分析出用户的秘密,有了cnonce之后就可以避免遭受这种攻击。我个人理解是这样的:攻击者可以通过设计一组有特殊性质的nonce值,让终端分别计算response值,对于随机的一组nonce和response是不可能反算出password的,但是由于攻击者设计的一组nonce值具有特殊性质,那通过这组特殊的nonce和相应的response就有可能推算出password。在这种情况下,用户计算response时的输入添加了cnonce(见qop),那么就相当于破坏了攻击者设计的nonce之间的关联性,也就难以反算出password。当然,由于专业不是这方面的,这只是我的推测。

nonce-count

nonce的计数器,用户每使用同一个nonce计算一次response就会将nonce-count增加(至于是否一定是递增1我还不确定,规范中似乎也没明确),由于nonce-count也参与response的计算,这也就降低了重放攻击的可能性。

nextnonce

在SIP Digest过程中,不一定每次认证(即使在同一会话中)都使用同样的nonce,此时网络侧可通过使用nextnonce来指定下一次鉴权使用的nonce值,终端下次发送消息直接使用nextnonce计算response从而省掉了一次challenge-response的过程。

相关博文推荐:

更多精彩内容推荐:

aka鉴权 ims_宋月:IMS鉴权过程中各参数的用途相关推荐

  1. aka鉴权 ims_IMS鉴权过程中各参数的用途

    IMS 鉴权过程中各参数的用途 发帖日期: 2011-08-18 14:12:52 按照目前的国际规范, IMS 认证方式主要有 IMS AKA . SIP Digest . NASS-IMS Bun ...

  2. ims对接vos过程中出现的无声单通解决办法

    ims对接vos过程中,经常会出现没有声音,或者是单通这种情况,比较恼火.下面将出现的情况,大概罗列下. 首先最基础的就是打开所有媒体转发,另外一个就是如果有内外外网地址,要在vos上设置内外外网对应 ...

  3. 从“点卡改月卡”谈电子游戏产业中的道德困境

    从"点卡改月卡"谈电子游戏产业中的道德困境 几个月前,延续了13年之久的国服<魔兽世界>点卡制迎来了终止.虽然在两年前官方就预告了这一结果,但当这一刻来临的时候,轩然大 ...

  4. 29个月过去了,CSDN排名前200了:排名不断靠前的过程中,自己的技术水平和竞争力一定会不断向上...

    2019独角兽企业重金招聘Python工程师标准>>> 刚刚在csdn博客又发表了一篇,工作问题总结,突然发现,我的博客排名终于进入前200了. 这又是一个伟大的里程碑啊. 在过去2 ...

  5. 如何网络推广浅析网站优化的过程中首页降权了该怎么办?

    如何网络推广中网站排名优化就是为了让网站能更受欢迎,能吸引到更多的流量,进而促进网站的效益等,并且首页的优化在整个网站优化过程中也是非常重要的,有时候就会引起优化人员的过度重视,从而造成了过度优化,导 ...

  6. 网络营销专员浅析如何面对网络营销过程中的降权处理

    在企业网站进行网络营销过程中通过各种优化方式以达到营销目的期间,没有任何站长可以确保网站在运营优化期间一次降权情况都不发生的,其实发生降权问题并不可怕,可怕的是从没有处理好降权问题,就会影响后续网站运 ...

  7. 网站推广过程中如遇网站降权应从网站推广中哪些细节着手分析?

    通常站长在运营优化期间难免遇到网站被搜索引擎降权的情况发生,这不仅会对网站日常优化工作带来影响,更会影响用户对网站的日常访问.但是想要恢复网站权重也不简单,那么面对网站降权问题,站长应如何分析呢?下面 ...

  8. CSP认证201703-4 地铁修建[C++题解]:连通路径上的最大边权最小、bfs求边权为1的最短路、二分查找

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 题目给定n个点和m条边,要求最多选择n条边,使得1到n连通,然后每段路同时开工,求最小工时.换句话说,求的是连通路上最大边权最小. ...

  9. mysql 提权方法_mysql常用的提权方法

    一,利用MOF提权 Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的托管对象格式 (MOF) 文件: 方法 1: 运行 MOF 文件指定为命令行参数将 Mofcomp. ...

  10. 承租方在使用过程中,若违反本公司的有关规定,公司有权在任何时候收回车辆...

    四. 承租方提供转帐支票,必须款进帐后方可办理租车手续.如出现空头支票,将上报公安机关,一切责任自负. 五. 承租方每天按24小时为一个租车日,每天限200公里,超一公里收费一元,超每小时是30元到5 ...

最新文章

  1. [JS][dp]题解 | #打家劫舍(一)#
  2. linux存储实用程序,技术|使用 Linux 实用程序 gPhoto2 备份手机存储
  3. 第9条:用生成器表达式来改写数据量较大的列表推导式
  4. 同事反馈环:为什么度量和会议还不够充分
  5. Linux如何建立用户(组)及调整用户(组)属性(案列+详细指令)
  6. iOS开发总结(A0)- Localization
  7. 从SqlServer转手Oracle的一些坑
  8. 阶段3 1.Mybatis_02.Mybatis入门案例_3.mybatis注解开发和编写dao实现类的方式
  9. 游戏Gala—基于星际文件系统的非中心化游戏
  10. c盘找不到appdata
  11. 事件绑定,事件类型,事件委托
  12. 初识AutoIt v3
  13. Linux终端出现:To run a command as administrator (user “root“), use “sudo <command>“.
  14. CAD偏移尺寸出问题该如何解决?
  15. iOS线下分享《RunLoop》by 孙源@sunnyxx
  16. numpy计算移动平均值
  17. 360doc个人图书馆解决复制问题
  18. CGTrader新赛CG Wildlife Challenge(CG野生生物竞赛)重磅推出
  19. 静态路由配置(不会配静态路由,看这里就够了!)
  20. c语言求寻找假币的次数,C语言经典算法 - 八枚银币问题

热门文章

  1. 统计学习之第一天(可汗学院公开课:统计学)
  2. 简谈浅层拷贝和深层拷贝
  3. 【TL学习笔记】1:领域自适应(Domain Adaptation)方法综述
  4. Failed to resolve:问题的解决方法
  5. 如何利用wordpress搭建一个免费博客
  6. 【第二节】HTML5小实例
  7. 用PySimpleGui做户籍资料查询工具
  8. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
  9. mysql 修改max_allowed_packet_Mysql修改max_allowed_packet参数
  10. linux mysql max_allowed_packet_Linux服务器上如何设置MySQL的max_allowed_packe