深入了解VoWiFi安全性

T-mobile开创了智能手机嵌入原生无缝支持WiFi调用的技术。这种集成WiFi调用功能的技术与当今大部分智能手机供应商所采用的方案一样。T-mobile在2016年5月于德国首次引入VoWiFi,你可以让语言通话在LTE与WiFi网络直接无缝切换。

本文将会对VoWiFi相关的安全性进行分析。在此之前如果你对电信网络协议不够熟悉,可能会对文中大量使用的缩写感到迷茫,对此我十分抱歉。但是请相信我,在未来的日子里你肯定会去适应它。

在开始分析之前,我想有必要提示大家一些重要信息。我们的主要目标接口是用户客户端与IP多媒体子系统(IMS)服务器之间的接口。需要观察的有epdg1(虚拟接口)以及wlan0(真实无线接口),我们使用Samsung S6 gadget以及一张电信(德国)SIM卡进行分析。大多数IPSec使用 ISAKMP[3]协议利用EAP-AKA[5]作为IKEv2的一部分,同时我们使用SIMtrace[2]通过嗅探SIM卡与手机之间的流量提取会话密钥。

我们的分析发现了一些有趣的东西,例如呼叫者的IMEI被泄露,私有IP,IMS服务器版本以及供应商名称等信息被披露。这是通过嗅探虚拟接口epdg1获得的信息,它包含了SIP服务器 — 用户客户端内的信号流量。虚拟接口epdg1以ESP数据包封装在IPSec。此时此刻,这些都还没有进行加密。当这些数据通过wlan0接口发送到服务器之后才使用 IPSec进行加密。我们仍然在尝试解密wlan0加密数据包的过程以祈求能有更多精彩的发现。但在深入细节之前,让我们携手一起了解一些背景知识。

什么是VoWiFi?

Voice over Wi-Fi (VoWiFi)顾名思义即通过WiFi网络提供的语音业务。用户可以在无移动信号的条件下拨打电话,VoWiFi是Voice over LTE (VoLTE)的互补技术。两者都利用IP多媒体子系统(IMS)技术将语言流量转换成IP数据包。

什么是IKEv2协议?

IKEv2在VoWiFi中的使用案例

在IKEv2协议流中,有两个主要阶段。主要是为ESP(封装安全协议)或者AH(认证头协议)完成建立SA安全联盟(SA,security association),两者皆属于IPSec协议。

第一阶段,包含的IKE_SA_INIT用以处理下一阶段会用到的4个主要参数。加密算法,身份验证算法(完整性检查),伪随机函数(PRF)以及迪菲-赫尔曼密钥交换(Diffie Helman group)。基于密钥交换参数以及迪菲-赫尔曼密钥交换(DH key exchange)在下一个阶段会出现一个加密的流量。在这个加密流量中,存在实际的加密参数以及安全联盟的ESP或者AH。这样意味着你可以在使用IKEv2建立SA安全联盟之后,快速找到ESP数据包(或者AH)。

第二阶段[6]

EAP-AKA身份验证如何工作?

下面这张图表简单的解释了EAP-AKA身份验证。Peer为用户客户端以及身份验证服务器。在此不对Server name或者协议流进行深入讲解,这里包括代理以及身份验证服务器等等。在此我们把它们统一叫做服务器。这对我们了解服务器之间所发生的信息没有影响。

在Peer与身份验证器之间有一个初始化身份交换。身份验证器运行AKA(Authentication and Key Agreement,认证和密钥协议)算法,生成一个会话密钥。基于这个会话密钥,服务器会生成AUTN和RAND值,这两个值会发送给Peer。

AUTN用于服务器进行身份验证,RAND是一个随机挑战。这可以理解为服务器发送一道谜题给Peer进行解决。Peer执行相同的AKA算法验证AUTN,基于发送的RAND获取会话密钥,之后发送一个响应值以及RES。因此服务器可以完成对Peer的验证。如果RES与预期的值相匹配,就会返回一个EAP成功信息。在身份验证过程中该会话密钥没有被传播。

EAP AKA完整身份验证过程,RFC 4187. 现在为了获取会话密钥,我们将使用Osmocom Simtracer [2],它可以嗅探SIM卡与手机之间的数据通信。将SIM卡置于simtracer之中,再把simtracer连接到手机的SIM卡槽。Peer在SIM中运行AKA算法,SIM包含了执行预共享密钥。一旦生成会话密钥,就会发送到电话应用程序中。如果在wireshark中运行捕获按钮,我们可以将其视为一个gsm_sim响应包。一个名为APDU的payload包含了这个会话密钥,其分为两部分,一个为IK(integrity key)一个CK(confidentiality key)

Wireshark解析器显示使用SIMtrace嗅探到的IK及CK

