[手机取证] Apple Watch取证初探
转载文章请注明出处
1. 关于Apple Watch
苹果公司在2015年3月正式发布了智能手表Apple Watch,包括Apple Watch、Apple Watch Sport以及Apple Watch Edition三种版本。

图 1 Apple Watch的三个版本
Apple Watch采用Apple S1处理器,内置512MB RAM和8GB Flash存储,通过Wi-Fi和蓝牙与iPhone进行同步,与其同步的iPhone必须使用iOS 8.2及以上版本。
2. Apple Watch取证思路
目前,Apple Watch使用Watch OS 1.0系统,手表中所有App均来源于与之配对的iPhone手机,开发者可将自己的App进行Apple Watch适配并发布在App Store,在iOS安装后,可在iPhone手机上的Apple Watch应用中选择推送安装至Apple Watch,这是目前Apple Watch唯一的应用安装方式;Apple Watch系统的升级和还原也仅能通过配对的iPhone手机进行,现在市面发售的Apple Watch仅有的一个物理接口是未公开的调试接口,无法进行利用。
另一方面,Apple Watch应用程序的数据多数来源于iPhone手机上对应的程序,且这些程序的通信和数据存储都依赖于配对的iPhone手机(iMessage例外,Apple Watch上的iMessage服务可脱离iPhone独立连接Wi-Fi进行通信),Apple Watch内部存储主要用于保存手机同步的数据。
结合上述特点,我们可以初步确定对Apple Watch的取证思路:与多数智能可穿戴设备取证类似,对Apple Watch的取证工作实际上还是要基于对应的iPhone手机,而目前iPhone手机的取证依赖于iTunes备份进行,故此次研究也将主要利用iPhone的备份进行分析。
3. 取证方式
a) 将Apple Watch与iPhone手机进行配对,并安装支持的应用程序,本次测试选取的是Apple Watch 标准版42mm,使用运行iOS 8.3的iPhone 6进行配对。
b) 使用iTunes为配对的iPhone进行备份,将备份文件导出。
c) 使用取证软件对备份文件进行解析。需要注意的是,如果备份进行了加密,还应先进行解密操作。
4. 结论
Apple Watch的基本信息:
- Apple Watch信息:所有人,版本,区域和语言信息:

图 2 Apple Watch的基本信息
- 配对时间:使用NSDate存储,转换后需按照时区增加8小时,即2015年6月30日16:20:12。

图 3 Apple Watch与iPhone的配对时间
- Apple Watch的配对手机的版本,此处8.2.1指iOS 8.3.

图 4 Apple Watch配对iPhone的版本信息
- Apple Watch数据在iPhone备份中的存储位置

图 5 Apple Watch备份数据的存储位置
- Apple Watch序列号、UDID、Wi-Fi适配器MAC地址、蓝牙MAC地址及存储容量信息

图 6 Apple Watch序列号等信息
Apple Watch所同步的手机数据
- 通讯录和个人收藏联系人
Apple Watch数据文件夹中映射手机AddressBook数据库中的guid字段,但并不直接存储通讯录信息;Apple Watch按下按钮调出的个人收藏联系人也被同步到了手表之中

图 7 Apple Watch中存储的联系人对应guid

图 8 Apple Watch中的“个人收藏”联系人
- iPhone中所有App列表

图 9 Apple Watch所配对iPhone的应用程序列表
- Apple Watch中已安装的App列表

图 10 Apple Watch已安装应用程序列表
- Apple Watch中同步的Passbook信息

图 11 Apple Watch上的Passbook信息,图像等数据采用BLOB存储
- Apple Watch中同步的邮件账户和邮件id

图 12 邮件账户及对应ID

图 13 Apple Watch上所保存的邮件ID
Apple Watch App数据
目前市面上使用WatchKit开发的程序,在Apple Watch上安装后,配对的iPhone手机中均会生成独立的文件夹,并单独保存数据,除非程序额外定义存储位置。
以微信为例,使用Apple Watch的用户在收到微信消息后,iPhone端保存数据并推送给Apple Watch,在Apple Watch对应的数据文件夹下也会保存所有Apple Watch上使用过的表情、语音信息和文本聊天记录,乃至所发送的位置信息。

图 14 Apple Watch版微信好友列表

