※ 本文為 Knuckles 轉寄自 ptt.cc 更新時間: 2018-06-10 01:34:35
看板 iOS
作者 標題 Re: [問題] 蘋果為何最近一直把舊版本鎖起來
時間 Fri Jun 8 15:01:16 2018
※ 引述《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,
隨後蘋果的作法就是加入了一段亂碼,我們稱之為 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
[Discussion]This is how Apple completely prevented you from downgrading iOS. : jailbreak r/jailbreak: iOS jailbreaking: tweaks, news, and more for jailbroken iPhones, iPads, and iPod touches.
Installed anything great recently? Got an idea ...
Installed anything great recently? Got an idea ...
https://i.imgur.com/rkOBfXw.png
結論廢話一下 :)
以一個密碼學的角度來說,光是這整個不能降級的機制,
其精巧之程度簡直可以堪稱為一個偉大的藝術品阿 :)
有問題歡迎討論~~
--
推 : [新聞]有狼師一直戳女學森(.)(.)而被家長吉上法院...12/04 23:42
→ : ) (12/04 23:44
推 : ( Y )12/04 23:46
→ : \|/12/04 23:48
推 : (╮⊙▽⊙)ノ |||12/05 00:47
推 : /|\╰╮o( ̄▽ ̄///)<12/05 01:17
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.176.198
※ 文章代碼(AID): #1R6Yd3T_ (iOS)
※ 文章網址: https://www.ptt.cc/bbs/iOS/M.1528441283.A.77F.html
※ 編輯: Lyeuiechang (112.104.176.198), 06/08/2018 15:10:35
所以才有 SHSH2 2.0 也就是包含 Nonce 的 Blobs 不過這又是另一個故事了~
--
推 : 好生動xDD1F 06/08 15:03
推 : 解釋的真好 推2F 06/08 15:04
推 : 13F 06/08 15:05
推 : 推4F 06/08 15:08
推 : 精彩的說明,推一個5F 06/08 15:21
推 : 解釋淺白 簽名檔生動6F 06/08 15:25
推 : 推7F 06/08 15:29
推 : 好文 推~8F 06/08 15:31
推 : 推好文!9F 06/08 15:37
推 : 長知識了,推10F 06/08 15:38
※ 編輯: Lyeuiechang (112.104.176.198), 06/08/2018 15:43:02推 : 推11F 06/08 15:43
推 : 長知識!12F 06/08 15:44
推 : !13F 06/08 15:47
推 : 好文推一下14F 06/08 15:49
推 : 推解釋...淺顯易懂15F 06/08 15:56
→ : 推解釋的很清楚16F 06/08 15:57
推 : 推17F 06/08 15:58
推 : 蘋果如果不用安全為口號硬鎖降版,ios絕對也會碎片化18F 06/08 15:59
推 : 推19F 06/08 16:04
推 : 好文淺顯易懂!20F 06/08 16:08
推 : 簡單易懂!厲害 解開我多年的疑問!哈哈哈21F 06/08 16:09
推 : 推,長知識22F 06/08 16:11
推 : 簡單易懂23F 06/08 16:11
推 : 高手!24F 06/08 16:11
推 : 簡單易懂25F 06/08 16:16
推 : 終於看慬刷機的過程了.26F 06/08 16:18
推 : 推詳細解說27F 06/08 16:22
推 : 好看!28F 06/08 16:23
推 : 推 真的淺顯易懂29F 06/08 16:26
推 : 簡單易懂30F 06/08 16:28
推 : 推31F 06/08 16:29
推 : 推32F 06/08 16:31
推 : 推,真的簡單易懂!33F 06/08 16:33
推 : 有翻譯推推34F 06/08 16:33
推 : 淺顯易懂35F 06/08 16:35
推 : 推有趣的小知識36F 06/08 16:36
推 : 推37F 06/08 16:40
推 : 推專業!!38F 06/08 16:47
推 : 為什麼無法連同nonce+ 數位簽章一起備份下來?卻只能39F 06/08 16:58
→ : 備份數位簽章?
→ : 備份數位簽章?
所以才有 SHSH2 2.0 也就是包含 Nonce 的 Blobs 不過這又是另一個故事了~
推 : 推推推41F 06/08 16:58
※ 編輯: Lyeuiechang (180.217.185.241), 06/08/2018 17:10:57推 : 這種文還不推爆 超用心整理推一個42F 06/08 17:16
推 : 推個43F 06/08 17:17
推 : nonce 的問題也不是問題了....大神太多了囉44F 06/08 17:18
推 : 很久沒follow,今天才知道除了shsh外又多了一層,跟推45F 06/08 17:19
→ : 文一樣好奇為什麼不能連nonce一起備份下來
→ : 題外話,手上還有一支iphone3G是連Android都能刷哈哈
→ : 文一樣好奇為什麼不能連nonce一起備份下來
→ : 題外話,手上還有一支iphone3G是連Android都能刷哈哈
推 : 推48F 06/08 17:26
推 : 應該是因為每次要求的 nonce 都不一樣?49F 06/08 17:26
推 : 推50F 06/08 17:26
推 : 我覺得開發者簽名的過程也是頗精彩的51F 06/08 17:27
推 : 優文52F 06/08 17:30
推 : 推53F 06/08 17:40
→ : apnonce基本上是一次性的54F 06/08 17:42
→ : 但是大神都能找到會產生重複性apnonce 的generator
→ : 但是大神都能找到會產生重複性apnonce 的generator
推 : 好文 推一個56F 06/08 17:48
推 : 推一下57F 06/08 17:48
推 : y長知識 推58F 06/08 17:51
推 : 這是好文章59F 06/08 17:56
推 : 推60F 06/08 22:09
推 : 推61F 06/08 22:20
推 : 大推啊62F 06/08 22:26
推 : 推,跟只會噓的人比好太多了63F 06/08 22:32
推 : 推64F 06/08 22:37
推 : 推65F 06/08 22:40
推 : 有趣優文 可以M惹66F 06/08 22:46
推 : 推易懂67F 06/08 22:48
推 : 簡單易懂 推一個!68F 06/08 22:58
推 : 推一個69F 06/08 22:58
推 :70F 06/08 23:00
推 : 推 解釋方式相當精闢71F 06/08 23:10
推 : 推推72F 06/08 23:10
推 : 推73F 06/08 23:14
推 : 好文74F 06/08 23:22
推 : 當年如果你是我計算機概論老師,該有多好...75F 06/08 23:22
推 : 專業易懂 推一個!76F 06/08 23:26
推 : 推77F 06/08 23:29
推 : 這麼說來舊bootrom的iPhone 3GS以下機型之所以能自由78F 06/08 23:34
→ : 升降級就是因為CPU不會去做認證機制的緣故吧!?
→ : 升降級就是因為CPU不會去做認證機制的緣故吧!?
推 : 淺顯易懂 推80F 06/08 23:35
推 : 推81F 06/08 23:36
推 : 長知識了82F 06/08 23:51
推 : 推83F 06/09 00:27
推 : 給推84F 06/09 00:29
推 : 強!85F 06/09 00:32
推 : 推86F 06/09 00:32
推 : 優文87F 06/09 00:41
推 : 推88F 06/09 00:42
推 : 讚讚89F 06/09 00:45
推 : 推用心90F 06/09 00:45
推 : 推!長知識91F 06/09 01:04
推 : 只能推了92F 06/09 01:04
推 : 好生動XD93F 06/09 01:14
推 : 推,易懂94F 06/09 01:15
推 : 長知識!95F 06/09 01:24
推 : 推96F 06/09 01:40
推 : 清楚 推!97F 06/09 01:56
推 : 還是看不懂98F 06/09 02:04
推 : 推99F 06/09 02:34
推 : 推 這解釋我喜歡100F 06/09 02:54
推 : 專業 博士班的比喻101F 06/09 03:15
推 : 棒102F 06/09 03:20
推 : 謝分享103F 06/09 03:31
推 : 推104F 06/09 04:02
推 : 推專業講解105F 06/09 04:04
推 : 深入淺出的介紹方式106F 06/09 04:52
→ : 專業好文 推
→ : 專業好文 推
推 : 推好文108F 06/09 07:13
推 : 結論:嘻嘻109F 06/09 07:35
推 : 高手110F 06/09 07:40
推 : 推簡單易懂111F 06/09 08:09
推 : 好文推112F 06/09 08:12
推 : 專業 推113F 06/09 08:17
推 : 厲害114F 06/09 08:18
推 : 大推優文!115F 06/09 08:46
推 : 專業 推116F 06/09 09:21
推 : 推117F 06/09 10:51
推 : Push118F 06/09 10:55
推 : 阻止系統版本破碎化,對開發者而言,優化變得比較單純119F 06/09 11:00
→ : 。
→ : 。
推 : Djekidbdhaudbfjchfnkzudnnxkcjrnxjsc121F 06/09 12:13
推 : 好生動XD122F 06/09 13:42
推 : 神串留名123F 06/09 14:46
推 : 那些常酸人的怎麼不見了?是不是看不懂就不敢亂酸了啊?124F 06/09 15:14
推 : 推 專業125F 06/09 15:42
推 : Ios12準備打破舊設備變慢的思維 蘋果知道轉為經營平台126F 06/09 15:48
→ : 服務 提升APP開發的效率 當所有人都願意升上Ios12 將
→ : 大幅減少系統破碎化的問題 間接保證app的品質
→ : 服務 提升APP開發的效率 當所有人都願意升上Ios12 將
→ : 大幅減少系統破碎化的問題 間接保證app的品質
推 : 精彩給推129F 06/09 18:31
推 : 深入淺出,簡單易懂!130F 06/09 18:32
推 : 推 未看先猜會被友站轉載 媽我在這~131F 06/09 20:04
推 : 推132F 06/09 21:57
--
※ 看板: iOS 文章推薦值: 0 目前人氣: 0 累積人氣: 1167
回列表(←)
分享