美文网首页
IOS刷机过程--以及为什么不能再降级刷机

IOS刷机过程--以及为什么不能再降级刷机

作者: XX开发从开始到放弃 | 来源:发表于2017-08-25 17:30 被阅读0次

    刷机过程大概是这样的:你从网上下载一个ipsw格式的固件,打开iTunes,连接手机,固件就可以刷进去了。实际上,刷机过程中,数据是这么流动的:

    ipsw文件 --> iTunes --> iOS设备的CPU --> iOS设备的Flash/eMMC

    其中非常关键的一点是:只有CPU才能把固件写到Flash/eMMC中,所以你能不能成功刷机,在于CPU同不同意。CPU不同意,你就刷不进去。

    (为什么不能绕开CPU直接写入Flash/eMMC呢?这是因为iOS设备是全盘加密的,也就是说,往Flash/eMMC里写东西要先加密。这个加密密钥写在CPU内部,只有CPU才知道。而且每台设备的密钥都是不一样的。

    所以,你没有密钥,就无法向Flash/eMMC写入正确的数据,即使把Flash/eMMC拆下来刷入也不行。)

    那么CPU怎么决定能否刷机呢?需要验证来自苹果服务器的固件签名。假如固件签名正确,就可以刷入固件。所以iTunes必须向苹果服务器询问这个固件的签名,提供给CPU。苹果服务器根据这个固件的真伪、版本号,来决定是否提供签名。所以,苹果服务器对你能否刷入固件是有决定权的。

    可以想象以下情景:

    iTunes:我要刷入这个固件

    CPU:那你得提供这个固件的签名

    iTunes向苹果验证服务器索要了这个固件的签名

    iTunes:这是这个固件的签名

    CPU:这个签名是真的!这个包可以刷入。

    如果固件过期的话,会是以下情景:

    iTunes:我要刷入这个固件

    CPU:那你得提供这个固件的签名

    iTunes向苹果验证服务器索要这个固件的签名

    苹果验证服务器:这个固件过期了,所以我不能给你提供签名。

    (数字签名使用非对称加密技术,具有不可伪造性。所以你不能自行伪造签名)

    虽然数字签名不能伪造,但是可以保存下来重放。前几年可以使用SHSH刷入旧版固件,就是这个原理。可以想象以下情景:

    iTunes:我要刷入这个固件

    CPU:那你得提供这个固件的签名

    iTunes拿出了收藏多年的旧签名

    iTunes:这是这个固件的签名

    CPU:这个签名是真的!这个包可以刷入。

    (实际上要搭建一个假的验证服务器,把收藏多年的旧签名提供给iTunes)

    这种重放攻击是很容易避免的,所以现在SHSH已经没用了。你可以想象成以下情景:

    iTunes:我要刷入这个固件

    CPU:那你得提供这个固件的签名,并且签名中含有随机数fasdjhpgia;

    收藏的旧签名中,随机数不是fasdjhpgia,而是另外一个,所以无法使用

    相关文章

      网友评论

          本文标题:IOS刷机过程--以及为什么不能再降级刷机

          本文链接:https://www.haomeiwen.com/subject/izfpdxtx.html