在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用加密芯片確保物聯網器件的安全性

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-18 08:03 ? 次閱讀

盡管開發人員已經采取最大努力,但是仍然可能將物聯網 (IoT) 設計暴露在預期用來維護安全性的代碼攻擊之下。黑客經常會用受損代碼替換固件,以攻擊看似安全的設計。安全引導方法可以緩解這些攻擊,但可能難以確保正確實現。

開發人員需要更簡單的方法來實現安全引導,將其作為確保物聯網器件安全性的整體策略的一部分。

本文簡要回顧了物聯網器件設計中的常見攻擊面,以及安全密鑰存儲、加密和身份驗證等基本安全方法的作用;然后介紹了一種安全芯片,能讓開發人員在整體策略所需的其他功能中添加安全引導,以確保物聯網器件的安全。

物聯網器件漏洞

對于黑客而言,物聯網器件帶來了可用以破壞器件本身、其網絡甚至是最終應用的多個入口點。雖然開發人員可以使用各種技術來增強網絡和應用安全性,但由于物聯網器件上可用的存儲器和處理資源有限,因此確保其安全性仍是一項挑戰。

盡管開發人員在采用加密方法來保護數據,但許多器件都不具備所需的安全身份驗證功能,無法防止黑客偽裝成授權服務器、網關或其他物聯網器件來攔截通信。某些情況下,如果器件使用有效但較弱的身份驗證方法,仍然容易受到復雜的漏洞程序攻擊,這些攻擊會攔截看似私密的通信會話中所用的有效安全密鑰,然后加以重復使用。

物聯網器件更新

一個更加底層的安全漏洞涉及數量快速增長的物聯網器件中內置的空中升級 (OTA) 功能。空中升級為快速發展的物聯網市場提供了一項重要功能。開發人員可通過升級已部署器件的固件,響應客戶對新功能不斷變化的需求(或修復錯誤)。在典型的空中升級流程中,物聯網器件將定期尋找更新,在新代碼可用時下載新代碼,并執行一系列系統調用以完成更新流程。

例如,對于 Microchip Technology 基于 SAM D21 MCU 的物聯網器件,其固件將包含空中升級代碼,用于從某個預設端點下載鏡像,之后固件會檢查是否執行成功,然后切換到新的固件集(列表 1)。在 Microchip 高級軟件框架包提供的這個列表中,OTA 固件初始化 (m2m_ota_init()) 之后,回調例程 OtaUpdateCb() 會在 OTA 固件下載新代碼鏡像后,切換到新固件集 (m2m_ota_switch_firmware()),然后系統復位即會引導 MCU 重啟到已更新的固件。

副本

static void OtaUpdateCb(uint8 u8OtaUpdateStatusType ,uint8 u8OtaUpdateStatus)

{

if(u8OtaUpdateStatusType == DL_STATUS) {

if(u8OtaUpdateStatus == OTA_STATUS_SUCSESS) {

//switch to the upgraded firmware

m2m_ota_switch_firmware();

}

}

else if(u8OtaUpdateStatusType == SW_STATUS) {

if(u8OtaUpdateStatus == OTA_STATUS_SUCSESS) {

M2M_INFO("Now OTA successfully done");

//start the host SW upgrade then system reset is required (Reinitialize the driver)

}

}

}

void wifi_event_cb(uint8 u8WiFiEvent, void * pvMsg)

{

case M2M_WIFI_REQ_DHCP_CONF:

{

//after successfully connection, start the over air upgrade

m2m_ota_start_update(OTA_URL);

}

break;

default:

break;

}

int main (void)

