馬瀟宇
摘要:嵌入式系統(tǒng)已廣泛用于電子信息工程領(lǐng)域,系統(tǒng)安全與數(shù)據(jù)安全十分重要。安全性通常為密碼學(xué)、計算科學(xué)以及網(wǎng)絡(luò)等領(lǐng)域所關(guān)注,往往被視為嵌入式系統(tǒng)設(shè)計的附加功能。而事實上,安全性問題同成本、性能和功率等問題一樣,均應(yīng)被納入嵌入式系統(tǒng)設(shè)計的考慮范圍。該文基于嵌入式系統(tǒng)開發(fā)與設(shè)計在安全方面所面臨的挑戰(zhàn),從終端用戶的角度分析嵌入式系統(tǒng)的典型功能安全需求,進(jìn)而解析嵌入式系統(tǒng)架構(gòu)以及硬件和軟件設(shè)計面臨的潛在安全問題。此外,研究還考查了解決上述問題的解決方案,借鑒當(dāng)前的理論與實踐研究成果,提出需要在嵌入式系統(tǒng)架構(gòu)和設(shè)計方法上進(jìn)行創(chuàng)新與改進(jìn)。
關(guān)鍵詞:嵌入式系統(tǒng);安全;協(xié)議;密碼
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)05-0240-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
1 概述
如今,各類嵌入式系統(tǒng)對安全性的需求越來越高,從低端系統(tǒng)例如掌上電腦、手機(jī)、網(wǎng)絡(luò)傳感器和智能卡等,到高端系統(tǒng)如路由器、網(wǎng)關(guān)、防火墻、存儲服務(wù)器和Web服務(wù)器等,安全防護(hù)愈發(fā)重要。技術(shù)推動電子系統(tǒng)的更新發(fā)展,但同時也可能被應(yīng)用于對系統(tǒng)的攻擊,從而讓安全問題變得復(fù)雜。隨著互聯(lián)網(wǎng)的發(fā)展,信息和通信安全受到了廣泛的關(guān)注。例如,各種安全協(xié)議和標(biāo)準(zhǔn)(如IPsec、SSL、WEP和WTLS)用于安全通信。雖然安全協(xié)議和密碼算法從功能的角度考慮了安全問題,但不少嵌入式系統(tǒng)都受到其所處的環(huán)境和所擁有的資源的限制。對于此類系統(tǒng),有不少因素正促使對安全問題的考慮從以功能為中心的角度轉(zhuǎn)移到系統(tǒng)架構(gòu)(硬件/軟件)設(shè)計問題上。[1]
首先,用于破壞安全性的攻擊技術(shù),如軟件、物理和側(cè)信道攻擊越來越多,這就要求面對邏輯上或物理上被惡意訪問或攻擊,嵌入式系統(tǒng)也能保證其安全性。只有在系統(tǒng)架構(gòu)及其實現(xiàn)中內(nèi)置攻擊防御,才能確保對這些攻擊的抵抗能力。其次,許多嵌入式系統(tǒng)的處理能力很容易被安全處理的計算需求所淹沒,難以實現(xiàn)在安全與成本、性能之間的平衡。再次,電池驅(qū)動系統(tǒng)和小尺寸器件,如掌上電腦、手機(jī)和網(wǎng)絡(luò)傳感器通常在嚴(yán)格的資源限制(有限的電池容量、存儲和計算能力)下運(yùn)行。而要讓這些設(shè)備達(dá)到一定安全要求,便要突破以上限制條件。再其次,嵌入式系統(tǒng)架構(gòu)需要足夠靈活,以支持安全機(jī)制和標(biāo)準(zhǔn)的快速升級更新。最后,新的安全目標(biāo),如拒絕服務(wù)和數(shù)字內(nèi)容保護(hù)需要安全領(lǐng)域和嵌入式系統(tǒng)架構(gòu)方面之間的深度緊密合作。[2]
本文將基于嵌入式系統(tǒng)安全的重要性,回顧不斷發(fā)展的安全趨勢和標(biāo)準(zhǔn),說明安全需求如何轉(zhuǎn)化為系統(tǒng)設(shè)計挑戰(zhàn),進(jìn)而提出通過結(jié)合先進(jìn)的嵌入式系統(tǒng)體系結(jié)構(gòu)和設(shè)計方法來應(yīng)對這些挑戰(zhàn)的新型解決方案。
2 嵌入式系統(tǒng)安全要求
嵌入式系統(tǒng)提供的關(guān)鍵功能經(jīng)常可能被惡意破壞。在討論嵌入式系統(tǒng)的常見安全需求之前,必須要注意,典型的嵌入式系統(tǒng)制造涉及許多方面,例如供應(yīng)和使用鏈等。安全性的要求往往取決于考慮的角度。以智能手機(jī)為例,最終用戶的主要關(guān)注點可能是通過手機(jī)存儲個人數(shù)據(jù)信息和進(jìn)行數(shù)據(jù)通信的安全性,而內(nèi)容提供商的主要關(guān)注點可能是傳輸?shù)绞謾C(jī)的多媒體內(nèi)容的拷貝保護(hù)。此外,手機(jī)制造商可能還關(guān)心手機(jī)內(nèi)部專有固件的保密性。同樣,潛在的惡意實體類型也可能有所不同。從內(nèi)容提供商的角度來看,手機(jī)的最終用戶可能是不受信任的實體。嵌入式系統(tǒng)有著典型的、廣泛的安全需求,但其安全模型將制約其適用的安全需求組合。當(dāng)用戶在公共網(wǎng)絡(luò)或通信通道發(fā)送或接收敏感信息,潛在攻擊者也可訪問網(wǎng)絡(luò)時,就需要安全功能來實現(xiàn)數(shù)據(jù)機(jī)密性、數(shù)據(jù)完整性保護(hù)以及對等身份驗證。數(shù)據(jù)機(jī)密性保護(hù)敏感信息不遭竊取;數(shù)據(jù)完整性確保信息不受非法更改;對等身份驗證驗證信息是否由適當(dāng)?shù)姆剑ǘ皇莻窝b者)發(fā)送和接收。這些安全功能皆為當(dāng)今廣泛應(yīng)用的嵌入式系統(tǒng)所必需。[3]
另一個重要的安全功能是嵌入式系統(tǒng)的可用性。惡意程序經(jīng)常阻止嵌入式系統(tǒng)執(zhí)行功能,導(dǎo)致性能下降或完全拒絕服務(wù)(DoS)給合法用戶。嵌入式系統(tǒng)安全通常需要在其使用周期內(nèi)保護(hù)關(guān)鍵或敏感信息(代碼或數(shù)據(jù)),包括確保這些信息在使用周期結(jié)束后被正確擦除。安全存儲涉及保護(hù)嵌入式系統(tǒng)存儲設(shè)備中的信息,無論是系統(tǒng)外部還是內(nèi)部。內(nèi)容安全或數(shù)字版權(quán)管理(DRM)保護(hù)系統(tǒng)中使用數(shù)字內(nèi)容的權(quán)利,內(nèi)容提供商較為關(guān)注。最后,防篡改指即使設(shè)備被惡意入侵或者控制,也能確保安全性,并且可以在物理上或邏輯上進(jìn)行探測追溯。
3 安全機(jī)制
上面描述的基本安全功能通常使用三種不同的加密算法:對稱密碼、非對稱密碼和安全哈希算法來實現(xiàn)。
對稱密碼要求發(fā)送者使用密鑰來加密數(shù)據(jù)(被加密的數(shù)據(jù)通常稱為明文)并將加密的數(shù)據(jù)(通常稱為密文)傳輸給接收者。在接收到密文后,接收者使用相同的密鑰解密并重新生成明文。密文應(yīng)該具有這樣的特性,即第三方在沒有訪問密鑰的情況下很難推斷出明文。因此,在傳輸過程中保證了數(shù)據(jù)的機(jī)密性。對稱密碼的例子包括DES、3DES、AES和RC4。
MD5和SHA等安全哈希算法將任意消息轉(zhuǎn)換為唯一的固定長度值,從而為消息提供唯一的“指紋”。哈希函數(shù)通常用于構(gòu)造消息認(rèn)證碼(MACS),例如HMAC-SHA,它還包含一個密鑰,以防止篡改數(shù)據(jù)的對手通過重新計算哈希來避免檢測。
非對稱算法(也稱為公鑰算法)使用一對密鑰:其中一個密鑰鎖定數(shù)據(jù),而另一個密鑰解鎖數(shù)據(jù)。為給定收件人加密郵件只需要已知的公鑰,但解密只能使用收件人的私鑰,收件人應(yīng)對此保密。因此,使用私鑰f假設(shè)它是保密的)提供程序用戶或主機(jī)身份驗證。因此。數(shù)字簽名通常使用公鑰密碼和安全散列來構(gòu)造。用戶可以通過使用私鑰加密消息的哈希值來“數(shù)字簽名”:任何人都可以通過使用公鑰解密來驗證此簽名。[4]
非對稱密碼(如RSA、Diffie-Hellman等)依賴于使用計算量更大的數(shù)學(xué)函數(shù),如大整數(shù)的模冪運(yùn)算,因此比對稱密碼慢得多。對稱密碼通常用于加密大容量數(shù)據(jù),而非對稱密碼則用于通過公共網(wǎng)絡(luò)建立(傳輸)對稱密碼的密鑰。安全解決方案通常依賴于在安全協(xié)議中使用密碼算法組合的安全機(jī)制。各種安全技術(shù)和機(jī)制圍繞這些密碼算法而設(shè)計,以提供特定的安全服務(wù)。例如:
(1)安全通信協(xié)議(通常稱為安全協(xié)議)提供確保與嵌入式系統(tǒng)之間的安全通信通道的方法。IPSec和SSL是安全協(xié)議的流行示例,分別廣泛用于虛擬專用網(wǎng)(VPN)和安全Web事務(wù);
(2)數(shù)字證書提供了將身份與實體關(guān)聯(lián)起來的方法,而指紋識別和語音識別等生物識別技術(shù)則有助于最終用戶的身份識別。
數(shù)字簽名作為手寫簽名的電子等價物,既可以用來驗證數(shù)據(jù)源,也可以用來驗證其身份;
(3)數(shù)字版權(quán)管理(DRM)協(xié)議,如OpenPMP、ISMA和MO-SES,提供了安全框架,旨在保護(hù)應(yīng)用程序內(nèi)容免受未經(jīng)授權(quán)的使用。
安全存儲和安全執(zhí)行要求系統(tǒng)的體系結(jié)構(gòu)根據(jù)安全考慮進(jìn)行定制。簡單的例子包括使用專用硬件來阻止對內(nèi)存中受保護(hù)區(qū)域的非法訪問,對系統(tǒng)上執(zhí)行的固件和軟件進(jìn)行身份驗證,保護(hù)與給定應(yīng)用程序或進(jìn)程相關(guān)的代碼和數(shù)據(jù)的機(jī)密性和完整性,硬件和軟件技術(shù),以保持整個內(nèi)存層次結(jié)構(gòu)中數(shù)據(jù)的機(jī)密性和完整性,并在處理器中執(zhí)行加密代碼以防止總線探測等。
4 安全攻擊與對策
對電子和計算系統(tǒng)的各種攻擊表明,黑客很少利用精心設(shè)計的密碼算法來進(jìn)行攻擊。相反,黑客依賴于利用實現(xiàn)的軟件和硬件組件中的安全漏洞。因此,除非在整個設(shè)計周期中考慮安全性,否則嵌入式系統(tǒng)實現(xiàn)漏洞很容易被利用來繞過或削弱功能安全措施。
4.1 嵌入式系統(tǒng)安全漏洞解析
4.1.1 軟件
嵌入式系統(tǒng)中的軟件是安全漏洞的主要來源。三個因素,即復(fù)雜性、可擴(kuò)展性和連接性因素會導(dǎo)致軟件管理安全風(fēng)險。
(1)復(fù)雜性:軟件的復(fù)雜性隨著應(yīng)用功能的提升而提高,代碼行的增加會出現(xiàn)錯誤和安全漏洞的可能性。隨著嵌入式系統(tǒng)與互聯(lián)網(wǎng)的融合和更多代碼的加入,嵌入式系統(tǒng)軟件也變得越來越復(fù)雜。C和C++因效率高而成為非常流行的嵌入式系統(tǒng)編程語言,但缺乏安全性,難以防范例如類似緩沖區(qū)溢出等的簡單攻擊。[5]
(2)可擴(kuò)展性:現(xiàn)代軟件系統(tǒng),如Java和.NET,都是為擴(kuò)展而構(gòu)建的??蓴U(kuò)展主機(jī)接受更新或擴(kuò)展(移動代碼)以增量改進(jìn)系統(tǒng)功能。操作系統(tǒng)通過動態(tài)可加載的設(shè)備驅(qū)動和模塊支持可擴(kuò)展性。高級嵌入式系統(tǒng)被設(shè)計成可擴(kuò)展的(如JZME、Java卡),但可擴(kuò)展系統(tǒng)本質(zhì)上很難防止軟件漏洞作為不需要的擴(kuò)展被接入。[5]
(3)連接性:大量嵌入式系統(tǒng)連接到互聯(lián)網(wǎng),小故障的傳播可能導(dǎo)致大規(guī)模的安全漏洞。攻擊者不再需要對系統(tǒng)進(jìn)行物理訪問來啟動自動攻擊,只需利用易受攻擊軟件的漏洞。并利用網(wǎng)絡(luò)的傳播效應(yīng)即可彌漫全網(wǎng)。[5]
4.2 物理和側(cè)信道攻擊與防篡改硬件
除了軟件攻擊,還有物理和側(cè)信道攻擊,利用系統(tǒng)實現(xiàn)或其標(biāo)識屬性來破壞嵌入式系統(tǒng)的安全性。歷史上。其中許多攻擊被用來破壞智能卡等嵌入式系統(tǒng)的安全性。物理和側(cè)信道攻擊通常分為侵入性和非侵入性攻擊。侵人性攻擊包括進(jìn)入設(shè)備進(jìn)行觀察,操縱和干擾系統(tǒng)內(nèi)部。由于針對集成電路的入侵攻擊通常需要昂貴的設(shè)備,因此相對難以安裝和重復(fù)。侵入性攻擊的實例包括微探測和逆向工程。而非侵人性攻擊無須打開設(shè)備,僅需要初期投入,與侵入性攻擊相比更為廉價。非侵入性攻擊有多種形式,包括定時攻擊、功率分析攻擊、故障感應(yīng)技術(shù)和電磁分析攻擊等。
5 嵌入式安全處理體系結(jié)構(gòu)
以往的嵌入式系統(tǒng)只執(zhí)行單個或幾個固定的功能,但當(dāng)前的遠(yuǎn)程嵌入式系統(tǒng)可以執(zhí)行多種功能,還可以提供下載新軟件的功能,以便在使用現(xiàn)場而不是回到受控環(huán)境中,實現(xiàn)即時應(yīng)用或應(yīng)用更新。這無疑提高了嵌入式系統(tǒng)的靈活性和可用性,但也增加了被惡意攻擊的可能性。因此,嵌入式系統(tǒng)本身應(yīng)該提供所需的安全功能,實現(xiàn)安全防護(hù),抵御惡意攻擊,特別是對于資源受限的嵌入式系統(tǒng),其在網(wǎng)絡(luò)計算環(huán)境中更易面臨額外風(fēng)險。
安全嵌入式處理系統(tǒng)的體系結(jié)構(gòu)設(shè)計,應(yīng)基于不同的宏架構(gòu)模型,包括嵌入式通用處理器(EP)與特定于應(yīng)用程序的指令集處理器(ASIP)以及與處理器總線連接的自定義硬件加速器的EP等。其次,基本處理器參數(shù)應(yīng)詳細(xì)化指令集體系結(jié)構(gòu)和微體系結(jié)構(gòu)選項,用于在適當(dāng)?shù)那闆r下調(diào)整基本處理器。再次,安全處理功能要實現(xiàn)對自定義指令與硬件加速器的選擇。例如,選擇要通過自定義指令、硬件加速器或通用指令原語實現(xiàn)的功能。攻擊防御功能涉及嵌入式處理器和嵌入式系統(tǒng)設(shè)計中抗攻擊特性的選擇,可以同時防止軟件攻擊和物理攻擊,包括用于管理安全存儲器空間的增強(qiáng)存儲器管理單元、處理隔離架構(gòu)、用于阻止功率分析攻擊的附加冗余電路和故障檢測電路。[6]
6 結(jié)束語
目前,安全嵌入式系統(tǒng)設(shè)計在研究和普及部署方面還處于起步階段。盡管從歷史上看,各種安全問題都是在密碼學(xué)、網(wǎng)絡(luò)安全和計算機(jī)安全的背景下得以研究、解決,但新興網(wǎng)絡(luò)環(huán)境,尤其是嵌入式系統(tǒng)網(wǎng)絡(luò)環(huán)境帶來的問題迫使研究者們重新審視安全保護(hù)問題。網(wǎng)絡(luò)空間的范圍較大,而嵌入式系統(tǒng)范圍有限,其安全問題解決方案與網(wǎng)絡(luò)空間安全問題也會有所不同。但同時,嵌入式設(shè)備資源的有限性給實現(xiàn)安全水平預(yù)期也帶來了新的挑戰(zhàn)。架構(gòu)和設(shè)計方法的進(jìn)步將使推動嵌入式系統(tǒng)設(shè)計的進(jìn)步及系統(tǒng)應(yīng)用范圍的拓展。而為了實現(xiàn)嵌入式系統(tǒng)在應(yīng)用程序和環(huán)境要求范圍內(nèi)的安全性,研究者應(yīng)該基于嵌入式系統(tǒng)的基本安全功能,在不影響設(shè)備性能、體積、能耗、成本和可用性的前提下,為各種攻擊提供防御。
參考文獻(xiàn):
[1]趙波,倪明濤,石源,等,嵌入式系統(tǒng)安全綜述[J].武漢大學(xué)學(xué)報:理學(xué)版,2018,64(2):95-108.
[2]曹榮祥,陳雙龍,一種增強(qiáng)嵌入式系統(tǒng)安全性的安全防護(hù)技術(shù)[J].指揮控制與仿真,2007,29(6):112-115.
[3]何立民.物聯(lián)網(wǎng)時代嵌入式系統(tǒng)的安全性設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(7):82-83.
[4]郭福洲.嵌入式系統(tǒng)的安全啟動機(jī)制研究與實現(xiàn)[J].電子測試,2019,406(1):86-87.
[5]【美】戴維·克勒德馬赫,[美]邁克·克勒德馬赫,著,周慶國,姚琪,劉洋,等譯嵌入式系統(tǒng)安全[Ml.北京:機(jī)械工業(yè)出版社,2015.
[6]王明劍,謝永強(qiáng),王建新.嵌入式信息系統(tǒng)安全體系構(gòu)建與應(yīng)用[J].信息安全與通信保密,2005(7):203-206.
【通聯(lián)編輯:朱寶貴】