通信网的身份认证

运营商移动通信网的接入认证是蜂窝通信的服务基础,为用户接入通信网提供了基础的准入保障。纵观历代移动通信网鉴权技术,从鉴权方向上看主要是两大类:单向鉴权→双向鉴权。这里的单向鉴权主要指通信网络对用户的鉴权,而不是反过来;双向鉴权就是用户和移动通信网络双向鉴权。

一,2G时代的认证与鉴权

第一代模拟通信系统(就是常见的大哥大),基本上是没有安全防护机制的。到了2G GSM时代,模拟通信系统变成了数字通信系统,增加了很多安全能力。包括,空口信息加密、身份认证鉴权、身份标识码和过期用户过滤。其中鉴权认证就是防止未授权用户接入GSM系统,基本原理就是在用户和网络之前运行鉴权和密钥协商协议,当终端用户接入时,对用户身份进行鉴别。

需要提前说明的是,2G GSM系统的鉴权认证是网络对终端用户的单向认证,使用的是内置在SIM卡中和发卡中心分别保留的对称密钥(算法是COMP-128,包含A3、A5、A8)。

GSM的鉴权过程并不复杂,在GSM09.02 MAP规范中对相关的流程有详细的描述,整个鉴权过程如下图:

http://www.infocomm-journal.com/cjnis/fileup/2096-109X/FIGURE/2018-4-12/Images/2096-109x-4-12-00001/img_1.jpg

图1 GSM系统的鉴权过程

图1中,从右向左,分别是:

  • 用户终端(SIM卡)
  • VLR(Visitor Location Register)--拜访位置寄存器,通信网络中每个基站都有一个VLR相对应,所以一个终端设备只会在一个VLR中记录;
  • HLR(Home Location Register)--终端SIM卡归属地的一个中心数据库,存储移动电话的详细信息。SIM卡的IMSI(International Mobile Subscriber  Identity,国际移动用户识别码)是存储主键。HLR可以是分布式部署的,多个物理的HLR组成一个逻辑HLR。一个SIM卡同时只能关联到一个HLR;
  • AUC(Authentication Center)--鉴权中心,根据HLR的信息对移动电话的接入进行鉴权;

其实在GSM系统中,几个最重要的部分就是HLR、VLR、AUC和EIR(设备识别寄存器),这里基本都提到了。其中EIR也是一个数据库,通常都是和HLR在一起部署。

应用场景下,终端用户通过所在蜂窝小区的覆盖接入通信网络,如果所访问的VLR中没有这个移动电话已经认证过的信息(包括IMSI、鉴权数据、MSISDN手机号、该用户被允许访问的GSM业务、签约的接入点GPRS、HLR地址),则按照图1进行鉴权认证。若通过鉴权认证,则将移动电话相关的信息更新到HLR和VLR中。相应的流程如下:

·制卡中心将IMSI、KI(Key Identifier,身份识别密钥)写入到SIM卡中,移动电话用户通过购买渠道获取SIM卡;

·当移动电话期望接入网络时,向本地网络发起鉴权请求,VLR将该请求转发给HLR;

·HLR收到VLR的鉴权请求后,产生一个随机数RAND(Random Number),然后使用加密算法A3和A8将这个随机数和根密钥一起计算得出鉴权值SRES(Signed Response),并同时将这个随机数RAND发送给移动电话终端。这个过程是在AUC中进行的;

·移动电话侧根据收到的RAND,结合IMSI、KI计算出一个鉴权响应SRES,并发送给基站;

·AUC将两方的SRES进行对比,如果两者一致,鉴权成功,否则鉴权失败;

整个鉴权的过程并不复杂,计算过程有相应的算法(A3和A8等),但这个过程是能够看出明显漏洞的。下面盘点一下2G GSM网络的安全风险:

·没有独立的完整性防护,传输过程容易被伪造和篡改;

·单向鉴权缺少移动电话端对网络侧的认证,基站容易被冒充;

·核心网内部完全是明文传输,存在安全风险;

    这些都是非常高的系统性风险,也是2G GSM时代各种信息安全问题频发的根本原因。

注:这里需要说一下常见的GSMGPRSEDGEWAP之间到底是什么区别,这些在2G或者说2.5G2.7G手机上常见的概念到底是什么。先说GPRSGeneral Packet Radio Service,通用无线分组业务)其实是一种基于GSM的无线分组交换技术,提供的是端到端、广域的无线IP连接。而GSM则是电路交换技术。

交换在计算机领域的意思其实就是转接,在通信领域的意思其实就是按照某种方式动态地分配传输线路的资源。

GSM-电路交换:就是指从发出方到接收方两者之间建立连接是需要一条完整的电路连接通道,通道建立后进行通信,并在通道结束后关闭连接通道;

GPRS-分组交换:分组交换是指数据是以分组为单位进行传输和交换的,这里不需要向电路交换一样建立一条专属通道,而是采用存储转发的方式,借助交换节点的路由选择进行分跳传输;

从两者的核心技术内容其实可以看出来,相对于电话、短信类业务使用GSM是比较合适的,对于互联网类业务,使用GPRS更合适一些。以为前者需要充分保证可靠性和稳定性,并对时延的容忍度非常低;而后者允许损失一部分性能,并可以接受一定的时延。

