Re: [問題] 蘋果為何最近一直把舊版本鎖起來
※ 引述《st93042 (寂寞難耐)》之銘言:
: 如題
: 記得i5左右時
: 蘋果並不會想現在這樣
: 11.4出來就把11.3鎖掉
: 從ios11出來開始,只要一出新版本,過沒多久就把舊版本關掉,是不是蘋果本身對新
版
: 本的優化沒信心,加上想加快就產品的汰換
前幾天才在 Reddit 上看到一篇有趣的文章,
順便趁這個機會分享給大家 :)
以下為了方便大家閱讀(X)賺稿費(O)所以簡單整理一下那篇文章的意思:
第一部分:在伺服器部分掌控升降級的鑰匙
--------------------------------------
早在很早很早以前~~~蘋果是允許離線軟體更新,但是隨後就基於無法控制系統版本為由
,
放棄了這個方式,也就是接下來大家都知道的線上認證更新機制:
Apple 認證伺服器 --數位簽章--> iTunes --數位簽章--> iDevice
只要關掉認證伺服器,就能達到控制整個生態圈版本的目的。
Apple 認證伺服器 --X--> iTunes --X--> iDevice (失敗)
也因此,當時候的人們也很聰明:「把伺服器的數位簽章備份下來」,
這也就成為了過去越獄社群曾經輝煌的過去:SHSH Blobs
作法是當我們需要降級時,便偽裝成為 Apple 的認證伺服器,
然後提供 iTunes 我們之前存好的 SHSH Blobs,就可以進行升降級,
即使伺服器已經關掉的狀態。
Apple 認證伺服器 ---X--->
我們的 SHSH --數位簽章--> iTunes --數位簽章--> iDevice (成功)
隨後蘋果的作法就是加入了一段亂碼,我們稱之為 Nonce,
這樣一來就讓我們無法順利的欺騙 iDevice 上面的 Bootloader,
達到降級的目的。
我們的 SHSH --數位簽章A--> iTunes --數位簽章A-->X<--數位簽章B-- iDevice (失敗)
也因此我們得到第一部分的結論:
1.iDevice 上的認證機制是依靠 Bootloader,並且是由 Secure Boot 好好地保護著,
也因此目前沒有方法可以透過中介的方法改寫這部分。
2.每個裝置的真正明碼被藏在一組組的「一次性密碼」,我們可以知道密碼是多少,
但是不能去修改它(唯讀),所以這個也無法被竄改。
3.由於在這過程中是使用非對稱式加密技術,也因此數位簽章是無法被竄改或偽造。
在如此重重的安全關卡中基本上是無法被突破的。 :(
第二部分:在裝置部分掌控升降級的鑰匙
------------------------------------
接著我們來看看為什麼不能任意刷入 iOS 版本:
一個刷機的過程如下:
下載 ipsw --> 丟入 iTunes --> 插上 iDevice --> 刷機
但是如果從背後原理上來看,後半部的流程是這樣:
iTunes --> iDevice CPU --> iDevice Flash
所以可以決定要刷甚麼版本 iOS 的人就是 iDevice 上面的 CPU,
如果 CPU 謊報資訊的話,你刷機的成功率是 0.00069%(原文作者亂掰 :( )
那你可能會問為什麼不繞過 CPU 直接開刷就好,但是問題是整個傳輸的過程都是加密的
,
任何檔案要寫進 Flash 全部都是加密的,而且你猜是誰有了鑰匙?
CPU,這也代表全宇宙只有 CPU 知道怎麼加密這玩意兒,同時每顆 CPU 的密碼都不一樣
。
也因此,如果沒有了 CPU 的密碼,無論怎麼強力取出 Flash 上面的資訊,
都是不可讀寫的,即使是解焊 Flash 晶片也是如此。
那 CPU 怎麼決定可以刷入那些版本呢?沒錯就是數位簽章,
而唯一可以發行簽章的人就是 Apple 認證伺服器。
你可以想像一下整個過程如下:
iTunes:我要刷機
CPU:你需要提供這個 iOS 版本的數位簽章
(iTunes 向 Apple 詢問數位簽章)
iTunes:這是你要得數位簽章
CPU:這個數位簽章是真的,開始刷機~~
如果 Apple 關掉認證伺服器:
iTunes:我要刷機
CPU:你需要提供這個 iOS 版本的數位簽章
(iTunes 向 Apple 詢問數位簽章)
Apple:認證關掉了,不能給你嘻嘻~~
所以後來就有了 SHSH Blobs:
iTunes:我要刷機
CPU:你需要提供這個 iOS 版本的數位簽章
(iTunes 從你的 D槽 拿出洨秘密)
iTunes:這是你要的數位簽章
CPU:這個數位簽章是真的,開始刷機~~
但是現在已經有了 nonce 所以已經沒用了:
iTunes:我要刷機
CPU:你需要提供這個 iOS 版本的數位簽章
同時,必須要包含 rfjomedlfmndvlofdvjmiudshdweqiubnhyvbnkjmngbfuibmoddfnifdb
的字串喔~
iTunes:這是你要的數位簽章
CPU:額,你給的裡面是 mkfdvmdfvdvfmdvfpvfdmreijorejreoeirjgeriorenjroeierjnreo
,跟我的這個 rfjomedlfmndvlofdvjmiudshdweqiubnhyvbnkjmngbfuibmoddfnifdb
不一樣喔,所以不能給你刷機~~
即使我們可以偽裝 Apple 認證伺服器,但是我們仍然無法偽裝其傳出來的結果 :(
只有透過攔截真正伺服器的資訊後,在需要時重新傳輸給 CPU 才能成功,
這也使得數位簽章的不可偽造性極為強大。
參考原文
--------
[Discussion]This is how Apple completely prevented you from downgrading iOS.
作者:u/SGpro-_-
https://www.reddit.com/r/jailbreak/comments/8oy01m/discussionthis_is_how_apple
_c
https://i.imgur.com/rkOBfXw.png

結論廢話一下 :)
以一個密碼學的角度來說,光是這整個不能降級的機制,
其精巧之程度簡直可以堪稱為一個偉大的藝術品阿 :)
有問題歡迎討論~~
--
推
12/04 23:42,
12/04 23:42
→
12/04 23:44,
12/04 23:44
推
12/04 23:46,
12/04 23:46
→
12/04 23:48,
12/04 23:48
推
12/05 00:47,
12/05 00:47
推
12/05 01:17,
12/05 01:17
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.176.198
※ 文章網址: https://www.ptt.cc/bbs/iOS/M.1528441283.A.77F.html
※ 編輯: Lyeuiechang (112.104.176.198), 06/08/2018 15:10:35
推
06/08 15:03,
7年前
, 1F
06/08 15:03, 1F
推
06/08 15:04,
7年前
, 2F
06/08 15:04, 2F
推
06/08 15:05,
7年前
, 3F
06/08 15:05, 3F
推
06/08 15:08,
7年前
, 4F
06/08 15:08, 4F
推
06/08 15:21,
7年前
, 5F
06/08 15:21, 5F
推
06/08 15:25,
7年前
, 6F
06/08 15:25, 6F
推
06/08 15:29,
7年前
, 7F
06/08 15:29, 7F
推
06/08 15:31,
7年前
, 8F
06/08 15:31, 8F
推
06/08 15:37,
7年前
, 9F
06/08 15:37, 9F
推
06/08 15:38,
7年前
, 10F
06/08 15:38, 10F
※ 編輯: Lyeuiechang (112.104.176.198), 06/08/2018 15:43:02
推
06/08 15:43,
7年前
, 11F
06/08 15:43, 11F
推
06/08 15:44,
7年前
, 12F
06/08 15:44, 12F
推
06/08 15:47,
7年前
, 13F
06/08 15:47, 13F
推
06/08 15:49,
7年前
, 14F
06/08 15:49, 14F
推
06/08 15:56,
7年前
, 15F
06/08 15:56, 15F
→
06/08 15:57,
7年前
, 16F
06/08 15:57, 16F
推
06/08 15:58,
7年前
, 17F
06/08 15:58, 17F
推
06/08 15:59,
7年前
, 18F
06/08 15:59, 18F
推
06/08 16:04,
7年前
, 19F
06/08 16:04, 19F
推
06/08 16:08,
7年前
, 20F
06/08 16:08, 20F
推
06/08 16:09,
7年前
, 21F
06/08 16:09, 21F
推
06/08 16:11,
7年前
, 22F
06/08 16:11, 22F
推
06/08 16:11,
7年前
, 23F
06/08 16:11, 23F
推
06/08 16:11,
7年前
, 24F
06/08 16:11, 24F
推
06/08 16:16,
7年前
, 25F
06/08 16:16, 25F
推
06/08 16:18,
7年前
, 26F
06/08 16:18, 26F
推
06/08 16:22,
7年前
, 27F
06/08 16:22, 27F
推
06/08 16:23,
7年前
, 28F
06/08 16:23, 28F
推
06/08 16:26,
7年前
, 29F
06/08 16:26, 29F
推
06/08 16:28,
7年前
, 30F
06/08 16:28, 30F
推
06/08 16:29,
7年前
, 31F
06/08 16:29, 31F
還有 70 則推文
還有 2 段內文
推
06/09 03:20,
7年前
, 102F
06/09 03:20, 102F
推
06/09 03:31,
7年前
, 103F
06/09 03:31, 103F
推
06/09 04:02,
7年前
, 104F
06/09 04:02, 104F
推
06/09 04:04,
7年前
, 105F
06/09 04:04, 105F
推
06/09 04:52,
7年前
, 106F
06/09 04:52, 106F
→
06/09 04:52,
7年前
, 107F
06/09 04:52, 107F
推
06/09 07:13,
7年前
, 108F
06/09 07:13, 108F
推
06/09 07:35,
7年前
, 109F
06/09 07:35, 109F
推
06/09 07:40,
7年前
, 110F
06/09 07:40, 110F
推
06/09 08:09,
7年前
, 111F
06/09 08:09, 111F
推
06/09 08:12,
7年前
, 112F
06/09 08:12, 112F
推
06/09 08:17,
7年前
, 113F
06/09 08:17, 113F
推
06/09 08:18,
7年前
, 114F
06/09 08:18, 114F
推
06/09 08:46,
7年前
, 115F
06/09 08:46, 115F
推
06/09 09:21,
7年前
, 116F
06/09 09:21, 116F
推
06/09 10:51,
7年前
, 117F
06/09 10:51, 117F
推
06/09 10:55,
7年前
, 118F
06/09 10:55, 118F
推
06/09 11:00,
7年前
, 119F
06/09 11:00, 119F
→
06/09 11:00,
7年前
, 120F
06/09 11:00, 120F
推
06/09 12:13,
7年前
, 121F
06/09 12:13, 121F
推
06/09 13:42,
7年前
, 122F
06/09 13:42, 122F
推
06/09 14:46,
7年前
, 123F
06/09 14:46, 123F
推
06/09 15:14,
7年前
, 124F
06/09 15:14, 124F
推
06/09 15:42,
7年前
, 125F
06/09 15:42, 125F
推
06/09 15:48,
7年前
, 126F
06/09 15:48, 126F
→
06/09 15:48,
7年前
, 127F
06/09 15:48, 127F
→
06/09 15:48,
7年前
, 128F
06/09 15:48, 128F
推
06/09 18:31,
7年前
, 129F
06/09 18:31, 129F
推
06/09 18:32,
7年前
, 130F
06/09 18:32, 130F
推
06/09 20:04,
7年前
, 131F
06/09 20:04, 131F
推
06/09 21:57,
7年前
, 132F
06/09 21:57, 132F
推
06/10 07:51,
7年前
, 133F
06/10 07:51, 133F
推
06/10 18:27,
7年前
, 134F
06/10 18:27, 134F
推
06/10 20:55,
7年前
, 135F
06/10 20:55, 135F
推
06/11 14:13,
7年前
, 136F
06/11 14:13, 136F
推
06/11 22:45,
7年前
, 137F
06/11 22:45, 137F
→
06/11 22:45,
7年前
, 138F
06/11 22:45, 138F
推
06/13 22:08,
7年前
, 139F
06/13 22:08, 139F
噓
06/14 15:39,
7年前
, 140F
06/14 15:39, 140F
推
07/23 08:23,
7年前
, 141F
07/23 08:23, 141F
討論串 (同標題文章)