在没有手机信号覆盖的地方,要实现通信我们就需要用到卫星电话了。卫星电话通信一般用到GMR-1和GMR-2密码,最近一份声明表明GMR-1和GMR-2已被逆向工程,对它们进行攻击也成为可能。
2012年2月2日,Benedikt Driessen和Ralf Hund在波鸿鲁尔大学做了一场非常有趣的演讲,内容是他们在卫星电话安全方面的工作。概括地说,他们能够逆向反求并破译一种被用于许多卫星电话系统的名为GMR-1和GMR-2的密码。
什么是卫星电话?
我们都知道手机,也知道GSM、UMTS或3G电话。这些电话与网络运营基站进行通信,在城市中的范围通常为几百米,在地广人稀的区域可达40千米。许多欧洲国家已经实现了99%覆盖率,所以想在户外找到一块没有网络覆盖的地方比较困难。当然,在隧道或地下室里手机往往无法正常工作,不过户外的网络覆盖都非常不错。
但在许多国家,例如美国、俄罗斯和中国存在着大量的无人区域,这些区域是没有网络覆盖的,同样没有网络覆盖的还有海洋和一些第三世界国家。不过我们有解决方法,需要用到一种与卫星而不是地面基站进行通信的电话。
卫星电话有何不同?
在德国,所有电话都遵从相同的通用标准,可以在不同的网络中使用,比如O2、沃达丰、E-plus和T-Mobile网络。相比之下,美国虽然也有很多网络供应商,但他们使用不同的系统,例如AT&T和T-mobile USA使用GSM网络,Sprint则使用另一个系统。所以在Sprint的网络中,你不能使用T-mobile的手机。同样,卫星电话也存在很多不同的标准,一种广泛使用的标准是ETSI(欧洲电信标准协会)制定的GMR-1,被Thuraya(舒拉亚)和其他许多运营商使用。GMR-1的说明书是公开的,除了加密算法之外都可以在http://www.etsi.org/上找到。和ETSI维护的其他系统一样,GMR-1也使用了不公开的私有流式密码。卫星电话的另一个标准是Inmarsat(国际海事卫星组织)正在使用的GMR-2,它的加密同样使用了私有流式密码。
GMR-1和GMR-2密码已被逆向工程
若干天之前,一份声明表明GMR-1和GMR-2密码已被逆向工程,声明内容如下:
“……第一个主要贡献是,我们已经能够将使用的加密算法完整地逆向工程。在此之前,这两个密码从未公开过。我们描述了通过自由可得的卫星电话DSP升级固件来恢复这两种算法的细节,包括传统反编译程序的改进和编码分析工具,以及有效确定密码的二进制分析方法的前期拓展工作。我们特别注明这些步骤必须分别在两个系统上重复,因为可用的二进制编码来源于两种截然不同的DSP处理器……”
仅仅是密码被逆向工程并对外公开并不能作为该密码存在任何缺点的迹象。许多流行的加密系统,比如用于网上银行的SSL/TLS都使用公开的加密算法,甚至从未设计成闭源系统。事实上,密码学的黄金规则之一,也就是众所周知的“柯克霍夫原则”表明,一个系统的安全性不应该基于维持该系统的私密性,而应维持该系统所使用的密钥的私密性。
GMR-1的逆向工程向是通过拆解Thuraya SO-2510电话的升级固件实现的。多数现代电话机由2-3个不同的CPU组成,主CPU负责所有的应用、制图和用户界面,另一个CPU(DSP)主要负责信号处理和通话编码,其他一些低阶元件则装载在专用硬件中。由于相较于GSM市场,卫星电话的市场实在很小,所以将流式密码装载在DSP软件中会比装载在硬件中更便宜,因为这样就能使用装有定制固件的标准芯片,而不是更昂贵的定制芯片。如果固件能够从芯片上分离,或者能作为升级固件取得,那么就降低了对加密算法逆向工程的难度。Thuraya SO-2510的流式密码已经在DSP编码中被发现,但没有在ARM编码中发现。此处用到了德州仪器生产的C55x系列DSP。
人们可能会假设这些流式密码和GSM密码相似,从而决定搜遍反编译了的DSP编码,寻找使用了大量异或和移位操作的函数。但这两个说明主要适用于对软件中装有线性反馈移位寄存器的位处理,并非在其他密码中也同样适用。
Inmarsat的IsaPhonePro被用于GMR-2的逆向工程中。再一次进行固件分析后,Blackfin DSP的编码也被分离出来。令人惊奇的是,GMR-2密码的逆向工程和GMR-1完全不同,甚至和GSM或DECT中使用的其他任何密码都不一样。这个密码工作在8比特寄存器(字节寄存器)而不是位寄存器上。同样令人惊奇的是,这个密码中还用到了DES(数据加密算法)的两个S-Box(密码置换盒)。
对GMR-1GMR-2展开攻击已经可能
GMR-1的密码和A5/2十分类似,用了4个线性反馈移位寄存器(LFSR),但时钟仅由单个寄存器R4控制,后果就是一个人甚至只用密文就能攻击GMR-1。也就是说,要完成攻击只需要合法的密文。这种攻击类型比已知明文攻击更加威力巨大,因为它可以使用任意类型的密文,哪怕根本不知道对应的明文。这并非不可能,因为明文中携带的奇偶校验会揭露加密后明文的结构。在标准计算机上,整个攻击的实现只需要不到30分钟。
GMR-2则可被已知明文攻击攻破。简单地说,密文流的某些比特有一定的概率只由密钥的0字节和4字节生成。一个人可以观察许多密文流,对密钥的这两个字节提出高可能性假说,并对剩余密文字节进行强力搜索。总体来说,提出一个足够好的假设只需5-6帧(50-65字节)的密文流,之后标准计算机就能在一秒之内破解密钥。不过到目前为止,破译明文的难度尚不可知。(文/果壳网)