另外,WAPWireless Application Protocal,无线应用协议)与GPRS/GSM基础网络支撑不同,它其实是一个应用层协议,目的是将互联网应用导入到无线终端上。有一个经典比喻:GPRSGSM都是马路,WAP则是跑在马路上的汽车,而数据则是车上的乘客。只是GSM的马路跑起来没有GPRS快,所以WAP多应用在GPRS上。

另外,常见的EDGE是什么呢?EDGE全称是Enhanced Data rate for GSM Evolution,翻译成中文就是增强GSM传输速率的GSM演进技术。所以,EDGEGPRS一样,都是基于传统网络GSM的产物。在3G网络投入运行之前,EDGE是当时最快的无线数据传输技术(GPRS的理论速度达到171kbsEDGE的理论速度达到了384-473kbs)。其实EDGE的高速度是因为它拓展了800,900,1800,1900MHZ的带宽,带宽大了,那传输速度必然更快。

二,3G身份认证与鉴权

3G移动通信系统采用了新的标准,相比于传统的2G GSM能够极大地增加系统容量、提高通信质量和数据传输速率(这里不再分析3G具体架构和内容,详情可参考下方注解)。3G移动通信系统鉴权认证对2G GSM安全性进行了改进,主要解决了单向鉴权的问题,同时引入了AKA(Authentication and Key Agreement)机制,实现了认证参数和会话密钥参数之间的统一管理。

http://www.infocomm-journal.com/cjnis/fileup/2096-109X/FIGURE/2018-4-12/Images/2096-109x-4-12-00001/img_2.jpg

图2 3G UMTS鉴权过程

1:图中显示的UTMSUniversal Mobile Telecommunications System,全球通用移动通信系统),是3G通信的统称。RNS(Radio Network Service,无线接入服务)MSCMoving Station Center,移动台中心)分别是基站侧和基站侧VLR的移动终端电话用户的管理中心,可以整体看做是接入。

说到这里,就要说一下常见的一些名词和概念:在2G时代其实就有了CDMACode Division Multiple Access,码分多址)空口的标准,由美国高通首次提出,后来发展成CDMA20003G空口标准。这里需要注意的是,空口标准和具体的2G3G这些没有绝对关系,只是2G3G通信系统选用的一个空口标准而已。

3G时代到来,国际电联确定了包括WCDMAWide Band Code Division Multiple Access,宽带码分多址)、CDMA2000TD-SCDMA(Time Division-Synchronous Code Division Multiple Access,时分同步码分多址)在内的三个国际无线接口标准。也就是说,采用这三个标准中的任何一个作为空口标准,提供的都是3G通信服务。这里不得不说一下,CDMA的标准其实是由美国定的,中国加入WTO其中也有这个条款,必须要用CDMA,所以中国跟其他国家一样,也为了CDMA持续15年向高通支付了巨额专利费。现在5G来了,大家如此坚决的抛弃CDMA也就可以理解了。所以我们在3G4G时代是没法抛弃CDMA的,这也是我们下大力气力推5G的非常重要的原因。另外,说个题外话,发明CDMA的女演员海蒂·拉玛是一个传奇人物,大家可以去了解一下。

2CDMA理解起来很简单,相当于大家都在向基站发送信息,发送后给自己的信号贴上自己的标记,基站收到后通过每个人贴的标记就可以区分出是谁,这样就可以分别处理了。其中WCDMACDMA2000TD-SCDMA共性是他们的多址方式使用的都是CDMA,三个区别就是双工(可了解下单工、半双工和双工)方式(这个双工方式说来话长,比较专业,尽量通俗点解释)不同。WCDMACDMA2000采用的是FDDFrequency Division Duplexing频分双工),TD-SCDMA采用的是TDDTime Division Duplexing时分双工)。通俗的说,TDD收发公用一个射频频点,上下行链路使用不同的时隙进行通信;FDD使用不同的射频点进行通信。前者是单车道区分时间同行,后者是双向车道互不干扰。详细的区别大家可以看这里

3:这里提到了CDMA(码分多址),在具体的接口标准上,还有FDMA(频分多址)、TDMA(时分多址)。其中,FDMA是第一代通信技术的核心,“大哥大”们分配在同时隙不同频率的信道上进行通信;TDMA则是2G GSM的核心技术,业务的信道在不同时间分配给不同的用户使用,类似于计算机CPU中时间片的概念;CDMA使用扩频的码分多址技术,可以在同一时间和统一频段上,只是特征码不同。

做一个形象的比喻,FDMA相当于一个大厅里做一个个的小隔间,两两在小隔间里对话;TDMA相当于两两分时段用这个大厅;CDMA相当于大家共用一个大厅,两两之间说的分别是中文、英语、德语、俄语,只要不是声音太大(噪声),是能保证两两之间的通信质量的。

可以看出来,相对于FDMATDMACDMA其实是更高效的。再加上3G相对于2G来说带宽提高了几十倍(2G200KHz3G5MHz),速度必然快很多了。

