使用證書(shū)和加密key 來(lái)建立信任.
概述
證書(shū)钉鸯,鑰匙吧史,可信任服務(wù)是一個(gè)函數(shù)和數(shù)據(jù)結(jié)構(gòu)集合,用于執(zhí)行安全的和經(jīng)過(guò)身份驗(yàn)證的數(shù)據(jù)事務(wù)唠雕。
證書(shū)(Certificates): 證書(shū)是一組數(shù)據(jù), 并且不會(huì)被干擾的數(shù)據(jù). 可以通過(guò)使用一個(gè)證書(shū)去分發(fā)一個(gè)公鑰. 接受方能確認(rèn)其來(lái)源.
身份對(duì)象(identities):?您還可以將證書(shū)和其對(duì)應(yīng)的私鑰打包在一個(gè)身份對(duì)象中贸营,并其進(jìn)行保密。
可信任服務(wù)(trust services): 當(dāng)你接受到一個(gè)公鑰的時(shí)候, 就會(huì)接受到一個(gè)是否可以信任的疑問(wèn).
策略(Policies): 決定是否被信任的條件.
加密密鑰(Cryptographic keys:)?有了信任的密鑰后岩睁,就可以開(kāi)始進(jìn)行加密操作钞脂,例如加密或數(shù)據(jù)簽名和驗(yàn)證。這些操作反過(guò)來(lái)通常用于更大的目的捕儒,比如驗(yàn)證用戶(hù)冰啃、安全地傳輸數(shù)據(jù),或者驗(yàn)證數(shù)據(jù)塊在使用簽名密封后沒(méi)有被修改。
詳細(xì):
證書(shū):
數(shù)字證書(shū)是用于安全地分發(fā)公共/私有密鑰對(duì)的公共部分的數(shù)據(jù)集合阎毅。圖1顯示了一個(gè)典型的X.509證書(shū)的部分焚刚,它使這成為可能。除了結(jié)構(gòu)信息外净薛,證書(shū)還包含它的發(fā)行者及其所有者(或主體)的名稱(chēng)和聯(lián)系信息汪榔,以及所有者的公鑰。日期范圍指示證書(shū)何時(shí)有效肃拜。證書(shū)擴(kuò)展提供了附加的信息和條件痴腌,比如公鑰的可接受用途。在組裝證書(shū)時(shí)燃领,為了保證其完整性士聪,發(fā)布者使用發(fā)布者自己的身份(私鑰和證書(shū))對(duì)其進(jìn)行數(shù)字簽名。
要評(píng)估證書(shū)猛蔽,首先要使用指定的算法和發(fā)行者的公鑰(從發(fā)行者的公鑰中獲得)驗(yàn)證其簽名剥悟。有效的簽名確認(rèn)正在評(píng)估的證書(shū),即leaf證書(shū)曼库,沒(méi)有被修改区岗。但是為了信任這個(gè)結(jié)果,您還必須信任發(fā)行者的證書(shū)毁枯。您使用一個(gè)類(lèi)似的過(guò)程來(lái)測(cè)試這個(gè)證書(shū)慈缔,以及一個(gè)確保該證書(shū)的證書(shū),以及下一個(gè)證書(shū)种玛,等等藐鹤,并將其鏈接回信任的根權(quán)限,該根權(quán)限的證書(shū)(稱(chēng)為錨點(diǎn))是您隱式信任的赂韵。然后娱节,leaf證書(shū)中包含的公鑰被認(rèn)為是可信的。您可以放心祭示,證書(shū)所有者控制相應(yīng)的私鑰肄满,它沒(méi)有被更改。這允許您安全地使用公鑰與證書(shū)所有者進(jìn)行非對(duì)稱(chēng)加密质涛。
有關(guān)證書(shū)如何工作的詳細(xì)信息悄窃,請(qǐng)閱讀密碼服務(wù)指南中的數(shù)字證書(shū)。
密鑰:
生成蹂窖、存儲(chǔ)和使用加密密鑰轧抗。
加密密鑰是字節(jié)串,在專(zhuān)門(mén)的數(shù)學(xué)操作中可以與其他數(shù)據(jù)結(jié)合瞬测,以增強(qiáng)安全性横媚。在最低級(jí)別纠炮,這通常意味著參與加密和解密或數(shù)字簽名和驗(yàn)證。您可以直接使用這些基本操作灯蝴,例如在通過(guò)不安全通道發(fā)送數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行加密恢口。您還可以隱式地使用它們,比如在證書(shū)上驗(yàn)證數(shù)字簽名是信任評(píng)估的副產(chǎn)品穷躁。
鍵根據(jù)它們支持的操作而變化耕肩。例如,使用公鑰和私鑰對(duì)執(zhí)行非對(duì)稱(chēng)加密问潭,而使用對(duì)稱(chēng)密鑰進(jìn)行對(duì)稱(chēng)加密猿诸。類(lèi)似地,一個(gè)密鑰可能適用于一個(gè)1024位的RSA算法狡忙,而另一個(gè)密鑰可能適合于一個(gè)256位的橢圓曲線算法梳虽。當(dāng)您需要處理加密密鑰時(shí),請(qǐng)使用本節(jié)中的函數(shù)灾茁。
身份:
將證書(shū)和密碼密鑰合并到標(biāo)識(shí)中窜觉。
標(biāo)識(shí)由與包含和保證相應(yīng)公鑰的證書(shū)打包的私鑰組成。您可以使用證書(shū)北专、密鑰和信任服務(wù)API從私鑰及其證書(shū)創(chuàng)建標(biāo)識(shí)禀挫,或者從密碼保護(hù)的PKCS #12文件導(dǎo)入標(biāo)識(shí)。然后使用API從標(biāo)識(shí)中提取密鑰和證書(shū)拓颓。您還可以使用keychain服務(wù)API將標(biāo)識(shí)存儲(chǔ)到密鑰鏈中语婴,或者從密鑰鏈中檢索標(biāo)識(shí),就像證書(shū)或密鑰本身一樣录粱。
策略:
獲取建立信任的策略。
對(duì)于被認(rèn)為是完整和有效的證書(shū)(因?yàn)楹灻湜](méi)有被破壞到受信任的根證書(shū))画拾,您將根據(jù)一組稱(chēng)為信任策略的規(guī)則對(duì)其進(jìn)行評(píng)估啥繁。策略指示證書(shū)的特定字段或擴(kuò)展如何影響證書(shū)在特定用途上是否應(yīng)該受信任。例如青抛,策略可能聲明證書(shū)不能過(guò)期旗闽,或者必須標(biāo)記為對(duì)加密、代碼簽名或其他特定用途有效蜜另。
通常使用標(biāo)準(zhǔn)的預(yù)定義策略适室,如基本的X509策略或SSL策略。您還可以使用證書(shū)举瑰、密鑰和信任服務(wù)API創(chuàng)建自定義策略捣辆。
信任:
在使用證書(shū)之前,您要根據(jù)特定的目的評(píng)估它的可信賴(lài)性此迅。
如果您知道證書(shū)的發(fā)送方?jīng)]有對(duì)其進(jìn)行修改汽畴,那么您可以確信其嵌入的公鑰也能做到這一點(diǎn)旧巾。您還可以根據(jù)證書(shū)對(duì)何時(shí)以及出于何種目的使用公鑰進(jìn)行索賠。您可以安全地使用密鑰進(jìn)行加密和簽名和驗(yàn)證忍些,而無(wú)需事先在發(fā)送方和接收方之間進(jìn)行安排鲁猩。
iOS、MACOS 系統(tǒng)關(guān)于HTTPS 安全相關(guān)基本的概念就這些, 下一篇會(huì)寫(xiě)一下具體的API調(diào)用.