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