當前,數位安全是電子設計領域中最熱門的話題之一。對於許多工程師來說,當提到安全性時,腦海中浮現的第一個字可能就是加密。或許只有極少數人會想到安全認證。

然而,安全認證是安全裝置或交易的基礎功能。我們以家庭銀行(home banking)為例。顯然,您希望餘額和賬號等機密訊息能夠加密,此時,您的網際網路瀏覽器上會顯示帶有綠色「鎖頭」圖示的https://。

這是指網際網路瀏覽器在建立安全連線時,第一件確認的事情就是銀行網站的真實性;換句話說,就是要對銀行網站進行安全認證。的確,發送登入和密碼資訊到釣魚網站是非常危險的,因為這些憑據可能會被進一步重複使用,以受信任的銀行賬戶持有人的名義執行任何形式的未授權交易。安全的網際網路瀏覽一般都透過TLS/SSL協議來執行,以確保其真實性及機密性。

安全認證對於物聯網(IoT)應用也非常重要:一個不可信任的終端可能會讓整個基礎設施陷於危險之中。我們以連接到配電系統的智慧電錶為例。對於要破壞電網的攻擊者來說,一種簡單的方法就是在智慧電錶中載入病毒或惡意程式。受感染的電錶會向基礎設施發送假訊息,反應出與實際相差非常大的功耗。這時候電網會變得無法平衡;最糟的情況是攻擊可能會引發完全的電力中斷。為了避免這種情況,必須檢驗電錶硬體及其韌體的真實性。對韌體進行安全認證的過程稱為安全開機。

執行有效的安全認證方法

現在我們已經了解安全認證的重要性,接下來將討論如何執行。最簡單的安全認證方法是使用密碼。在智慧電錶的例子中,裝置可向電網控制系統發送密碼,伺服器會驗證密碼,然後再授權執行下一步的交易。雖然這種方法非常容易理解,但並不是最好的方法。攻擊者很容易偵查通訊、記錄密碼,並且重複使用於驗證非真實的裝置。因此,我們認為以密碼為基礎的安全認證方法比較薄弱。

數位領域執行安全認證的更好方法是詰問-回應法(challenge-response)。目前有兩種主要的詰問-回應方法:一種基於對稱式加密,另一種基於非對稱式加密。

以對稱加密為基礎的安全認證途徑依賴於共享密鑰。主機和被認證裝置持有相同的密鑰。主機向裝置發送一個隨機數字,即詰問。裝置運算一個數位簽名作為密鑰和詰問的函數,並發送回主機。之後主機執行相同的運算並對結果進行比較。如果兩項運算結果符合,則裝置通過安全認證(圖1)。

為了確保結果不至於被模仿,必須使用數學屬性足夠的函數;例如必須保證無法透過計算結果獲得密鑰。諸如SHA-256等安全散列函數能滿足這些要求。對於詰問-回應法,裝置必須證明知道密鑰也不至於洩露密鑰。即使攻擊者攔截通訊,也無法存取共享的密鑰。

20170824_Maxim_TA31P1 圖1:以對稱加密為基礎的安全認證依賴於主機和裝置之間的共享密鑰

以非對稱式加密為基礎的安全認證依賴於兩種金鑰:私密金鑰和公開金鑰。只有被認證的裝置知道私密金鑰,而公開金鑰可透露給希望對設備進行安全認證的任何一方。與上文中討論的方法一樣,主機向裝置發送詰問。裝置根據詰問和私密金鑰計算數位簽名,並將其發送給主機(圖2)。

20170824_Maxim_TA31P2 圖2:非對稱密鑰認證依賴於公開金鑰和私密金鑰

但此時,主機使用公開金鑰對數位簽名進行驗證。用於運算數位簽名的函數擁有特定的數學屬性至關重要。非對稱式方法中最常用的函數是RSA和ECDSA。同樣地,裝置經認證已知密鑰,即私密金鑰,但並不會洩露密鑰。

為什麼安全IC有利於認證

「詰問-回應」認證始終要求被認證的對象持有密鑰。在對稱加密方法中,這就是主機和裝置之間的共享密鑰;而在非對稱加密方法則指私密金鑰。無論是哪一種情況,一旦密碼洩露,詰問-回應式的安全認證就失效了。安全IC有助於防範這種情況。安全IC的一項基本特性就是為金鑰和密碼提供強大的保護。

例如,Maxim提供支援安全認證的解決方案系列:

  • 安全認證IC:IC是可配置但固定功能的裝置,為實施詰問-回應安全認證提供最經濟的途徑,並且具有基本的加密操作。
  • 安全微控制器:在支援詰問-回應認證的基礎上,安全微控制器(MCU)提供全面的密碼學功能,包括加密。
  • 低功率微處理器:儘管這些產品並非專用於安全功能,但擁有支援安全認證所需的建構模組。

在安全認證IC中,基於SHA-256的產品支援基於共享密鑰的安全認證(圖3),而基於ECDSA的IC使用私密金鑰/公開金鑰配對(圖4)。

20170824_Maxim_TA31P3 圖3:SHA-256安全認證以共享密鑰為基礎

除了加密引擎外,這些產品內建可配置的EEPROM記憶體,可用於儲存經過安全認證的用戶數據,例如感測器的校準資訊。

20170824_Maxim_TA31P4 圖4:以ECDSA為基礎的安全認證算法取決於私密金鑰/公開金鑰的配對

以SHA-256為基礎的產品是最實惠的方案。儘管支援相互認證,但共享密鑰的分發要求採取一定的防範措施,以確保裝置製造和配置期間不會洩露密鑰。為了克服這個缺點,可以採用Maxim的工具對密鑰進行編程。

例如,Maxim的DS28E15/22/25 IC是以SHA-256為基礎的技術,而且擁有不同容量的內部記憶體配置。由於主機和裝置端分別儲存相同的密鑰,建議在主機端使用協同處理器,例如DS2465。

DS28C36和DS28E35等以非對稱加密為基礎的產品提供更靈活的方法,因為主機端不需要防止密鑰被洩露。然而,為了卸載公開金鑰運算並且提供更安全的操作,可利用像DS2476 (DS28C36的輔助IC)等主機端協同處理器,以簡化系統解決方案的開發。

支援對稱和非對稱加密的安全MCU

支援對稱和非對稱加密的安全MCU適用於數位簽名、安全認證,以及加密演算法。其特點是配備支援SHA、RSA、ECDSA和AES的硬體加速器,以及完整的加密工具庫,從而提供符合標準的整體API方案。

例如Maxim提供的各種安全MCU,包括從可運作於Linux等進階作業系統的MAX32590 (採用ARM9核心,運作頻率為384MHz)應用級處理器,到MAX32555或MAXQ1061等小尺寸協同處理器。這些元件並內建安全開機,從而確保韌體的可靠性

隨著攻擊現象日益頻繁,產品的設計必須充份考慮未來的安全挑戰。例如,除了安全認證,MAXQ1061協同處理器還支援TLS/SSL標準安全通訊協議的關鍵步驟。在晶片內實現TLS協議可提高安全水平並減輕主處理器執行運算密集型任務的負載。MAX32626等低功耗MCU雖然不是「安全為中心」的IC,但內建支援安全認證的硬體信任保護元件,以及用於加密的硬體AES且內建安全開機。

總之,多虧有了目前以IC為基礎的解決方案,就算不是加密專家,也能夠實現安全認證。