家庭自動化生態系統包括許多不同參與者:雲端服務供應商(可能是一個標準組織或家庭自動化平台企業的所有人)、業主、他們的家人和客人、安裝公司、零售商、配件供應商、連接本地網路與雲端的橋接器供應商、合約製造商、經銷商、晶片供應商和IP供應商。

這種家庭自動化生態系統要在一個真正的大眾市場取得成功,必須滿足若干要求。特別是,它必須能以簡單和一致的方法來設定新裝置,並且能夠透過簡單的智慧型手機應用程式(app)或經由語音控制,同時控制來自不同廠商的裝置。

其次,必須具備透過雲端支援遠端存取以及為室內所有裝置實現自動化的能力。最後也最重要的是,為了確保高效率,必須要有強大和可靠的安全保障措施,以及低成本、低功耗的高效率微控制器(MCU)。

其中一些要求可以透過家庭自動化平台解決,例如,蘋果(Apple)的HomeKit架構。

本文主要討論為家庭自動化所用的MCU提供高效率的安全保障時所面臨的挑戰。

基於成本考慮,效率是必要的:如果能以較少的處理器週期執行相同的加密演算法,就可以採用速度較慢且成本更低的處理器和記憶體模組。

如果用軟體就能高效率地實現,就不需要專用的硬體加速器。

再者,處理器週期更少也意味著功耗也相對地降低了——這對於以電池供電的裝置來說至關重要。

如同所有的通訊協議一樣,家庭自動化協議定義了端點之間如何交換訊息,例如在智慧型手機和恒溫器之間。

20161018 Home TA31P1 圖1:恒溫器與智慧型手機互動

20161018 Home TA31P2 圖2:透過家庭自動化協議實現資料交換

如果協議支援安全性,它也會定義用於確保應用資料驗證、完整性與保密性的加密演算法。人們當然不希望自家大門輕易被駭入,所以,好的演算法和較長的密鑰至關重要。

密碼學家Dan Bernstein及其團隊開發的演算法,就是這種良好且有高運算效率的演算法之一。他們開發的演算法是根據橢圓曲線的特性,在密碼社群中擁有良好信譽。這些演算法目前用於TLS、OpenSSH、Tor、HomeKit等,且得到越來越多密碼資料庫的支援。

這些演算法吸引人的特性之一是,它們可防範邊側通道攻擊。對裝置進行這些攻擊並不昂貴,因為它們可能只需要對作業中的晶片所洩漏的功耗、輻射或其它資訊進行非破壞性測量。如果洩漏的資料以某種方式與當前正處理中的機密資料有關,就可能從其中推斷出機密資料。邊側通道攻擊的花樣越來越多,例如眾所週知的簡單功率分析(SPA)和差分功率分析(DPA)攻擊。目前,它們看起來是最常見的此類攻擊。

Bernstein演算法使其更易於避免此類攻擊,但僅憑它們本身也無法保證免疫。協議的設計和實施也要發揮作用。良好的協議設計可以緩解DPA攻擊,其要點是,即使重複發送相同的秘密資料,協議也不會發送相同的位元模式。

另一方面,對付SPA攻擊需要詳細地建置加密密碼,以確保無論處理什麼秘密資料,都能執行相同的操作序列,因此,秘密資料的差異就不會導致執行時間或功耗的變化(功耗安全程式)。

這需要一些技巧,因為它必須避免‘if then else’的程式分支。對於只使用執行於恒定數量時脈週期的處理器指令,同樣需要審慎地進行。例如,ARM Cortex-M3可實現比Cortex-M0更有用的乘法指令,但基於上述考慮,這裡就不該如此使用,因為它並不一定會用相同的時脈週期數來執行而產生資料相關性。

由於乘法指令對於這裡所討論的演算法是最具性能攸關的指令,所以,MCU將理想地提供一種快速、單週期的乘法器。

Cortus APS3RP CPU核心剛好可以滿足這些條件,它是廣泛採用的APS3R核心之增強版。

20161018 Home TA31P3 圖3:Cortus APS3RP CPU核心

它採用哈佛(Harvard)架構和一個3階管線。該核心使用簡單的向量中斷結構,以低軟體開銷確保快速、即時的中斷回應。核心連接至Cortus的週邊介面包括乙太網路10/100 MAC和USB 2.0設備。

雖然整合客製的協同處理器與APS3RP核心極其容易,而且一些公司的確也以這種方式打造出安全的通訊解決方案,但對於本文討論的演算法來說,卻並不是具成本效益的方式。尤其是得益於快速乘法器,整合了APS3RP的50MHz SoC可以用軟體執行所有必要的加密演算法,且其速度夠快到不至於讓用戶分心。

為了獲得最佳性能(並確保上面討論的時序不變異),該軟體中最具時間關鍵的部份是用Cortus組合語言編寫的,其餘的部份則用可攜式C完成。

對於OberonHAP加密元件來說,家庭裝置與智慧型手機或其它控制器的初始配對必須建置另一種演算法。這就是史丹佛遠端密碼(Stanford Remote Password;SRP)演算法。在進行配對期間,SRP執行約6,400萬次乘法指令集。透過在質域(prime field)採用減少模組化等新穎的加乘演算法,可能將執行指令數降低到約800萬。

同樣重要的是,可能把這種「記憶體吞噬」(memory greedy——對MCU來說一點也沒錯!)演算法所需的RAM減少到2.5KB。該演算法的某些建置已知需要200KB以上,即使是一款好的建置通常也需要10KB以上。

在加密領域,有充份的理由對新的演算法或演算法組合抱持懷疑態度,所以,針對這種新方法的正確性證明加以開發。業界的獨立專家後來對這一數學證明進行了審核,並證明其正確性。

理想情況是,硬體和軟體供應商密切合作,達到最佳的硬體/軟體搭配,並將軟體、硬體和數學技巧呈現給客戶。Cortus和Oberon microsystems正以這種方式合作,將OberonHAP加密元件與APS3RP核心整合在一起,以低閘數的處理器實現高性能的加密作業。

OberonHAP加密元件中最重要的加密功能包括:

  • SRP是增強的密碼認證金鑰議定協議
  • Curve25519是一種橢圓曲線,提供128位元的安全性
  • Ed25519是一種數位簽章機制——EdDSA的具體實現
  • ChaCha20是由Daniel J.Bernstein等人開發的串流密碼
  • Poly1305是由Daniel J.Bernstein等人創造的一種訊息認證碼。它可用於驗證資料的完整性和訊息的真實性
  • HKDF-SHA512是基於HMAC-SHA512的金鑰推導函數