图2中展示的3G通信系统中的鉴权认证思想可以简单概括为:SGSN(Serving GPRS Support Node)/VLR接收到来自移动电话端MS(Moving Station)的响应RES后,对MS的RES与AUC下发的AV(Authentication Vector)中的XRES进行比较,如果一致则鉴权成功,不一致则失败。这个过程中是存在双向鉴权的,MS在生成RES时会对网络侧消息进行鉴权,VLR对MS的RES进行鉴权。具体过程可以简单分成以下几个步骤:

· 首先移动电话端MS对所在地网络发起接入请求,所在地网络将鉴权请求转发到MS的归属地网络。归属地网络中的HLR/AUC生成鉴权五元组向量<RAND, XRES, CK, IK, AUTN>,其中,RAND是随机数,CK是后续会话加密密钥,IK是后续会话完整性密钥,AUTN是鉴权令牌;

· HLR/AUC将鉴权向量AV(Authentication Vector)发送给SGSN/VLR;

· SGSN/VLR从五元组向量中选择一个,发送RAND(i)和AUTN(i)到MS;

· MS收到RAND(i)和AUTN(i)后对网络端发起验证,检查AUTN(i)是否可以接受,,之后计算消息认证码XMAC与AUTN中的MAC(Message Authentication Code)进行比较,不同则终止认证过程。同时MS检验SQN(为了抵御重放攻击的一个序列号计数器,UE和HSS上都有)是否在有效范围内,若不在则MS终止认证过程;

· 以上步骤验证成功之后,终端产生鉴权响应RES(i)至SGSN/VLR,VLR/SGSN比较XRES与RES是否相同。相同则鉴权成功,否则鉴权失败。

· 两方都鉴权通过后,VLR/SGSN向MS同步CK和IK,用于空口加密和完整性保护;

4:以上过程就是3GPP鉴权的AKAAuthentication Key Agreement)机制。网络域上的传送过程使用的是SS7的MAPSEC协议。该协议提供了数据来源认证、数据完整性、抗重放和机密性防护等功能。

根据图2中的描述,MS要接入网络认证,先发送TMSI(临时身份识别码)IMSI(永久用户识别码)到VLRVLR转送到HLRAUC产生五元向量组,其中AUTN=SQN[AK]||AMF||IMAC-A。五元组中的数据是怎么产生的呢?3GPP定义了12个鉴权算法:f0~f9f1*f5*。这些算法都是在AUCMS中进行的,在VLR中不运行这些算法。其中:

        f0算法仅在AUC中执行,用于产生随机数RAND

f1算法为消息鉴权函数,用于计算 网络鉴权时的XMAC-A

f1*算法为消息鉴权函数,支持重同步功能,保证从f1*的函数值无法反推出f1

f2算法为消息鉴权函数,用于用户鉴权计算XRES期望的响应值;

f3算法为密钥生成函数,用于计算加密密钥CK

f4算法为密钥生成函数,用于计算消息完整性密钥IK

f5算法为密钥生成函数,用于计算匿名密钥AK,对鉴权序列号SQN加解密,以防止被位置跟踪;f5*为密钥生成函数,用于计算重同步时的匿名密钥。

由于这些算法的产生依赖于USIM卡中的运营商密钥OPC、常数c1c5r1r5,因此,对每个用户的鉴权算法都是不一样的,从而增加了鉴权的安全性。这些算法在规范ETSI TS 135.232/233/909/208/206/231/205中可以找到,这里不再详写。

相对于2G通信系统的鉴权,3G通信系统主要做了以下改进:

· 实现了双向鉴权认证,防止了伪基站的攻击;

· 提供了接入链路信令数据的完整性防护(CK和IK);

· 密钥长度从64bit增加到了128bit;

·  接入认证的AKA机制具有良好的扩展性;

但是3G系统仍然存在一些安全问题:

· 虽然增加了MS对HLR的验证,但MS仍然缺少对VLR的认证;

· VLR和HLR之间仍然没有进行防护,容易泄露;

· 使用的是对称密钥体系,依赖USIM卡下发写入,没有使用公钥体系;

· 加解密算法比较简单,没有使用类似ECC这些密码算法;

三、4G身份认证与鉴权

到了4G时代就是大家常见的LTE(Long-Term Evolution)了,相比于3G通信系统,LTE提出了SAE(System Architecture Evolution,系统架构演进)作为LTE无线通信的核心网络标准。主要改动为:

· 简化网络

· 全IP网络(AIPN)

· 支持提供更高吞吐量和更低延迟的接入网

· 多个异构接入网互通,包括E-UTRA(一个LTE接入网标准),现有的2G和3G之间的互通

简单来说,LTE在实现了向前兼容的基础上,做到了基于全IP简化网络的高性能、高吞吐和低时延。

5:那4G为啥能比3G传输速率更快呢?从香农定理可以知道,

信道容量C=Blog2(1+S/N),其中B是带宽,S/N是信噪比,这个不理解也没事儿

可等价理解成:C(传输速率)=B(传输带宽)*V(频谱利用率)

可以看出,要提高传输速度,那就增加带宽或者增加频谱的利用率,即,在有限的频谱范围内进行更合理的规划。

