如果你还在使用基于早期信号标准的GSM手机,那么你最好在使用手机的过程中小心一点了。因为根据国外媒体的最新报道,安全研究专家通过测试发现,他们只需要使用三张NVIDIA GeForce GTX690显卡(GPU)就可以破解GSM A5加密算法。

A5加密算法是何物?

A5算法在1989年由法国人开发,它是一款主要用于GSM系统的序列密码算法。A5加密算法用于对那些从移动电话到基站的通信连接进行加密,该算法先后有三个版本,分别为A5/1、A5/2和A5/3,如果没有特别说明,通常所说的A5指的是A5/1。关于GSM加密的问题,有些人认为密码的安全问题将阻碍GSM手机的推广;另一些人则认为A5加密算法的强度太弱,无法抵抗一些情报机构的窃听。A5加密算法的特点是效率高,适合在硬件上高效实现,而且它能也通过已知的统计检验。

总之,A5加密算法的基本思路并没有什么问题,而且它的执行效率非常高。但是从密码学和安全性的角度出发,这个算法就存在很多的安全问题了。

GSM通信加密存在严重的安全问题

近期,一群来自新加坡科技研究局(A*STAR)的安全研究专家表示,在普通GPU处理器的帮助下,他们可以在几秒钟之内破解GSM移动数据所采用的加密算法。实际上,人们早在2009年就已经知道A5/1加密算法中存在严重的安全问题了。

由于当初在2G通信技术正式投入使用之前,相关部门对2G通信加密中存在的安全问题一直不予披露,而且考虑到保密性,所以这些加密算法也没有提交给同行进行安全审核,所以才导致了目前的这种状况存在。其中,A3加密算法专门用于身份验证,A5加密算法专门用于信息加密,A8加密算法专门用于密钥生成。

GSM只会对访问网络的用户身份进行验证。因此,通信的加密安全层只能够提供数据保密和身份验证功能。但需要注意的是,这是一种功能有限的身份验证,因为它并不具备不可否认性这种特征。为了实现通信的安全,GSM采用了多种加密算法。比如说,GSM使用了A5/1和A5/2这两种流密码来确保用户语音通话数据的安全。但是,这两种加密算法中却存在严重的安全问题,攻击者可以通过下面这两种方法破解这两个加密算法:

1.通过实时的唯密文攻击来破解A5/2;

2.通过彩虹表攻击破解A5/1;

GSM中主要存在的一些安全问题如下:

1.通过固定网络传输的通信数据没有受到加密保护;

2.无法抵御某些主动攻击;

3.只有连接至安全的固定网络才可以保证GSM的通信安全;

4.GSM中的合法拦截只是一种事后补救措施;

5.终端识别码不可信任;

单纯从技术的角度出发,3G通信网络弃用了不安全的A5/1流密码,转而使用KASUMI分组密码【维基百科传送门】,但是KASUMI分组密码中同样存在很多严重的安全问题。

破解GSM的A5/1加密算法

来自新加坡科技研究局(A*STAR)的信息通信安全专家JiqiangLu解释称:

“GSM使用了一种名为A5/1的流密码来保护通信数据的安全,而A5/1使用了一个64位的密钥和一种十分复杂的密钥流生成器来抵御一些基本的攻击,例如密钥穷举和基于字典的暴力破解攻击。”

首先,安全研究人员利用了GSM通信加密中的两个安全漏洞,并且在普通商用硬件的帮助下,花费了55天的时间计算出了一个彩虹表。据了解,这个彩虹表的大小为984GB。得到了彩虹表之后,安全专家就可以在短短的九秒内确定用于加密通信数据的密钥了。

我们可以看到,这种新型的攻击方式不仅极大程度地提升了传统暴力破解攻击的成功率,而且还大大降低了计算密码和攻击所需的时间。

Jiqiang Lu补充说到:

“我们在攻击过程中使用了一个彩虹表,这个彩虹表是通过离线迭代计算生成的,它包含有密钥和其相对应的输出密码。当攻击者在攻击过程中接收到了输出数据之后,他就可以通过识别彩虹表中密钥和密码的对应关系来确定输出数据的有效性。”

在测试设备方面,安全研究人员使用的是一台由三块NVIDIAGeForce GTX 690显卡GPU所组成的计算装置,这个装置的成本约为一万五千美金。

安全研究专家在其发表的白皮书中写到【白皮书】:

“我们在实验过程中使用了一台由三张NVIDIAGeForce GTX690显卡所组成的通用图形处理单元(GPGPU)计算机,这台计算机的总成本约为一万五千美金。我们花费了55天的时间计算出了一个彩虹表,在这个彩虹表的帮助下,我们只需要九秒钟的时间就可以通过在线攻击来破解A5加密算法了。

在事先获取到4个密钥序列的情况下,破解成功率为34%;如果能够事先获取到8个密钥序列,那么破解成功率就可以达到56%,其中每个密钥序列长度为114位。如果能够使用两个这样的彩虹表来进行攻击,那么在事先得知8个密钥序列的情况下,我们9秒内的在线攻击成功率将高达81%。

