iOS App簽名的原理

最簡(jiǎn)單的實(shí)現(xiàn)

要實(shí)現(xiàn)這個(gè)需求很簡(jiǎn)單,最直接的方式,蘋果官方生成一對(duì)公私鑰媒熊,私鑰由蘋果后臺(tái)保管,公鑰內(nèi)置到iOS設(shè)備里坟比,在我們將App上傳到App Store上時(shí)芦鳍,蘋果后臺(tái)使用私鑰對(duì)App進(jìn)行簽名,iOS設(shè)備下載這個(gè)應(yīng)用后葛账,用公鑰驗(yàn)證這個(gè)簽名柠衅,若簽名正確,則說明這個(gè)App是經(jīng)過蘋果后臺(tái)認(rèn)證的籍琳,并且沒有被修改過菲宴,這樣也就達(dá)到了蘋果的目的:保證iOS設(shè)備安裝的每一個(gè)APP都是經(jīng)過蘋果官方允許的贷祈。

image.png

如果我們的iOS設(shè)備安裝App只通過App Store這一種方式的話,那么問題到這里就已經(jīng)解決了喝峦,但是實(shí)際上除了從App Store上下載應(yīng)用势誊,還可以以一下三種方式安裝一個(gè)APP:

1.作為開發(fā)者,開發(fā)App時(shí)直接進(jìn)行真機(jī)調(diào)試谣蠢。
2.In-House 企業(yè)內(nèi)部分發(fā)粟耻,可以直接安裝企業(yè)證書簽名后的App。
3.AD-Hoc 相當(dāng)于是企業(yè)分發(fā)的限制版眉踱,限制安裝設(shè)備數(shù)量挤忙。

image.png

1.在你的Mac上生成一對(duì)公鑰和私鑰,稱為公鑰L和私鑰L谈喳。

2.蘋果自己有一對(duì)固定的公鑰和私鑰册烈,私鑰在蘋果后臺(tái),公鑰內(nèi)置在iOS設(shè)備中婿禽,分別稱為私鑰A和公鑰A茄厘。

3.把公鑰L傳到蘋果后天,用蘋果后天的私鑰A去簽名公鑰L谈宛,得到一份數(shù)據(jù)包括公鑰L和簽名,這份數(shù)據(jù)稱為證書胎署。

4.在蘋果后臺(tái)申請(qǐng)好AppID吆录,配置好設(shè)備ID列表,App權(quán)限開關(guān)琼牧,再加上第三步的證書恢筝,組成的數(shù)據(jù)用蘋果后天的私鑰A簽名,把數(shù)據(jù)和簽名一起組成一個(gè)Provisioning Profile文件巨坊,下載到本地Mac撬槽。

5.在開發(fā)時(shí),編譯完一個(gè)App后趾撵,用本地的私鑰L對(duì)這個(gè)App進(jìn)行簽名侄柔,同時(shí)把第四步生成的Provisionning Profile一起打包進(jìn)App里,文件名為embeded.mobileprovision占调,把App安裝到手機(jī)暂题。

6.在安裝時(shí),就可以使用iOS設(shè)備里內(nèi)置的公鑰A來驗(yàn)證Provisioning Profile的數(shù)字簽名是否正確究珊。

7.如果數(shù)字簽名沒有問題薪者,那么就能確保設(shè)備ID,AppID剿涮,entitlements言津,和App都是經(jīng)過蘋果認(rèn)證的攻人,可以安裝到iOS設(shè)備上。

上面的步驟對(duì)應(yīng)我們平時(shí)具體操作和概念是這樣的:

1.第一步對(duì)應(yīng)的是從keychain里“從這證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書”悬槽,這樣就在本地生成了一對(duì)公私鑰怀吻,保存的額CertificateSigningRequest就是公鑰,公鑰保存在本地電腦里陷谱。

2.第二步蘋果處理烙博,不用管。

3.第三步把CertificateSigningRequest上傳到蘋果后天烟逊,生成證書渣窜,并下載到本地。

4.第四步是在蘋果網(wǎng)站操作的宪躯,配置AppID乔宿,設(shè)備ID,權(quán)限等访雪,生成Provisioning Profile文件详瑞,并下載Provisioning Profile文件到本地。

5.xcode通過第三步下載下來的證書臣缀,去找對(duì)應(yīng)的本地私鑰坝橡,用本地私鑰去簽名App,并把Provisioning Profile文件一起打包進(jìn)去精置,安裝進(jìn)iOS設(shè)備计寇。

總結(jié)一些概念:
1.證書:內(nèi)容是公鑰或者私鑰,由其它機(jī)構(gòu)對(duì)其簽名組成的數(shù)據(jù)包脂倦。

2.entitlements:包含了App權(quán)限開關(guān)列表番宁,AppID,設(shè)備ID等赖阻。

3.CertificateSigningRequest:本地公鑰蝶押。

4.p12:本地私鑰。

5.Provisioning Profile:包含證書火欧,entitlements等數(shù)據(jù)棋电,并由蘋果后臺(tái)私鑰簽名的數(shù)據(jù)包。

出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末布隔,一起剝皮案震驚了整個(gè)濱河市离陶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衅檀,老刑警劉巖招刨,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哀军,居然都是意外死亡沉眶,警方通過查閱死者的電腦和手機(jī)打却,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谎倔,“玉大人柳击,你說我怎么就攤上這事∑埃” “怎么了捌肴?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)藕咏。 經(jīng)常有香客問我状知,道長(zhǎng),這世上最難降的妖魔是什么孽查? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任饥悴,我火速辦了婚禮,結(jié)果婚禮上盲再,老公的妹妹穿的比我還像新娘西设。我一直安慰自己,他們只是感情好答朋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布贷揽。 她就那樣靜靜地躺著,像睡著了一般梦碗。 火紅的嫁衣襯著肌膚如雪擒滑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天叉弦,我揣著相機(jī)與錄音,去河邊找鬼藻糖。 笑死淹冰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的巨柒。 我是一名探鬼主播樱拴,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼洋满!你這毒婦竟也來了晶乔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤牺勾,失蹤者是張志新(化名)和其女友劉穎正罢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驻民,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翻具,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年履怯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裆泳。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叹洲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出工禾,到底是詐尸還是另有隱情运提,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布闻葵,位于F島的核電站民泵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笙隙。R本人自食惡果不足惜洪灯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竟痰。 院中可真熱鬧签钩,春花似錦、人聲如沸坏快。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莽鸿。三九已至昧旨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祥得,已是汗流浹背兔沃。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留级及,地道東北人乒疏。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像饮焦,于是被迫代替她去往敵國和親怕吴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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