3 g 安全体系结构

30
3G 安安 安安安 安安安 2004 安 3 安 26 安

Upload: tamal

Post on 18-Jan-2016

213 views

Category:

Documents


0 download

DESCRIPTION

3 G 安全体系结构. 张方舟 2004年3月26日. GSM 的安全体系结构. GSM 的安全体系结构. GSM 网络中用户身份的保密 用户有可能会在无线信道上发送 IMSI , 这样很容易被人为截取。为了减少 IMSI 在无线信道上的传输, GSM 系统采用临时用户身份 TMSI 。 在 VLR 处存储 TMSI 和 IMSI 之间的对应关系。这样一般来说,只有在用户开机或者 VLR 数据丢失的时候 IMSI 才被发送,平时仅在无线信道上发送移动用户相应的 TMSI 。. GSM 系统中的用户鉴权 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3 G 安全体系结构

3G 安全体系结构

张方舟2004 年 3 月 26 日

Page 2: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

Page 3: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

GSM网络中用户身份的保密 用户有可能会在无线信道上发送 IMSI ,这样很容易被人为截取。为了减少 IMSI 在无线信道上的传输, GSM 系统采用临时用户身份 TMSI 。在VLR 处存储 TMSI和 IMSI 之间的对应关系。这样一般来说,只有在用户开机或者 VLR 数据丢失的时候 IMSI 才被发送,平时仅在无线信道上发送移动用户相应的 TMSI。

GSM系统中的用户鉴权在 GSM 系统中, AuC( Authentication Center ,用户鉴权中心)为每

个用户准备了“鉴权三元组”( RAND, XRES, Kc),存储在 HLR 中。当 MSC/VLR 需要鉴权三元组的时候,就向 HLR 提出要求并发出一个消息“ MAP-SEND-AUTHENTICATION-INFO”给 HLR (该消息包括用户的IMSI), HLR 的回答一般包括五个鉴权三元组。任何一个鉴权三元组在使用以后,将被破坏,不会重复使用。

当移动台第一次到达一个新的 MSC(Moblie-Service Switching Center,移动业务交换中心)时, MSC 会向移动台发出一个随机号码 RAND ,发起一个鉴权认证过程(MS 移动到一个新的 MSC 时,发起的是 TMSI 而不是IMSI)

Page 4: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

MS VLR/SGSN HE/HLR

Generate authenticationvectors AV(1..n)

Store authentication vectors

Select authentication vector AV(i)

Authentication data request

Authentication data responseAV(1..n)

User authentication requestRAND(i) || AUTN(i)

User authentication responseRES(i)

Compare RES(i) and XRES(i)

Verify AUTN(i)Compute RES(i)

Compute CK(i) and IK(i) Select CK(i) and IK(i)

Authentication andkey establishment

Distribution ofauthenticationvectors from HEto SN

Page 5: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

( 1) AuC 产生一个随机数 RAND ,通过( AuC 中的) A3、 A8 算法产生认证(鉴权)向量组( RAND, XRES, Kc)。

( 2) VLR/MSC 收到鉴权三元组以后存储起来。当移动台注册到该 VLR时, VLR/MSC 选择一个认证向量,并将其中的随机数 RAND 发送给移动台。

( 3 )移动台收到 RAND 以后,利用存储在 SIM 卡中的 A3、 A8 算法,计算出SRES和 Kc (计算流程如图 3 所示)。移动台将 SRES 发送给 VLR/MSC ,如果SRES 等于 VLR/MSC 发送给用户的 RAND 所在的鉴权三元组中的 XRES ,移动台就完成了向 VLR/MSC 验证自己身份的过程。

由以上分析可看出,在 GSM 系统中 , Kc 从来不通过空中接口传送,存储在 MS 和 AuC 内的 Kc 都是由 Ki 和一个随机数通过 A8 算法运算得出的。密钥 Ki 以加密形式存储在 SIM 卡和 AuC 中。

A3

RAND(128bit)

Ki(128bit)

XRES(32bit)

A8

RAND(128bit)

Ki(128bit)

Kc(64bit)

Page 6: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

鉴权过程完成以后, MSC 将鉴权三元组中的 Kc 传递给基站 BTS 。这样使得从移动台到基站之间的无线信道可以用加密的方式传递信息,从而防止了窃听。( GSM 系统中无线链路信息加解密过程如下图所示)