首先说一下增加带宽,如果将一个通信技术的频谱从1.25MHz扩展到20MHz,还用3GCDMA就要面临很多问题:好比你原来只需要管理个单车道,现在突然给你个100车道,怎么协调保证不乱,还有做好调度问题,保证高效,所以复杂度大大增加。再考虑到高通几乎把持了所有CDMA的专利,所以4G LTE就选用了OFDMA,而不是对3GCDMA做深度改进;

其次说一下增加频谱利用率。就是更高效地利用频谱,比如做一些好的编码和压缩,用合适的载波进行调制等。其实在这个方面4G3G做的其实都一样,用的Turbo码和64QAM调制(这部分关于编码和调制是通信原理的重点,太深入了,也不需要特别去了解),但LTE支持的MIMO是一种增加频谱利用率的方式。

所以,虽然说LTE是基于3G UTMS/WCDMA的长期演进,其实关系已经不大了。因为3G采用的是CDMA4G已经开始抛弃CDMA转而使用OFDMOrthogonal Frequency Division Multiplexing,正交频分复用,注意这里并不是OFDMAOFDMA是一种频分技术,而OFDMA是基于频分技术而达到的多址技术)了,OFDM可以将一个信道分成若干个正交的子信道(使用快速傅里叶变换),将高速数据信号转换成低速子数据流,调制到每个子信道上进行传输。由于调制的这些信号是相互正交的(乘积是0),所以,我们可以从调制后的载波里获取到我们自己的信号,而完全摒弃其他的信号,进而减少子信道之间的ICIInter-Carrier Interference相互干扰)。

所以,支持4G速度更快的关键技术是OFDMMIMOMassive Input-Massive Output,多进多出)。这里的OFDM上面说过了,MIMO主要是对信号传输尤其是天线来说的。涉及到的空间分集、空间复用、波束赋形的内容比较深入了。只需要知道MIMO能够更好结合OFDM,有效避免天线之间的干扰,区分多个并行数据流,进而减少信号衰落,提升通讯质量和频谱效率就行了。

另外,涉及到4G,我们常听到TD-LTEFDD-LTE,其中TD就是TDD,时分双工,FDD是频分双工。两者在信道传输和帧结构上有区别,两者可以认为基本一致,要深入详情可以参考这篇文章

4G用户接入的鉴权认证与3G相比差别不大,主要在于4G增加了用户对所在地网络(SGSN/VLR/eNB)的身份验证。具体就是,用户在在认证过程中将所在地网络标识ID发送给归属地网络(HSS),HSS在产生认证所需参数时将SGSN/VLR/eNB的ID作为生成参数之一引入,从而使用户也可以在认证时对所在网络的身份进行鉴别。4G LTE的基本架构如下:

图3 4G LTE的基本结构

6:从图3可以看出,LTE的网络结构与3G的不太一样。首先在接入网部分,原来的基站BTSRNC现在合并成了eNodeB,接入过程更加扁平,能够很好地降低接入时延,这里可以简单理解成是一个合并设备的基站。前面说了,4G核心网的架构是SAESAE的传输使用全IP网络,支持系统的控制面和用户面分离。SAE的核心部分是EPCEvolved Packet Core,核心分组网演进,就是图4右边的部分),包括MMESGWPGW。其中,

MME是移动性管理实体,是LTE接入网的控制节点,负责UE的跟踪和寻呼控制(大家可以想下,在接电话的时候,网络怎么知道我们在哪呢,就是由MME来寻找的),也负责同HSS进行通信,确保UE有权限接入和执行漫游限制。其实MME做的工作有点像“网关+鉴权+认证+ACL”的中间角色,这样稍微好理解一些;

SGWServing Gateway,服务网关)负责用户数据包的路由和转发,作为UE用户面数据的锚点,SGW和我们常见的网关有点类似,可以执行合法监听和对传输的数据进行复制;

PGWPDN GatewayPublic Data Network Gateway,公共数据网网关),主要是为UE提供与公共网络(因特网等)之间的传输。一个UE可以同时访问多个PDN,由PGW实现策略的实施,并针对数据包进行过滤、计费、监听与筛选;

所以LTE网络的核心其实并没有那么复杂。事实上,因为需要承载海量的业务,架构就必须要非常简单,要不然涉及的协议和转发规则会拖垮整个业务。

    4G LTE对用户的鉴权过程与3G并没有本质的区别,采用的都是AKA机制,改变的部分是将HSS返回原有的五元组变成了四元组。LTE鉴权认证的具体过程如下:

图4 4G LTE的鉴权过程

从图4可以看出,4G LTE的网络结构鉴权过程相比3G都有了变化。下面分析下过程:

· UE通过eNB向MME发起接入请求,发送自己的IMSI与HSS的ID标识信息,请求接入;

· MME根据请求的HSS-ID向对应的HSS发起鉴权数据请求,请求中包含用户的身份信息IMSI与本服务网的身份信息SNID;

· HSS收到鉴权请求之后,从自己的数据库中查找IMSI与SNID,并验证两个实体的合法性。验证通过后生成四元鉴权向量组AV(1,2,3….n)(这个四元向量组跟3G中的五元向量组略有不同,包括<RAND, XRES, AUTN, KASME>,这里的KASME中的ASME,Key Access Security Management Entries,是一个由CK、IK衍生的密钥);

