G.O.S.S.I.P 阅读推荐 2023-08-16 TETRA:BURST

上了年纪的读者也许会记得EA旗下著名的赛车游戏《极品飞车》系列(Need For Speed)的第三代——《极品飞车3:热力追踪》(Hot Pursuit)里面,玩家开着兰博基尼警车去拦截 Mercedes CLK-GTR 或者隐藏的 El Niño 跑车,无线电里面呼啸着各种指令的那份模拟的刺激(如果你玩的不是1998年的版本,而是2020年的重制版,说明你还太年轻)。这么多年过去了,安全研究人员玩游戏的同时也不忘搞破解,终于在今年把警察无线电系统给彻底攻破了,这下那些公路上的亡命之徒又可以更好地了解对手的一举一动了。言归正传,今天我们要介绍的就是2023年8月在各大安全会议(包括USENIX Security和DEF CON还有Blackhat)上大肆宣传的TETRA:BURST安全攻击。

在这篇 All cops are broadcasting: TETRA under scrutiny 的论文中(一看就是非专业选手写的,明显不是LaTex排版),首先我们要了解下什么是 TETRA?这个名词是“TErrestrial Trunked RAdio”的缩写,是目前很多政府机构和关键基础设施部门(看到这几个词就瑟瑟发抖害怕当上间谍吧)广泛使用的地面(不借助卫星等空中中转介质)无线电通信标准。TETRA 是欧洲电信标准协会(ETSI)在1995年进行标准化的,具体的细节可以访问下面网站查看:

https://www.etsi.org/technologies/tetra

既然是欧洲的标准,那就放心大胆研究吧~ 本文的作者来自荷兰一个叫做 Midnight Blue 的安全研究团队。团队成员在2021年就发现了 TETRA 的问题,最后总结了5个安全漏洞,统称为TETRA:BURST安全攻击。

我们还是先看看作者放出的三个视频:

回到TETRA:BURST安全攻击的技术细节上来,作者指出,现实世界就是这么现实,大家天天研究理论,但是 TETRA 这个用了几十年的标准却少有人去关心。于是作者做了这么几件事情:

  • 首先逆向并恢复了 TETRA 标准底层的密码算法

  • 对 TETRA 标准的安全性进行了全面的分析

  • 公开了所有研究成果和资料!

https://github.com/MidnightBlueLabs/TETRA_burst

简直太酷了是不是,找不到研究课题的同学们好好学着点!不过这个过程肯定没那么简单,作者首先是要去找到支持 TETRA 标准的设备,他们找到了一台 Motorola MTM5400(下图)设备,里面包含了 Texas Instruments 的 OMAP-L138 SoC(ARM核心芯片),以及 TI 的 C6748 DSP 芯片。但是,这个设备用了 TEE 来保护 TETRA 标准里面的算法,所以还要想点办法来分析。

作为黑客,会写exploit是一项基本技能,作者参考了前几年研究人员关注的一个攻击界面——串口通信支持的AT modem command,并且确实发现了一个格式化字符串漏洞(并且拿到了额外的一个CVE:CVE-2022-26941),利用这个漏洞实现了任意代码执行。同时,作者发现尽管这个设备支持硬件内存保护(通过Memory
Protection Units (MPUs) 和 I/O Protection Units (IOPUs) 来实现),但是设备开发商并没有做任何配置,因此可以轻轻松松 往 DSP 的代码内存区域写(又是一个CVE:CVE-2022-27813)。不过,DSP 代码执行分成了两个不同的特权级别,而涉及到 TETRA 标准的密码算法都被放进了高权限的模式里面,在实际中,需要用普通的代码执行一个 SK_LOAD secure kernel API,然后解密(用AES-128)一个类似 TA 的模块,最后才是执行加解密算法。于是我们博学多才的作者又开始继续 show off 了。

熟悉密码学的人可能都听说过一个叫做 DJB 的 ID,也就是一个叫做 Daniel J Bernstein 的密码学奇才(关于 DJB 的传说一抓一大把,比如大家可以去搜索 Bernstein v. US Department of Justice),他在2005年发表的论文 Cache-timing attacks on AES 揭示了标准的32-bit优化版的AES实现在进行查找表操作的时候存在的 cache side channel 的问题,而本文作者显然很熟悉这个攻击技术(可怜的设备开发人员显然很不熟悉这个攻击),“轻松”获取了模块的解密密钥(附带收获了第三个额外的CVE:CVE-2022-25332)。