实验结果表明,A5/1加密算法确实非常的脆弱,因此GSM应该立即停止使用这种加密算法。”

*参考来源:securityaffairs

本文转自 K1two2 博客园博客,原文链接: 

http://www.cnblogs.com/k1two2/p/6022845.html

 ,如需转载请自行联系原作者

普通硬件就能破解GSM A5加密算法相关推荐

  1. GSM A5/1算法C语言代码实现和分析

    介绍 全球超过200个国家和地区超过10亿人正在使用GSM电话.对中国用户来说,GSM就是移动和联通的2g模式. 在1982年A5首次提出时,人们认为A5 / 1密钥长度要128位,但最终确定的结果是 ...

  2. 科学家破解卫星电话加密算法

    科学家破解卫星电话加密算法 近日,德国波鸿鲁尔大学霍斯特-戈尔兹信息安全研究所(HGI)的研究人员成功破解了欧洲电信标准协会(ETSI)的卫星电话加密算法,证明使用卫星电话也存在被窃听的危险. 全球有 ...

  3. Android逆向之旅---破解某应用加密算法(动态调试so和frida hook so代码)

    一.样本静态分析 最近有位同学发了一个样本给我,主要是有一个解密方法,把字符串加密了,加解密方法都放在so中,所以之前也没怎么去给大家介绍arm指令和解密算法等知识,正好借助这个样本给大家介绍一些so ...

  4. 上海电信创维E900硬件版本2010破解

    上海电信送的创维盒子,背后是E900,拆开看板子和四川的E900-s高安版看起来一模一样,板号也是一样的2AHPM6B网上查了半天,也没有免费可以刷的固件,也不确定四川的高安版是否可以用于它 只能按照 ...

  5. 我看过的密码学方面的好文章

    本文不定期更新,最后更新于2019-5-18 密码 在Visual Studio命令提示符界面下编译链接OpenSSL自带的示例程序 数据安全及各种加密算法对比 非对称加密和证书总结 HTTPS 原理 ...

  6. 当代GSM手机的硬件系统分析

    当代GSM手机的硬件系统分析 Harald Welte <laforge@gnumonks.org> 2010年4月14日 Translated by 黑白兔(lennyhhf@gmail ...

  7. 当代GSM手机的硬件系统分析[zz]

    很好的一篇翻译文章,可以大概了解GSM手机了! 之前给大家上一个图: 当代GSM手机的硬件系统分析 Harald Welte <laforge@gnumonks.org> 2010年4月1 ...

  8. 如何防止GSM手机被窃听

    转载自:http://netsecurity.51cto.com/art/201010/231543.htm 对全球移动通讯系统(GSM)最近的演示***显示,在改进版的***面前,GSM的安全性不堪 ...

  9. 如何面对高水平的破解组织 谈暴力破解应对

    如何面对高水平的破解组织 谈暴力破解应对 2005-05-09, 11:18 sanit 共享软件是目前世界上软件业比较热门的话题,国内更是如此.成千上万的中国程序员以极大的热情投入到这个领域来,都憧 ...

最新文章

  1. 要让GAN生成想要的样本,可控生成对抗网络可能会成为你的好帮手
  2. shell中的特殊变量
  3. C++封装、继承、多态
  4. oracle 德部分操作笔记(自己用的)
  5. Python导入全局、局部模块以及如何让避免循环导入
  6. 液冷计算机组装,电脑水冷散热器原理解密及安装方法
  7. 陕西师范大学远程教育学院计算机应用基础,陕西师范大学远程教育学院计算机应用基础机考备考试题.doc...
  8. bootstrap 检验 法 原理_Bootstrap教程-用SPSS中的Process插件做中介效应分析
  9. segy地震数据的读取python_python segy格式地震数据读写包segyio学习笔记(二)
  10. 40余个超好用的在线影视站点
  11. 旋转立方体相册HTML+CSS
  12. win10电脑进入睡眠时间过快,电源选项的设置无效
  13. Java实现格式化打印慢SQL日志
  14. close函数 qt_QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别)
  15. 什么是铠装光纤跳线及它的特点?
  16. 【Java版算法思想】双指针算法
  17. js三座大山----(第二座山)
  18. 2.3软件测试与软件开发的关系
  19. 【Leetcode刷题Python】55. 跳跃游戏
  20. html中文本重复,在网页中去除文本列表中重复行与计算重复次数的代码原理

热门文章

  1. 前端入门 前端自学路线 web开发前端如何学习
  2. 使用python手写FFT算法
  3. 树莓派 ubuntu 18.04 安装 .NET Core
  4. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?
  5. java怎么定义字符长度_java – 当字符串长度超过列长度定义时,如何以静默方式截断字符串?...
  6. java按特殊标志截取_java 字符串分割处理split及特殊符号
  7. liunx 学习笔记-wzq
  8. UIWindow简单介绍
  9. 自动化测试框架:几行代码轻松解决Appium环境问题
  10. 什么猫咪最受欢迎?Python爬取全网猫咪图片,哪一款是你最爱的