{

tstrWifiInitParam param;

tstr1xAuthCredentials gstrCred1x = AUTH_CREDENTIALS;

nm_bsp_init();

m2m_memset((uint8*)?m, 0, sizeof(param));

param.pfAppWifiCb = wifi_event_cb;

//Initialize the WINC Driver

ret = m2m_wifi_init(?m);

if (M2M_SUCCESS != ret)

{

M2M_ERR("Driver Init Failed <%d> ",ret);

while(1);

}

//Initialize the OTA module

m2m_ota_init(OtaUpdateCb,NULL);

//connect to AP that provide connection to the OTA server

m2m_wifi_default_connect();

while(1)

{

//Handle the app state machine plus the WINC event handler

while(m2m_wifi_handle_events(NULL) != M2M_SUCCESS) {

}

}

}

列表 1:這是來自 Microchip 高級軟件框架包的無線 (OTA) 代碼樣例,一個 Wi-Fi 事件句柄回調函數 wifi_event_cb() 使用指定 URL 啟動空中升級 m2m_ota_start_update(OTA_URL),并在成功完成 OtaUpdateCb() 后,切換至新固件 m2m_ota_switch_firmware()。(代碼來源:Microchip Technology)

為了檢查下載的代碼是否有效,開發人員長期依賴由認可的認證機構頒發的代碼簽名證書。即便如此,安全數據存儲、驗證技術實現和證書保護方面的不足也為黑客提供了操縱侵入物聯網器件的途徑。

即使使用傳統的安全技術,器件自身的固件更新流程也可能遭受侵害,有效代碼被替換成受損代碼。在重啟時,器件會成為黑客用來更深入地滲透物聯網網絡、物聯網應用甚至企業內部資源的工具。

在這種情況下,安全引導物聯網器件的能力便成為一道關鍵防線。但是,對于開發人員而言,要實現安全引導,在安全存儲、加密、身份驗證和代碼驗證機制方面需滿足多種要求。

有些攻擊方法側重于從器件存儲中檢索安全密鑰、攔截加密數據、欺騙身份驗證機制以及破壞代碼驗證算法,如果以軟件方式實現安全引導,更新流程將暴露于這些危險之中。實際上,物聯網設計通常缺乏額外的存儲器和處理能力,而這正是軟件解決方案在所有情況下都需要的。即便如此,硬件實現也無法始終保證安全性。

為了在硬件中實現安全引導,物聯網器件往往需要大量專用器件,而這會大幅增加設計復雜性和成本,這種情況直到最近才有所改觀。即使開發人員集成了這些獨立器件,意向堅決的黑客也可以輕松獲取目標物聯網器件的樣件,并通過其總線和信號互連攻擊單個安全器件。相比之下,Microchip Technology 的 ATECC608A 是一種單芯片解決方案,允許開發人員在不暴露底層機密或安全機制的情況下添加安全引導。

安全 IC

ATECC608A 是一款 8 引腳安全器件,可通過簡單的串行接口為主機 MCU 提供先進的安全功能補充(圖 1)。

使用加密芯片確保物聯網器件的安全性

圖 1:ATECC608A 是一款 8 引腳加密協處理器,具有基于硬件的安全密鑰存儲器。(圖片來源:Microchip Technology)

該器件提供基于硬件的完整安全解決方案,將其集成的加密加速器與片載安全存儲器相結合,支持各種加密算法,包括 SHA-256、AES-128 以及穩健的橢圓曲線算法,如橢圓曲線數字簽名 (ECDSA)、橢圓曲線 Diffie-Hellman (ECDH) 和 NIST 曲線 P-256 等。除了這些加密機制,該器件還支持包括 TLS 1.3 在內的更高級別的傳輸層安全 (TLS) 協議。與早期器件不同,ATECC608A 可以生成并安全存儲會話密鑰,這有助于減輕使用 TLS 身份驗證時常見的威脅來源。

這些功能在確保物聯網器件正常運行方面發揮著重要作用,但 ATECC608A 對安全引導的支持將安全覆蓋范圍擴展到基本固件更新流程。ATECC608A 會驗證新代碼集,并向 MCU 返回表示成功或失敗的消息。此時,根據現有安全策略,MCU 可以重試更新,向安全監視器端點發送警告消息,暫停或忽略更新并重啟進入原始代碼。

