这其中itune扮演了很屌的角色!安装或者更新时, iTunes (如果你是wifi甚至你不差钱通过3G那就是设备了) 会连接到 Apple installation authorization server (gs.apple.com) ,会加密发送你要更新的内容信息(切记肯定是摘要之类的信息)(比如 LLB, iBoot, the kernel, and OS image), 一个防止重放攻击的随机数、 设备unique ID (ECID). 服务器检查一下你要升级那些(服务器记录了你终端的状态信息。。。这点也很可怕哦),如果发现数据库里面记录的这部ecid终端原来是io6,现在想升级成ios7.说明是个良民啊。准奏!那就签个名返回吧,准许安装,当然安装包肯定是要验证签名的。
– URL Scheme allows to edit or delete data without user permission
Ex: Skype URL Handler Dial Arbitrary Number
Address space layout randomization (ASLR)、ARM’s Execute Never (XN) feature我就不多说啦,微软这么多年一直都在这方面努力。
XN :可写可执行的一定严格控制, The kernel checks for the presence of the Apple-only “dynamic-codesigning” entitlement.即使如此, only a single mmap call can be made to request an executable and writable page, which is given a randomized address. Safari uses this functionality for its JavaScript JIT compiler。逼不得已才开放!
ROP等攻击一直在持续。
4、++API控制
ios基本把危险的API全部干掉了!剩下的都是运行时提示。
5、数据加密
这可是ios最大的亮点。其他系统还在学习中!
1)、硬件加密引擎内置,内置 AES engine, SHA-1,说实话,没有硬件保存密钥、完成加密运算。数据加密就已经失去了8成安全!苹果的加密引擎DMA path between the flash storage and main system memory。大数据加密效率非常重要。
2)、内置两个初始密钥 unique ID (UID) and a device group ID (GID) are AES 256-bit keys。这两个东西谁都无法读写,除了加密引擎。
The UID是每个设备独有的 and not recorded by Apple or any of its suppliers.(革命形势啊!)
为此, iOS 提供一个Effaceable Storage. accesses the underlying storage technology (for example, NAND) to directly address and erase a small number of blocks at a very low level.。以便wear-leveling删除太麻烦。