?嵌入式系統(tǒng)隔離硬件設計?的原理和方法
?嵌入式系統(tǒng)的隔離硬件設計?是指在嵌入式系統(tǒng)中通過硬件手段實現(xiàn)不同功能模塊之間的隔離,以確保系統(tǒng)的安全性和穩(wěn)定性。這種設計方法通過將系統(tǒng)劃分為不同的安全域,每個域都有自己的權限和內(nèi)存訪問限制,從而防止一個模塊的故障或攻擊影響到整個系統(tǒng)。
隔離硬件設計的基本原理和方法
?基于硬件的隔離?:嵌入式開發(fā)中,基于硬件的隔離是一種重要的安全措施。通過使用具有硬件隔離功能的微控制器,如賽普拉斯PSoC 64或多核處理器,可以將系統(tǒng)分為安全和非安全環(huán)境。例如,安全區(qū)域處理關鍵的外圍設備、內(nèi)存和功能,而非安全環(huán)境則是傳統(tǒng)的執(zhí)行環(huán)境?1。
?內(nèi)存保護單元(MPU)?:在許多安全應用程序中,內(nèi)存保護單元(MPU)被用來進一步分解應用程序,確保每個模塊只能訪問特定的內(nèi)存區(qū)域。這種機制可以有效防止一個模塊訪問或破壞其他模塊的數(shù)據(jù)?1。
隔離硬件設計的應用場景和優(yōu)勢
?應用場景?:隔離硬件設計廣泛應用于需要高安全性的場景,如醫(yī)療設備、電機控制、交通設備等。在這些應用中,隔離設計可以防止電流浪涌損壞設備或危害人員,同時允許數(shù)據(jù)或功率傳送?2。
?優(yōu)勢?:
?安全性?:通過將系統(tǒng)劃分為不同的安全域,每個域都有自己的權限和內(nèi)存訪問限制,可以有效防止一個模塊的故障或攻擊影響到整個系統(tǒng)。
?穩(wěn)定性?:隔離設計可以減少系統(tǒng)間的相互影響,提高系統(tǒng)的穩(wěn)定性和可靠性。
?靈活性?:基于硬件的隔離提供了更高的靈活性和可控性,使得系統(tǒng)在不同環(huán)境下都能保持穩(wěn)定運行?12。
談到安全性,應該在開發(fā)人員腦海中回蕩的關鍵概念是安全性始于隔離。開發(fā)人員需要將他們的應用程序隔離到不同的域中,每個域都有自己的權限并且只能訪問特定的內(nèi)存區(qū)域。在傳統(tǒng)的嵌入式系統(tǒng)中,許多應用程序的架構使得任何軟件模塊或組件都可以訪問整個內(nèi)存映射。如果黑客能夠訪問內(nèi)存中的單個模塊,他們就可以毫不費力地完全擁有該系統(tǒng)。
隔離背后的想法是將應用程序分解為單獨的安全域。如果黑客能夠訪問內(nèi)存中的一個區(qū)域,他們將無法訪問其他內(nèi)存區(qū)域。如果他們想要訪問,他們必須投入更多的時間和精力來弄清楚如何突破隔離屏障。在嵌入式系統(tǒng)中實現(xiàn)隔離的最好方法是實現(xiàn)基于硬件的隔離,它有幾種不同的形式,應該一起使用。
隔離工具 #1 – 處理器架構
首先,對于安全性至關重要的應用程序,嵌入式開發(fā)人員應該使用具有基于硬件隔離的微控制器將應用程序執(zhí)行環(huán)境分成兩個不同的環(huán)境; 安全和非安全環(huán)境。 安全區(qū)域處理對保護設備至關重要的外圍設備、內(nèi)存和功能。 非安全環(huán)境是傳統(tǒng)的、豐富的執(zhí)行環(huán)境。 在現(xiàn)代微控制器中,這種隔離通過兩種方式實現(xiàn),一種是使用賽普拉斯 PSoC 64 等多核處理器,另一種是使用 Arm 的 TrustZone 等單核隔離技術。
多核微控制器通過具有一個專用于安全處理環(huán)境和一個專用于非安全處理環(huán)境的微控制器內(nèi)核來實現(xiàn)基于硬件的隔離。另一方面,TrustZone 只是一個在安全處理環(huán)境和非安全處理環(huán)境之間切換的單核,TrustZone 確實需要幾個時鐘周期來在環(huán)境之間切換,但允許開發(fā)人員使用單個內(nèi)核。
1 引言
Internet的迅猛發(fā)展使信息共享的程度進一步提高,因而信息安全的問題也日益突出,這時唯一的解決方法只能是主動解決信息安全和網(wǎng)絡安全問題。目前國內(nèi)外采用最多的、最普遍的網(wǎng)絡安全措施是使用防火墻類軟件,但是防火墻類軟件本身存在兩大先天缺陷:其一是防火墻隔離的網(wǎng)絡還是基于TCP/IP協(xié)議來進行信息交換的,而TCP/IP 協(xié)議存在漏洞,它無法防止協(xié)議本身的漏洞;其二是防火墻的運行離不開操作系統(tǒng),操作系統(tǒng)和防火墻軟件都存在漏洞,因而不能阻止由這些漏洞而引起的網(wǎng)絡安全問題[1]。因此,開發(fā)相應的應用系統(tǒng)是必要的。本文在對已有的防火墻技術及物理隔離技術進行分析的基礎上,提出了帶緩沖區(qū)的雙通道實時開關技術,通過該技術所設計出的網(wǎng)絡隔離器能滿足實時數(shù)據(jù)的傳輸,同時本文提出了一種物理隔離環(huán)境下數(shù)據(jù)安全轉(zhuǎn)發(fā)的技術構思,該方案使得網(wǎng)絡隔離器有很好的安全性能。
2 物理隔離技術原理
2.1 簡介
物理隔離是指內(nèi)部網(wǎng)絡不得直接或間接地連接外部網(wǎng)絡即互聯(lián)網(wǎng)[2]。物理隔離技術通過中斷內(nèi)部網(wǎng)絡與外部網(wǎng)絡的連接,不支持TCP/IP 協(xié)議,不依賴于操作系統(tǒng),解決了目前網(wǎng)絡安全存在的根本性問題,即由于操作系統(tǒng)漏洞和TCP/IP 協(xié)議漏洞所帶來的安全問題,有效地防止了惡意代碼、病毒以及網(wǎng)絡入侵的發(fā)生,滿足了網(wǎng)絡安全的機密性、完整性、可用性、可控性和可審查性要求。
2.2 物理隔離技術
目前,國內(nèi)外普遍采用的物理隔離技術有: 單硬盤物理隔離卡和雙主板物理隔離技術。
2.2.1 單硬盤物理隔離卡
這種技術是將計算機的單個硬盤從物理層上分割為公共和安全兩個分區(qū),每個分區(qū)各自安裝一套操作系統(tǒng)。在操作中,用戶工作在安全狀態(tài)和公共狀態(tài)兩個互相排斥的操作系統(tǒng)環(huán)境下,從而實現(xiàn)內(nèi)外網(wǎng)的安全隔離。這種技術的缺點是不能傳輸實時數(shù)據(jù)。
2.2.2 雙主板物理隔離技術
兩塊主板之間通過非網(wǎng)絡方式的一個雙端口RAM進行數(shù)據(jù)的傳輸,雙端口RAM 分為兩個區(qū),第一個區(qū)是內(nèi)網(wǎng)客戶端向外網(wǎng)服務器單向傳輸數(shù)據(jù)的通道。第二個區(qū)是外網(wǎng)客戶端向內(nèi)網(wǎng)服務器單向傳輸數(shù)據(jù)時的通道。在平時內(nèi)外網(wǎng)是斷開的,雙端口RAM處于斷開狀態(tài)。當有數(shù)據(jù)要傳輸時,內(nèi)外網(wǎng)才通過雙端口RAM 進行數(shù)據(jù)傳輸[3]。
3 網(wǎng)絡隔離器技術原理
目前網(wǎng)絡隔離器的實時開關實現(xiàn)方式主要有基于SCSI 的開關技術和基于總線的開關技術兩種。
基于總線的實時開關技術的網(wǎng)絡隔離器采用雙端口靜態(tài)存儲器(Dual Port SRAM)配合基于獨立的ARM的控制電路,雙端口各自通過開關與獨立的計算機主機連接,如圖1所示。ARM作為獨立的控制電路保證雙端口靜態(tài)存儲器的每一端口上存在一個開關,且兩個開關不能同時閉合即K1×K2=0。
基于SCSI 開關技術的網(wǎng)絡隔離器和圖1相似,只是數(shù)據(jù)通道換為SCSI 硬盤接口,而存儲介質(zhì)使用的是SCSI 硬盤,控制單元使用專門設計的硬件電路板實現(xiàn)。