· HSS将鉴权向量组AV(1,2,3….n)作为鉴权响应发回给MME;

注:鉴权向量组的生成过程如下:

图中关于其中参数的解释在前文都提到过,这里就不再一一解释了,增加的KDFKey Derivation Function,密钥生成函数,用于生成Security各种算法的输入密钥。

· MME收到响应后,存储AV(1,2,3….n),并从中选出一个AV(i) 提取出 RAND(i)、AUTN(i)、KASME(i)等数据,同时为 KASME(i)分配一个密钥标识KSIASME(i);

· MME向 UE 发送用户认证请求,带有RAND(i)、AUTN(i)、KASME(i)等数据;

· UE 收到认证请求后,通过提取和计算 AUTN(i)中的 MAC 等信息,计算XMAC,比较 XMAC 和 MAC 是否相等,同时检验序列号 SQN 是否在正常的范围内,以此来认证所接入的网络;

· UE给MME发用户鉴权请求响应消息,将计算出的RES(i)传输给 MME;

· MME 将收到的 RES(i)与 AV(i)中的 XRES(i)进行比较,如果一致,则通过认证;

· 在双向认证都完成后,MME 与 UE 将KASME(i)作为基础密钥,根据约定的算法推演出加密密钥CK与完整性保护密钥IK,随后进行保密通信;

    以上的协议就是EPS-AKA(Evolved Packet System)的整个鉴权过程了。至此,4G LTE的鉴权过程就完成了,鉴权完成之后是完整性保护和加密过程。因为已经同步了CK和IK,接下来就是NAS(Non-Access Slayer)安全接入和AS(Access Slayer)接入控制了。为了解决3G内网的全透明性,4G将AS和NAS做了分离,一定程度上保证了安全性。但其实EPS-AKA的认证过程也是存在一定漏洞的(这里有分析),所以在后续的使用过程中,也出现了很多改进的AKA协议(比如这个)。4G LTE系统仍存在的漏洞包括:

    · 密钥安全体系不够完善。LTE的密钥衍生体系如下:

图中包含的密钥参数较多,不在一一进行解释了,涉及的场景比较复杂。但是整体可以看出,无论是CK、IK、KASME这些,还是更下层级的密钥,都是由根密钥K衍生出来的(具体的衍生算法可以参考TS 33.401)。如果攻击者获取到了根密钥K,那么整个过程对攻击者来讲就是透明的。因为K是保持不变的,所以攻击者通过大样本学习鉴权参数就可以进行猜测攻击;

· 从上图中可以看出,LTE采用的仍然是对称密码体质,没有解决在3G系统中对于公钥体制的安全需求;

· 业界公认另外一个安全问题就是eNB被非法控制的情况,当eNB被非法控制时,下层密钥就极有可能泄露,同时下级的eNB密钥可以由上级推出,可能导致威胁扩散;

· LTE系统中,为了避免IMSI在空口传输中泄露,引入了TMSI(Temporary Mobile Subscriber Identity)。TMSI是由LTE核心网分配的,能保证攻击者无法确定TMSI属于同一个人,说白了就是核心网给IMSI做了个不断变换的假皮。但在用户首次入网确定TMSI的时候,通过空口传输的仍然是明文IMSI。目前已经有相关的设备可以假冒基站获取首次入网用户的IMSI,对用户位置进行跟踪;

四,5G身份认证与鉴权

5G通信网身份认证使用公钥体制实现鉴权,解决了4G LTE中的安全漏洞,且根据5G面向物联网的特点发展出了面向不同应用场景的鉴权认证协议。下面针对相关鉴权认证协议进行分析,虽然涉及到很多的参数,但有了前面几代通信网鉴权认证过程的了解,对5G系统的鉴权理解起来就没有那么难了。首先来看一下3GPP TS33.501是如何定义应用公钥体系来实现IMSI首次入网的保密过程:

图5 初始化认证过程

从图中可以看出,5G的系统架构与4G在接入网与核心网鉴权逻辑的执行实体有所不同。图中:

· UE(User Entities,用户实体)可以认为与4G中的MS角色一样,但是UE涵盖的范围就不再是移动电话了,还可能包括各种IOT内的用户实体;

· SEAF(SEcurity Anchor Function, 安全锚点功能),主要根据SUCI提供初级认证(有点类似VLR/SGSN的角色);

注:这里的SUCI(Subscription Concealed Identifier,用户隐藏标识)是相对于SUPI(SubscriptionPermanent Identifier,用户永久标识)而言的。在UE首次入网时,通过USIMSUPI进行加密得到SUCI,生成算法可以使用ECIES(椭圆曲线集成加密方案),也可以由运营商选其他的,具体的可参考3GPP TS 33.501 附录C.3 在首次发送过程中还出现了5G-GUTI5G Globally Unique Temporary UE Identity5G全球唯一固定标识)参数。

· AUSF(Authentication Server Function)鉴权服务功能,类似于4G/3G中的AUC的角色;

· UDM/ARPF/SIDF(Unified Data Management),类似于4G/3G中的HSS的角色,提供基础数据的管理;

整个基本的流程如下:

· 手机向5G基站gNB发起网络接入请求,发送SUCI或者GUTI;

