中国教授在BlackHat现场演示破解SIM卡AES-128加密

使用一个PC和示波器克隆3G/4G SIM卡,破解过程只需十分钟。上海交大教授郁昱现场展示了如何成功复制SIM卡,以及一张克隆卡如何变更了支付宝的密码并潜在盗取账户资金。
破解SIM卡加密
今年二月,爱德华·斯诺登揭露了美国国家安全局NSA与英国情报机构政府通信总部GCHQ从世界最大的芯片制造商之一的公司偷了数以百万计的SIM卡加密密钥,然而研究人员此前似乎并不以为然。
郁昱是目前上海交通大学的专业侧信道分析和密码学研究教授,他去年一直在寻找如何破解3G和4G卡的加密。而这些使用了AES-128的被认为不可破解的密码,最终竟然是如此容易通过一些侧信道分析而获取。
尽管各种攻击2 g(GSM)算法(comp - 128 A5)出现于各种文献上,但是没有实际的攻击用来攻击已知的3G/4G(UMTS/LTE)SIM卡。3G/4G SIM卡采用了双向认证算法称为MILENAGE,而这又是基于AES-128,这是被NIST认证为一个数学上的安全分组密码标准。MILENAGE还使用将近一对128位加密进一步混淆算法。
侧信道攻击可以测量芯片中的耗能、电磁排放以及产热。而这项技术已经存在很多年了,同时还要求对目标设备的物理访问。
克隆卡应运而生
郁昱和团队组装使用了一个用于跟踪能量水平的示波器、用于监控数据流量的MP300-SC2协议分析仪、一个自制SIM卡读卡器和一个标准电脑。尽管配置很简单,他们还是在10到80分钟的时间内分别破解了来自8家厂商的SIM卡。
破解系统并不能直接读取加密秘钥,相反团队从秘钥中分离出了256部分,通过SIM卡将它们与电源状态对应。这确实需要大量的计算和一点点运气。一旦系统完善之后,破解秘钥并且克隆卡就变得相对容易了。
郁昱现场展示了如何成功复制SIM卡,他同时还展示了一张克隆卡如何变更了支付宝的密码并潜在盗取账户资金。
郁昱表示,手机用户和数码安全厂商都需要提升物理安全的意识。而对于这项“技术”,无疑情报部门会非常感兴趣。
演示视频:
PPT下载:
http://pan.baidu.com/s/1qWwuVVI
中国教授在BlackHat现场演示破解SIM卡AES-128加密的更多相关文章
- SIM卡基础知识
一:了解Sim卡和GSM网络登录步骤的基本知识 (一)名词解释: SIM卡(Subscriber Identity Module),即用户识别卡,它是一张符合GSM规范的“智慧卡”,SIM卡有大小之分 ...
- simtrace之探秘SIM卡中的世界
0×00 关于SIM卡 众所周知SIM卡是一张插在手机上的小卡,其全称为Subscriber Identity Module 客户识别模块.不过,这个世界上并没有多少人知道SIM卡中的操作系统是基于j ...
- Alpha版本冲刺现场演示和阶段验收的总结
一共15个组.有13个组参加了今天的现场演示,分别是YZH.Radio Group.FZU5BOYS.静静看.Clean Code.Mod4.F4.For the Dream.Journey of C ...
- Android本机号码及Sim卡状态的获取
SIM卡存储的数据可分为四类:第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等.第二类是暂时存放的有关 ...
- Android 读取SIM卡参数
package com.water.activity; import java.util.List; import android.app.Activity; import android.os.Bu ...
- Android ExpandableListView使用+获取SIM卡状态信息
ExpandableListView 是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇 博客除了要介绍E ...
- android 读取用户号码,手机串号,SIM卡序列号
简介: IMSI:international mobiles subscriber identity国际移动用户号码标识,这个一般大家是不知道,GSM必须写在卡内相关文件中:MSISDN:mobile ...
- sim卡中的汉字存储格式
Sim卡中的ucs2格式 Sim卡中的中文都是以ucs2格式存储的,ucs2和unicode只是字节序不同,unicode是小头在前,ucs2是大头在前. Ucs2与GB2312互换可以用VC中的Wi ...
- 【双模卡的相关知识】解SIM卡前需要知道的信息(SIM年分和厂商识别)
<ignore_js_op> 二.SIM版本问题SIM卡的版本有两种说法,一是有些是制造厂制定的,二是电信公司的制定.下面以移动为例,目前我们手里的SIM有几种版本:v0.v1.v2.v3 ...
随机推荐
- 用python + hadoop streaming 编写分布式程序(三) -- 自定义功能
又是期末又是实训TA的事耽搁了好久……先把写好的放上博客吧 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍 ...
- Ubuntu 14.04下 Java通用安装方法
参考: 解决Floodlight1.2+Mininet问题及使用安装 Ubuntu下安装JDK1.7图文详解 Ubuntu 14.04下 Java通用安装方法 1.到oracle官网下下载对应jdk包 ...
- 【TCP/IP详解 卷一:协议】第十二章 广播与多播 ping实验
我手机连接到wifi上所分配到的IP地址:192.168.1.116 子网掩码:255.255.255.0 路由器:192.168.1.1 ping 192.168.1.116 (ping 一台主机的 ...
- js循环遍历弹框,先弹出第一个之后逐步弹出第二个。。
var data = [{ "login_advertTitle": "即使生活琐碎,也要活得优雅", "login_advertCont" ...
- C#完美读取CSV
/// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// < ...
- shell 加法计算
Shell 相加目前发现有 3 种写法: 1. a=10 b=20 c=`expr ${a} + ${b}` echo "$c" 2. c=$[ `expr 10 + 20` ] ...
- JavaMail直接发送邮件
一般用JavaMail发送邮件都需要先登录到外部smtp服务器(如smtp.163.com) 二次转发,其实只要得到域名的邮件交换服务器地址(MX)就可以直接将邮件发出 这里用到了dnsjava(下载 ...
- 视图层view layer
视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面. 它对外接收用户请求,对内调度模型层和模版层,统合数据库和前端,最后根据业务逻辑,将处理好的数据,与前端结合,返回 ...
- 语言小知识-Java ArrayList类 深度解析
· 问题 1:ArrayList 的 size 和 capacity 怎么理解? 如果把 ArrayList 看作一个杯子的话,capacity 就是杯子的容积,也就是代表杯子能装多少东西,而 siz ...
- Java checked 异常 和 RuntimeException(运行时异常)
目录 一.运行时异常 1.什么是RuntimeExceptioin 2.运行时异常的特点 3.如何运用运行时异常 二.运行时异常和ckecked异常的区别 1.机制上 2.逻辑上 一.运行时异常 1. ...