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