64bit 的加密密钥 Kc ,再和当前帧号 Fn( 22bit )作为 A5 算法的输入,计算密钥流。对消息进行逐位异或加密,将密文从移动台传递到基站。基站接收到加密的信息,用相同的密钥流逐位异或来解密。

A5

MS BTSKc(64bi t)

A5

Fn(22bi t) Fn(22bi t)Kc(64bi t)

114bitkeystream 114bitkeystream

明文 明文密文

无线信道

Page 7: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

GSM中安全要素的分布: GSM 系统中,安全要素分布在不同的网络实体平台上。

  阴影单元随网络政策变化是时间的函数,白色单元不随时间变化

MSSIM BTS VLR HLR/AUC

Kc

A5

Kc TMSI

Kc

RAND

XRES

IMSI

Ki

A3

A8

IMSI

A8

A3

Ki

Kc

TMSI

A5 IMSI

RAND

Page 8: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

AuC (鉴权认证中心)存放每个用户的国际移动用户身份IMSI( International Mobile Subscriber Identity),用于用户开机登陆网络或者在临时移动用户身份 TMSI 不能使用时验证或搜索用户;存放用户的密钥 Ki (在用户使用 IMSI 接续的时候, Ki 被授予给用户);为完成鉴权过程, AuC 要负责生成随机值 RAND; AuC 中还存放了鉴权算法A3 以及数据加密密钥生成算法 A8。

VLR/MSC 为每个 IMSI 存放若干鉴权三元组。为了避免 IMSI 被截取,需要最大限度地减少在无线信道上传送。因此在 VLR 中记录 TMSI与IMSI 的的对应关系,仅在无线信道上发送移动用户的 TMSI。

BTS 中存储编码算法 A5 和密钥 Kc ,用于解密接收到的密文形式的用户数据和信令数据(包括解密)。

移动台将鉴权算法 A3 和数据加密密钥生成算法 A8 、用户密钥 Ki 以及用户身份 IMSI (TMSI) 存储在 SIM 卡中。 SIM 卡是一种防篡改的设备,增强了算法和密钥的安全性。编码算法 A5 和由 A8 计算出的加密密钥 Kc存储在手机中。

由此可以看出 A3、 A8、 A5、 Ki、 Kc 是不在网络中传递的,从而增强了网络的安全性。

Page 9: 3 G 安全体系结构

2004.03.26

GSMGSM 的安全体系结构的安全体系结构

GSM 存在的安全问题:

一、 GSM 系统中的认证是单向的,只有网络对用户的认证,而没有用户对网络的认证。因此存在安全漏洞,非法的设备(如基站)可以伪装成的合法的网络成员,从而欺骗用户,窃取用户的信息。二、 GSM 系统中的加密不是端到端的,只是在无线信道部分即MS和 BTS 之

间进行加密。在固定网中没有加密,采用明文传输,这给攻击者提供了机会。三、在移动台第一次注册和漫游时, IMSI 可能以明文方式发送到 VLR/MSC ,

如果攻击者窃听到 IMSI ,则会出现手机“克隆”。四、在移动通信中,移动台和网络间的大多数信令信息是非常敏感的,需要得

到完整性保护。而在 GSM 网络中,没有考虑数据完整性保护的问题,如果数据在传输的过程中被篡改也难以发现。

五、随着计算机硬件技术进步带来的计算速度的不断提高,解密技术也不断发展。 GSM 中使用的加密密钥长度是 64bit ,在现在的解密技术下,已经可以在较短时间内被破解。六、在 GSM 系统中,加密算法是不公开的,这些密码算法的安全性不能得到客

观的评价,在实际中,也受到了很多攻击。七、在 GSM 系统中,加密算法是固定不变的,没有更多的密钥算法可供选择,

缺乏算法协商和加密密钥协商的过程。

Page 10: 3 G 安全体系结构

2004.03.26

33GG 的安全体系结构的安全体系结构

GSM 和 3G 的安全比较

Page 11: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构的安全体系结构

3G 的安全体系结构

Page 12: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构的安全体系结构

3G 的安全功能结构

Page 13: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构的安全体系结构