图 15 Apple Watch版微信聊天记录
5. 后续研究
- 由于Apple Watch上的iMessage可脱离所配对的iPhone手机使用,说明iPhone中已认证的Wi-Fi网络鉴权信息也存储在Apple Watch上,猜测甚至部分keychain信息也被同步到Apple Watch,在有条件的情况下,可以通过Apple Watch提取Wi-Fi鉴权信息。
- Apple Watch上的“信息”应用与iPhone手机上的“信息”进行同步,但就目前的研究来看并非实时同步,iPhone手机删除的部分信息仍存在于Apple Watch中,同时,存储在服务器的iMessage信息即使在iPhone删除后仍然保留在Apple Watch上或由苹果服务器推送至Apple Watch;如能实现针对Apple Watch的完整提取将可以找到较多手机中已被删除的有价值数据。
- 部分Apple Watch上安装的第三方App所保存的数据,在iPhone端删除后并不会在Apple Watch上同步删除,可以作为iPhone App数据删除恢复的来源。
(完)
[手机取证] Apple Watch取证初探的更多相关文章
- [手机取证] Apple正在行动起来封堵后门?
在被爆出“后门”事件后,苹果似乎已经开始了自己的行动,在最新发布的iOS 8 Beta5版本中,iOS取证专家Zdziarski提及的众多后台服务中的packet sniffer服务已经被禁用,体现出 ...
- The Art of Memory Forensics-Windows取证(Virut样本取证)
1.前言 The Art of Memory Forensics真是一本很棒的书籍,其中使用volatility对内存进行分析的描述可以辅助我们对更高级类的木马进行分析和取证,这里对书中的命令进行了笔 ...
- kali linux之取证
取证简介: CSI:物理取证 指纹.DNA.弹道.血迹 无力取证的理论基础是物质交换原则 数字取证/计算机取证 智能设备.计算机.手机平板.loT.有线及无线信道.数据存储 事件响应调查------黑 ...
- CTF取证方法大汇总,建议收藏!
站在巨人的肩头才会看见更远的世界,这是一篇来自技术牛人的神总结,运用多年实战经验总结的CTF取证方法,全面细致,通俗易懂,掌握了这个技能定会让你在CTF路上少走很多弯路,不看真的会后悔! 本篇文章大约 ...
- 内存取证工具-volatility、foremost
内存取证 1. 内存取证工具volatility 猜测dump文件的profile值 root@kali:~/CTF# volatility -f mem.vmem imageinfo Volatil ...
- iPhone手机安全指南
摘要:iPhone手机安全指南 - 1.iPhone解锁使用指纹:2.启用“查找我的iPhone”功能:3.Apple ID启用两步验证:4.修改SIM卡PIN码.5.iPhone被盗或丢失后,登录i ...
- iOS中远程推送实现—在Apple的生产环境上测试Push Notifications功能
1.在“Provisioning Profiles”中点击“Add”按钮. 2.在“What type of provisioning profile do you need?”页面中选择“Distr ...
- Keli Linux与网络安全(2)——初探Keli
Kali是BackTrack的升级换代产品,按照官方网站的定义,Kali Linux是一个高级渗透测试和安全审计Linux发行版.作为使用者,我简单的把它理解为,一个特殊的Linux发行版,集成了精心 ...
- 装B技能GET起来!Apple Pay你会用了吗?
科技圈儿有一个自带光环的品牌 它每次一有任何动静 不用宣传 也不用刻意营销 消息还是能传天下 2月18日 你敢说你的朋友圈儿没有被下面这个词儿刷屏? Apple Pay 这不,我就跟着凑凑热闹,开个小 ...
随机推荐
- cocos2d-x iOS真机下载非根目录文件提示下载失败解决办法
在使用cocos api的Downloader或者AssetsManager下载文件到真机Document目录时,如果是直接下载到document根目录,是没问题的,如果是下载存放到了某个不存在的子目 ...
- How to:如何让Installshield显示正确的软件所需空间--网友冰块先生贡献
软件环境: installshield2010 工程类型:installshield project 现象:当转换目录后所需空间显示不正常. 解决办法:在转换目录地方加上一个TARGETDIR重新 ...
- Java中的List操作
1. 数组转List String[] arr={"1","2","3"}; List<String> list = Array ...
- HDFS的工作原理(读和写操作)
工作原理: NameNode和DateNode,NameNode相当于一个管理者,它管理集群内的DataNode,当客户发送请求过来后,NameNode会 根据情况指定存储到哪些DataNode上,而 ...
- 安装Nginx的Dockerfile实例
#################################################Dockerfile to build Nginx Installed Containers##Bas ...
- 关于vue.js的计算属性练习代码
参照官网联系如下: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...
- sleep和wait的区别?
sleep指线程被调用时,占着CPU不工作,形象地说明为"占着CPU睡觉",此时,系统的CPU部分资源被占用,其他线程无法进入,会增加时间限制.wait指线程处于进入等待状态,形象 ...
- NewQuant的设计(一)——整体的领域设计
NewQuant的设计思路——整体的领域分析 “领域驱动设计(DDD)”是著名软件工程建模专家Eric Evans提出的一个重要概念,是“面向对象分析设计(OOAD)”的深化.当业务逻辑变得复杂,系统 ...
- 手机web——自适应网页设计(html/css控制)
一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的? 其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name=" ...
- SynchronousQueue类
介绍 Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样.不像Ar ...