· 基站gNB收到信息后,转发至核心网的SEAF;

· SEAF收到信令后解析后看是GUTI还是SUCI,若是GUTI就匹配到对应的SUPI,若为SUCI则不解密,继续向AUSF发起鉴权申请,并携带对应的网络服务信息SN-Name,方便AUSF调用对应鉴权算法生成鉴权向量AV(包含RAND, AUTN, HXRES*和 K_seaf);

· AUSF通过分析SEAF携带的网络信息SN-Name,确定手机是否在网络服务范围内,并保存手机需要的网络服务信息,接下来继续将SUCI或SUPI和服务网络信息SN-Name转发给UDM;

· 在UDM中调用SIDF(Subscription identifier de-concealing function)将SUCI解密得到SUPI,然后通过SUPI来配置手机对应所需的鉴权算法。

· 根据手机的鉴权方式提取对应的鉴权秘钥与鉴权结果,最后将结果反馈给UE,UE端USIM会校验网络侧所发送鉴权结果的真伪;

注:整个过程中SUPI如何使用公钥体制加密生成SUCI呢?下面看一下相关过程:

图7 SUCI生成过程

先说一下,图中蓝底标注的Plain-text block就是SUPI,最终输出的Cipher-text valueSUCIMAC-tag value是完整性校验信息。图中出现的密钥有三个,一个是UE端用ECC生成的公私钥Eph.public keyEph.private key,还有就是USIM中固定存储的网络侧公钥Public key of HN。终端生成的私钥与网络侧公钥结合派生出一对加密密钥Eph.shared key,随后派生出加密主密钥Eph.master shared key,取高有效位对SUPI进行加密得到SUCI,取低有效位对发送到网络侧的整个消息体进行完整性保护,然后将终端公钥、SUCIUE参数一并发送到网络侧。

网络侧在收到UE入网请求后,对终端SUCI进行认证,认证过程可参考图8。网络侧使用私钥Private of HN与终端发送的公钥Eph.public of UE结合生成共享密钥Eph.shared key,随后派生出主密钥master key。先使用低有效位发起完整性验证,确认通过后将信令转发至UDM施行SIDF过程解密得到SUPI进行对比。

https://s.secrss.com/anquanneican/a373338be6b1865371a3f90ca4a2bac3.png

图8 网络侧对UE鉴权过程

整个过程实际上借助了ECC的算法特性:终端私钥*网络公钥=网络公钥*终端私钥。这个过程参考3GPP TS 33.501

在解决了首次入网IMSI泄露的风险后,可以认为两边同步了SUPI。在后续的接入请求中,5G接入的鉴权认证分成两种:5G-AKA和EAP-AKA’,两者过程基本类似,3GPP要求在5G公网建设时对两者都必须提供支持。

1, EAP-AKA’

EAP-AKA’(Extensible Authentication Protocal)的认证是一个“挑战-响应”的过程,充分保证了网络侧对UE的鉴权认证各个环节安全性,具体流程如下:

图9 EAP-AKA’的认证过程

这里省略了由UE发送接入请求的过程,事实上,在1之前UE会发送接入请求通过SEAF到达AUSF,发送的认证强求内容包括SUCI/5G-GUTI。请求最终到达UDM:

· UDM/ARPF生成鉴权向量AV(RAND, AUTN, IK, CK, RES)(这个跟AKA很像),然后再根据3GPP TS 33.501 Annex.A中的算法将CK和IK替换成CK’和IK’,然后将AV’和SUPI发送给AUSF;

注:生成五元组的过程在3GPP TS33.102附录H,这个上文也提到过。替换CKIK的这个过程是为了尽量隐藏IKCK,防止密钥在内网之间的传输中被窃取;

· AUSF获取到UDM的响应后,存储相关数据并向AUSF发送EAP请求已经AKA挑战到SEAF;

注:在RFC 4748规范中有对EAP请求和AKA挑战的详细解释,篇幅太长,这里不再赘述;

· SEAF把收到EAP请求以及AKA’挑战透传到UE,并将将5G密钥集标识符ngKSI 和架构之间的反混淆ABBA参数一起发送给UE,这两个参数由SEAF生成(关于ngKSI和ABBA参数,前者是用于认证成功后创建本地安全上下文,后者是一个防止混淆的区分版本安全特性指示参数);

· UE根据接收到的消息计算响应RES,并将EAP响应和AKA’挑战消息发送到SEAF;

· SEAF将EAP响应和AKA’挑战消息转发到AUSF;

· AUSF对返回RES进行对比,如果认证成功则将结果通知UDM,失败则返回;

· AUSF 计算出KSEAF(参考RFC 5448和TS 33.501 A.6)。AUSF向SEAF发送EAP认证成功消息,并转发给UE。响应消息中包含KSEAF和SUPI;

· SEAF将包含ngKSI和ABBA参数的EAP认证成功消息发送给UE。至此认证过程结束;

整个过程中SEAF作为安全功能锚点扮演了类似计算机网络中的网关角色,为UE的接入进行监控、控制和转发。

2,5G-AKA

5G-AKA也是基于4G的EPS-AKA演化而来的,具体的过程如下:

图10 5G-AKA认证过程

