前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS安全测试-KeyChain

iOS安全测试-KeyChain

作者头像
清风穆云
发布2021-08-09 11:45:42
1.6K0
发布2021-08-09 11:45:42
举报
文章被收录于专栏:QA一隅

Keychain简介

根据苹果的介绍,iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。苹果自己用keychain来保存Wi-Fi网络密码,VPN凭证等等。它是一个在所有app之外的sqlite数据库。

keychain可以说是系统里唯一可以做到安全可靠存储应用敏感数据并且可以在应用卸载或重新安装时仍然保留其数据的地方。当使用itunes进行数据备份时,每个应用程序在keychain里的数据都会得到备份,而且备份的数据是经过加密的。

虽然keychain的访问有权限控制,但是,在越狱的设备上,是可以查看到所有的keychain存储数据。所以在使用Keychain存储用户敏感信息(如 access_token, password等)时,最好还是要加密。

获取Keychain数据

iOS越狱

需要获取keychain数据文件必须要越狱,iOS越狱教程请根据自己的系统版本来选择:爱思越狱教程 越狱之前切记备份重要资料,最好不要使用自己日常使用的设备越狱。

OpenSSH

越狱成功之后需要安装OpenSSH工具,iOS设备其实就是一个小型的Unix系统,由于苹果的封闭性,在不越狱的手机上,我们能操作的东西很少。如果想在ios设备上,通过pc直接执行shell命令,可以在ios设备(已越狱)上安装openssh服务器,通过pcssh连接过去。

打开Cydia直接搜索OpenSSH安装。如果搜索不到可以在软件源菜单中添加源,如雷锋源:http://apt.abcydia.com

安装好OpenSHH后,可以使用爱思助手来打开SSH通道。

使用远程登录工具如:XshellsecureCRT输入上面爱思助手提供的地址端口和账户密码进行登录,登录之后可以查看到iPhone设备的文件目录。

代码语言:javascript
复制
klygteki-iPhone:~ root# ls -l
total 0
drwxr-xr-x  3 root wheel  96 Apr 20  2018 Application\ Support/
drwxr-xr-x  3 root wheel  96 Jul 21 16:53 Containers/
drwx------ 10 root wheel 320 Sep 12  2018 Library/
drwxr-xr-x  2 root wheel  64 Feb 27  2008 Media/

KeyChain数据库

所有存储在KeyChain中的数据,实际上是保存在一个keychain-2.db的数据库中。该数据库位于/private/var/Keychains/目录下。

代码语言:javascript
复制
klygteki-iPhone:/ root# cd /private/var/Keychains/
klygteki-iPhone:/private/var/Keychains root# ls
Analytics/             caissuercache.sqlite3-journal  ocspcache.sqlite3
Assets/                crls/                          ocspcache.sqlite3-shm
SupplementalsAssets/   keychain-2.db                  ocspcache.sqlite3-wal
TrustStore.sqlite3     keychain-2.db-shm              pinningrules.sqlite3
caissuercache.sqlite3  keychain-2.db-wal

更改权限

默认情况下,我们是不能都读取keychain-2.db数据库的,所以需要先赋予其可读权限,给keychain-2.db数据库可读权限

代码语言:javascript
复制
klygteki-iPhone:~ root# cd /private/var/Keychains/
klygteki-iPhone:/private/var/Keychains root# chmod +r keychain-2.db
klygteki-iPhone:/private/var/Keychains root# ls -l
total 7020
drwxrwxr-x 17 _securityd wheel     544 May 28  2018 Analytics/
drwxr-xr-x  2 _securityd wheel      64 Apr 23  2018 Assets/
drwx--x--x  6 _securityd wheel     192 Jul 22 04:57 SupplementalsAssets/
-rw-------  1 _securityd wheel   61440 May  9 16:15 TrustStore.sqlite3
-rw-------  1 _securityd wheel       0 Apr 20  2018 caissuercache.sqlite3
-rw-------  1 _securityd wheel     512 Jul 21 21:09 caissuercache.sqlite3-journal
drwx--x--x  3 _securityd wheel      96 Jul 22 11:14 crls/
-rw-r--r--  1 _securityd wheel 1560576 Jul 21 11:06 keychain-2.db
-rw-------  1 _securityd wheel   32768 Jul 22 09:40 keychain-2.db-shm
-rw-------  1 _securityd wheel 1091832 Jul 22 10:44 keychain-2.db-wal
-rw-------  1 _securityd wheel   53248 Jul 21 10:51 ocspcache.sqlite3
-rw-------  1 _securityd wheel   32768 Jul 22 09:29 ocspcache.sqlite3-shm
-rw-------  1 _securityd wheel 1759272 Jul 22 10:58 ocspcache.sqlite3-wal
-rw-------  1 _securityd wheel  139264 Jul  2 12:03 pinningrules.sqlite3

查看KeyChain数据

keychain-2.db拷贝到桌面,然后使用DB Browser for SQLite即可查看数据内容。

代码语言:javascript
复制
C:\Users\Shuqing
λ  scp  root@127.0.0.1:/private/var/Keychains/keychain-2.db  C:\Users\Shuqing\Desktop
root@127.0.0.1's password:
keychain-2.db                                     100% 1716KB  20.2MB/s   00:00
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 QA一隅 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Keychain简介
  • 获取Keychain数据
    • iOS越狱
      • OpenSSH
        • KeyChain数据库
          • 更改权限
          • 查看KeyChain数据
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档