該系統(tǒng)的數(shù)據(jù)交換原理如下:以數(shù)據(jù)由外部網(wǎng)到內(nèi)部網(wǎng)的傳遞為例,首先外部主機將由外部網(wǎng)接收到的數(shù)據(jù)進行TCP/IP 協(xié)議和應用協(xié)議的剝離,將其還原為原始數(shù)據(jù),同時對數(shù)據(jù)進行完整性和安全性的審查;審查通過后,將安全的數(shù)據(jù)傳遞給交換設備,然后內(nèi)部主機接收到這批數(shù)據(jù),在對它們進行TCP/IP協(xié)議和應用協(xié)議的封裝后,把它們發(fā)送到內(nèi)部網(wǎng)。反之亦然。
以內(nèi)網(wǎng)接收電子郵件為例,當外網(wǎng)需要有數(shù)據(jù)到達內(nèi)網(wǎng)的時候,外部的服務器立即發(fā)起對隔離設備的非TCP/IP 協(xié)議的數(shù)據(jù)連接,隔離設備將所有的協(xié)議剝離,將原始的數(shù)據(jù)寫入存儲介質(zhì)。根據(jù)不同的應用,可能有必要對數(shù)據(jù)進行完整性和安全性檢查,如防病毒和惡意代碼等。
一旦數(shù)據(jù)完全寫入隔離設備的存儲介質(zhì),隔離設備立即中斷與外網(wǎng)的連接。轉(zhuǎn)而發(fā)起對內(nèi)網(wǎng)的非TCP/IP 協(xié)議的數(shù)據(jù)連接。隔離設備將存儲介質(zhì)內(nèi)的數(shù)據(jù)推向內(nèi)網(wǎng)。內(nèi)網(wǎng)收到數(shù)據(jù)后,立即進行TCP/IP 的封裝和應用協(xié)議的封裝,并交給應用系統(tǒng)。
這個時候內(nèi)網(wǎng)電子郵件系統(tǒng)就收到了外網(wǎng)的電子郵件系統(tǒng)通過隔離設備轉(zhuǎn)發(fā)的電子郵件。在控制臺收到完整的交換信號之后,隔離設備立即切斷隔離設備于內(nèi)網(wǎng)的直接連接。
如果這時,內(nèi)網(wǎng)有電子郵件要發(fā)出,隔離設備收到內(nèi)網(wǎng)建立連接的請求之后,建立與內(nèi)網(wǎng)之間的非TCP/IP 協(xié)議的數(shù)據(jù)連接。隔離設備剝離所有的TCP/IP 協(xié)議和應用協(xié)議,得到原始的數(shù)據(jù),將數(shù)據(jù)寫入隔離設備的存儲介質(zhì)。必要的話,對其進行防病毒處理和防惡意代碼檢查。然后中斷與內(nèi)網(wǎng)的直接連接??刂婆_收到信息處理完畢后,立即中斷隔離設備與外網(wǎng)的連接,恢復到完全隔離狀態(tài)。
每一次數(shù)據(jù)交換,隔離設備經(jīng)歷了數(shù)據(jù)的接受,存儲和轉(zhuǎn)發(fā)三個過程。由于這些規(guī)則都是在內(nèi)存和內(nèi)核里完成的,因此速度上有保證,可以達到100%的總線處理能力[4]。
4 隔離硬件的設計
網(wǎng)絡隔離器中實現(xiàn)數(shù)據(jù)交換的過程是通過對隔離硬件上的存儲芯片的讀寫來完成的。存儲芯片作為內(nèi)外網(wǎng)的數(shù)據(jù)交換存儲區(qū),其訪問設計方案決定了網(wǎng)絡隔離器的數(shù)據(jù)交換速度。為了滿足數(shù)據(jù)交換速度的要求,采用了帶緩沖區(qū)的雙通道實時開關技術。
雙端口靜態(tài)存儲器劃分為兩個存儲區(qū)域A、B。
外部主機通過K1只能向A中寫入數(shù)據(jù)或從B中讀出數(shù)據(jù),而內(nèi)部主機通過K2 只能從A 中讀出數(shù)據(jù)或向B 中寫入數(shù)據(jù),K1 和K2 的約束為K1a×K2c=0 且K1b×K2d=0。如此一來就將雙向數(shù)據(jù)通道變?yōu)榱藘蓚€單向的數(shù)據(jù)通道。這樣的設計使得在原有設計中內(nèi)外部處理單元一方對隔離硬件進行讀寫操作,而另一方就無法訪問隔離硬件的情況有所改善,它允許雙方同時進入讀讀或?qū)憣懙臓顟B(tài)。但是在這種結構中,存在著這樣的讀寫沖突問題,例如當外部主機通過K1 向A 寫入數(shù)據(jù)時,內(nèi)部主機無法從A 中讀出數(shù)據(jù),或者當內(nèi)部主機從A 中讀出數(shù)據(jù)時,外部主機 不能向A 寫入數(shù)據(jù),對B 的操作也存在類似的情況。因此提出了帶緩沖區(qū)的雙通道實時開關技術。

