生为冰山,就该淡淡地爱海流、爱风,并且在偶然接触时,全心全意地爱另一块冰山。
——王小波 《似水柔情》
简介
- 根据苹果的介绍,iOS设备中的
Keychain
是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。苹果自己用keychain来保存Wi-Fi网络密码,VPN凭证等等。它是一个在所有app之外的sqlite数据库。 keychain
可以说是系统里唯一可以做到安全可靠存储应用敏感数据并且可以在应用卸载或重新安装时仍然保留其数据的地方。当使用itunes进行数据备份时,每个应用程序在keychain里的数据都会得到备份,而且备份的数据是经过加密的。- 鉴于keychain的这些特性,使得它成为开发者存储应用敏感数据的首选,应用程序常见的敏感数据通常有密码,秘钥等等。
- 但是,以上所讨论的安全仅限于手机不越狱为前提!!如果手机越狱我们可以使用
Keychain-Dumper
获取到KeyChain
中的所有数据,不知道是算幸运还是不幸。 所有资料文件&工具在这里
了解更多:
KeyChain数据库权限
KeyChain数据库
- 所有存储在
KeyChain
中的数据,实际上是保存在一个keychain-2.db
的数据库中。 - 该数据库位于
/private/var/Keychains/
目录下。
更改权限
- 默认情况下,我们是不能都读取
keychain-2.db
数据库的,所以需要先赋予其可读权限。Terminal
通过SSH登录手机- 进入
Keychains
目录 - 给
keychain-2.db
数据库可读权限
1 | cd /private/var/Keychains/ |
Keychain-Dumper
下载安装Keychain-Dumper
Keychain-Dumper的简单使用
Keychain-Dumper可执行文件传输至手机
- 将下载的
Keychain-Dumper
文件夹内的keychain_dumper
可执行文件传输至手机指定路径,如我放在手机/bin
目录下 - 可以使用电脑助手,也可以使用指令操作如下:
1 | exit // 退出SSH连接手机 |
导出KeyChain数据
使用SSH连接手机,进入Root目录
可以直接执行上一步传输的可执行文件,会在终端直接输出
dumper
的KeyChain
内容。
1 | ./keychain_dumper |
- 也可以执行上一步传输的可执行文件,并导出为txt文本方便查看
1 | /bin/keychain_dumper > keychain-export.txt |
- 将导出的文本文件,传输至电脑上查看, 可以使用电脑助手,也可以使用命令操作如下:
1 | cd /bin |
- 打开文本文件可以发现,我们的的
KeyChain
存储的数据在这里一览无遗,如果是敏感信息被别人破解,那么后果…