0x18 数据保护API

注:原文---念茜的博客

题外话

开篇先扯几句题外话,许多朋友都问我怎么不写防啊,我确实有点犹豫。

hackers总是想象如果自己是开发者会怎么写,然后才能找到入手点。同理,开发者们也要想象自己是hackers会怎么做,才能采取相应的防御措施。然后,就是一场递归的博弈。

拿越狱检测这件事来说,起初大家只需判断有无安装Cydia就好了,hackers们说好,那我就不安装Cydia也可以动手脚。开发者们又说,那你一定得用的上MobileSubstrate,bash,ssh吧,我去检测手机有没有安装这些工具。可是又有什么用呢?你判断什么我绕过去什么。

当class-dump大肆流行,函数符号都被暴露,开发者想尽办法藏起自己的敏感函数代码。hackers们也知道class-dump的死穴在哪里,于是新的检索办法油然而生。也就说,当一个防御手段成为流行,它就不会再是个让hackers大骂“真特么费劲”的防御手段了。比如之前介绍的一个小技巧:内存数据擦除,hackers知道开发者都去擦数据了,那我hook memset在你擦之前去读就好了。开发者说:我直接写硬盘上然后删除!hackers说:难道你没听说过文件恢复?

OK,贫的有点多了,本文介绍一下防御相关的话题----iOS的数据保护API。

数据保护API

文件系统中的文件、keychain中的项,都是加密存储的。当用户解锁设备后,系统通过UDID密钥和用户设定的密码生成一个用于解密的密码密钥,存放在内存中,直到设备再次被锁,开发者可以通过Data

Protection API 来设定文件系统中的文件、keychain中的项应该何时被解密。

1)文件保护

2)keychain项保护

应用实例

把一段信息infoStrng字符串写进文件,然后通过Data Protection API设置保护。

设备锁屏(带密码保护)后,即使是越狱机,在root权限下cat读取那个文件信息也会被拒绝。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文首发个人博客:聊聊 iOS 数据保护 文件系统中的文件、keychain中的项,都是加密存储的。当用户解锁设备...
    Chars阅读 3,168评论 0 5
  • 通过看一些文档发现越狱有风险,但是风险还是在可控范围内的,所以touchid用于交易还是可行的。 一越狱存在的问题...
    泺莫繁华阅读 3,918评论 0 0
  • 文件系统中的文件、keychain 中的项,都是加密存储的。当用户解锁设备后,系统通过 UDID 密钥和用户设定的...
    无沣阅读 720评论 0 0
  • 如果你看完书中的所有例子,你很可能已经做完你的实验和在已经越狱的iPhone上的研究。因为和许多人一样,几乎所有的...
    fishmai0阅读 16,777评论 2 42
  • 顾溪小宇宙阅读 252评论 0 2