5G时代,跟IMSI-CATCHER SAY GOODBYE

from:https://unicorn.360.com/blog/2018/04/18/GoodBye_5G_IMSI-Catcher/

0x00 IMSI & IMSI-Catcher

我们以前担心的手机泄漏个人位置隐私的问题,也就是在2G/3G/4G一直存在的IMSI Catcher问题,终于有望在5G标准里得到彻底解决啦! 这个问题在每次制定新一代网络标准的时候,都要争论一回。这是网络功能性、成本与安全性之间的斗争。在5G的第一版标准,Release15,关于安全的标准[1]中,IMSI加密是最大的亮点。

在2/3/4G网络中,攻击者能通过十分廉价的设备获取你的位置。这是由于手机每次需要联网的时候都要大声喊着,“我是谁谁谁”,攻击者就可以通过手机报告的信息确定手机的大概位置了。专业一点的说,手机所广播的那条“我是谁谁谁”就是手机的IMSI码,全球唯一,就如同你的身份证号。设想,如果满大街都在喊着每个人的身份证号,那么追踪某一个人就变得容易了。

当然实际上,IMSI这么关键的信息不会在你发送的每条信息中都带着。手机还会有一个临时身份证(GUTI/TMSI),平时传递数据都是使用这个临时身份证,手机只有在特殊的场景下会发送自己的IMSI。手机会在哪些场合会发送自己的IMSI呢?

0x01 什么情况下手机会发送IMSI?

情景一:手机接入正常的网络时
手机开机后,先从USIM中读取之前运营商分配的临时身份信息GUTI/TMSI,发送携带该身份信息的信令给基站,请求接入运营商网络。基站收到该消息后便转发给核心网的MME,若MME中可以查询到对应的GUTI/TMSI对应的真实身份,则允许手机接入。若MME查询不到,则需要重新对手机发起真实身份核验的请求“Identity Request”,即要求手机提供真实身份IMSI。
通常触发手机真实身份验证的合理情况有:手机首次入网或手机移动到其它MME覆盖范围后,MME中无法从网络中查询到手机的GUTI/TMSI,故而需要手机上报自己的真实身份。
在这种情景下,攻击者只需采取被动监听就可以捕捉到手机的IMSI。

情景二:手机接入到伪基站网络时
伪基站通过高信号强度压制真实基站把手机吸进来(手机会自动选择信号强度最强的基站),之后强行给连接过来的手机发送身份验证请求消息——“Identity Request”,手机就会乖乖的把自己真实身份报上来。
在该情境下,攻击者采取的是主动攻击,需要打开伪基站,不停的发送“Identity Request”就可以获取周围手机的真实身份。
这种获取IMSI的工具,就称为IMSI Catcher,其中比较出名的一款工具叫Stingray(黄貂鱼),目前被一些执法部门使用。Stingray是一款同时具有被动监听(监听+数据分析)和主动攻击(伪造基站)的IMSI Catcher。通过获取IMSI,TMSI,IMEI可以更好地获取移动终端的数据信息。并且设备非常便携,可以装在飞机、汽车、无人机等交通工具适用以上两种情景,并且该设备还可以测绘基站的分布情况,自行进行数据分析,追踪目标手机位置,监听通信内容,进行DDoS攻击等。


图:Stingray(图片来自网络)

讲到这,大家一定有疑问,这么重要的身份信息为何不能加密传输呢?因为在建立安全连接的过程中,一开始网络不知道手机是谁,要先知道它是谁,才开始交换密钥,换句话说,核心网在加密信息前要确定对方是自己人。

0x02 5G是如何解决IMSI-Catcher问题的呢?

5G决定引入公钥私钥的机制,公钥用来公开并加密,私钥用来保留并解密。将公钥存放在手机端,私钥存放在运营商手里,如此一来,只有运营商可以解密手机的真正的身份信息,攻击者只能拿到加密后的信息,没有私钥而无法解出IMSI。

此时,整个手机的鉴权流程是什么样的呢?
手机的真实身份在5G里称为SUPI(SUbscription Permanent Identifier)(类似IMSI),通过公钥加密后的密文称为SUCI(SUbscription Concealed Identifier),SUCI传送给基站后,基站直接上传至核心网[1]。
大概的流程如下图所示:

  1. 手机向基站gNB发起接入网络的请求,发送SUCI(即加密的SUPI)或是GUTI;(注:在4G和5G共存的时代,将存在两种无线接入与核心网,这里我们单讨论5G里通过NR-gNB作为接入核心网NGCN(NextGen Core)的方式)
  2. 基站gNB收到信息后,转发至核心网的SEAF(SEcurity Anchor Function);
  3. SEAF收到信令后解析后看是GUTI还是SUCI,若是GUTI就匹配到对应的SUPI,若为SUCI则不解密,继续向AUSF(Authentication Server Function)发起鉴权申请Nausf_UEAuthentication_Authenticate Request,并携带对应的网络服务信息SN-Name,方便AUSF调用对应鉴权算法AV(Authentication Vector,包含RAND, AUTN, HXRES*和 K_seaf);
  4. AUSF通过分析SEAF携带的网络信息SN-Name,确定手机是否在网络服务范围内,并保存手机需要的网络服务信息,接下来继续将SUCI或SUPI和服务网络信息SN-Name转发给UDM(Unified Data Management);
  5. 在UDM中调用SIDF(Subscription identifier de-concealing function)将SUCI解密得到SUPI,然后通过SUPI来配置手机对应所需的鉴权算法。
  6. 接下来便会根据手机的鉴权方式一步步提取对应的鉴权秘钥与鉴权结果,直至最后将结果反馈给手机,手机端USIM会校验网络侧所发送鉴权结果的真伪。