安全措施分为 5类:一、增强用户身份保密( EUIC):通过 HE/AuC (本地环境 / 认证中

心)对 USIM (用户业务识别模 :块)身份信息进行认证;二、用户与服务网间身份认证( UIC);三、认证与密钥分配( AKA):用于 USIM、 VLR/SGSN (访问位置寄存器 /服务 GPRS支持节点)、 HLR (归属位置寄存器)间的双向认证及密钥分配;

四、数据加密( DC): UE (用户终端)与 RNC (无线网络控制器)间信息的加密;

五、数据完整性( DI):用于对交互消息的完整性、时效性及源与目的地进行认证。

  系统定义了 11 个安全算法: f0、 f1*、 f1~ f9 ,以实现其安全功能。 f8、 f9 分别实现 DC和 DI标准算法。 f6、 f7 用于实现EUIC。 AKA由 f0~f5 实现。

Page 14: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构的安全体系结构

  3G鉴权认证过程

MS VLR/ SGSN HE/ HLR

认证请求

生成认证向量AV 1. . n组 ( )

存储认证向量组

选择一个认证向量组RAND| | AUTN

AUTN验证RES计算

RES

RES XRES比较 和

CK I K计算 和 CK I K选择 和

Page 15: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:认证鉴权过程祥解认证鉴权过程祥解

一、认证中心 AuC 为每个用户生成基于序列号的认证向量组(RAND,XRES,CK,IK,AUTN) ,并且按照序列号排序。 AuC 产生认证向量组的流程如下图所示:

f0 是一个伪随机数生成函数,只存放于 AuC 中,用于生成随机数 RAND。 3G 认证向量中有一个“认证令牌” AUTN ,包含了一个序列号,使得用户可以避免受到重传攻击。其中 AK 是用来在 AUTN 中隐藏序列号,因为序列号可能会暴露用户的身份和位置信息。

Page 16: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:认证鉴权过程祥解认证鉴权过程祥解

 二、 当认证中心收到 VLR/SGSN 的认证请求,发送 N 个认证向量组给 VLR/SGSN 。在 VLR/SGSN 中,每个用户的 N 个认证向量组,按照“先入先出”( FIFO )的规则发送给移动台,用于鉴权认证。

Page 17: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:认证鉴权过程祥解认证鉴权过程祥解

三、 VLR/SGSN初始化一个认证过程,选择一个认证向量组,发送其中的RAND和 AUTN 给用户。用户收到后 RAND||AUTN 后,在 USIM 卡中进行下列操作。

Page 18: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:认证鉴权过程祥解认证鉴权过程祥解

                首 先 计 算 AK 并 从 AUTN 中 将 序 列 号 恢 复 出 来SQN=(SQN⊕AK)⊕AK;         USIM 计算出 XMAC ,将它与 AUTN 中的 MAC 值进行比较。如果不同,用户发送一个“用户认证拒绝”信息给 VLR/SGSN ,放弃该认证过程。在这种情况下, VLR/SGSN向 HLR 发起一个“认证失败报告”过程,然后由 VLR/SGSN决定是否重新向用户发起一个认证过程。         用户比较收到的 SQN 是否在正确范围内(为了保证通信的同步,同时防止重传攻击, SQN 应该是目前使用的最大的一个序列号,由于可能发生延迟等情况,定义了一个较小的“窗口”,只要 SQN 收到的在该范围内,就认为是同步的。)                 如果 SQN 在正确范围内, USIM 计算出 RES ,发送给 VLR/SGSN ,比较 RES 是否等于 XRES 。如果相等,网络就认证了用户的身份。         最后,用户计算出加密密钥 CK=f3(RAND, K) ,完整性密钥IK=f4(RAND, K)

Page 19: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:认证鉴权过程祥解认证鉴权过程祥解

四、  如果用户计算出 SQN(序列号 ) 不在 USIM 认为正确的范围内,将发起一次“重新认证”

UE/USIM HE/AUCVLR/SGSN

RAND||AUTN

AUTS

RAND||AUTS

AV(1...n)

Page 20: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:用户信息加密用户信息加密

在完成了用户鉴权认证以后,在移动台生成了加密密钥 CK 。这样用户就可以以密文的方式在无线链路上传输用户信息和信令信息。发送方采用分组密码流对原始数据加密,采用了 f8 算法。接收方接收到密文,经过相同过程,恢复出明文。

   COUNT:密钥序列号, 32bit BEARER:链路身份指示, 5bit DIRECTORY:上下行链路指示, 1bit ,消息从移动台到 RNC ,取值为 0 ;反之为 1 。   LENGTH:密码流长度指示, 16bit CK:加密密钥, 128bit

