剖析 GSM 加密机制以及位置更新的过程

你有没有想过打开手机时会发生什么?它是如何以安全的方式与网络进行通信?几乎所有人都知道TCP / IP,并且可能许多人还是专家,但是谈到电信方面,很少有人知道它的内部原理。 gsm中的消息结构是什么?它使用的加密类型是什么?因此,今天我们将详细介绍gsm的加密标准,以及手机如何更新移动网络的位置。

当你打开手机发生了什么?

当您打开手机时,它首先启动其无线电资源和移动管理程序。

手机通过SIM或网络接收附近地区支持的频率列表。

它根据功率级别和移动提供商在一个单元上存储。之后,它会对认证发生的网络位置,进行更新过程。位置更新成功后,手机获得TMSI,现在就可以进行其他的操作了。

 

现在,通过查看移动应用程序调试日志来验证上面的结论。下面的屏幕截图是来自模拟在PC上工作的移动电话的一个osmocom移动应用程序。

SIM发送的移动网络信息

camping on a cell

位置更新请求,包括它的LAI、TMSI

允许位置更新并使用可见的加密标准。

目标

我们将通过osmocom-bb用wirehark捕获gsm数据,并分析整个gsm认证和加密的过程是如何发生的。我们也会看到位置更新过程是如何发生的。

我们已经在上一篇博客中详细介绍了osmocom-bb和建立呼叫的过程。这个博客中会跳过那一部分。

GSM加密标准

A5 / 0 - 未使用加密。为了完整性。

A5 / 1-A5 / 1是用于在GSM蜂窝电话标准中提供空中通信隐私的流密码。它是为了使用GSM而指定的七种算法之一。它最初是保密的,但由于泄漏和逆向工程已经为大众熟知。密码中的一些严重弱点已经被发现。

A5 / 2-A5 / 2是用于在GSM蜂窝电话协议中提供语音隐私的流密码。它用于出口,却并非强于(事实上仍然很弱)A5 / 1。它是为使用GSM所定义的七种A5加密算法之一。

A5 / 3(Kasumi) - KASUMI是用于UMTS,GSM和GPRS移动通信系统的块密码。在UMTS中,KASUMI用于名为UEA1和UIA1的机密性和完整性算法。在GSM中,KASUMI用于A5 / 3密钥流生成器和GEA3密钥流生成器中的GPRS中。

还有一些用的较少,所以没有被提到。

GSM认证和加密是如何发生的?

每个GSM手机都有一个用户识别模块(SIM)。 SIM通过使用国际移动用户身份(IMSI)为移动电话提供独特的身份。 SIM卡就像一个钥匙,失去的话手机就无法运作。它能够存储个人电话号码和短信息。它还存储诸如A3认证算法,A8加密密钥生成算法,认证密钥(KI)和IMSI之类的安全相关信息。移动台存储了A5加密算法。

认证

认证过程检查用户SIM卡的有效性,然后判断移动台是否允许在特定网络上。网络通过使用挑战响应方法来完成用户的认证。首先,通过空中接口向移动台发送128位随机数(RAND)。 RAND被传递给SIM卡,通过A3认证算法与Ki一起发送。 A3算法的输出,经签名的响应(SRES)通过空中接口从移动台发送回网络。在网络上,AuC将SRES的值与从移动台接收的SRES的值进行比较。如果SRES的两个值匹配,认证成功,并且用户加入网络。 AuC实际上不存储SRES的副本,但是根据需要查询HLR或VLR。

生成SRES

匿名

当新的GSM用户第一次打开手机时,其IMSI将被发送到网络上的AuC。之后,临时移动用户身份(TMSI)被分配给用户。除非绝对有必要的话,否则IMSI在此之后很少传输。这样可以防止潜在的窃听者通过其IMSI识别GSM用户。用户继续使用相同的TMSI,具体取决于位置更新发生的频率。每次发生位置更新时,网络都会分配一个新的TMSI到手机。 TMSI与IMSI一起存储在网络中。移动台使用TMSI向网络报告或呼叫启动期间。类似地,网络使用TMSI来与移动台进行通信。访客位置寄存器(VLR)执行TMSI的分配,管理和更新。当关闭时,移动台将TMSI存储在SIM卡上,以确保在再次接通电源时可用.

