-
-
[翻译]WhatsApp取证:对加密数据库进行解密和在尚未被Root的Android设备上提取已删除的消息
-
发表于:
2018-6-18 22:42
17421
-
[翻译]WhatsApp取证:对加密数据库进行解密和在尚未被Root的Android设备上提取已删除的消息
小编提示:WhatsApp是当今世界上最流行的智能手机即时通讯软件之一。当下全世界每月有超过13亿活跃用户使用WhatsApp进行交流。2017年7月的调查数据显示,即使有人设法对其通信进行拦截,WhatsApp基于whisper systems通信协议的点对点通信仍然能得到有效的安全保护。而且显然的是,这些数据可能包含调查人员需要的与案件相关的重要信息,这也是为什么WhatsApp已成为移动设备取证领域中最重要的焦点之一。但是,涉及智能手机的调查一般来说都不太容易。在调查过程中调查人员可能遇到不同类型的难题(数据库加密,系统安全性,被删掉的信息等等)。因此在本文中我们将讨论如何对加密的WhatsApp数据库进行解密,如何绕过WhatsApp的加密机制以及如何恢复已被删除的 WhatsApp消息。
同许多其他的智能手机应用程序一样,WhatsApp也在SQLite数据库文件中存储数据。对Android 设备来说,WhatsApp有两个至关重要的数据库,msgstore.db 包括了聊天记录,wa.db 包括了联系人列表。获取上述数据库并不难,因为WhatsApp有备份的功能[1] ,这项功能在SD存储卡中备份了WhatsApp的数据库,使得没有高级权限的用户也可以访问这些数据。但是,WhatsApp通过最近的一系列安全更新对自己的数据库进行了加密,这些数据库已经不能被直接分析,这对执法调查人员来说是一个严重的问题。WhatsApp使用了工业标准AES-256对聊天、短信及通话记录进行了加密,诸如图片和视频之类的媒体文件未被加密。加密类型已经从Crypt5, Crypt7, Crypt8更新到了 Crypt12。
因此,我们怎样才能对加密过的WhatsApp数据库进行解密?最重要的一步是要拿到密钥。当用户第一次做备份的时候密钥随之产生,但密钥并不会在云端存储,仅仅被保存在智能手机端而且每个手机所产生的密钥都是不同的。因此为了对加密型数据库进行解密,我们必须从创建了备份的智能设备中提取密钥。我们可以从下列位置找到密钥: userdata/data/com.whatsapp/files/key
通过 SalvationDATA取证专家的研究,我们发明了一种通过密钥对WhatsApp加密型数据库进行解密的特别算法。随后我们将对外发布这个工具并将其集成到智能手机取证系统(SPF)内,通过SPF即使没有电脑知识的用户也能应对WhatsApp数据库的加密。用户仅仅需要将密钥导入然后开始解密,然后程序将对应地生成经过解密的数据库文件。
但是,在没有root目标设备的情况下获取密钥文件是一件不容易的事。因此,在这一部分内我们主要讨论如何绕过WhatsApp加密,换句话说,就是在没有root权限的情况提取WhatsApp的数据。
密钥文件和未加密的数据库文件一般被存储于WhatsApp文件夹内。如果调查人员能够获取这些文件,他们就能看到设备上的WhatsApp聊天记录。唯一的问题是在没有root权限的情况下,他们无法直接访问这些文件。
在未root情况下,基本上有两种方法可以提取WhatsApp数据。
一种方式是利用Android系统的备份和恢复特性。许多Android手机厂商允许用户用系统内置程序做一个备份。以这种方式创建的备份文件存储于SD卡且未被加密。因此这是执法人员获取WhatsApp聊天记录的一种相对简单的方法。
下图展示了使用OPPO手机创建WhatsApp备份的例子。用户可以在Tools中找到备份还原功能并创建一个新的备份,创建备份时记得勾选WhatsApp。
然后我们就能在手机的SD卡中发现WhatsApp的备份文件了。这个备份包括了WhatsApp所有未加密的数据库和密钥文件。这样一来我们只需要使用手机取证工具对这些数据库文件进行分析。
另一种方法是将WhatsApp降级到没有备份加密功能的版本。WhatsAppv.2.11.431 是最后一版没有强制要求对备份文件加密的版本。因此我们的策略是在不删除用户数据的情况下将WhatsApp降级到v.2.11.431 版本,然后使用旧版本WhatsApp创建备份文件并提取数据库文件。
这一过程需要较为专业的技术同时总是伴随着丢失数据的风险。因此,我们强烈建议使用专业的取证工具进行降级。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)