iOS逆向-10:蘋果雙層簽名

代碼簽名

代碼簽名是對可執(zhí)行文件或腳本進(jìn)行數(shù)字簽名.用來確認(rèn)軟件在簽名后未被修改或損壞的措施颂斜。和數(shù)字簽名原理一樣,只不過簽名的數(shù)據(jù)是代碼而已
iOS的系統(tǒng)中內(nèi)置一個公鑰,私鑰由蘋果后臺保存,我們傳APP到AppStore時,蘋果后臺用私鑰對APP數(shù)據(jù)進(jìn)行簽名,iOS系統(tǒng)下載這個APP后,用公鑰驗證這個簽名,若簽名正確,這個APP肯定是由蘋果后臺認(rèn)證的,并且沒有被修改過,也就達(dá)到了蘋果的需求:保證安裝的每一個APP都是經(jīng)過蘋果官方允許的.
簡單來說击喂,上架的app蘋果服務(wù)器用私鑰對app進(jìn)行簽名,安裝到手機(jī)上用公鑰驗證簽名
而開發(fā)階段乐埠,則需要用到雙層簽名

雙層簽名

請求文件csr。
首先 MAC有公鑰M和私鑰M(p12)
iphone有個公鑰A 蘋果服務(wù)器私鑰A
通過csr文件申請證書津滞,將公鑰M傳遞給蘋果服務(wù)器豆混,服務(wù)器通過私鑰A簽名 生成證書(公鑰M與hash值),下載這個證書就會將公鑰m和私鑰m進(jìn)行綁定


image.png

手機(jī)的公鑰A可以解析這個證書,得到公鑰M

xcode對通過鑰匙串訪問使用私鑰M對app的macho進(jìn)行簽名 嗜逻,
安裝app的時候iphone的私鑰A驗證證書涩僻,得到公鑰M。公鑰M可以解析這個APP簽名, 通過栈顷,說明安裝行為是官方允許的逆日,也就是這個app是合法的 ,然后安裝到手機(jī)上萄凤。
當(dāng)然免費(fèi)證書有個數(shù)和時間限制室抽,而開發(fā)人員大多使用開發(fā)者賬號,所以蘋果為了做權(quán)限限制就使用了描述文件
蘋果簽名后返回的證書實(shí)際上存到了描述文件中靡努。描述文件用來做權(quán)限限制

描述文件:設(shè)備IDs, APPID坪圾,權(quán)限文件(Entitlements開關(guān))晓折,證書。更改之后無法驗證通過

image.png

描述文件內(nèi)容

image.png

證書:公鑰由官方進(jìn)行簽名
p12:本地私鑰兽泄,可以給其他電腦用

資源文件 簽名 保存在下面

image.png

主程序的應(yīng)用簽名信息在macho的code signature中


image.png

流程圖:

image.png

總結(jié):

  1. 在Mac系統(tǒng)中生成非對稱加密算法的一對公鑰\私鑰(你的Xcode幫你代辦了).這里稱為公鑰M 私鑰M . M = Mac

  2. 蘋果自己有固定的一對公私鑰,跟之前App Store原理一樣,私鑰在蘋果后臺,公鑰在每個iOS系統(tǒng)中.這里稱為公鑰A , 私鑰A. A=Apple

  3. 把公鑰M 以及一些你開發(fā)者的信息,傳到蘋果后臺(這個就是CSR文件)漓概,用蘋果后臺里的私鑰 A 去簽名公鑰M。得到一份數(shù)據(jù)包含了公鑰M 以及其簽名病梢,把這份數(shù)據(jù)稱為證書胃珍。

  4. 在開發(fā)時,編譯完一個 APP 后飘千,用本地的私鑰 M(今后你導(dǎo)出的P12) 對這個 APP 進(jìn)行簽名堂鲜,同時把第三步得到的證書一起打包進(jìn) APP 里栈雳,安裝到手機(jī)上护奈。

  5. 在安裝時,iOS 系統(tǒng)取得證書哥纫,通過系統(tǒng)內(nèi)置的公鑰 A霉旗,去驗證證書的數(shù)字簽名是否正確。

  6. 驗證證書后確保了鑰 M 是蘋果認(rèn)證過的蛀骇,再用公鑰 M 去驗證 APP 的簽名厌秒,這里就間接驗證了這個 APP 安裝行為是否經(jīng)過蘋果官方允許。(這里只驗證安裝行為擅憔,不驗證APP 是否被改動鸵闪,因為開發(fā)階段 APP 內(nèi)容總是不斷變化的,蘋果不需要管暑诸。)

  7. 蘋果為了解決應(yīng)用濫用的問題,所以蘋果又加了兩個限制.
    第一限制在蘋果后臺注冊過的設(shè)備才可以安裝.
    第二限制簽名只能針對某一個具體的APP.
    并且蘋果還想控制App里面的iCloud/PUSH/后臺運(yùn)行/調(diào)試器附加這些權(quán)限,所以蘋果把這些權(quán)限開關(guān)統(tǒng)一稱為Entitlements(授權(quán)文件).并將這個文件放在了一個叫做Provisioning Profile(描述文件)文件中.
    描述文件是在AppleDevelop網(wǎng)站創(chuàng)建的(在Xcode中填上AppleID它會代辦創(chuàng)建),Xcode運(yùn)行時會打包進(jìn)入APP內(nèi).?所以我們使用CSR申請證書時,我們還要申請一個東西!! 就是描述文件!
    在開發(fā)時,編譯完一個 APP 后,用本地的私鑰M對這個APP進(jìn)行簽名,同時把從蘋果服務(wù)器得到的 Provisioning Profile 文件打包進(jìn)APP里,文件名為embedded.mobileprovision,把 APP 安裝到手機(jī)上.最后系統(tǒng)進(jìn)行驗證蚌讼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市个榕,隨后出現(xiàn)的幾起案子篡石,更是在濱河造成了極大的恐慌,老刑警劉巖西采,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凰萨,死亡現(xiàn)場離奇詭異,居然都是意外死亡械馆,警方通過查閱死者的電腦和手機(jī)胖眷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霹崎,“玉大人珊搀,你說我怎么就攤上這事》禄” “怎么了食棕?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵朗和,是天一觀的道長。 經(jīng)常有香客問我簿晓,道長眶拉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任憔儿,我火速辦了婚禮忆植,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谒臼。我一直安慰自己朝刊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布蜈缤。 她就那樣靜靜地躺著拾氓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪底哥。 梳的紋絲不亂的頭發(fā)上咙鞍,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機(jī)與錄音趾徽,去河邊找鬼续滋。 笑死,一個胖子當(dāng)著我的面吹牛孵奶,可吹牛的內(nèi)容都是我干的疲酌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼了袁,長吁一口氣:“原來是場噩夢啊……” “哼朗恳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起早像,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤僻肖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卢鹦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臀脏,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年冀自,在試婚紗的時候發(fā)現(xiàn)自己被綠了揉稚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡熬粗,死狀恐怖搀玖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驻呐,我是刑警寧澤灌诅,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布芳来,位于F島的核電站,受9級特大地震影響猜拾,放射性物質(zhì)發(fā)生泄漏即舌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一挎袜、第九天 我趴在偏房一處隱蔽的房頂上張望顽聂。 院中可真熱鬧,春花似錦盯仪、人聲如沸紊搪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耀石。三九已至,卻和暖如春蚪燕,著一層夾襖步出監(jiān)牢的瞬間娶牌,已是汗流浹背奔浅。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工馆纳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汹桦。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓鲁驶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舞骆。 傳聞我的和親對象是個殘疾皇子钥弯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容