数据的加密和解密

GSM使用加密密钥来保护用户数据和空中接口的信号。一旦用户认证,通过A8加密密钥生成算法发送RAND(从网络传送)和KI(来自SIM卡),以产生加密密钥(KC)。 A8算法存储在SIM卡上。然后使用A8算法创建的KC与A5加密算法一起加密或解密数据。 A5算法在移动电话的硬件中实现,因为它必须即时加密和解密数据。

加密密钥(Kc)的生成

使用Kc进行数据加密/解密

GSM授权/加密过程

GSM授权/加密过程

1.当您第一次打开手机时,MS将IMSI发送到网络。

2.当MS请求访问网络时,MSC / VLR通常要求MS进行认证。 MSC将IMSI转发到HLR,并请求认证Triplets。

3.当HLR收到IMSI和认证请求时,首先检查其数据库,确保IMSI有效并属于网络。一旦实现了这一点,它将把IMSI和认证请求转发到认证中心(AuC)。 AuC将使用IMSI查找与该IMSI相关联的Ki。 Ki是个人用户认证密钥。当创建SIM卡时,它是与IMSI配对的128位数字。 Ki只存储在SIM卡和AuC上。 Auc还将生成一个称为RAND的128位随机数。

RAND和Ki被输入到A3加密算法中。输出是32位签名响应(SRES)。当请求认证时,SRES本质上是发送给MS的“挑战”。 RAND,SRES和Kc统称为三元组。

HLR将三元组发送给MSC / VLR。

4.然后,VLR / MSC将只将RAND值转发给MS。

5.MS使用存储在其sim中的Ki和网络发送的RAND值来计算SRES。 MS将此SRES值发送回MSC / VLR。

6.MSC / VLR将SRES值与HLR向其发送的值进行匹配。如果它匹配,它成功授权MS。

7.一旦经过认证,移动和网络都可以通过A8算法使用Ki和RAND值来生成Kc。

8.使用具有A5加密算法的唯一生成密钥(Kc)对数据进行加密/解密。

位置更新步骤

位置更新过程

  1. 当你打开你的手机,它首先告诉网络,我在这里,我想注册到网络。之后它发送一个位置更新请求,包括它以前的LAI,它是TMSI。
  2. 收到TMSI后,如果TMSI不在数据库中,则VLR请求IMSI,收到IMSI后,VLR根据其IMSI向HLR询问用户信息。如果VLR在它的数据库里没有找到TMSI,它将使用LAI找到MS连接到的旧VLR的地址。向旧VLR发送请求,请求用户的IMSI。 VLR提供与MS发送的TMSI相对应的IMSI。请注意,IMSI可能是从移动设备获得的。这不是优先选择,因为位置更新请求被清楚地发送,因此可以用于确定IMSI和TMSI之间的关联。
  3. HLR又要求AuC为这个IMSI的三元组。 HLR将三元组(Rand,Kc,SRES)转发到VLR / MSC。
  4. MSC将从VLR获取详细信息,并只将RAND值传给MS。 MS将再次计算SRES,并将其发送回MSC。
  5. MSC将验证存储在VLR中的SRES,并将与MS发送的SRES进行比较。如果两者匹配,则位置更新成功。
  6. 成功后,HLR更新发生,它将更新其当前位置,并将TMSI分配给该MS。由于在加密之后TMSI任务被发送,TMSI与用户之间的关系不能由未经授权的用户获得。 GSM手机回复表明新的TMSI分配已经完成。

现在,我们将分析wirehark中的gsm数据包,看看在空中的真实情况。