硬件集成

對于開發人員而言,在向基于 MCU 的設計添加安全引導和其他安全功能方面,ATECC608A 帶來的額外要求相對較少。在硬件方面,設計人員需要處理最多四個連接:VCC、GND、串行時鐘輸入 (SCL) 和串行數據 (SDA)。其余四個引腳未連接。除了將 VCC 連接到 2.0 V 至 5.5 V 電源外,唯一待確定的是與 MCU 的串行連接。

設計人員可以將器件的 SCL 和 SDA 引腳連接到 MCU,以實現傳統的 I2C 連接。或者,設計人員可以利用器件對 Microchip 單線接口的支持。這里,開發人員將器件的 SDA 端口連接到 MCU GPIO 引腳,并使用 Microchip 的單線時序協議傳輸邏輯 0 和 1 值(圖 2)。

使用加密芯片確保物聯網器件的安全性

圖 2:在 Microchip 單線串行協議中,一個指定持續時間的波形轉換序列發出邏輯 0 或邏輯 1 信號。(圖片來源:Microchip Technology)

在此協議中,ATECC608A 與 MCU 之間的邏輯值傳輸始于指定持續時間的起始脈沖 (tSTART)。在起始脈沖之后,協議將邏輯 0 定義為指定了持續時間的一個循環,由零傳輸高脈沖 (tZHI) 與隨后的零傳輸低脈沖 (tZLO) 組成。同樣,持續的高電平表示邏輯 1 傳輸。

無論哪種情況下,協議都希望信號在指定位時間 (tBIT) 內降低。在一系列位傳輸之后,如果串行線路在指定的 IO 超時持續時間后變為非活動狀態,則可以將器件編程為自動進入休眠模式。但是,使用 ATECC608A 的開發人員很少需要關注此協議的時序細節:Microchip 定義的關鍵時序參數與在 230.4 Kbaud 運行的標準 UART 兼容。

器件配置

在器件級別,ATECC608A 需要的配置設置最少。開發人員可以使用 I2C 或單線串行接口加載 I2C 地址等設置,或設置一些功能,如喚醒或開機時自檢。該器件確實提供了與超低功耗物聯網設計特別相關的配置設置。

在這些設計中,ATECC608A 在其空閑或休眠模式下增加的總功耗預算相對較少,這兩種模式可能是典型物聯網設計中的最常見狀態。在空閑模式下,器件功耗約為 800 微安 (μA);在休眠模式下,功耗為 150 納安 (nA) 或更低,具體取決于配置。當 MCU 喚醒器件執行某些安全流程時,器件的功耗在有效工作期間仍只有 14 毫安 (mA)。即便如此,具有嚴格功耗預算的設計也可能需要甚至更低的有功功率水平。

為了支持這些設計,該器件提供了一個配置選項,允許開發人員選擇三種不同的工作模式,通過減緩執行速度來實現更低的功耗。因此,開發人員可通過相應減緩執行速度,將有功功率從最大執行速度下的 14 mA 降至 6 mA 或 3 mA。

除了各種低級配置項之外,如果在開發之前已落實安全器件(如 ATECC608A)的安全信息,會更為有效。開發過程中所執行安全密鑰和證書的錯誤或漏洞甚至會致使最佳安全措施失效。為解決這一可能的威脅,Microchip 的可信配置服務會在制造過程中加載包括密鑰和證書在內的安全數據。

在工廠的安全環境中加載安全信息后,即使器件通過供應鏈中的正常處理流程,也可以保護其不被意外或故意發現。ATECC608A 包含一種特殊的傳輸鎖定功能,在使用從最終主機 MCU 傳輸的已知密鑰以加密方式啟用器件前,禁止使用器件。