现在我们能做什么?

为了进行Wifi呼叫,电话中创建了一个IPSec信道。其集成了一个vpnclient后台进程,当进行呼叫操作会在第一时间开始运行。

我们可以嗅探虚拟接口epdg1,很容易发现在该接口的数据包没有进行加密(为了完整性保护)。其直接使用我们用simtracer嗅探的IK。

在wireshark中使用Gcrypt库,我们可以解密数据包来看看底层数据

之后我们可以看到嵌入在ESP数据包下的SIP(session initiation protocol,会话发起协议)数据包

使用Gcrypt解密ESP数据包后得到的SIP数据

在SIP数据包中发起了一个WiFi呼叫,我们可以挖掘出一些诸如私有IP,呼叫者IMEI,供应商等信息。

这就是全部了?我们还能做什么?

现下,我们将焦点注视在由vpnclient后台进程创建的虚拟接口,实际上真实数据包由wlan0发送。这些都是加密的并且密钥是由IKEv2协议生成。身份验证以及加密密钥都使用到EAP-AKA。同样的你也可以在日志中找到蛛丝马迹:

嗅探wlan0接口显示最初IKEv2通过ESP数据包作为ISAKMP继承

如何解密EAP-AKA

我们尝试着理解该密钥是如何生成的。正如我们之前所讨论的,在SA安全联盟进行密钥交换中分为两个阶段。在第一个阶段中,SA安全联盟为第二阶段进行密钥交换,在第二阶段,实际的SA安全联盟为之后的ESP数据包进行交换。我们比较感兴趣第二阶段,通过嗅探SIM卡与手机之间的接口,我们获得了CK和IK。所以我们不需要进行解密操作。但我们需要知道接下来会发送什么。以下为摘自RFC 4187有关PRNG(伪随机数生成器)的资料,这是获取密钥的关键。

<详细代码请点击原文查看>

*参考来源:insinuator,FB小编鸢尾编译,转载请注明来自FreeBuf(FreeBuf.COM)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏玄魂工作室

CTF实战23 木马攻击技术

值得注意的是,木马屠城记并非于古希腊诗人荷马的两部著作伊利亚特与奥德赛里记载,而是在罗马帝国时期的诗人维吉尔所写的史诗《埃涅阿斯纪》中, 才第一次被记载

17220
来自专栏技术小黑屋

Gmail托管邮箱发邮件认证失败

Gmail是一款很优秀的邮件工具,我一直使用Gmail来托管公司的邮箱,利用最棒的过滤器进行过滤垃圾邮件。前段时间公司邮箱密码更换,使用了新的密码后导致了只能收...

23010
来自专栏Web 开发

iOS开发者证书-2015年中文版

我们都知道,制作一款iOS的App需要iOS的开发者证书。在Apple的开发者网站上面,有一个栏目是‘Certificates, Identifiers & P...

8800
来自专栏黑白安全

短信轰炸剖析

在互联网中,由于越来越多的平台在注册会员,找回密码,以及手机支付的时候,为了防止他人冒用,恶意盗号,资金的安全往往都会使用短信验证码来验证,从而提升帐号的安全性...

2.1K40
来自专栏FreeBuf

SQLCipher之攻与防

0×00 SQLCipher 在移动端,不管是iOS还是Android,开发人员用的最多的本地数据库非SQlite莫属了。SQLite是一个轻量的、跨平台的、开...

1.1K60
来自专栏FreeBuf

一个利用CVE-2017-11292的APT样本技术分析(一)

1. 引言 最近沸沸扬扬的黑色绿洲(BlackOasis) APT 利用了Adobe Flash 的漏洞CVE-2017-11292。最近,我们发现除了黑色绿洲...

247100
来自专栏FreeBuf

适用于渗透测试不同阶段的工具收集整理

该资源清单列表涵盖了一系列,适用于渗透测试不同阶段的开源/商业工具。如果你想为此列表添加贡献,欢迎你向我发送pull request。

1.2K00
来自专栏魏艾斯博客www.vpsss.net

使用服务器安全狗的效果

35350
来自专栏SDNLAB

NameSpace:OpenStack的网络实现解析

编者按:众所周知在Linux系统中PID、IPC、Network等都是全局性的资源,任何的修改和删减都会对整个系统造成影响,这也是为什么KVM之类的虚拟化技术需...

420100
来自专栏FreeBuf

抽丝剥茧:Agent Telsa最新变种脱壳分析

近日,我们检测到大量经过相同加壳混淆过的.NET 恶意木马文件,经过进一步深入分析发现,该木马是带隐私窃取功能的后门木马 Agent Tesla。从2014年起...

13300

扫码关注云+社区

领取腾讯云代金券