將A、B 存儲區(qū)域劃分為N 個相等的小塊存儲區(qū)ai、bi(1≤i≤N),K1 和K2 的約束為K1ai×K2ai=0且K1bi×K2bi=0。
這樣的改進使得當內(nèi)外部主機中的一方對ai 或bi 進行訪問時,另一方仍可以對aj或bj(i≠j)進行訪問,減少了發(fā)生讀寫沖突的幾率,提高了數(shù)據(jù)通道的效率,從而實現(xiàn)了提高內(nèi)部網(wǎng)絡和外部網(wǎng)絡間數(shù)據(jù)的交換速度的目的。
5 物理隔離環(huán)境下數(shù)據(jù)安全轉(zhuǎn)發(fā)方案的設計
物理隔離環(huán)境下數(shù)據(jù)安全轉(zhuǎn)發(fā)方案的設計目標是要在內(nèi)外網(wǎng)隔離的前提下實現(xiàn)安全、動態(tài)、實時的數(shù)據(jù)交換。
數(shù)據(jù)存儲轉(zhuǎn)發(fā)的構架由外網(wǎng)處理單元、數(shù)據(jù)轉(zhuǎn)發(fā)區(qū)、內(nèi)網(wǎng)處理單元、物理隔離模塊、通斷控制電路等功能部分組成。其中:
(1) 外網(wǎng)處理單元負責對外網(wǎng)數(shù)據(jù)的確定、采集工作,由內(nèi)網(wǎng)用戶需求而定,例如指定訪問目標的網(wǎng)站等。
(2) 數(shù)據(jù)轉(zhuǎn)發(fā)區(qū)負責內(nèi)外網(wǎng)數(shù)據(jù)的暫存、轉(zhuǎn)發(fā)工作。在數(shù)據(jù)交換的過程中,內(nèi)網(wǎng)處理單元把數(shù)據(jù)導出到內(nèi)網(wǎng)轉(zhuǎn)發(fā)區(qū)或者外網(wǎng)處理單元把數(shù)據(jù)導入到外網(wǎng)轉(zhuǎn)發(fā)區(qū),而內(nèi)網(wǎng)轉(zhuǎn)發(fā)區(qū)與外網(wǎng)轉(zhuǎn)發(fā)區(qū)是否有數(shù)據(jù)交換由隔離硬件根據(jù)用戶的轉(zhuǎn)發(fā)權限決定。用戶沒有數(shù)據(jù)轉(zhuǎn)發(fā)的權限時,外網(wǎng)轉(zhuǎn)發(fā)區(qū)與內(nèi)網(wǎng)轉(zhuǎn)發(fā)區(qū)是完全隔斷的。
(3) 內(nèi)網(wǎng)處理單元按照預先設定的安全策略對數(shù)據(jù)進行掃描分析、篩選過濾、病毒檢測等處理。來自于外網(wǎng)數(shù)據(jù)或發(fā)往外網(wǎng)的數(shù)據(jù),如果違反既定安全規(guī)則就被阻止進出。
(4) 物理隔離硬件實現(xiàn)在物理傳導上使內(nèi)外網(wǎng)絡隔斷,在物理上隔斷內(nèi)部網(wǎng)與外部網(wǎng)。物理隔離硬件被設置在最低的物理層上,內(nèi)外網(wǎng)的數(shù)據(jù)轉(zhuǎn)發(fā)由物理隔離硬件操縱通斷控制電路來執(zhí)行,在同一時段內(nèi),物理隔離硬件只能接受來自內(nèi)網(wǎng)處理單元或者外網(wǎng)處理單元轉(zhuǎn)發(fā)數(shù)據(jù)的請求,不能同時接收來自內(nèi)網(wǎng)處理單元和外網(wǎng)處理單元轉(zhuǎn)發(fā)數(shù)據(jù)的請求,使內(nèi)網(wǎng)轉(zhuǎn)發(fā)區(qū)和外網(wǎng)轉(zhuǎn)發(fā)區(qū)雙向進行數(shù)據(jù)轉(zhuǎn)發(fā)操作。而且它的失效只會影響內(nèi)外網(wǎng)數(shù)據(jù)交換的性能,而不會影響內(nèi)網(wǎng)的安全性。
(5) 通斷控制電路負責控制內(nèi)網(wǎng)轉(zhuǎn)發(fā)區(qū)與外網(wǎng)轉(zhuǎn)發(fā)區(qū)的線路連接,同時控制對數(shù)據(jù)轉(zhuǎn)發(fā)區(qū)中的數(shù)據(jù)進行轉(zhuǎn)發(fā)或清除。通常,只有授予數(shù)據(jù)轉(zhuǎn)發(fā)權限的用戶和角色,在通過物理隔離硬件檢查后認定數(shù)據(jù)轉(zhuǎn)發(fā)權限與對象列表中的權限相符的情況下,通斷控制電路才會連通內(nèi)外轉(zhuǎn)發(fā)區(qū),并按其數(shù)據(jù)流向?qū)嵤?shù)據(jù)的轉(zhuǎn)發(fā)工作。