5G通信卡中SUCI隐私保护的研究
2020-04-02阎占林黄健文李俊磊蔡秋艳
阎占林,黄健文,黄 健,李俊磊,蔡秋艳,杨 光
(1.中国电信股份有限公司广东研究院,广东 广州 510630;2.广州优亿信息科技有限公司,广东 广州 510630)
0 引言
对于普通通信用户而言,电信诈骗是生活中最常见的诈骗手段之一,垃圾短信、骚扰电话和诈骗电话时时刻刻存在身边,不仅给日常生活造成困扰,还可能会造成经济上的损失[1]。5G之前的通信系统,通信卡与通信网络在空口之间通过国际移动用户识别码(International Mobile Subscriber Identity,IMSI)传输通信鉴权数据,IMSI一般不会直接暴露在空口中。在空口中直接暴露的是临时移动用户标识(Temporary Mobile Subscriber Identity,TMSI),TMSI相当于对IMSI进行了初步加密,然后再传输到网络中,但当网络中没有存储与用户IMSI对应的TMSI时,就需要用户将IMSI发送给网络,从而保证用户鉴权可以正常进行[2]。在这种场景下,IMSI会暴露在空口中,不法分子可以通过IMSI Catcher截获用户的IMSI,从而获取用户的身份信息。
一般,在认证过程之后,用户终端和网络之间会生成会话密钥用于加解密,这个过程也称为安全上下文建立的过程。在安全上下文建立之后,就可以对空口的信令和用户数据加密,这个思路从2G到5G都是如此。但5G标准提供了一个新的、之前各代通信系统均不具备的加密特性,即在安全上下文建立之前,就可以对空口上出现的IMSI(5G中称为SUPI)进行加密[3],而未加密的IMSI不会出现在空口中,保证用户通信安全。
1 5G通信系统中的用户永久标识符
用户永久标识符(Subscription Permanent Identifier,SUPI)是5G系统分配给每个用户的全局唯一5G用户永久标识符[4],并且提供给UDM/UDR。SUPI仅用在3GPP系统中。
SUPI格式定义2种类型:一种为IMSI;一种为采用访问网络标识符(Network Access Identifier,NAI)格式的网络特定标识符(Network Specific Identifier,NSI),用于私有网络[5]。
1.1 IMSI类型
IMSI是用于区分移动通信网络中不同用户在所有移动通信网络中不重复的识别码。在GSM/UMTS系统中,应向每个移动用户分配独特的IMSI。
IMSI组成结构如图1所示。
图1 IMSI组成结构Fig.1 Structure of IMSI
IMSI由3部分组成:
① 移动国家代码(Mobile Country Code,MCC),由3位数字组成,MCC唯一识别移动用户所属的国家;
② 移动网络代码(Mobile Network Code,MNC),3GPP网络应用程序由2或3位数字组成的,MNC的长度(2或3位数字)取决于MCC的值,不建议在单个MCC区域内混合2和3位的MNC代码,在同一个国家内,如果有多个公共陆地移动网(Public Land Mobile Network,PLMN),可以通过MNC来区别,即每一个PLMN都要分配唯一的MNC;
③ 移动用户标识号码(Mobile Subscriber Identification Number,MSIN),用以识别某一移动通信网中的移动用户。
1.2 NSI类型
如果通信卡中130号服务可用,则NSI文件存在,该NSI类型的SUPI用于私有网络。该文件包含NSI类型的SUPI,标识为NAI格式。本文件类型中的SUPI不能是IMSI。
NSI文件定义如表1所示。
表1 NSI文件定义
Tab.1 Definition of NSI file
文件标识符:′4F09′文件类型:透明文件可选/必选:可选短文件标识符(SFI):′09′文件大小:Z Byte (Z ≥X)更新频率:低访问条件: 读权限 PIN 更新权限 ADM 去激活权限ADM 激活权限 ADM字节描述必选/可选长度1~X特定网络标识TLV数据对象必选X Byte
特定网络标识TLV数据对象:特定网络标识符的NAI编码格式为UTF-8字符串。
2 5G通信系统中的隐藏性用户标识符
5G网络与4G网络相比变得更加开放,相比现有的相对封闭的移动通信系统来说,5G通信网络面临更多的网络空间安全问题[6]。比如 APT 攻击、DDOS及Worm 恶意软件攻击等,而且攻击会更加猛烈,规模更大,影响也会更大。针对这些安全挑战,相关的5G研究组织都进行了深入的需求分析,并且在5G移动通信中引入了隐藏性用户标识符(Subscription Concealed Identifier,SUCI)的概念[7-9]。
2.1 SUCI组成结构
SUCI组成结构如图2所示。
图2 SUCI组成结构Fig.2 Structure of SUCI
SUCI具体组成结构如下:
(1) SUPI类型,范围0~7,指明SUPI类型,用于加密成SUCI,类型定义如下:
① 0 IMSI;
② 1 特定网络标识;
③ 2~7 保留。
(2) 主网络标识,用于表明用户的主网络。
当SUPI类型是IMSI时,主网络标识符由两部分组成:
① MCC:由3位小数组成,独特地确定了移动用户所在国家;
② MNC:由2或3个小数位组成,标识移动用户的归属PLMN[10-12]。
当SUPI类型为NSI类型时,主网络标识符由一个字符串组成(NAI),该字符串长度可变。
(3) 路由指示标识,主网络分配在通信卡上1~4的4个十进制数字,该路由指示符允许连同主网络标识符一起向能够为用户服务的AUSF和UDM路由网络信令。如果在通信卡上没有配置路由指示符,则应将此数据字段设置为值0并且提供给通信卡。
(4) 保护方案标识,范围0~15。包括null-scheme,ECIES Profile A,ECIES Profile B或由本地公用陆地移动网络(Home Public Land Mobile Network,HPLMN)专有的保护方案。
(5) 主网络公钥标识,范围0~255。它表示由HPLMN提供的公钥,并用于标识SUPI保护的密钥。如果使用null-scheme,则此数据字段应设置为0。
(6) 方案输出,即椭圆曲线集成加密方案(Elliptic Curve Integrated Encryption Scheme,ECIES)加密输出。由具有可变长度或十六进制数字的字符串组成,该字符串的长度取决于所使用的保护方案,包括null-scheme,ECIES Profile A,ECIES Profile B加密方案的输出或HPLMN专有的保护方案输出。
当SUPI为IMSI类型时,5G通信卡从6F07(EFIMSI)文件中获取MCC/MNC,从5FC0/4F0A(EFRouting_Indicator)文件中获取路由标识信息,从5FC0/4F07(EFSUCI_Calc_Info)文件中获取保护体系方案标识和主网络公钥标识,添加SUPI为IMSI类型的标志0,组成SUCI前5部分,再从6F07(EFIMSI)文件中获取MSIN进行加密,生成SUCI第6部分ECIES加密输出部分,这6部分共同组成一个完整的SUCI。
2.2 SUCI结构中涉及到的5G卡新增文件
2.2.1 SUCI_Calo_Info文件
SUCI_Calo_Info文件,隐藏性用户标识符计算信息文件。
如果“SUCI计算由终端执行”(通信卡中124号服务可用,125号服务不可用),则终端可以从通信卡中读取该文件来获取计算所需相关参数。
如果“SUCI计算由通信卡执行”(通信卡中124号和125号服务均可用),则终端不可以从通信卡中读取该文件的相关参数。终端通过GET IDENTITY指令来获取由通信卡计算出的SUCI信息。
如果通信卡中124号服务不可用,则此文件对终端不可用。
SUCI_Calo_Info文件定义如表2所示。
表2 SUCI_Calo_Info文件定义
Tab.2 Definition of SUCI_Calo_Info file
文件标识符:′4F07′文件类型:透明文件可选/必选:可选短文件标识符(SFI):′07′文件大小:X Byte(X≥ 2) 更新频率:低访问条件: 读权限 PIN 更新权限 ADM 去激活权限ADM 激活权限 ADM字节描述必选/可选长度1~Z保护方案标识符列表数据对象必选Z ByteZ+1~Y+Z主网络公钥列表数据对象可选Y Byre
① 保护方案标识符列表数据对象
内容:此数据对象应始终存在。如果保护方案标识符列表数据对象长度不为零,则该数据对象包含保护方案标识符和相应的密钥索引的列表。第一保护方案标识符条目具有最高优先级,最后的保护方案标识符条目具有最低优先级。密钥索引值表示主网络公钥在主网络公钥列表中的位置,适用于保护方案。
② 主网络公钥列表数据对象
内容:此数据对象包含主网络公钥列表和相应的主网络公钥标识符,该标识符将由终端用于计算SUCI。如果保护方案标识符列表数据对象中包含的保护方案配置文件中没有一个使用主网络公钥(例如,空方案),则该数据对象可能不存在。如果存在此数据对象,则至少包含一个主网络公钥和相应的主网络公钥标识符[13]。
2.2.2 Routing_Indicator文件
Routing_Indicator文件,路由指示器文件。
如果通信卡中124号服务可用,则此文件存在。此文件包含终端或通信卡计算SUCI所需的路由指示符。
Routing_Indicator文件定义如表3所示。
由图7可知,随着蛋白质质量浓度的增大,玉米醇溶蛋白与ZA对ABTS+·清除率均有增加。质量浓度为6 mg/mL时,玉米醇溶蛋白的ABTS+·清除率36%,ZA的ABTS+·清除率为 58%,表明 ZA的ABTS+·清除率更高一些。
表3 Routing_Indicator文件定义
Tab.3 Definition of Routing_Indicator file
文件标识符:′4F0A′文件类型:透明文件可选/必选:可选短文件标识符(SFI):′0A′文件大小:4 Byte更新频率:低访问条件: 读权限 PIN 更新权限 ADM 去激活权限ADM 激活权限 ADM字节描述必选/可选长度1~4路由指示器必选4 Byte
路由指示器:
内容:此文件包含路由指示符,该指示符允许与MCC和MNC一起将具有SUCI的网络信令路由到能够为用户服务的AUSF和UDM。
编码:
字节1~2:2字节编码。该文件应该至少包含一个路由标识的有效数字,即使该数字被设置为零。
字节3~4:RFU。
2.3 SUCI隐私保护类型
2.3.1 null-scheme方案输出
null-scheme方案输出如图3所示。
图3 null-scheme方案输出Fig.3 Output of null-scheme
null-scheme方案输出内容为移动用户标识号码或用户名,不会对MSIN或用户名进行加密。
椭圆曲线加密Profile A方案输出如图4所示。
图4 椭圆曲线加密Profile A方案输出Fig.4 Output of elliptic curve encryption scheme profile A
椭圆曲线加密Profile A方案输出为如下3部分:
① ECC临时公钥格式为64个十六进制数字,允许编码256位;
② 密文值为十六进制数字编码的可变长度;
③ MAC标记值为16个十六进制数字,允许对64位进行编码。
2.3.3 Profile B加密方案输出
椭圆曲线加密Profile B方案输出如图5所示。
图5 椭圆曲线加密Profile B方案输出Fig.5 Output of elliptic curve encryption scheme profile B
椭圆曲线加密Profile B方案输出为如下3部分:
① ECC临时公钥格式为66个十六进制数字,允许编码264位;
② 密文值为十六进制数字编码的可变长度;
③ MAC标记值被格式化为16个十六进制数字,允许对64位进行编码。
2.3.4 HPLMN专有保护方案输出
HPLMN专有保护方案的方案输出如图6所示。
图6 HPLMN专有保护方案的方案输出Fig.6 Output of HPLMN proprietary protection schemes
HPLMN专有保护方案输出为十六进制数字的可变长度。
通过以上SUCI隐私保护类型的研究,现阶段运营商主要考虑采用的应该是Profile A,Profile B和null-scheme3种方案。假如5G通信中Profile A,Profile B加密方案由于网络侧解析SUCI出现数据错误或计算方式与通信卡计算方式不一致等异常时,还可以采用null-scheme方案来保证用户正常的通信功能。HPLMN专有保护方案目前应用场景尚不明确[14]。
2.4 SUCI隐私保护
SUCI隐私保护,也可称为ECIES加密计算流程,即SUCI组成结构第6部分方案输出的加密部分,是指运用ECC椭圆曲线加密算法对SUPI进行加密,然后输出ECC临时公钥、密文值和MAC标签值等过程。
ECIES加密计算流程如图7所示。
图7 ECIES加密计算流程Fig.7 ECIES encryption calculation process
(1)卡片生成秘钥对
算法:Curve25519(Profile A)/secp256r1(Profile B);
输出:公钥、私钥。
(2)Key Agreement
算法:X25519(Profile A)/Elliptic Curve Cofactor Diffie-Hellman Primitive(Profile B);
输入:运营商公钥 + USIM私钥;
输出:Eph.share.key。
(3)ShareInfo
算法:Elliptic-Curve-Point-to-Octet-String Conversion;
输入:USIM私钥、公钥;
输出:Share Infomation。
(4)KDF
算法:ANSI-X9.63-KDF;
输入:Eph.share.key、Share Information;
输出:Eph.enc key(16)、ICB(16)、Eph.mac key(32)。
(5)数据加密
算法:AES-128 in CTR mode;
输入:SUPI、Eph.enc key、ICB;
输出:Ciphertext value。
(6)计算MAC
算法:HMAC-SHA-256;
输入:Ciphertext value、Eph.mac key;
输出:MAC。
(7)组装ECIES
输出:the ECC ephemeral public key、 the ciphertext value、 the MAC tag value。
加密输出的ECIES再加上SUCI结构的前5部分,即SUPI类型、主网络标识、路由指示符、保护方案标识及主网络公钥标识,共同组合成一个完整的SUCI,作为鉴权数据的载体传输到网络中,使终端和网络能够正常进行鉴权[15]。
2.5 SUCI结构举例
举例1:
假设SUPI格式为IMSI类型,IMSI为234150999999999,其中MCC为234、MNC为15,MSIN为0999999999,路由指示符为678,归属网络公钥标识符为27。
则Profile A加密方案下的SUCI组成为0,234/15,678,1,27,
举例2:
假设SUPI格式为NSI类型,网络特定标识符为user17@example.com,路由指示符为678,归属网络公钥标识标识符为27。
则NAI格式下的SUCI组成为1,678,1,27,
通过上述2个举例可以看出,不同的SUPI类型对应不同的SUCI结构。当SUPI格式为IMSI类型时,对应的SUCI结构是完整的6部分结构组成方式;当SUPI格式为NSI类型时,对应的SUCI结构少了第2部分主网络标识,但是在第6部分方案输出那里加上了域名。根据目前4G通信卡的IMSI鉴权方式以及NSI类型私有网络的不明确性,目前运营商在选择5G通信卡SUPI类型的时候应该优先考虑IMSI类型,等将来NSI类型的私有网络明确或者某个定制网络有需求的时候,再采用NSI类型的SUPI。
3 结束语
通过本文的研究可以看出,在5G通信卡中,SUPI分为IMSI和NSI两种类型,不同的SUPI类型对应着不同的SUCI组成结构,也对应着不同的应用网络。SUPI通过不同的加密方案加密成SUCI,该加密过程可以简单概括为使用ECC椭圆曲线加密算法的PKI加密机制,公钥1*私钥2=公钥2*私钥1,利用2对公私钥的特殊性质,实现SUPI加密为SUCI。卡片入网信息由加密后的SUCI提供,这样既可以保证空口SUPI不被泄露,还保证了终端和网络鉴权的正常进行,从而让SUCI实现了用户信息的隐私保护,也体现出了5G对用户安全及信息保护的初衷。