一旦被主機 MCU 啟用,ATECC608A 就會隨機生成一個與 MCU 共享的稱為 IO 保護密鑰的密鑰。ATECC608A 與 MCU 之間的后續通信使用此 IO 保護密鑰進行加密——這是一種在安全引導和其他安全流程中提供額外身份驗證的機制。

如果黑客希望切斷與 ATECC608A 的連接并將自己的“成功”信號饋送給 MCU 以欺騙驗證流程,此 IO 保護密鑰機制將導致 MCU 忽略錯誤信號。即使黑客以某種方式破壞 ATECC608A 器件并嘗試在不同的系統上使用它,IO 保護密鑰機制也會有效阻止其使用。

軟件集成

ATECC608A 具有所有精致的功能和保護機制,可以直接應用到基于 MCU 的設計。除了實現前面提到的簡單硬件接口和配置設置之外,開發人員還可使用抽象出操作細節的應用編程接口 (API)。Microchip 的 CryptoAuthLib 加密認證庫提供一個全面的軟件包,其中包含充分利用 ATECC608A 功能所需的定義、結構和 API 調用。此庫充當硬件中立層,通過硬件抽象層 (HAL) API 和用于特定硬件目標的驅動程序來運作(圖 3)。

使用加密芯片確保物聯網器件的安全性

圖 3:Microchip 的 CryptoAuthLib 庫在應用和底層硬件之間提供了一個加密服務層,可通過硬件特定驅動程序之上的硬件抽象層訪問該服務層,從而實現跨不同硬件組的可移植性。(圖片來源:Microchip Technology)

開發人員使用 CryptoAuthLib API 例程(如 io_protection_set_key())創建 IO 保護密鑰,并使用 atcab_secureboot() 對照調用參數中包含的代碼摘要或簽名,執行 ATECC608A 的安全引導驗證機制。

雖然 API 命令很簡單,但實現安全性所需的特定設置、管理和操作步驟可能頗具挑戰性。如果關鍵步驟缺失或未按順序執行,開發人員試圖實現的安全機制可能會導致延遲。

使用 Microchip 基于 SAM D21 MCU 的 ATSAMD21-XPRO 開發套件及其配備 ATECC608A 的 ATCRYPTOAUTH-XPRO-B 擴展板,開發人員可以快速獲得使用這些通用機制和 ATECC608A 特定功能的經驗。Microchip 提供在 ATSAMD21-XPRO 和 ATCRYPTOAUTH-XPRO-B 上運行的廣泛安全引導軟件包,使用 Microchip ATOLED1-XPRO 為樣例應用提供基本顯示接口(圖 4)。

圖 4:開發人員可以使用 Microchip 軟件和基于 SAM D21 MCU 的 ATSAMD21-XPRO 開發套件快速評估安全引導流程,其中開發套件結合了配備 ATECC608A 的 ATCRYPTOAUTH-XPRO-B 擴展板和 ATOLED1-XPRO 顯示擴展板。(圖片來源:Microchip Technology)

包含在 SAM D21 演示包中的完整安全引導例程說明了用于設置、執行和檢查安全引導操作狀態的關鍵軟件設計模式(列表 2)。通過此硬件平臺和演示軟件包,開發人員可以快速評估 ATECC608A 的遠程引導使用情況,并根據需要修改樣例軟件以滿足自己的要求。

副本

/** rief Handles secure boot functionality through initialization, execution,

* and de-initialization.

* eturn ATCA_SUCCESS on success, otherwise an error code.

*/

ATCA_STATUS secure_boot_process(void)