Page 21: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:用户信息完整性保护用户信息完整性保护

在 3G 中,采用了消息认证来保护用户和网络间的信令消息没有被篡改。发送方将要传送的数据用完整性密钥 IK经过 f9 算法产生的消息认证码 MAC ,附加在发出的消息后面。接受方接收到的消息,用同样的方法计算得到 XMAC 。接收方把收到的 MAC和 XMAC 相比较,如果两者相等,就说明收到的消息是完整的,在传输过程中没有被修改。

COUNT-I:密钥序列号, 32bitMESSAGE:消息DIRECTORY:上下行链路指示, 1bit 。消息从移动台到 RNC ,取值为 0 ;反之为 1 。FRESH:网络生成的一个随机数, 32bitIK:完整性密钥; 128bitMAC-I:消息认证码

f9

COUNT-I

MESSAGE

DIRECTION

FRESH

IK

MAC-I

f9

COUNT-I

MESSAGE

DIRECTION

FRESH

IK

XMAC-I

UE RNC

Page 22: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构:的安全体系结构:增强的用户身份认证增强的用户身份认证(( EUICEUIC))

 EUIC 的实现过程(对 IMSI 的加密和解密算法)

   GK:用户入网时,与 HE/AuC 及群中的其他用户共享的群密钥。   SQN_UIC: USIM 产生的序列号,每次均不同。

Page 23: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: IMSIIMSI 的组成的组成

  MSIN(Mobile Station Identity Number):移动用户鉴权号码,是IMSI 组成部分之一。 MCC:移动通信国家码 MNC:移动网络码

Page 24: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 33GG 中的密钥协商机中的密钥协商机制制

3G 系统中,增加了密钥协商机制,在认证和密钥协商机制的执行过程中实现。加密算法协商和完整性算法协商都是通过用户和网络之间的安全协商机制实现的。

当移动台需要与服务网络之间以加密方式通信时,以下列规则做出判断:1)      如果移动台和服务网络没有相同版本的 UEA (加密算法),但是网络规定

要使用加密连接,则拒绝连接。2)      如果移动台和服务网络没有相同版本的 UEA (加密算法),但是网络允许

使用不加密的连接,则建立无加密的连接。3)      如果移动台和服务网络有相同版本的 UEA ,由服务网络选择其中一个可接

受的算法版本,建立加密连接。3G 系统中预留了 15种 UEA 的可选范围。为了实现用户信息和信令信息的完整性保护,服务网络与移动台之间以下列规则进

行算法协商:1)      如果移动台和服务网络没有相同版本的 UIA (完整性算法),则拒绝连接。2)      如果移动台和服务网络有相同版本的 UIA ,由服务网络选择一种可接受的算

法版本,建立连接。3G 系统中预留了 16种 UIA 的可选范围。通过实现算法协商,增加了 3G 系统的灵活性,是不同的运营上之间只要支持一种

相同的 UEA/UIA ,就可以跨网通信。

Page 25: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 22GG 和和 33GG 共存网络的安全性共存网络的安全性

准则准则

3G VLR/SGSN

3G接入网 2G接入网

2G VLR/SGSN

2G接入网

  USIM 用户 SIM 用户

3G VLR 3G 安全上下文 2G 安全上下文

2G VLR 2G 安全上下文 2G 安全上下文

2G 和 3G共存网络的接入环境

2G 和 3G共存的情况下向用户提供的安全性

Page 26: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 22GG 和和 33GG 网络共存时的用户网络共存时的用户

鉴权鉴权

用户使用 USIM卡接入到 2G和3G共存的网络中:   (1) 通过 UTRAN(WCDMA 系统是 IMT-2000家族的一员,它由 CN (核心网)、 UTRAN( UMTS 陆地无线接入网)和 UE (用户装置)组成。 UTRAN 和 UE 采用 WCDMA 无线接入技术。) 接入时,使用UMTS( Universal Mobile Telecommunications System 的缩写,中文译为通用移动电信系统 )鉴权;   (2) 当使用 3G 移动台和 3G MSC/VLR 或 SGSN 通过 GSM BSS 接入时使用 UMTS 鉴权机制。其中GSM 密钥从 UMTS CK和 IK 计算获得;   (3) 如果使用 2G 移动台或 2G MSC/VLR 或 SGSN 通过 GSM BSS 接入,使用 GSM 鉴权机制。其中用户响应 SRES 和 GSM 密钥从 UMTS SRES、 CK和 IK 得到。