如图所示,5G-AKA的认证过程仍然是SEAF、AUSF和UDM几个核心网网元:

· UDM/ARPF创建5G归属地环境认证向量5G HE AV,然后导出KAUSF;

注:这里5G HE AV就不再是向量组了,而是只有一个向量<RAND, AUTN, XRES*KAUSF>KAUSF的生成机制参考TS 33.501 附件A.2XRES*的生成参考TS33.501附件A.4

· UDM将5G HE AV响应返回给AUSF,用标记位标记该响应为5G-AKA的响应。如果之前UE请求中包含SUCI,则返回的响应中应当包含SUPI;

· AUSF存储向量中的XRES*和SUPI,并根据TS 33.501附件A.5将XRES*生成HXRES*,同时根据TS 33.501附件A.6将KAUSF生成KSEAF最终组成5G SE AV<RAND, AUTN, HXRES*>发送至SEAF;

· SEAF收到5G SE AV后将RAND、AUTN发送至UE,消息体中包含AMF的ngKSI和ABBA参数;

· UE收到SEAF消息首先根据AUTN计算消息是否过期,然后由USIM计算RES、CK和IK,并根据TS 33.501附件A.4通过RES计算RES*,计算完成后将RES*发送至SEAF;

· SEAF根据TS 33.501附件A.5由RES*计算HRES*并与HXRES*相比较,若一致则通知AUSF认证成功,否则通知AUSF认证失败;

· AUSF收到SEAF的消息后,首先看5G SE AV是否过期,若已经过期则不承认认证结果。若未过期,AUSF将RES*与XRES*进行比较,若相等,则认为认证成功,并将认证结果通知UDM和SEAF;

· SEAF收到消息后将ngKSI和包含ABBA参数的响应告诉UE,随后UE即可访问核心网服务;

可以看出EAP-AKA’与5G-AKA的整个认证过程大同小异,两者的安全等级也基本一致,在这篇文章中有两者与EPS-AKA的比较。相对于4G LTE,5G认证和密钥管理机制提供了统一的认证框架,更好的UE身份认证保护、增强的同网控制以及在密钥派生中更多的密钥分离。在目前R16已经冻结的情况下,当前的安全机制已经是非常强了。

3,GBA认证

5G对物联网强悍的支持能力要接受海量的IOT设备接入,海量设备身份的识别就不再是一个可选项了。因此3GPP不仅提供了UE到核心网的认证,还在 TS 33.220规范中定义了GAA/GBA--在卡内开发了业务接入认证功能,主要是为IOT产业链和产业互联网提供统一的业务认证能力。相当于把核心网的接入鉴权认证能力外放了,借助运营商鉴权网络的优势和认证权威性开始为上层应用提供基础认证支持(事实上,3GPP在4G LTE建设时就开始支持GBA了,但并非所有的EPC核心网建设时都做了GBA的建设)。

GBA的认证过程主要分成两个部分:GBA认证初始化和认证过程。

注:在做描述之前,先认识一下GBA认证过程中的一些网元。

U--用户设备,不再赘述;

BSF--Bootstrap Server Function 引导服务功能,类似于EPC核心网的AUC或者5G SA核心网的SEAF+AUSF,实现鉴权认证;

NAF--Network Application Function 网络应用功能,主要支持第三方服务从运营商网络获取已经同UE协商好的密钥,并作为中间环节对这些密钥进行管理;

  1. GBA认证初始化

GBA认证初始化的过程如下:

图11 GBA认证初始化

· UE在完成NAS的认证后就开始使用核心网服务(因为规范中并没有写明BSF、NAF有计费的功能,推测是会先进行入网认证,然后才有权限通过eNB接入NAF服务)请求NAF到具体的应用,NAF根据GBA配置响应UE,要求其发起GBA认证;

· UE收到NAF响应,开始发起GBA认证过程;

(2)GBA认证过程

图12 GBA认证过程

· UE向BSF发起GBA认证过程,发出自己的身份标识;

· BSF收到UE的消息体(消息体结构在TS 33.220 附件B.4中定义)后,取”username”参数,查看是否已经认证过有缓存,且缓存没有过期。如果没有则向HSS发起AV请求;

· HSS收到BSF请求后,根据用户的IMSI生成鉴权向量AV<RAND, AUTN, XRES, CK, IK>,并发送至BSF;

· BSF收到HSS响应的向量AV,将AV中的RAND和AUTN转发到UE;

· UE收到BSF的响应后,验证AUTN来自核心网,并根据RAND计算CK、IK和RES,然后将结果通过HTTP发送至BSF;

· BSF验证RES与XRES是否一致,对UE身份进行验证;

· 验证通过后,BSF根据CK、IK生成密钥Ks,使用B-TID(如果HSS随机数做得好,那这个碰撞的概率不大)作为HashCode。随后BSF将B-TID、B-TID生命周期长度,合并200消息发送到UE。同时向NAF发起密钥同步(具体过程参考TS 33.220 4.3.4);

· UE端收到200,也根据CK、IK生成密钥Ks,并验证B-TID是否一致;

· UE和BSF同样根据Ks派生出Ks_NAF密钥(派生规则参考TS 33.220 4.5.3)并存储,留作具体业务交互时使用;

