前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入了解VoWiFi安全性

深入了解VoWiFi安全性

作者头像
FB客服
发布2018-02-09 15:09:37
1.3K0
发布2018-02-09 15:09:37
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

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信道。其集成了一个V**client后台进程,当进行呼叫操作会在第一时间开始运行。

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

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

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

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

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

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

现下,我们将焦点注视在由V**client后台进程创建的虚拟接口,实际上真实数据包由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)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是VoWiFi?
  • 什么是IKEv2协议?
    • IKEv2在VoWiFi中的使用案例
    • EAP-AKA身份验证如何工作?
    • 现在我们能做什么?
    • 这就是全部了?我们还能做什么?
    • 如何解密EAP-AKA
    相关产品与服务
    多因子身份认证
    多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档