Page 27: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 22GG 和和 33GG 网络共存时的用户网络共存时的用户

鉴权鉴权

在 2G和 3G共存网络中,用户也可以使用 SIM 卡接入到网络中。由于 GSM SIM 用户只支持 GSM系统安全特性,所以鉴权过程必然是 GSM 系统的。

  注意:在 SIM 卡用户接入到UTRAN ,与 VLR/SGSN 进行鉴权认证的过程以后, 3G VLR/SGSN 将利用 CK和 IK 为用户提供安全保护,但由于此时用户安全特性的核心仍是 GSM 密钥 Kc ,所以用户并不具备 3G 的安全特性。

Page 28: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 22GG 和和 33GG 网络共存时的用户网络共存时的用户

鉴权鉴权

2G和 3G安全上下文之间转换运算的算法

c1 : RAND[GSM] = RAND

c2 : SRES[GSM] = XRES*1 xor XRES*2 xor XRES*3 xor XRES*4GSM中 RES 是 32bit ,所以将 3G 中的 XRES 分成每段为 32bit 的四部分。 XRES* = XRES*1 || XRES*2 || XRES*3 || XRES*4如果 XRES 为 128bit, XRES=XRES*如果 XRES 不足 128bit ,就用 0补足,即 XRES*=XRES||0..0。

c3 : Kc[GSM] = CK1 xor CK2 xor IK1 xor IK2 Kc 是 64bit, CK和 IK 是 128bit ,所以将 CK、 IK 分为两半:CK=CK1||CK2, IK=IK1||IK2 c4 : CK [USIM] = 0…0||Kc即 Kc占据 CK 的低 64bit ,高 64bit 为 0 。

c5 : IK [USIM] = Kc||Kc

Page 29: 3 G 安全体系结构

2004.03.26

3G3G 的安全体系结构: 的安全体系结构: 33GG 认证鉴权中可能存在的认证鉴权中可能存在的问题问题

A. 3G 认证方案实现了 VLR对MS 以及 MS对 HLR 的认证,但不要求 MS对 VLR进 行 认 证 [2][10] 。 因 此攻击者 X 可 利 用 截获的合法 IMSI 进 行 如 下 的攻击:① MS→X: IMSI ②; X→VLR: IMSI ③; VLR→HLR: IMSI ④; HLR→VLR:AV=RAND‖XRES‖CK‖IK‖AUTN ⑤; VLR→X : RAND‖AUTN ⑥; X→MS :RAND‖AUTN ⑦; MS→X: RES ⑧; X→VLR: RES 。这样, X 就可以假冒该MS 入网。但由于 CK与 IK未在无线接口中传输,攻击者无法获得这些密钥而进行正常的通信。但是 3G 认证方案没有考虑到网络端的认证与保密通信。若攻击者 X对 VLR与 HLR 之间的信息进行窃听,就可能获得 HLR 传给 VLR 的认证向量 AV从而获得 CK与 IK 。此后攻击者 X 再假冒该 MS 入网,即可实现正常的保密通信,而合法用户传送的信息也就失去了保密性。B. 由于用户在不同的 PLMN( Public Land Mobile Network )之间漫游,这些不同 PLMN 甚至可以是在不同的国家,为了对用户进行鉴权认证,本地网络( HE/HLR )会把用户的鉴权五元组发送到漫游的网络的 VLR/SGSN ,在这个过程中,用户鉴权向量组,穿过不同的网络,很容易受到攻击。C. 在用户开机注册到网络的时候,或者网络无法从 TMSI恢复出 IMSI 的时候(比如 VLR/SGSN 的数据库错误),用户将向网络以明文形式发送 IMSI ,这是非常不安全的做法,很容易遭到中间人攻击的。D. 加秘密钥和加密算法在 3G 中,不再是固定的(比如 GSM 中的 A5 加密算法是固定的)。但是必须要有一种安全的方法让用户和网络之间对加秘密钥和加密算法进行协商。

Page 30: 3 G 安全体系结构