蘋果為何最近一直把舊版本鎖起來 - iOS

Table of Contents

※ 引述《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

結論廢話一下 :)

以一個密碼學的角度來說,光是這整個不能降級的機制,
其精巧之程度簡直可以堪稱為一個偉大的藝術品阿 :)

有問題歡迎討論~~

--
Lyeuiechang: [新聞]有狼師一直戳女學森(.)(.)而被家長吉上法院...12/04 23:42
Xhocer: ) (12/04 23:44
xj654m3: ( Y )12/04 23:46
Xhocer: \|/12/04 23:48
xj654m3: (╮⊙▽⊙)ノ|||12/05 00:47
Lyeuiechang: /|\╰╮o( ̄▽ ̄///)<12/05 01:17

--

All Comments

Blanche avatarBlanche2018-06-10
[新聞]有狼師一直戳女學森(.)(.)而被家長吉上法院...
Adele avatarAdele2018-06-15
) (
Doris avatarDoris2018-06-18
( Y )
Odelette avatarOdelette2018-06-21
\|/
Audriana avatarAudriana2018-06-24
(╮⊙▽⊙)ノ|||
Elma avatarElma2018-06-27
/|\╰╮o( ̄▽ ̄///)<
Ula avatarUla2018-06-27
好生動xDD
Annie avatarAnnie2018-07-02
解釋的真好 推
Kyle avatarKyle2018-07-04
1
Necoo avatarNecoo2018-07-06
Odelette avatarOdelette2018-07-07
精彩的說明,推一個
Carolina Franco avatarCarolina Franco2018-07-08
解釋淺白 簽名檔生動
Liam avatarLiam2018-07-11
Robert avatarRobert2018-07-12
好文 推~
Hardy avatarHardy2018-07-15
推好文!
Charlie avatarCharlie2018-07-18
長知識了,推
Jessica avatarJessica2018-07-20
Heather avatarHeather2018-07-23
長知識!
Ethan avatarEthan2018-07-27
Delia avatarDelia2018-07-28
好文推一下
Bennie avatarBennie2018-07-31
推解釋...淺顯易懂
Gary avatarGary2018-08-02
推解釋的很清楚
Hazel avatarHazel2018-08-05
Suhail Hany avatarSuhail Hany2018-08-08
蘋果如果不用安全為口號硬鎖降版,ios絕對也會碎片化
Andy avatarAndy2018-08-10
Lily avatarLily2018-08-13
好文淺顯易懂!
Ina avatarIna2018-08-17
簡單易懂!厲害 解開我多年的疑問!哈哈哈
Cara avatarCara2018-08-19
推,長知識
Mason avatarMason2018-08-23
簡單易懂
Dora avatarDora2018-08-23
高手!
Dora avatarDora2018-08-27
簡單易懂
Edwina avatarEdwina2018-08-27
終於看慬刷機的過程了.
Faithe avatarFaithe2018-08-28
推詳細解說
Jake avatarJake2018-08-29
好看!
Faithe avatarFaithe2018-08-31
推 真的淺顯易懂
Bennie avatarBennie2018-09-01
簡單易懂
Oscar avatarOscar2018-09-04
Elvira avatarElvira2018-09-08
Hedda avatarHedda2018-09-09
推,真的簡單易懂!
Sierra Rose avatarSierra Rose2018-09-09
有翻譯推推
Joseph avatarJoseph2018-09-11
淺顯易懂
Hedda avatarHedda2018-09-15
推有趣的小知識
Michael avatarMichael2018-09-17
Sierra Rose avatarSierra Rose2018-09-18
推專業!!
Isla avatarIsla2018-09-20
為什麼無法連同nonce+ 數位簽章一起備份下來?卻只能
備份數位簽章?
Ula avatarUla2018-09-20
推推推
Hardy avatarHardy2018-09-22
這種文還不推爆 超用心整理推一個
Donna avatarDonna2018-09-23
推個
Puput avatarPuput2018-09-28
nonce 的問題也不是問題了....大神太多了囉
Rebecca avatarRebecca2018-10-01
很久沒follow,今天才知道除了shsh外又多了一層,跟推
文一樣好奇為什麼不能連nonce一起備份下來
Connor avatarConnor2018-10-05
題外話,手上還有一支iphone3G是連Android都能刷哈哈
Queena avatarQueena2018-10-06
Tristan Cohan avatarTristan Cohan2018-10-11
應該是因為每次要求的 nonce 都不一樣?
Belly avatarBelly2018-10-13
Zenobia avatarZenobia2018-10-17
我覺得開發者簽名的過程也是頗精彩的
Caitlin avatarCaitlin2018-10-21
優文
Una avatarUna2018-10-25
Jacky avatarJacky2018-10-25
apnonce基本上是一次性的
Dorothy avatarDorothy2018-10-29
但是大神都能找到會產生重複性apnonce 的generator
Rosalind avatarRosalind2018-11-01
好文 推一個
Wallis avatarWallis2018-11-03
推一下
Hamiltion avatarHamiltion2018-11-05
y長知識 推
Valerie avatarValerie2018-11-06
這是好文章
Skylar Davis avatarSkylar Davis2018-11-08
Jessica avatarJessica2018-11-10
Annie avatarAnnie2018-11-14
大推啊
Vanessa avatarVanessa2018-11-15
推,跟只會噓的人比好太多了
Hedwig avatarHedwig2018-11-18
Audriana avatarAudriana2018-11-21
Leila avatarLeila2018-11-21
有趣優文 可以M惹
John avatarJohn2018-11-22
推易懂
Selena avatarSelena2018-11-27
簡單易懂 推一個!
Harry avatarHarry2018-12-01
推一個
Callum avatarCallum2018-12-04
Xanthe avatarXanthe2018-12-06
推 解釋方式相當精闢
Franklin avatarFranklin2018-12-10
推推
Valerie avatarValerie2018-12-12
Odelette avatarOdelette2018-12-16
好文
Susan avatarSusan2018-12-17
當年如果你是我計算機概論老師,該有多好...
Mary avatarMary2018-12-18
專業易懂 推一個!
Aaliyah avatarAaliyah2018-12-21
Kristin avatarKristin2018-12-24
這麼說來舊bootrom的iPhone 3GS以下機型之所以能自由
升降級就是因為CPU不會去做認證機制的緣故吧!?
Margaret avatarMargaret2018-12-29
淺顯易懂 推
Delia avatarDelia2019-01-02
Tracy avatarTracy2019-01-02
長知識了
Faithe avatarFaithe2019-01-07
Elma avatarElma2019-01-09
給推
Faithe avatarFaithe2019-01-11
強!
Elma avatarElma2019-01-16
Frederic avatarFrederic2019-01-19
優文
Audriana avatarAudriana2019-01-20
Zora avatarZora2019-01-21
讚讚
Tracy avatarTracy2019-01-23
推用心
Caitlin avatarCaitlin2019-01-25
推!長知識
Oliver avatarOliver2019-01-26
只能推了
Adele avatarAdele2019-01-27
好生動XD
Puput avatarPuput2019-01-30
推,易懂
Rebecca avatarRebecca2019-02-02
長知識!
Tristan Cohan avatarTristan Cohan2019-02-02
Bethany avatarBethany2019-02-06
清楚 推!
Xanthe avatarXanthe2019-02-08
還是看不懂
Dora avatarDora2019-02-10
Megan avatarMegan2019-02-14
推 這解釋我喜歡
Agatha avatarAgatha2019-02-14
專業 博士班的比喻
Iris avatarIris2019-02-19
Barb Cronin avatarBarb Cronin2019-02-23
謝分享
Zanna avatarZanna2019-02-28
Adele avatarAdele2019-03-03
推專業講解
Charlie avatarCharlie2019-03-05
深入淺出的介紹方式
專業好文 推
Franklin avatarFranklin2019-03-10
推好文
Elma avatarElma2019-03-11
結論:嘻嘻
Carol avatarCarol2019-03-15
高手
Thomas avatarThomas2019-03-20
推簡單易懂
Yuri avatarYuri2019-03-21
好文推
David avatarDavid2019-03-25
專業 推
Candice avatarCandice2019-03-28
厲害
Regina avatarRegina2019-04-02
大推優文!
Lily avatarLily2019-04-03
專業 推
Andrew avatarAndrew2019-04-05
Edith avatarEdith2019-04-09
Push
Charlie avatarCharlie2019-04-09
阻止系統版本破碎化,對開發者而言,優化變得比較單純
Damian avatarDamian2019-04-11
Djekidbdhaudbfjchfnkzudnnxkcjrnxjsc
Yedda avatarYedda2019-04-14
好生動XD
Mary avatarMary2019-04-17
神串留名
Irma avatarIrma2019-04-20
那些常酸人的怎麼不見了?是不是看不懂就不敢亂酸了啊?
Skylar Davis avatarSkylar Davis2019-04-22
推 專業
Regina avatarRegina2019-04-26
Ios12準備打破舊設備變慢的思維 蘋果知道轉為經營平台
服務 提升APP開發的效率 當所有人都願意升上Ios12 將
大幅減少系統破碎化的問題 間接保證app的品質
Ivy avatarIvy2019-04-27
精彩給推
Joe avatarJoe2019-04-29
深入淺出,簡單易懂!
Dora avatarDora2019-05-02
推 未看先猜會被友站轉載 媽我在這~
Caitlin avatarCaitlin2019-05-06
Mary avatarMary2019-05-07
推一個
Oscar avatarOscar2019-05-11
好猛喔!淺顯易懂
Hedda avatarHedda2019-05-13
Faithe avatarFaithe2019-05-16
推!
Noah avatarNoah2019-05-16
問下,所以iOS 更新需要跟apple伺服器認證,也就是只
能在連網環境下更新?
Anthony avatarAnthony2019-05-17
數位簽章本來就是用來確保資料的完整性跟不可否認性
Dora avatarDora2019-05-19
沒細節
Lydia avatarLydia2019-05-24
推~