最后,作者拿到了用 C674x 汇编指令(就是那个DSP的指令集)写成的 TETRA 标准加密算法核心模块,把涉及到的三个流密码算法 TEA1、TEA2 和 TEA3 都恢复出来啦!!!这个分析太酷炫了,是编辑部见过的可以和当年那篇知名的 IoT Goes Nuclear 论文相媲美的经典安全分析之作。

作者公布了 TETRA 标准的密码算法组成的套件——TAA1 suite,值得注意的是,在 TAA1 中,除了前面提到的三个流密码算法,还有一个私有的 HURDLE block cipher(编辑部比较好奇的是,作者怎么知道 HURDLE 这个名字的),它是一个16轮 Feistel 结构的分组密码算法,使用 128-bit key,分组大小是 64-bit,

https://github.com/MidnightBlueLabs/TETRA_crypto/

总结一下论文涉及的五个密码学相关的CVE的根本问题。

  • CVE-2022-24401- Critical: 在 TAA1 套件里面,有一个流密码算法会用到的 AIE 密钥流生成算法(Air Interface Encryption keystream generator),这个密钥流生成算法依赖一类广播且无认证的数据——network time 来作为 IV 材料,生成最后的密钥流,显然极不安全!最终会导致攻击者可以制造 keystream reuse 这个经典的针对流密码算法的攻击。

  • CVE-2022-24402 - Critical: TEA1 这个流密码算法存在一个“后门”,虽然它接受80比特的密钥,但是在一开始就只会从密钥里面获取32比特的熵(下图),对于现代的计算机来说,这显然是随便就能暴力破解的。而这个问题不禁让编辑部想起了一道2015年的 CTF 题目:在当年的Hack.lu CTF竞赛中,有一道非常经典的逆向+密码学题目,里面的问题(请看 https://www.zybuluo.com/romangol/note/40559 这个 writeup 了解更多细节)和这里一模一样!都是因为对密钥材料的熵提取不充分,导致的安全攻击。这类问题后来还被我们写进了CCS 2018的研究论文 K-Hunt: Pinpointing Insecure Cryptographic Keys in Execution Traces 里面

  • CVE-2022-24403 - High: 在 TETRA 标准中,所有加密的流量,其通信的目标地址同样需要用加密算法保护起来。这个方案(identity encryption scheme)会把一个24比特的 Short Subscriber
    Identity(SSI)加密为长度同样为24比特的 Encrypted Subscriber Identity(ESI),这里会导致一个特定的 meet-in-the-middle 攻击。不过,作者表示这部分内容的细节目前还没法披露,有待厂商修复,里面可能隐藏了更大的问题哦。

  • CVE-2022-24404 - High: 由于消息加密没有进行可认证加密,又用到了流密码加密,攻击者可以篡改消息的部分 bit 来实施一些非常 tricky 的攻击。

  • CVE-2022-24400 - Low: 在通信过程中用到的 session key 的完整性没法保证:通信双方在协商密钥时完全依赖于一些随机数发生器(而作者在这里顺手收获了第四个CVE:CVE-2022-26943,一个用 clock tick 这种非常低熵的源来初始化随机数发生器的问题),密钥协商过程可能被攻击者诱导(例如生成全零的 key)。这里我们要吐槽一下作者,在写到这部分(Section 5.4)的时候完全开始摆烂了,论文写作质量极其糟糕,各种符号都不做标记,读起来非常费劲,还不如一个小学生的排版!

除了上面提到的五个CVE,还有一个奇怪的密码学问题——在TEA 3的算法设计中,S-box并不是一个置换(permutation),不知道这个会潜藏什么安全问题,有熟悉密码学特别是对称密码设计的同学,欢迎留言评论!



就像很多可恶的足球媒体总会对米兰球迷提起伊斯坦布尔的香槟一样,本文作者在总结TETRA:BURST安全攻击之余,也不忘鞭尸一下过去数十年来各种违反 Kerckhoffs’ Principle、自己开发私有密码算法,然后出大事的例子(特别是在通信行业):

  • GSM (A5/1, A5/2)

  • GPRS (GEA-1, GEA-2)

  • GMR (GMR-1, GMR-2)

  • DECT (DSAA, DSC)

现在又加了一个 TETRA 标准了(捂脸)~ 作者吐槽说 TETRA 标准里面的 TEA1 stream cipher 是如此之弱鸡,让人怀疑这简直是故意设计的后门!

最后放一个论文的小花絮:


论文:https://www.usenix.org/conference/usenixsecurity23/presentation/meijer


免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