林灰前段时间之所以没有马上提交漏洞,主要是抱着观望的态度。
万一提交了漏洞,苹果不认账就比较悲催了。
这事前世苹果也不是没干过。
不止苹果这么干过,谷歌微软之类的企业都这么干过。
不过林灰从一些公开的新闻获悉。
已经有几个安全团队通过这个安全网站提交了安全漏洞并且换得近百万美元了。
当然并不能据此说苹果守规则。
林灰觉得这主要是因为这个漏洞赏金计划刚刚推出不久。
苹果方面还不至于这么快就自己打自己脸。
如果是这个原因,那么最近一段时间。
林灰似乎没必要担心太多,他只需要如法炮制提交些漏洞就可以了。
说到苹果的漏洞,林灰最先想到的是“时间回归漏洞”。
时间回归漏洞可以说是系统最经典的漏洞之一。
所谓的时间回归漏洞指的是有一段时间苹果手机调整时间会变砖。
调整时间手机会变砖?
听起来可能有点滑稽,不过这漏洞真实存在。
在64位设备的早期版本上。
只要将苹果手机时间设定到1970年1月1日,然后重启,苹果手机就变砖头。
之所以存在这样一个漏洞跟系统的最底层——n系统有很大的关系。
n操作系统,是一个强大的多用户、多任务操作系统。
该系统支持多种处理器架构。
按照操作系统的分类,属于分时操作系统。
该系统最早由肯·汤普逊、丹尼斯·里奇和道格拉斯·麦克罗尹于1969年在at&t的贝尔实验室开发。
n系统有很多衍生产物。
基于的dar正是n的分支之一。
作为一个系统一定程度上继承了n的特性。
既然是系统,那么不可避免会涉及到计时的问题。
与人类一般使用“年+月+日”的计数格式不同。
n采用了一种完全不同的计时方式:
在n系统中计时方式是先将tc时区1970年1月1日00:00设定为0点。
随后计算到目前为止所经过的秒数。
举个栗子。
2014年6月22日18时30分25秒。
表示出来的话为1403433025秒。
换算成对应的二进制在n系统下表示时间。
这种计时方法被称为时间戳。
系统也沿袭了n这一计时方法。
也正因此,中时间的设定最多也只能回朔到tc时区1970年1月1日00:00也是这个原因。
仅仅是设置成这个时间的话不会有什么问题。
但涉及到一些特殊的在局部关键功能具有查询过往信息的规则的时候
将时间设置成tc时区1970年1月1日00:00很容易出问题。
尽管多数时候可以通过人为的因素避免触发这个漏洞。
但苹果手机开机的时候就有一个这样强制查询过往信息的机制这个几乎无法避免。
这个机制没办法取消,因为关机重启之后手机肯定是要读取一部分先前的日志数据的。
这种情况下如果时间戳是正常时间的话,那么读取先前的日志数据并不会有什么问题。
但当tc时区1970年1月1日00:00的时候,这个时候时间戳的时间是0。
当局部时间比时间戳0点更早的情况下。
应该怎么表示比时间戳0点更早的时间?
似乎没什么好办法。
尽管没别的好办法,系统是机器。
又不是拥有智慧的生物,它一样是要通过查询机制找到更早时间的。