1.立即分配 - 由MS请求的无线信道和MS分配的无线信道MS提供商。我们还可以看到在这个频道中正在使用什么样的控制信道(SDCCH / SACCH)。

2.位置更新请求 - MS发送位置更新请求,其中包括以前的LAI,它是TMSI。

3.验证请求 - VLR / MSC将HLR中的RAND转发给MS。我们可以清楚地看到网络发送到移动电话中的随机值。

4.MS中的SRES生成 - MS将使用存储在sim.5中的Ki的帮助,使用A3认证算法生成SRES值。

5.认证响应 - MS将发送其计算的SRES值。我们可以清楚地看到SRES的值。

6.加密模式命令 - BSC向移动设备发送CIPHERING MODE命令。密码已经被启用,所以这个消息是通过加密传输的。手机用CIPHERED模式回复它。我们也可以看到下面的加密模式完成包。我们可以看到它正在使用A5 / 1密码。

7.接受位置更新 - 成功认证后,位置更新发生在MS向网络提供位置信息的地方。

8.TMSI重新分配完成 - MS提供商将向MS分配TMSI,并且该消息将被加密,使得没有人可以嗅探用户的身份(TMSI)。

9.无线电频道发布 - 分配的无线电频道由MS。

现在呢?

注意到有时运营商根本没有使用任何加密,以便能够处理更多的网络负载。加密/解密过程增加了开销。有时,身份验证过程的配置存在问题,攻击者可以使用它来绕过完整的身份验证.

GSM安全是一个很大的的但还尚未开发的领域,还有很多工作需要探索和完成。现在,当您了解如何分析最低级别的gsm数据时,您可以阅读,分析和修改osmocom的代码,以便将任意帧发送到网络或从网络发送到手机。您可以开始模糊gsm级协议,以了解您是否可以实际破解任何网络设备。还有很多事情要做,但这需要对gsm网络有深刻理解,还有关于这方面的法律问题。我建议您创建自己的gsm网络并运行您的测试,如果你想继续这样做的话。我们将在gsm上发布更多博客文章。敬请期待!

参考资料:

https://www.sans.org/reading-room/whitepapers/telephone/gsm-standard-an-overview-security-317

http://mowais.seecs.nust.edu.pk/encryption.shtml

原文链接:http://payatu.com/dissecting-gsm-encryption-location-update-process/

时间: 2024-07-28 23:42:32

剖析 GSM 加密机制以及位置更新的过程的相关文章

FREAK漏洞可能破坏网络加密机制

该漏洞的影响范围包括应用范围广泛的安全套接层协议及其继任机制安全传输层协议. 专家目前正就一项严重安全漏洞发出正式警告,该漏洞显然已经经历了多年潜伏,并有可能削弱往来于计算机及网站之间的加密连接.甚至会给整个互联网的安全状态带来潜在威胁. 这一被称为FREAK的安全漏洞之影响范围包括应用范围广泛的安全套接层协议及其继任机制安全传输层协议,可能允许攻击者截取到往在客户端与服务器之间传输的所谓加密数据流量. 该漏洞存在于多个高人气网站当中,同时也藏身在包括苹果Safari浏览器以及谷歌Android

HTAP数据库 PostgreSQL 场景与性能测试之 29 - (OLTP) 高并发空间位置更新(含空间索引)

标签 PostgreSQL , HTAP , OLTP , OLAP , 场景与性能测试 背景 PostgreSQL是一个历史悠久的数据库,历史可以追溯到1973年,最早由2014计算机图灵奖得主,关系数据库的鼻祖Michael_Stonebraker 操刀设计,PostgreSQL具备与Oracle类似的功能.性能.架构以及稳定性. PostgreSQL社区的贡献者众多,来自全球各个行业,历经数年,PostgreSQL 每年发布一个大版本,以持久的生命力和稳定性著称. 2017年10月,Pos

开发人员正确实施加密机制的比例仍偏低