{

ATCA_STATUS status;

secure_boot_parameters secure_boot_params;

uint8_t secure_boot_mode;

bool secure_boot_app_valid = false;

/*Initialize secure boot */

if ((status = secure_boot_init(&secure_boot_params)) != ATCA_SUCCESS)

{

return status;

}

do

{

.

.

.

#if SECURE_BOOT_DIGEST_ENCRYPT_ENABLED

.

.

.

/*Get IO Protection Key*/

if ((status = io_protection_get_key(secure_boot_params.io_protection_key)) != ATCA_SUCCESS)

{

return status;

}

if ((status = atcab_secureboot_mac(secure_boot_mode,

(const uint8_t*)&secure_boot_params.app_digest,

(const uint8_t*)&secure_boot_params.memory_params.signature,

(const uint8_t*)secure_boot_params.randomnum,

(const uint8_t*)secure_boot_params.io_protection_key,

&secure_boot_app_valid)) != ATCA_SUCCESS)

{

break;

}

#else

if ((status = atcab_secureboot(secure_boot_mode,

0,

(const uint8_t*)&secure_boot_params.app_digest,

(const uint8_t*)&secure_boot_params.memory_params.signature,

NULL)) != ATCA_SUCCESS)

{

break;

}

secure_boot_app_valid = true;

#endif

/*Check whether the secure boot command executed successfully with the correct return mac */

if (!secure_boot_app_valid)

{

break;

}

.

.

.

}

while (0);

/* De-initialize memory interface and release its resources*/

secure_boot_deinit_memory(&secure_boot_params.memory_params);

return status;

}

列表 2:Microchip SAM D21 演示包的這個代碼片段展示了安全引導的關鍵設計模式,包括檢查 IO 保護密鑰 (io_protection_get_key()) 以及使用其摘要、簽名和其他參數(atcab_secureboot_mac() 或 atcab_secureboot(),具體取決于所選配置)驗證固件。(代碼來源:Microchip Technology)

總結

物聯網器件為意圖使用受損器件入侵物聯網網絡、應用和企業資源的黑客提供了多個威脅面。在解決技術中,安全引導是更廣泛安全策略中的關鍵要素。然而,安全引導的實現本身也有一套要求,如果處理不當,可能會使系統暴露于危險當中。

Microchip Technology 的 ATECC608A 安全 IC 在單個封裝中提供一個全面的解決方案,使開發人員能夠將其輕松添加到任何基于 MCU 的設計中。開發人員可以利用 ATECC608A 極大地增強安全性并確保其物聯網設計中的安全引導。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50955

    瀏覽量

    424783
  • 存儲
    +關注

    關注

    13

    文章

    4332

    瀏覽量

    85950
  • 物聯網
    +關注

    關注

    2910

    文章

    44764

    瀏覽量

    374635
