2018年10月彭博(Bloomberg)商業周刊報導,伺服器代工業者美超微(Supermicro)的伺服器主機板上有一個不明晶片,並懷疑該晶片可洩漏機敏資訊。此報導引起軒然大波,即便事後多方業者否認澄清,但此報導已使業界對伺服器是否能在硬體面洩漏機敏資訊產生疑慮。
有資安專家提出,現行伺服器的主機板上多設有電路板控制晶片(Board Management Chip, BMC),該晶片的韌體更新並未強制要求安全認證程序,若更新為不明來源的新版韌體,確實可能成為資安漏洞。
就在Supermicro事件的前一年,Google在其Google Cloud Next 17'盛會期間發表自有防護晶片Titan(圖1),並將晶片配置於其GCP(Google Cloud Platform)雲端服務機房內的伺服器上,確保伺服器各項更新的安全性。到了2018年8月,Google進一步在其所推出的消費性硬體產品上,搭載以Titan晶片構成的安全防護金鑰。
例如在2018年10月發表的Google Pixel 3智慧型手機,內部即有一顆專為行動裝置設計的低功耗Titan晶片,稱為Titan M。該晶片負責把關手機安全程序,用來防護密碼與作業系統,防止使用者以手動技術方式換替、修改手機出廠前預裝的作業系統,即俗稱的惡意刷ROM。
蘋果(Apple)則是在2016年版的MacBook Pro中內放入自有的安全晶片T1,並於2017年進一步推出T2。T1、T2安全晶片為蘋果自有的規格標準,既非可信任運算群組(Trusted Computing Group, TCG)提出的可信任平台模組(Trusted Platform Module, TPM),也非全球平台(GlobalPlatform)提出的可信任執行環境(Trust Execute Environment, TEE)。不過,蘋果於2020年2月宣布加入FIDO(Fast IDentity Online)聯盟並取得董事席位,顯見其未來將逐漸靠攏FIDO。
由於Google的Titan晶片本身即為合乎FIDO標準的防護金鑰,因此在蘋果也開始向FIDO靠攏後,可以預期的是,FIDO將成為硬體防護的主流標準。
FIDO標準概述
由於電腦與手機解鎖方式逐漸多樣化,如指紋解鎖、臉部解鎖等,不同技術與組件業者的方案各有不同、各行其是,導致電腦與手機等系統業者在整合、替換上的困難。因此,多家科技業者在2013年籌組FIDO聯盟,並在2014年頒布辨識技術實現上的一致依循FIDO標準。
FIDO可再細分兩項子標準,即生物特徵辨識的UAF(Universal Authentication Framework)以及雙因認證的U2F(Universal Second Factor),前者即指紋、臉部等辨識實現標準,後者為「個人輸入密碼+手機簡訊隨機碼」的任兩種因子辨識認證,今日亦有人提出多因子認證(Multi-Factor Authentication, MFA),與U2F的概念相近。
FIDO標準只適合單機解鎖登入,正確的辨識與輸入可以登入電腦或給手機解鎖,以免被他人竊取電腦、手機內的機敏資訊,然而在電腦手機外大眾更重視另一個安全議題,即網站上的帳密被盜取,近年來愈來愈多網站發生大量個資外洩,商譽亦受損。
帳密失效的原因之一是密碼過短過簡單,駭客運用窮舉法(不斷變換字元組合與長度以嘗試登入,或稱撞庫,衝撞網站內的帳密資料庫,或稱暴力法)即可能成功登入,因此通常呼籲要使用長且複雜的密碼,但長且複雜的密碼卻不易記憶,以致經常有用戶發起忘記密碼的求助。
然而,既然可成功登入電腦或解鎖手機,其安全性已可信任,為何不將此一信任機制擴展延伸至網路上的網站?為此FIDO與網際網路標準組織W3C(World Wide Web Consortium)合作,提出FIDO2標準(圖2)與網頁認證(Web Authentication, WebAuthn)標準,如此只要成功登入電腦手機,也就可以平順登入已註冊的網站,省去一次次輸入對應密碼的麻煩,兼顧安全與便利。
數位加密冷錢包需求增
Google針對終端用戶銷售的Titan目前只在美英加法日等五國販售,而蘋果亦剛加入FIDO不久,其現有產品尚未遵循FIDO標準。但另有一股力量加速FIDO硬體產品問世,即數位加密貨幣的冷錢包(Cold Wallet),或稱硬體錢包(Hardware Wallet)。
數位加密貨幣泛指近年來以區塊鏈(Blockchain)技術實現分散式記帳與交易的比特幣、以太幣等,數位加密貨幣交易過程中需要驗證個人帳號的私密金鑰,私鑰一旦被竊即表示該帳號被竊,屬於該帳號內的數位加密貨幣也就被盜走。
因此需要保護個人私鑰以確保自己的數位資產,負責儲存私鑰者稱為錢包或電子錢包,若將私鑰存放在數位加密貨幣的交易網站上,或存放在電腦手機內,屬於時時可連線的地方,則稱為熱錢包(Hot Wallet),而存放在特殊儲存硬體內,並只有在交易操作時才連上網者,稱為冷錢包。
與時時可連線的熱錢包相比,冷錢包的安全性較高,但操作上也較不便。冷錢包通常以類似USB隨身碟或信用卡的形貌實現(圖3),需要交易時接上電腦或手機,完成交易後即拔出,私鑰僅於交易查核的短暫時間內連線。至於熱錢包只要電腦/手機/網站的帳密正確即可操作。
由於冷錢包需求的出現,同時冷錢包亦是一種防護金鑰,也開始有一些是依循FIDO標準方式實現,或已實現但運用韌體更新方式延伸支援FIDO標準。
目前冷錢包較知名的業者如捷克Trezor、法國Ledger、台灣庫幣科技(CoolbitX)的CoolWallet S、瑞士Shift Cryptosecurity AG的BitBox系列、中國ShapeShift的KeepKey、加拿大Coinkite的Coldcard等。
值得注意的是,不同業者、不同型款的冷錢包,所支援的數位加密貨幣的幣別也不同。例如某品牌的A款冷錢包支援4種幣別,B款可能支援6種幣別,或透過韌體更新以支援更多種幣別。
另外電腦/手機/網站也不一定支援所有廠牌的冷錢包,例如MetaMask至7.7.4版為止只支援Trezor與Ledger,MyEtherWallet(MEW)則在支援Trezor、Ledger外還支援Bitbox、KeepKey、Secalot、Ether Card、Bity、Finney等。
不過,冷錢包也非萬無一失,知名的Trezor、Ledger均已發生過漏洞。
開放原碼估帶來催化效果
硬體錢包的支援呼應對FIDO金鑰有推助效果,另一個推助來自於開放原碼專案,2018年SoloKeys公司發起一個名為Solo的開放專案(圖4),該專案將打造一個FIDO金鑰(FIDO2、U2F標準)的韌軟體、硬體等設計資訊均公開,希望大家以初始的公開資訊為基礎,持續擴展延伸開發,使該金鑰可支援更多軟體、網站、幣別、應用。畢竟以單一業者而言,完全倚仗自有研發團隊去支援各種開展中的新應用必定力有未逮,以開放方式協力發展較具勝算。
類似的,Google在已有Titan下仍在2020年1月發起OpenSK專案,同樣是開放FIDO2/U2F規範的韌體、軟體、硬體,甚至是金鑰外殼的機構設計資訊亦開放,可用3D列印方式自行印製外殼。
FIDO安全層次與技術對應
FIDO為辨識技術規範但仍有其安全防護層次之別,現階段分成6個層次,分別為Level 1、Level 1+、L2、L2+、L3以及L3+,數字愈高防護愈佳(圖5)。L1約可防範網路釣魚、伺服器憑證缺口以及中間人攻擊,此比單純的密碼防護為佳;L1+則可防護作業系統被侵害;L2/L2+則能防護裝置自身的作業系統被侵害;L3則防護自電路板層面的侵害;L3+則防護自晶片層面的侵害。
實現各種防護層次也需要對應的實現技術,L1/L1+的防護不限定實現的軟體硬體,但L2/L2+則需要使用受限制的作業環境(Restricted Operating Environment,ROE),更具體而言是使用具有可信任執行環境(TEE)、防護要件(Secure Element, SE)等硬體電路技術來實現的作業環境,若無也必須帶有類似性質的設計,如USB Token、智慧卡Smart Card等。
L3則需要將電路板封灌起來避免有心者直接自板卡層侵害,另也當使用封裝中在封裝內(Package on Package, PoP)的記憶體以避免接腳信號被攔截竄改,以及在記憶體儲存傳輸上加密等。L3+則需要防護晶片內的入侵攻擊。
另外若使用CPU本具的硬體虛擬功能也能帶來限制性執行的防護效果,如Intel的VT技術,或TPM晶片亦可,均在用來實現FIDO範疇的硬體,差別僅在於防護層次(Level)高低。
一般而言,結合TEE與可信任應用程式(Trusted Application, TA)即有機會實現Level2以上的防護,採用CC(Common Criteria for IT Security Evaluation, ISO/IEC 15408)認證過的Secure Element,則可以達最高的L3+。圖6為通過不同等級FIDO認證所需符合的條件整理。
值得一提的是,FIDO聯盟雖規劃6個防護層次,但至2020年2月底為止,已通過的689項FIDO認證產品中並沒有L3/L3+的產品,均為Level 1、2,甚至是更初階的功能(function)測試認證而已。
另外,TEE技術因各家商業推展著眼而有不同的稱呼,如安謀(Arm)為TrustZone,超微(AMD)的平台防護處理器(Platform Security Processor, PSP)、防護執行環境(Secure Execution Environment, SEE)、IBM在其大型主機上提供的防護服務容器(Secure Service Container,昔稱zACI),英特爾(Intel)則有軟體護衛延伸(Software Guard Extensions, SGX),包含開放原碼的RISC-V亦有MultiZone等。而前述的TPM亦可行,同樣對應至業者亦有其商業詞稱,如英特爾的可信賴執行技術(Trusted eXecution Tech, TXT)。
FIDO硬體實例觀察
由上可知FIDO規範並未限定硬體實現方式,各業者有不同的實現法,因此只能以現階段的數個代表性的產品研究其硬體設計。
‧Google Titan
Titan內的主晶片為NXP A7005(A700x家族,8051核心),為安全驗證取向的MCU,並透過另一顆提供USB介面的MCU NXP LPC11U24(Cortex-M0核心)構成USB隨身碟型態,FIDO目前的標準允許以USB、NFC、藍牙(Bluetooth)三種介面傳輸驗證協定。
除Google官方Titan外,負責幫Google生產製造Titan的對岸業者飛天誠信(Feitian)也有推出自有的FIDO防護金鑰產品,同時也幫另一品牌業者Yubico代工其Yubikey。
‧SoloKeys
開放原碼的SoloKeys(有時也簡稱Solo)其主晶片為Microchip SAM L11家族的MCU,晶片內用及arm的TrustZone技術。USB介面晶片方面則為Silicon Labs的EFM8UB1,而NFC介面則倚賴AMS的AS3953晶片。
值得一提的是,USB介面正從Type-A轉向Type-C,2019年10月Google發表USB Type-C介面的Titan。2019年12月SoloKeys開放專案也釋出Type-C版本的設計。
SoloKeys採開放原碼的結果也使許多愛好者進行衍生發展或跨業者晶片的改寫(porting),如Somu專案使用STM32L432KC晶片,Tomu專案用Silicon Labs的Happy Gecko EFM32HG309。
‧Google OpenSK
OpenSK的晶片為Nordic nRF52840,顯而易見提供藍牙介面,加密技術同樣援引Arm TrustZone CryptoCell-310的TEE技術。另一個也屬Google支持的開放專案的U2F Zero則是用Microchip的ATECC508A。
‧主要冷錢包業者
Trezor推出多款硬體錢包,如Trezor One、Trezor Model T等,主要晶片為STMicro STM32F205;Ledger亦有多款,其Ledger Nano S使用STMicro STM32F042K與STMicro ST31H320,後者具EAL6+的安全防護等級,但因為跟STM32F042K搭配運作,估計防護度約為EAL5+。
‧其他
透過上述整理可知,FIDO安全金鑰硬體多直接取用過往各大廠早已提供的防護型MCU,但也有額外特殊設計的,例如南韓eWBM公司就強調使用自力研發的MS500安全型MCU,且是目前唯一獲得FIDO2的Level 2認證的產品。
或另一冷錢包業者愛沙尼亞AsicVault使用德州儀器(TI)的MSP430系列16位元MCU並搭配2顆特有的RISC-V架構晶片,宣稱其攻破難度比過往產品高1,000倍。或也有業者採德國英飛凌(Infineon)的高安全性晶片,或有業者評估採行台灣新唐科技(Nuvoton)的NuMicro M2351晶片(亦採TrustZone)。
‧蘋果可能動向
由於蘋果已加入FIDO聯盟並取得董事席,估計後續其T3或T4晶片即可能轉向FIDO規範,而微軟(Microsoft)於2018年推出安全取向的完整物聯網解決方案,其MCU部分使用聯發科的MT3620。MT3620內的防護運算電路亦採獨立隔離設計,稱為Pluton(冥王星)防護子系統,後續會否改行TEE的TrustZone亦值得觀察,或Microsoft認為Pluton具獨到技術性而維持專屬作法,不過Microsoft的雲端服務Azure也已支援Intel SGX技術。
龍頭大廠表態力挺 FIDO普及指日可待
不在機房伺服器端儲存帳密、信用卡卡號,也不在驗證過程中在網路上傳遞帳密、信用卡卡號,而是在裝置內就近完成辨識驗證,如此受侵害的可能性大減,這是FIDO2的目標。
目前通過FIDO2認證的硬體產品仍有限,但網路服務、作業系統與瀏覽器卻已相繼支援,網路服務如Google、Facebook、微軟,作業系統如Windows、Android,瀏覽器如Chrome、Firefox、Edge等,而最堅持專屬的蘋果也已經加入,其Safari也確定支援(圖7),估計iOS、macOS的支援將是時間問題,對應的硬體裝置、晶片市場也將成長。