· UE使用派生的密钥合并B-TID向NAF发起应用层业务请求;

· NAF收到请求后判断是否与UE之间现存未失效的密钥,如果存在则直接进行通信。若不存在,则将UE提供的B-TID发送到BSF,索取UE与BSF两者之间已经协调的密钥;

· NAF在获取BSF响应的密钥后与UE持续进行后续交互,至此整个GBA的认证过程完成;

       GBA的认证仍然存在本文三、四节中描述的相关安全缺陷,这也是为什么运营商在进行GBA推广时仍然强调需要应用层PKI认证体制进行辅助认证的原因。但是,GBA对于安全性要求不高的第三方应用场景仍然可以做到一定程度的鉴权认证支持,而且后续3GPP也可能在TS 33.220规范中引入5G中用到的EAP-AKA’或5G-AKA协议。

五,关于通信运营商鉴权认证的分析

发现这是移动通信网中通用的身份鉴权认证协议的基础标准。在查阅了大量关于移动运营商身份认证的文献后,发现内容比较晦涩,涉及的知识比较深入,不易读懂。故在此对相关的内容进行尽量简明的描述,方便后阅。

从5G通信网认证鉴权到3GPP在LTE阶段就已经定义的GBA认证,可以看出通信核心网的基础认证机制都是基于AKA的,而且目前GBA使用的仍然是对称密钥体制。运营商的鉴权认证都有一个基本前提就是默认UE/ME中存在USIM,用于存放两方通信的密钥与基础信息。在拥有足够硬件空间、足够计算量和系统支持的设备上,使用运营商认证鉴权机制能够高效、便捷地对UE/ME实现身份认证,但在硬件空间受限、系统功耗限制的物联网设备上无法应用UICC卡,更何况通信网认证是是基于TCP/IP、GBA认证是基于HTTP的,使用运营商认证在实际的部分物联网设备鉴权认证上可能是行不通的。

针对无法使用UICC卡和HTTP协议的设备来讲,实现身份认证的方式有如下几种:

  1. eSIM/softSIM/vSIM

eSIM(embedded-SIM 嵌入式SIM卡)本质上还是一张常见的UICC-SIM卡,只是由传统的插槽式变成了一个封装的模块直接嵌入到电路板上,这样就大大减少了物理硬件所占空间,并能够实现在不同运营商之间的一键自由切换。

eSIM在功能上同传统的UICC-SIM卡并没有本质的区别,只是节约了空间提升了可靠性。此类解决方案适用于无法为UICC-SIM卡提供足够物理空间的物联网设备。

除了eSIM,还有以纯软件为代表的softSIM和vSIM,这意味着物理形态的SIM卡将不复存在,但由于其中存储的涉及用户隐私的数据过于敏感,短时间内eSIM、softSIM和vSIM的落地恐很难实现,但这些问题解决后,物联网必将会拥抱这些实现方案(具体了解可以参考这篇文章)。

通信运营商提供了

  1. eSIM/softSIM/vSIM+物联网协议

对于功耗有强要求的物联网设备,通常不使用HTTP协议,无法进行GBA身份认证,虽然运营商和其他IT厂商也提供了例如NB-IOT/MQTT/COAP/LTE-Cat1等适用于低功耗IOT设备场景的物联网接入协议,但3GPP并未出具基于此类协进行身份认证与鉴权的规范;

  1. SE

对于无需运营商网络互连的设备,比如工业厂区内部设备、网络边缘(LoRa等)对接的现场级轻量设备等,通常没有对接通信运营商的需求,那么在实际的应用中是无法使用运营商提供的GBA认证的;

  1. 仅应用层认证

仅使用应用层认证的设备也占据物联网设备的很大一部分,此类设备突出的特点是设备 专用,通常没有UICC或SE,仅在设备接入时使用基础应用进行口令认证,安全程度较低,易被攻击和伪造。

事实上,以GBA为代表的运营商身份及安全认证是其抢占物联网设备市场的一个缩影。除非通信运营商鉴权认证体系能够保证UICC-SIM卡中的信息安全完整、运营商的鉴权认证网络环境无法被入侵、其中涉及的密钥派生与鉴权认证的算法协议充分安全,否则移动通信运营商提供的基础认证无法真正作为应用层进行身份认证的唯一依据(按照现在的情况看,单凭移动通信运营商实际是做不到的)。

所以,归结起来,用户设备要实现鉴权认证,无非以下几种情况:

1,UE通过运营商认证和授权,第三方应用完全依赖运营商的认证和授权结果;

2,UE被运营商认证和授权,第三方应用依赖运营商的认证,但向UE进行授权;

3,UE被运营商进行认证和授权,第三方依赖运营商的认证结果,并同时也发起认证;

4,UE被运营商认证,第三方进行二次认证,并进行授权;

  1. UE被运营商进行认证和授权,第三方基于此进行二次认证和授权;
  2. UE完全不受运营商的认证和授权,认证和授权过程由第三方应用来确定;

对于前两种情况,在可预见的短时期内恐怕不会出现,尤其是第一种情况,所以事实上各种物联网设备和应用在实际的使用中还是会由应用方执行独立的认证和鉴权。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