收藏 人收藏

    評論

    相關推薦

    聯網時代,嵌入式工程師這樣應對安全挑戰!

    ,各種設備的升級換代,淘汰的設備有可能被植入特洛伊木馬,給其他網絡設備帶去威脅。顯然,設計聯網設備時工程師需對整個系統進行全面了解,而不是僅僅把關注點放在設計的產品上。確保嵌入式設備的安全性
    發表于 06-05 17:24

    一種更簡便的增強 Wi-Fi 連接式聯網設計安全性的解決方案

    設備嘗試加入受信任的網絡時,便淪為攻擊的犧牲品。利用 Texas Instruments 的雙核無線 MCU,工程師可以輕松地增強聯網設備在其整個產品生命周期內的安全性,并支持多層端到端安全
    發表于 08-08 09:25

    如何保障聯網設備安全

    的重要毋庸置疑!那么該如何保障聯網設備安全呢?加密芯片就是保障
    發表于 09-07 10:36

    邊緣智能的邊緣節點安全性

    。雖然工業聯網的成本可能高于消費聯網,但其在可擴展性成本方面仍然面臨挑戰。如果忽視安全性,產品部署后將會產生隱藏的影響,這些成本最終也需
    發表于 10-22 16:52

    聯網安全芯片,車聯網安全芯片,數據加密芯片

    安全市場十余年有相當豐富的產品應用經驗,對于相關的應用場景有多套應對方案 我們的方案廣泛應用于以下行業1.聯網(IoT)行業智能家居(固件保護、通信加密、文件完整
    發表于 12-06 16:36

    如何支持聯網安全性和低功耗要求設計

    聯網等連接設備(如可穿戴設備)的設計人員越來越認識到面對數據機密,完整和真實的威脅時需要進行安全
    發表于 12-26 16:30

    如何支持聯網安全性和低功耗要求設計

    如何支持聯網安全性和低功耗要求設計
    發表于 12-27 04:24

    FPGA器件如何提升聯網安全性

    滿足器件安全需求的特性,來幫助實現這些目標。日益增長的IoT安全需求聯網(IoT)可被視為由多個電子網絡組成,這些網絡需要端到端的起始于
    發表于 06-25 08:18

    聯網應用中BLE安全性怎么保證?

    安全性是設計聯網(IoT)應用時面臨的最大挑戰之一。由于聯網設備通過無線方式進行通話,因此一切控制和狀態信息以及私人用戶數據都可能會暴露
    發表于 08-02 07:57

    聯網通信安全需求如何實現

    體系的保護下,使用者往往重點考慮的是使用哪一家通信運營商的公用網絡問題,以及擔心特大自然災害影響基礎通信設施產生網絡波動問題,關于通信網絡的信息安全性明明很重要,卻最容易讓人忽略。當聯網的出現卻對網絡
    發表于 06-05 20:24

    如何在聯網設備中實現基于硬件的集成安全性

    了解集成到MCU中的片上硬件安全性如何避免與將安全功能隔離到輔助芯片上的體系結構相關的弱點。盡管許多微控制器供應商專注于將安全性提取和隔離到通常稱為
    發表于 09-28 19:24

    機器學習可以有效的控制聯網應用的安全性

    隨著這個智能聯的時代不斷前行,不僅僅帶來無限的便捷,同時也帶來了網絡安全的隱患。面對這一難題,其實機器學習可以有效的控制聯網應用的安全性
    發表于 11-03 09:09

    如何去使用OpenBTS基站測試聯網模塊安全性

    使用OpenBTS基站測試聯網模塊安全性0×00 引子近年來,隨著云計算、聯網技術的快速發展,
    發表于 07-27 06:18

    NIST 選中 Ascon 作為輕量級加密國際標準,旨在提升聯網安全性

    硬件和軟件中高效安全地實現這一算法,以及對 Ascon 的安全性展開全面徹底的分析。英飛凌科技安全互聯系統事業部總裁 Thomas Rosteck表示:“隨著數字化程度不斷提升,
    發表于 02-28 14:14

    如何提升聯網安全性

    本視頻主要詳細介紹了如何提升聯網安全性,分別從網絡安全、身份授權、加密、SCA(SideChannelAttack)、
    的頭像 發表于 01-06 10:48 ?5165次閱讀
    主站蜘蛛池模板: 久久天天躁狠狠躁夜夜呲| 国产综合第一页在线视频| 国内一国产农村妇女一级毛片| 久久成人性色生活片| 五月天激情在线| 国产精品毛片天天看片| www日| 69xxx视频| 国产精品性| 日本69xxxxxxxx69| 中文字幕一区二区三区四区五区| 亚洲免费毛片| 在线精品视频成人网| 天堂网| 老司机午夜网站| 成人18毛片| 天天干夜夜艹| jlzzjlzzjlzz亚洲女| 亚洲最新网站| 一 级 黄 中国色 片| 四虎国产在线| 九九色网站| 天天摸天天看天天爽| 岛国午夜精品视频在线观看| 中国男女全黄大片一级| 一级日本高清视频免费观看| 日本三级视频在线播放| 国产一区美女| 色极影院| 中文字幕在线观看一区二区 | 久久99精品久久久久久久不卡 | 色噜噜狠狠狠综合曰曰曰| 老外一级黄色片| 午夜影院在线观看视频| 国产未成女年一区二区| 女生扒开尿口让男生舔| 四虎国产精品免费久久影院| 国产日本三级| 精品黄色片| 美女无遮挡拍拍拍免费视频| 色妞网|