欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

深入了解VoWiFi安全性

来源:本站整理 作者:佚名 时间:2016-12-03 TAG: 我要投稿

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后台进程,当进行呼叫操作会在第一时间开始运行。
—————————————— logcat snippet ————————————
10-06 20:53:27.450 5872 5872 I vpnclientd: Added interfaces:
10-06 20:53:27.450 5872 5872 I vpnclientd: 15: ‘epdg1’ mtu 1500
————————————————————————————————
我们可以嗅探虚拟接口epdg1,很容易发现在该接口的数据包没有进行加密(为了完整性保护)。其直接使用我们用simtracer嗅探的IK。
在wireshark中使用Gcrypt库,我们可以解密数据包来看看底层数据

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载