蘋果在剛剛舉行的全球開發(fā)者大會(huì)(WWDC 2019)中發(fā)布了新的「CryptoKit」框架。通過(guò)該框架,軟件開發(fā)者可以在蘋果即將發(fā)布的新系統(tǒng) iOS 13,m
蘋果在剛剛舉行的全球開發(fā)者大會(huì)(WWDC 2019)中發(fā)布了新的「CryptoKit」框架。通過(guò)該框架,軟件開發(fā)者可以在蘋果即將發(fā)布的新系統(tǒng) iOS 13,macOS 10.15 和 tvOS 13 中,安全和高效的執(zhí)行特定的加密算法。
這個(gè)消息讓幣圈的朋友興奮了一下子。
眾所周知,加密算法是區(qū)塊鏈技術(shù)得以實(shí)現(xiàn)的重要根基,所以這件事在加密貨幣社區(qū)也引起了不小的反響,甚至有夸張的言論說(shuō)蘋果可能會(huì)開發(fā)加密貨幣錢包。但事實(shí)上,CryptoKit 和密碼學(xué)有關(guān),意味著未來(lái)可能會(huì)支持越來(lái)越多的算法和提供更多的硬件加密方案,但這與密碼貨幣關(guān)系不大。
被幣安收購(gòu)的Trust錢包的創(chuàng)始人 Viktor Radchenko 在蘋果發(fā)布 CryptoKit 后評(píng)論:
離把你的手機(jī)變成一個(gè)硬件錢包僅有幾步之遙了。
但另一名區(qū)塊鏈開發(fā)者Ronald Mannak卻潑了一盆冷水:
CryptoKit 是一個(gè)「密碼學(xué)」的框架,但并不是「加密貨幣」的框架。 CryptoKit 的發(fā)布并不能暗示蘋果正在改變對(duì)加密貨幣的態(tài)度。
蘋果之前已經(jīng)有了一個(gè)密碼學(xué)框架「CommonCrypto」,但 CryptoKit 更強(qiáng)大一些。CryptoKit 是一個(gè)對(duì) Swift 編程語(yǔ)言更友好的框架,并且包含了更多的哈希算法,比如說(shuō)眾望所歸的 SHA256。
CryptoKit 的功能并不一定需要「Secure Enclave」協(xié)處理器(目前在售的 iOS 設(shè)備和部分 Mac 支持)。
與 CommonCrypto 框架類似,如果設(shè)備未集成 Secure Enclave,CryptoKit 就會(huì)回退并使用蘋果設(shè)備內(nèi)置的「鑰匙串 | Keychain」功能處理加密算法作為替代。
從目前的開發(fā)文檔中可以看到 Secure Enclave 僅支持 secp256r1 (也叫 prime256) 這一種橢圓曲線,并不是比特幣、以太坊和其他區(qū)塊鏈常用的 secp256k1。除非以后硬件升級(jí),否則你的 iPhone 是不可能變成一臺(tái)硬件錢包的。
再者,就算 CryptoKit 支持區(qū)塊鏈常用的 secp256k1,那通過(guò) CryptoKit 生成的私鑰也是沒(méi)辦法被 Secure Enclave 的外部所讀取的。你可以(通過(guò) CryptoKit)使用這個(gè)私鑰生成公鑰或者執(zhí)行消息簽名,但你永遠(yuǎn)無(wú)法獲得私鑰本身。所以也就沒(méi)辦法備份這個(gè)私鑰,這個(gè)限制可能會(huì)非常不方便錢包的使用場(chǎng)景。
對(duì) Swift 開發(fā)者而言 CryptoKit 是一個(gè)很好的新功能,但這并不是加密貨幣社區(qū)所想要的那種翻天覆地的變化。
在 CryptoKit 中,蘋果加入了一些常用的加密算法。在開發(fā)文檔中,蘋果是這樣介紹的:
使用 CryptoKit 執(zhí)行常用的加密算法:
計(jì)算和對(duì)比安全摘要
使用「非對(duì)稱」加密算法創(chuàng)建和對(duì)比數(shù)字簽名,或執(zhí)行交換公鑰的操作
除了可以在內(nèi)存中儲(chǔ)存密鑰,也可以在「Secure Enclave」中儲(chǔ)存并管理私鑰
創(chuàng)建「對(duì)稱」密鑰,并執(zhí)行消息的驗(yàn)證或加密等功能
相比底層接口,更推薦使用 CryptoKit 框架。CryptoKit 可以替開發(fā)者管理指針,自動(dòng)處理那些可以讓 App 更安全的任務(wù),比如在內(nèi)存釋放期間覆蓋敏感數(shù)據(jù)
再仔細(xì)看文檔中所支持的加密算法,大多是由美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所 (NIST) 發(fā)布的通用和標(biāo)準(zhǔn)的加密算法。
包含:
AES-GCM 對(duì)稱加密算法
ChaCha20-Poly1305 對(duì)稱加密算法
HMAC 消息認(rèn)證算法
第二代安全哈希算法 SHA-2 系列,包含 SHA-512,SHA-384,SHA-256
非對(duì)稱加密算法(又稱公鑰加密算法),包含 Curve25519,P-521,P-384,P-256 這四種橢圓曲線
而且開發(fā)者可以調(diào)用 Secure Enclave 自帶的 P-256 算法進(jìn)行硬件加解密。
Secure Enclave(安全區(qū)域)是 Apple A7(初次集成在 iPhone 5S 中,用以保證「觸控 ID」的安全性)或更高版本 A 系列處理器中集成的協(xié)處理器,它為數(shù)據(jù)保護(hù)密鑰管理提供所有加密操作,即使在內(nèi)核遭到入侵的情況下,也可維護(hù)數(shù)據(jù)保護(hù)的完整性。而且在 Secure Enclave 內(nèi)部生成的密鑰使用真正的硬件隨機(jī)數(shù)生成器。
雖然比特幣使用了許多和密碼學(xué)相關(guān)的算法,但最重要的至少會(huì)包含這兩個(gè):SHA-256,secp256k1。
SHA-256 是第二代安全哈希算法,比特幣也在不止一處使用了該算法,比如在計(jì)算工作量證明的時(shí)候 (PoW)
secp256k1 是非對(duì)稱加密算法中的一種橢圓曲線,比特幣的私鑰可以通過(guò)該算法生成對(duì)應(yīng)的公鑰
非常可惜的是,Secure Enclave 支持的 P-256 的橢圓曲線是 secp256r1,而不是比特幣采用的 secp256k1。這也就意味著無(wú)法將現(xiàn)有的蘋果設(shè)備變成一臺(tái)硬件錢包。就算還是可以在蘋果設(shè)備上開發(fā)軟件錢包,但也是用不到這個(gè) CryptoKit 框架的,需要開發(fā)者自己實(shí)現(xiàn)或者使用第三方代碼庫(kù)。
CryptoKit 還處于 Beta 階段,而且這也是蘋果發(fā)布的第一個(gè)版本而已,所以這僅僅只是一個(gè)開始。
蘋果專門獨(dú)立出一個(gè)框架用以處理密碼學(xué)相關(guān)的算法,是一個(gè)值得肯定并會(huì)影響深遠(yuǎn)的決策,未來(lái)可能會(huì)支持越來(lái)越多的算法和提供更多的硬件加密方案。但以現(xiàn)階段的細(xì)節(jié)來(lái)看,對(duì)區(qū)塊鏈技術(shù)的普及還是比較有限的。
有意思的是,CryptoKit 和 CryptoKitties(迷戀貓,一個(gè)曾經(jīng)最熱門的基于以太坊的收集類游戲)相比只多了最后的 ties 這四個(gè)字母,也許這也是為什么 CryptoKit 和幣圈有關(guān)系的理由。(撰文:潘致雄)
關(guān)鍵詞: 蘋果 CryptoKit框架 硬件加密