这与二进制表达负数的方式有关系。
因为 Unix采用了二进制的方式来存储。
二进制数据在执行在执行00……0-1
实际进行的的运算是:(1)00……0-1(ps:省略号中有61个0)
得到的结果是11……1(ps:省略号中有61个1)
这样的话0-1≠-1
得到的数实际是2的64方-1。
类似于这种的例子在计算机的世界里有很多。
比如说两个正数相加结果为0这种情况。
林灰记得以前玩ACM的时候经常遇到那种比较蛋疼的编程题。
表面上要求两个数相加。
听起来要求很简单。
但跑程序测试的时候遇到的测试数据都是那种超大数。
但实际操作的时候必须要考虑数据溢出的情况。
总而言之,计算机世界。
一个奇妙的世界。
在Unix里当时间戳为0的时候进行求差也会遇到类似的这种情况。
当苹果手机里时间戳的时间设置成0的时候重启手机。
手机的查询机制在通过时间求差查询的时返回的时间非但不是一个时间戳0之前的时间。
反而会返回一个极大的时间。
功能的时间是无穷大,而系统的时间却是0。
而现在这种情况,查询之前的时间会出错。
出错的后果很直接整个系统直接罢工。
即手机直接即变砖。
当然,虽然这个漏洞存在。
但脑回路正常的用户在安全的网络环境下想触发这个漏洞很麻烦。
如果用户想触发这个漏洞的话。
首先用户需要打开“通用”设置下的“日期与时间”。
在这里用户必须先关闭“自动设置时间”的功能才会出现手动设置时间的选项。
紧接着用户要做的时间事情是滑动选择的时间。
因为没有年份的选项,用户想要改变唯一的办法就是滑动日期。
经过很麻烦的操作将才可以将时间设置为1970年1月1日。
而仅仅是这样还不会触发这个漏洞。
在时间设置为 1970年 1月 1日之后。
用户要接着进行下一步操作:关机重启。
至此iPhone变砖的步骤才大功告成。
按照这一番操作下来的话手机将一直卡在苹果手机开机时Logo刚刚出来的界面。
听起来这个漏洞似乎很难触发啊!
这样一个很难触发的漏洞有什么价值吗?
当然有价值。
凡事就怕有心人故意利用。
漏洞这种东西也一样。
对于普通用户来说这个漏洞不算什么。
但对于有心搞事情的技术人员来说通过这么一个蠢萌的漏洞可以做很多事情。
当iOS设备连接到公共网络时,iOS系统将会使用网络时间协议服务对时区、时间进行校准。
如果黑客发送恶意的网络时间协议攻击,将iOS系统时间校准至UTC为0的时间,那么所有用户设备均会受到此bug影响,在重新启动设备后无法使用设备。
NTP(网络时间协议)是最古老的网络传输协议之一。
其本身的目的是将精确计时装置如原子钟的时间通过网络的手段传递给每一台联网设备,从而提供最精确的对时能力。
即使网络时间协议协议本身已经考虑到了篡改时间的可能性。
但长久以来,以网络时间协议为切入点网络攻击方式屡见不鲜。
虽然林灰并不是很擅长这类操作,不过这对于黑客来说很容易做到。
毕竟哪怕是林灰这样并非专门从事IT安全方面的人,也知道上述操作具体如何实现上述过程。
随便找一个公共场所,设定一个不设密码的开放 WiFi。
然后将苹果的网络时间协议请求解析到自己控制的 IP上(这里的IP指IP地址)。
具体到网络时间协议攻击如何操作。
首先伪造一份数据给一台服务器。
服务器就会进行自动响应。
转而对一个特定 IP发送大量响应信息。
而且这份数据和受害者最终收到的数据之间有一个非常大的倍数关系。
通过大量数据的阻塞攻击,可以瞬间影响受害者的网络带宽,甚至直接瘫痪受害者的网络。
这种情况下,当用户将 iPhone连接到这个 WiFi之后,一旦重启就变砖。
总而言之,这个漏洞在普通用户视角中可能不算什么。
但对于一些心术不正的技术人员来说。
这个漏洞很容易利用。
而且这个漏洞很严重。
遇到这个漏洞的手机解决方案只有一个:
拆机断电。
在将 iPhone拆开之后需要将电池与主板的连接切断。
并且放置一段时间,让内部的电容内的电能充分消耗。
之后再次连接电池开机,这样一来 iOS就能重归正常工作状态。
其中的原理更简单,通过彻底断电,清除 iPhone内部电子元器件的计时功能,让一切相关数据归零。
重启之后就能跳出这个Bug。
当然,也仅仅是暂时跳出这个BUG而已。
但如果你将时间,或者时间被再次修改为 1970年 1月 1日,这个问题还会再次出现。
虽然看起来简单。但实际很难,毕竟不是那么多人擅长手机拆解。
而且拆解本身也已经对 iPhone本身造成了损伤。
总之这件事情影响很大,林灰记得前世这件事情影响很不好。
前世这个漏洞涉及的范围很广。
几乎涵盖了系统版本:iOS 8.0 -iOS 9.3 beta 3
(对对应搭载64位处理器的设备)
虽然现在iOS 8正式版还没发布。
但iOS 8 Beta版却已经存在了。
没道理正式版上存在的bug在测试版上却不存在。
不过出于谨慎,林灰找了部空余的iPhone5s。
林灰记得这似乎是前不久买那堆电脑时顺带买的。
啧啧啧。
用一部完好无损的手机来测试“变砖bug”。
老实说这测试漏洞的成本有点高昂啊。
不过比起即将获得的回报这点成本不算什么。
苹果方面的安全人员也不是傻子。
不会不清楚林灰提交漏洞的价值。
刷到iOS8 beta版本之后。
林灰进行了测试。
测试的过程林灰还顺带着进行了录像。
通过一番测试。
林灰发现这个涉及到改时间重启会变砖的漏洞果然依旧存在。
存在很合理。
不存在才不正常。
只要苹果手机底层跟Unix有牵连。
这个漏洞就会一直存在。
喜欢穿越:2014请大家收藏:(www.ishuse.net)穿越:2014爱书屋更新速度全网最快。