本文讲的是开发人员正确实施加密机制的比例仍偏低,尽管过去几年当中利用加密机制打击安全漏洞的举措已经迎来了显著推进,但开发人员缺乏专业知识以及相关库过于复杂的状况仍然导致多数商业应用程序并未得到加密机制的有效保护. 这一问题的规模显然不容忽视.目前加密问题已经成为各行业当中最为常见的安全缺陷类型,应用程序安全厂商Veracode公司在本周发布的一份报告当中指出. 这份报告以静态.动态与人工漏洞分析作为统计基础,对企业环境中所使用的超过20万款商用及自主开发的应用程序进行了调查. 加密问题在历史角度

我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密

前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密方案 Android端 AESRSA结合实践 基本要求 基本流程 Android端 服务器端 java版示例 更多参考 前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fidd

深度剖析消息反射机制

深度剖析消息反射机制作者:hustli    摘要:在前面我们分析了控件通知消息WM_NOTIFY,和WM_NOTIFY紧密联系的还有一个MFC新特性:消息反射.本文中,我想就这个问题作一个全面的论述,如果有错误,还望各路大虾批评指正.    什么是消息反射?    在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR.对于从子控件发来的消息,父控件有可能在处理之前,把消息返还给子控件处理,这样消息看起来就想是从父窗口反射

基于加密机制的云计算数据可靠存储方案研究

基于加密机制的云计算数据可靠存储方案研究 赵莉  王魁祎 为了克服因收发双方都使用同样钥匙导致的其安全性不高等缺点,引入深度加密机制,与AES(Advanced Encryption Standard)算法耦合,设计了基于双级加密的云计算数据可靠存储方案.先采用AES对用户数据客户端进行对称加密,到达云资源管理器后,采用分布式重组的方法进行深度加密,构造了"初级-深度"双级加密的云计算数据可靠存储结构,并完成了基于加密的云计算数据安全存储加密和解密操作流程.借助Eclipse与Java

英特尔已为Hadoop开启CPU加密机制

芯片巨头英特尔正在加倍努力以扞卫其宝贵的数据中心领地--具体方式为开发其自有技术以推动数据管理与分析技术--例如Hadoop--的实现. 为了确保至强芯片能够在数据中心管理员们的考量之下成为运行大型Hadoop集群的首选平台,英特尔在本周二宣布将为Intel Distribution for Apache Hadoop(其自有.以开源为主的软件衍生方案)添加多项新的功能与技术. 这一轮更新当中包含Intel Graph Builder for Apache Hadoop的第二个版本.Intel

南宁seo教程:巧用页面更新机制保障快照更新

南宁seo教程:巧用页面更新机制保障快照更新 新的事物是大家都喜欢的,搜索引擎爬虫当然也喜欢,然后有南宁seo朋友在网站优化过程都碰到过这样的问题,可能自己的网站天天更新原创,甚至文章秒收,但是首页快照还是落后甚至回档到n年前. 南宁seo教程看过很多seo论坛上许多这样的咨询问题,大体上一些seo朋友解答都认为:一是网站本身没有坚持更新,二是百度数据库出问题.对该问题的处理办法要不是让他继续等待就是投诉快照,这不能从根本解决首页快照落后的问题. 笔者在这里建议,首页不能像门户网站一样保存大幅度

quick-cocos2d-x基于源码加密打包功能的更新策略

Quick-cocos2d-x增加了编译及加密源代码的功能(具体可参考这篇文章).以此功能为基础,我实现了一个版本更新模块,解决了自己项目中的版本更新需求.现抛砖引玉,与大家分享.  从基本原理和方案讲起比较枯燥,直接从介绍具体用法开始吧. 要能够在线更新文件,一个服务器是必须的.我目前实现的是用HTTP协议取文件,只需要有一个基本的web服务器,能通过类似http://<server>/<filename>的链接取到文件即可.当然,如果需要根据平台和版本进行文件的分发,服务器端还