iOS開發(fā)之證書和簽名機制(二)

Code Signing 探析

OS X上代碼簽名技術(shù)和響應的API是在Mac OS X Leopard 10.5上首次出現(xiàn)的(2007)石洗,iPhone是在眾多游戲主機之后第一個大規(guī)模出售并且從頭就開始使用代碼簽名的計算平臺羞延。只有在越獄之后,iOS才能運行沒有簽名的代碼梢睛,越獄使應用可以繞過代碼簽名和沙盒安全機制的全部限制肥印。

證書和密鑰

在開發(fā)時,開發(fā)使用的機器上應該有一個證書绝葡,一個公鑰深碱,一個私鑰,這是代碼簽名機制的核心藏畅。代碼簽名依賴于采用X.509標準的公開密鑰加密莹痢。

證書的組成:一個公鑰加上許多附加信息(被Certificate Authority)進行簽名認證過。認證的簽名有固定的有效期墓赴。

一般有兩個證書1竞膳、iPhone Developer 2、iPhone Distribution 前者用于使應用可以在你的測試設(shè)備上運行(Apple Developer Certificate(Submission))诫硕,后者是在提交到App Store時用到(Apple Developer Certificate(Development))坦辟。

簽名過程本身是由命令行工具codesign完成的Xcode中可進行以下設(shè)置。

一個已簽名應用的組成

一個已簽名的可執(zhí)行文件的簽名包含在Mach-O二進制文件格式中章办,例如腳本這樣的非Mach-O可執(zhí)行文件锉走,就存放在擴展屬性中。

程序包和其他資源文件

為了給所有文件設(shè)置簽名藕届,簽名的過程會在程序包中新建一個叫做_CodeSignatue/CodeResources的文件挪蹭,存儲了被簽名的程序包中所有文件的簽名。

在新版本的代碼簽名規(guī)定中休偶,一個程序包中的可執(zhí)行程序包梁厉,例如擴展 (extension),是一個獨立的需要設(shè)置簽名的個體,在檢查簽名是否完整時應當被單獨對待词顾。

授權(quán)機制(Entitlements)和配置文件(Provisioning)

授權(quán)機制決定了哪些系統(tǒng)資源在什么情況下允許被一個應用使用八秃。授權(quán)機制也是按照plist文件格式列出。Xcode會自動生成一個eletitlements文件肉盹,在需要的時候往里面添加條目昔驱。也會提交給codesign作為應用所需要擁有哪些授權(quán)的參考。在構(gòu)建應用時需要使用的授權(quán)文件可以在 Xcode build setting 中的 code signing entitlements 中設(shè)置上忍。

授權(quán)信息會被包含在應用的簽名信息中骤肛。授權(quán)信息列表會以Example.app.xcent這樣的名字的文件形式包含在應用包中

配置文件

配置文件(provisioning profiles):在整個代碼簽名和沙盒機制中有一個組成部分將簽名,授權(quán)和沙盒聯(lián)系了起來

一個配置文件中存放了系統(tǒng)用于判斷你的應用是否允許運行的信息

一個配置文件是一組信息的結(jié)合窍蓝,決定了某一個應用是否能夠在某一個特定的設(shè)備上運行腋颠。

配置文件可以用于讓應用在你的開發(fā)設(shè)備上可以被運行和調(diào)試,也可以用于內(nèi)部測試 (ad-hoc) 或者企業(yè)級應用的發(fā)布

~/Library/MobileDevice/Provisioning Profiles它抱。Xcode 將從開發(fā)者中心下載的全部配置文件都放在了這里

配置文件不是plist文件,是一個根據(jù)密碼訊息語法(Cryptographic Message Syntax)加密的文件,CMS.配置文件可以被設(shè)置簽名朴艰,但只在developer portal設(shè)置好的观蓄,iOS 用于判斷你的應用是否能運行在某個設(shè)備上真正需要的配置信息,每個配置文件都有自己的UUID祠墅,

DeveloperCertificates這項侮穿,這一項是一個列表,包含了可以為使用這個配置文件的應用簽名的所有證書毁嗦。


Certificate

證書是用來給應用程序簽名的亲茅,只有經(jīng)過簽名的應用程序才能保證來源可信任的,并且代碼是完整且未修改的狗准。

私鑰簽名克锣,公鑰驗證。

App ID

App ID用于標識一個或一組App腔长,應與Bundle ID一致或匹配的袭祟。

有兩種:1)Explicit App ID:唯一的ID,用于唯一標識一個應用程序

2)WildCard App ID:通配符ID捞附,用于標識一組應用程序巾乳,比如*可以標識所有應用程序

每創(chuàng)建一個App ID,都可以選擇該App ID所使用的APP Services鸟召,都有不同的額外要求胆绊。

Device

代表iOS設(shè)備,包含了該賬戶所有可用于測試和開發(fā)的設(shè)備欧募。使用UUID來唯一標識压状。

數(shù)量設(shè)備限制是100臺。

Provisioning Profile

包含了證書跟继、APP ID何缓、Device肢础。

也分為Development(一年)和Distribution(一年)兩種{In House,Ad Hoc碌廓, App Store}

設(shè)備限制不一樣

運行過程

開發(fā)/發(fā)布流程

申請證書

加入設(shè)備

生成Provisioning Profile(一般使用iOS Team Provisioning Profiel)

設(shè)置Xcode Code Sign Identifier

發(fā)布流程

創(chuàng)建發(fā)布證書

創(chuàng)建APP ID

創(chuàng)建Provisioning Profile

設(shè)置Bundle ID和APP ID一致

設(shè)置Xcode code signing Identifier传轰,選擇合適的證書和Profile進行簽名,打包

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谷婆,一起剝皮案震驚了整個濱河市慨蛙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纪挎,老刑警劉巖期贫,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異异袄,居然都是意外死亡通砍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門烤蜕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來封孙,“玉大人,你說我怎么就攤上這事讽营』⒓桑” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵橱鹏,是天一觀的道長膜蠢。 經(jīng)常有香客問我,道長莉兰,這世上最難降的妖魔是什么挑围? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮糖荒,結(jié)果婚禮上贪惹,老公的妹妹穿的比我還像新娘。我一直安慰自己寂嘉,他們只是感情好奏瞬,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泉孩,像睡著了一般硼端。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寓搬,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天珍昨,我揣著相機與錄音,去河邊找鬼。 笑死镣典,一個胖子當著我的面吹牛兔毙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播兄春,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼澎剥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赶舆?” 一聲冷哼從身側(cè)響起哑姚,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芜茵,沒想到半個月后叙量,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡九串,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年绞佩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猪钮。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡品山,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躬贡,到底是詐尸還是另有隱情谆奥,我是刑警寧澤眼坏,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布拂玻,位于F島的核電站,受9級特大地震影響宰译,放射性物質(zhì)發(fā)生泄漏檐蚜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一沿侈、第九天 我趴在偏房一處隱蔽的房頂上張望闯第。 院中可真熱鬧,春花似錦缀拭、人聲如沸咳短。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咙好。三九已至,卻和暖如春褐荷,著一層夾襖步出監(jiān)牢的瞬間勾效,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留层宫,地道東北人杨伙。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像萌腿,于是被迫代替她去往敵國和親限匣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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