转载于:https://www.cnblogs.com/bonelee/p/9284499.html

5G信令(就是用户身份信息)——手机开机后,先从USIM中读取之前运营商分配的临时身份信息GUTI/TMSI,发送携带该身份信息的信令给基站,请求接入运营商网络。...相关推荐

  1. vivo开机动画不显示Android,vivo手机开机后一直显示开机画面如何解决

    vivo手机开机后一直显示开机画面如何解决 今天给大家介绍一下vivo手机开机后一直显示开机画面的具体解决方法. 准备工具 1. 手机一直处于开机画面的话,就说明我们的手机出问题了,首先就要想办法进入 ...

  2. 手机开机后Spreadtrum Factory Test phone test factory used full phone test item test BT EUT exit

    preadtrum factory test 展讯测试平台 phone test 手机测试 factory used 工厂模式 full phone test 测试手机全部 view phone te ...

  3. 服务器开机显示其他用户,电脑开机后总是提示可能需要其他登录信息如何取消...

    ‍ 我们可能会在开机的时候,看到各种提示.有时候总是会出现一些提示,让人很是不耐烦.比如有用户遇到在电脑开机后总是提示"可能需要其他登录信息",不管怎么点击提示都无法去掉.这可能是 ...

  4. 手机开机卡在android画面,手机一直停在开机画面怎么解决【图文】

    手机我相信人们不会不知道,这几年手机的发展速度非常地快,不知道大家平时使用手机的过程之中出现一些故障没有,相信大多数的用户是碰到过的,但是我相信大多数的手机用户是不会解决碰到的故障的.大家平时遇到最对 ...

  5. 为什么开机总是显示服务器,电脑开机后总是提示可能需要其他登录信息怎么取消...

    ? 我们可能会在开机的时候,看到各种提示.有时候总是会出现一些提示,让人很是不耐烦.比如有用户遇到在电脑开机后总是提示"可能需要其他登录信息",不管怎么点击提示都无法去掉.这可能是 ...

  6. android 手机开机启动,手机怎么开机启动项 手机开机启动项方法【详解】

    很多时候,我们的手机开机后,会自动打开很多软件,这会让我们的手机运行速度变慢,那么,该怎么关闭?其实很简单只要打开开机启动项,将已经打钩的选项去掉即可.那么,如何打开开机启动项? 对于没有此选项的软件 ...

  7. 安全管家安卓_手机丢失后可能背负巨额债务,腾讯手机管家提醒注意手机安全防护 -...

    之前骗子偷手机是为了卖手机换钱,现在骗子偷手机,是为了用你的信息各平台套现.近期,一篇名为<一部手机失窃而揭露的窃取个人信息实现资金盗取的黑色产业链>引发广泛关注,工信部约谈相关单位,并提 ...

  8. 前端、后端、运维都能用的动态 json 数据管理神器,节省你大量的开发、设计数据库、运维的时间...

    基于Json Schema的动态数据管理神器-DMS 介绍 什么是DMS? DMS Github:基于Json Schema/UI Schema模块化的Json动态数据管理平台. 什么是Json Sc ...

  9. 计算机临时桌面是怎么回事,如何解决电脑开机后桌面空白问题?

    如何解决电脑开机后桌面空白问题? 有用户反映遇到电脑开机后桌面空白问题,不显示一个图标,不知道如何解决这个问题.接下来小编就给大家介绍一下具体的操作步骤. 具体如下: 1. 首先第一步进入桌面后,按下 ...

最新文章

  1. 阿里云 Aliplayer高级功能介绍(三):多字幕
  2. SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题
  3. 学习笔记——Maven pom.xml配置详解
  4. SCVMM 2012 R2运维管理十之:添加外围网络计算机
  5. 小心NLS_SORT和NLS_COMP的设置成为性能杀手
  6. 【渝粤教育】广东开放大学 物业实务 形成性考核 (24)
  7. n个整数,其中有两个数是重复的,要求找出这两个重复的整数
  8. Linux进程全解9——进程状态、system函数、进程间的关系
  9. PHPOK企业网站建设的内容管理系统 v5.7源码
  10. 常数时间插入、删除和获取随机元素
  11. sql2012服务器桌面图标,Windows Server 2012 修改桌面图标
  12. 1077. Kuchiguse (20)-PAT甲级真题
  13. 计算机组装与维修技能大赛视频,2013年计算机组装与维修技能大赛试题及答案真题...
  14. mysql8.0 安装 修改密码 允许远程连接
  15. 【原生JS】js小数正则
  16. FSCapture录屏软件
  17. Android 添加水印View
  18. 计算机主机当机是什么意思,宕机什么意思_宕机是什么意思?_宕机的意思_电脑宕机是什么意思...
  19. 华为发布《智能世界2030》报告;金唯智母公司Brooks Automation将以30亿美金出售半导体业务 | 全球TMT...
  20. GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(可解决大多数 CSP 问题)

热门文章

  1. mysql 备份锁表_mysql 不停机 短时间锁表 备份 主备同步 新增备份机器
  2. 3dmax全局材质灯光细分插件_3Dmax渲染Vray渲染提速优化技巧
  3. loadrunner脚本编写,对nginx进行压测
  4. linux下eaccelerator,memcache,memcached安装
  5. 设置固定长度_厂房及仓库常规消防系统设置!
  6. python调用函数出现未定义_python – 为什么函数参数之外的“self”会给出“未定义”的错误?...
  7. 【django轻量级框架】一个Github用户检索信息网站(解析和代码)
  8. python【蓝桥杯vip练习题库】ALGO-86矩阵乘法(枚举)
  9. Oracle11g与Oracle11gxe有什么区别
  10. 统计元音(格式控制)