本站小編為你精心準(zhǔn)備了CAN總線通信系統(tǒng)模型分析參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
隨著信息化進(jìn)程的高速發(fā)展,在人們的工作、生活中電子產(chǎn)品無處不在,智能化的設(shè)備在給人們帶來便利的同時也帶來了信息安全隱患。特別是無線通信的普及,愈發(fā)為信息的泄露與傳遞提供了條件。can總線是汽車電子系統(tǒng)中最基本的通信總線,汽車上的電子模塊通常以分布式的方式掛接在CAN總線上。總線上的每個節(jié)點都具備接收任何其他節(jié)點所的信息的能力,同時也具備向任何一個節(jié)點發(fā)送指令的能力。當(dāng)汽車電子系統(tǒng)中某些CAN節(jié)點的MCU與無線模塊相結(jié)合的時候,就可能將整個電子系統(tǒng)的工作狀態(tài)通過無線的方式對外發(fā)送。外界亦可通過無線接口控制該CAN節(jié)點,并由該CAN節(jié)點向總線上發(fā)送數(shù)據(jù),繼而干擾總線上各節(jié)點的正常通信,甚至對其他節(jié)點乃至總控制器進(jìn)行控制。本文設(shè)計了一套基于Wi-Fi后門控制的CAN總線通信系統(tǒng)模型,用于分析和研究基于CAN總線的系統(tǒng)及相關(guān)的后門控制。在該系統(tǒng)中,上位機(jī)界面控制的“主機(jī)”CAN節(jié)點向CAN總線上發(fā)送指令,“從機(jī)”CAN節(jié)點接收指令后按指令執(zhí)行對電機(jī)的控制。在此基礎(chǔ)上給從機(jī)添加基于Wi-Fi的無線收發(fā)模塊,并通過更改從機(jī)中的固件,使其在執(zhí)行任務(wù)的同時通過Wi-Fi向外發(fā)送自身運行狀態(tài)、并可接收其他裝置如手機(jī)等通過Wi-Fi發(fā)來的特殊指令,從而建立了基于Wi-Fi后門控制的CAN總線通信系統(tǒng)模型。
1相關(guān)知識與背景
1.1汽車電子系統(tǒng)中的CAN總線通信控制器局域網(wǎng)CAN是由ISO定義的串行通信總線。它最初出現(xiàn)在20世紀(jì)80年代末的汽車工業(yè)里,它的基本設(shè)計規(guī)范要求有高的位速率、高抗電磁干擾性,而且具有錯誤檢測能力。由于CAN串行通信總線具有這些特性,它很自然地在汽車制造業(yè)以及航空工業(yè)中得到廣泛應(yīng)用。在汽車電子系統(tǒng)中,每個CAN節(jié)點都有獨立的CAN控制器,各控制器分布在車身的不同位置。MCU能夠采集傳感器處的數(shù)據(jù),或是向執(zhí)行部件發(fā)送指令。各節(jié)點的信號都在CAN總線上傳輸,如圖1所示。對于未做信息安全處理的CAN總線系統(tǒng),任何一個節(jié)點都能夠接收其他節(jié)點在總線上的信息,同時也可以向所有節(jié)點廣播幀信號。這也就意味著針對通信環(huán)節(jié)的偵聽、干擾以及非法篡改等攻擊具備理論可行性。
1.2基于Wi-Fi的“透傳”技術(shù)Wi-Fi作為目前最成熟、最好的無線網(wǎng)絡(luò)技術(shù),在人們的日常生活中已十分常見。無線、高速率、方便快捷的特點博得了許多用戶和開發(fā)人員的青睞。隨著家用無線路由器、車載Wi-Fi、手機(jī)平板電腦上Wi-Fi熱點的普及,帶有Wi-Fi接口的產(chǎn)品、工具有了越來越多的應(yīng)用場合。隨著集成電路設(shè)計業(yè)的飛速發(fā)展以及嵌入式技術(shù)的普及,許多新產(chǎn)品將Wi-Fi的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層以及傳輸層的功能集成在一顆芯片中,或?qū)⑵淠K化,令其具備“透傳”功能。如圖2所示,用戶只要將待傳輸?shù)臄?shù)據(jù)碼流送入發(fā)送端,便可從接收端直接讀取數(shù)據(jù)。而傳輸過程中的端口號配置、尋址、數(shù)據(jù)打包校驗、編碼解析等過程幾乎不需要用戶參與控制。“透傳”技術(shù)的應(yīng)用大大簡化了開發(fā)和調(diào)試過程,Wi-Fi接口的模塊化使其成為方便實用的嵌入式工具。
2模型設(shè)計
2.1系統(tǒng)模型的目標(biāo)需求為了盡可能準(zhǔn)確地反映后門通信系統(tǒng)的特點,并且為系統(tǒng)測試和研究提供完備的軟硬件平臺環(huán)境,該系統(tǒng)模型需滿足以下特點:首先,一套完整的通信系統(tǒng)應(yīng)能夠?qū)崿F(xiàn)信息傳遞,在該模型中上位機(jī)發(fā)出的指令能通過主控制器傳遞到從控制器中,并對受控單元部件進(jìn)行控制。其次,后門控制功能在不影響正常通信的前提下,系統(tǒng)能夠向外界發(fā)送自身的運行狀態(tài)等相關(guān)信息,并且發(fā)送信息的方式具有一定的隱蔽性。最后,該系統(tǒng)能夠接收外界發(fā)來的指令,并且使得整個系統(tǒng)的功能偏離正常功能。基于上述要求,本文從以下幾點出發(fā),設(shè)計搭建了集CAN總線物理傳輸、數(shù)據(jù)鏈路調(diào)試、控制器固件開發(fā)、上位機(jī)界面設(shè)計、受控單元運行監(jiān)測、Wi-Fi后門通信為一體的系統(tǒng)模型。第一,該模型具有符合CAN總線通信協(xié)議的物理層硬件,能夠保障CAN總線信號的正常傳輸;第二,具備CAN節(jié)點模型,即系統(tǒng)中包括可以充當(dāng)主機(jī)節(jié)點、從機(jī)節(jié)點的控制器單元,以便模擬基于CAN總線的系統(tǒng)在收發(fā)數(shù)據(jù)時的狀態(tài);第三,具備完整的嵌入式固件開發(fā)環(huán)境以及相關(guān)函數(shù)庫,以支持測試和研究人員編寫調(diào)試測試用例、開發(fā)基于該平臺的仿真固件;第四,具備基于PC的上位機(jī)界面及開發(fā)環(huán)境,用以模擬可視化的人機(jī)交互界面;第五,具備硬件受控對象,能夠真實反映系統(tǒng)通過CAN總線的控制效果;第六,具有高普及率的Wi-Fi后門通信接口,方便與平板電腦、手機(jī)建立連接,接受其控制。
2.2系統(tǒng)結(jié)構(gòu)如圖3所示,系統(tǒng)由上位機(jī)、主控制器、從控制器、受控單元、后門接口以及后臺控制器組成。上位機(jī)可提供人機(jī)交互界面,便于測試研究人員發(fā)出控制指令;主控制器對上位機(jī)發(fā)來的指令進(jìn)行處理后轉(zhuǎn)換成符合CAN總線通信協(xié)議的數(shù)據(jù),又發(fā)送給從控制器;從控制器對CAN總線上收到的數(shù)據(jù)進(jìn)行解析,按照預(yù)設(shè)的指令集控制受控單元執(zhí)行相應(yīng)的任務(wù),與此同時將自身運行狀態(tài)等信息編碼后發(fā)送給后門接口;后門接口將從控制器發(fā)來的信息轉(zhuǎn)換為Wi-Fi信號向外發(fā)送;攻擊測試人員能夠通過后臺控制器接收從控制器發(fā)出的信息,并發(fā)送特殊指令以改變從控制器的工作狀態(tài)。
3硬件電路實現(xiàn)
3.1主控制器節(jié)點電路主控制器節(jié)點的硬件電路如圖4所示,主要包括8051型MCU、串口轉(zhuǎn)USB芯片、LED七段數(shù)碼管以及CAN總線接口。MCU的UART接口與串口USB芯片PL2303相連,從而使UART信號轉(zhuǎn)換為USB信號,與上位機(jī)建立通路;MCU的P1.0~P1.3接口與CAN總線接口轉(zhuǎn)換模塊MCP2515相連,通過由固件控制I/O實現(xiàn)的四線制SPI接口,在CAN總線上收發(fā)數(shù)據(jù)。P0與P2兩組IO接口分別與七段數(shù)碼管的段選和位選相連,數(shù)碼管用于顯示主控制器收到上位機(jī)發(fā)出的指令號。MCU片上資源配置:定時器1用于選擇串口波特率,配置為硬件自動加載模式,從而避免了軟件加載帶來的時間誤差。串口配置為10位數(shù)碼發(fā)送,包括8位數(shù)據(jù)、1位起始位和1為結(jié)束位;波特率為4800,當(dāng)接收到第9位數(shù)據(jù)時向SBUF中載入數(shù)據(jù),并產(chǎn)生中斷請求。
3.2從控制器節(jié)點電路從控制器節(jié)點電路如圖5所示,主要包括8051型MCU、CAN總線接口、LED七段數(shù)碼管以及串口-Wi-Fi接口。MCU的P1.0~P1.3接口、P3.3接口與CAN總線接口轉(zhuǎn)換模塊MCP2515相連,通過由Firmware控制P1.0~P1.3實現(xiàn)的四線制SPI接口,在CAN總線上收發(fā)數(shù)據(jù),P3.3作為MCP2515收到數(shù)據(jù)后向MCU發(fā)出的外部中斷申請。P1.4~P1.7接口作為步進(jìn)電機(jī)控制接口與受控單元模塊相連。P0與P2兩組IO接口分別與七段數(shù)碼管的段選和位選相連,數(shù)碼管用于顯示當(dāng)前從機(jī)所執(zhí)行的指令號。MCU的串口與Wi-Fi模塊USR-Wi-Fi-232-D2相連,作為后門接口的通信接口。MCU片上資源配置:定時器1同樣用于選擇串口波特率。定時器2配置TH0、TL0協(xié)同作為16位定時器,用于產(chǎn)生控制步進(jìn)電機(jī)的脈沖間隔。P3.3引入的外部中斷將提醒MCU讀取CAN總線上發(fā)來的數(shù)據(jù);串口觸發(fā)的中斷將提醒MCU讀取Wi-Fi后門模塊傳來的數(shù)據(jù);Timer0定時中斷函數(shù)將改變步進(jìn)電機(jī)的電平控制信號。
3.3受控單元受控單元硬件電路如圖6所示,主要包括光耦隔離芯片、電機(jī)驅(qū)動芯片、續(xù)流二極管保護(hù)電路、42HS4004A4型兩相四線步進(jìn)電機(jī)以及轉(zhuǎn)速傳感器數(shù)顯模塊。從控制器的步進(jìn)電機(jī)控制接口與光耦隔離芯片的輸入端相連,光耦隔離芯片的輸出端與電機(jī)驅(qū)動芯片的輸入端相連,電機(jī)驅(qū)動芯片的輸出端通過續(xù)流二極管保護(hù)電路,分別于步進(jìn)電機(jī)的兩相四個電極相連。數(shù)顯傳感器用于測量和顯示電機(jī)的轉(zhuǎn)速。
4軟件代碼實現(xiàn)
本套系統(tǒng)模型中的軟件主要包括運行在上位機(jī)界面軟件、運行在主控制器和從控制器MCU中的固件(也稱嵌入式軟件),以及運行在后臺控制器上的應(yīng)用軟件。
4.1上位機(jī)軟件上位機(jī)軟件在Delphi環(huán)境下開發(fā),界面上顯示對電機(jī)基本操作的功能按鈕。通過調(diào)用后臺API、控制PC串行端口,通過USB線向主控制器發(fā)送指令。程序中所調(diào)用的資源層次如圖7所示。如圖8所示,上位機(jī)界面主要實現(xiàn)兩類功能:上位機(jī)通過串行總線接口與主控制器建立連接、上位機(jī)向主控制器發(fā)送控制電機(jī)的指令。其中上位機(jī)與主控制器建立連接的過程包括打開端口、配置端口、關(guān)閉端口等操作;對電機(jī)的控制指令則包括啟動/停止、加減速、復(fù)位等;與此同時,上位機(jī)界面上也將顯示端口連接狀態(tài)、電機(jī)轉(zhuǎn)速檔位等信息。上位機(jī)界面中“連接”按鍵所觸發(fā)的軟件流程如圖9所示,包括確立端口號(返回端口指針)、打開對應(yīng)端口、對端口進(jìn)行配置(配置項包括波特率、傳輸數(shù)據(jù)長度、奇偶校驗、停止位等)以及函數(shù)執(zhí)行完畢后返回結(jié)果。控制指令所觸發(fā)的事件函數(shù)中需要的參數(shù)有端口指針、數(shù)據(jù)地址指針、待發(fā)送數(shù)據(jù)字節(jié)數(shù)等。
4.2主控制器固件主控制器完成的主要任務(wù)包括從上位機(jī)的串行數(shù)據(jù)接口中接收數(shù)據(jù),并將數(shù)據(jù)解析、編碼后發(fā)送到CAN總線上。上位機(jī)和主控制器的信息交互指令編碼如表1所示。主控制器的固件運行流程如圖10所示,其中“各模塊初始化”包括CAN模塊配置、串口初始化配置、定時器初始化配置。完成配置后進(jìn)入主循環(huán),主循環(huán)輪詢sRxflag標(biāo)志位,當(dāng)sRxflag為1時說明串口收到來自上位機(jī)發(fā)來的指令。在解析數(shù)據(jù)生成指令碼的過程中,按ASCII碼解析并為每條指令分配號。接下來將對應(yīng)的指令號發(fā)送到CAN總線上,同時將發(fā)出的指令編號顯示在LED七段數(shù)碼管上。最后將sRxflag清零,再次進(jìn)入輪詢。sRxflag的置位是在串口引起的中斷函數(shù)中進(jìn)行的,并從Buffer中讀取數(shù)據(jù)。
4.3從控制器固件從控制器完成的主要任務(wù)有:從CAN總線上讀取主控制器發(fā)來的指令、將接收到的指令發(fā)送給后門接口、按照指令控制電機(jī)運行,以及接收后臺控制器發(fā)來的特殊指令并切換到特定的狀態(tài)。從控制器的固件運行流程如圖11所示,其中各模塊初始化包括CAN模塊配置、串口初始化配置、電機(jī)及定時器初始化配置。進(jìn)入主循環(huán)后首先判別gRxflag標(biāo)志位,當(dāng)其為1時表明從控制器收到CAN總線上發(fā)來的數(shù)據(jù),MCU讀取主控制器發(fā)來的數(shù)據(jù)后直接轉(zhuǎn)發(fā)至串口。MCU對指令做解析之后判斷后門是否處于開啟狀態(tài),若后門處于開啟狀態(tài),則從控制器LED數(shù)碼管中顯示異常的指令碼,若后門處于正常狀態(tài),從控制器LED顯示正常的指令碼,對電機(jī)執(zhí)行正常操作,然后將執(zhí)行結(jié)果發(fā)送給后門接口。接下來將gRxflag清零。判斷sRxflag標(biāo)志位,若其為1,則說明收到了后臺控制器發(fā)來的指令,對指令解析后,判斷是否要執(zhí)行后門開啟操作,若需要開啟,則修改后門狀態(tài)標(biāo)志位,否則執(zhí)行其他操作。最后向串口發(fā)送執(zhí)行結(jié)果,清除sRxflag,進(jìn)入下一輪循環(huán)中。
4.4后臺控制器界面后臺控制器界面是運行在基于Android系統(tǒng)的手機(jī)、平板電腦或其他移動終端上的APP軟件。第一,以可視化界面的形式向用戶展示后臺控制器從Wi-Fi接口收到的信息;第二,能夠給用戶提供輸入待發(fā)送數(shù)據(jù)的窗口,用以向從控制器發(fā)送相關(guān)指令;第三,能夠為用戶提供配置工作模式、IP地址、端口號的機(jī)制。網(wǎng)絡(luò)中有許多開放的調(diào)試工具和資源可供選擇使用,本套系統(tǒng)模型中采用Android手機(jī)作為后臺控制器,網(wǎng)絡(luò)調(diào)試助手作為后臺控制器界面,實現(xiàn)對從控制器的監(jiān)控。圖12中展示了本套模型中運行于Android手機(jī)上的網(wǎng)絡(luò)調(diào)試助手界面。
5系統(tǒng)模型運行效果
正常控制運行狀態(tài)下,操作人員通過上位機(jī)界面向系統(tǒng)發(fā)出開啟、加速、減速、復(fù)位、停止等指令,電機(jī)按照上述指令運行;轉(zhuǎn)速傳感器上顯示當(dāng)前電機(jī)的轉(zhuǎn)速;主控制器、從控制器的LED七段數(shù)碼管上分別顯示主控制器收到的指令號以及從控制器正在執(zhí)行的指令號。后門控制異常狀態(tài)下,后門Wi-Fi接口模塊上電,后臺控制器與Wi-Fi接口建立連接;運行后臺控制器上的APP軟件(網(wǎng)絡(luò)調(diào)試助手),可在上位機(jī)發(fā)送指令時對系統(tǒng)進(jìn)行監(jiān)控;通過后臺控制器對從控制器發(fā)送特殊指令,使系統(tǒng)進(jìn)入異常狀態(tài),此時從控制器雖能接收到主控制器發(fā)送的指令,但無法控制電機(jī)運轉(zhuǎn),LED七段數(shù)碼管上顯示的指令號也與主機(jī)所發(fā)送的指令不符;當(dāng)通過后臺控制器對從控制器發(fā)送解鎖指令,系統(tǒng)恢復(fù)正常運行狀態(tài)。運行在異常狀態(tài)下的模型如圖14所示。
6結(jié)束語
本套系統(tǒng)模型完整、真實地展示了CAN總線通信、控制系統(tǒng)工作時的狀態(tài),并且成功實現(xiàn)了后臺控制器通過Wi-Fi無線通信接口對系統(tǒng)中CAN節(jié)點的監(jiān)控,揭示出了基于Wi-Fi后門的CAN總線通信系統(tǒng)中可能存在的問題與信息安全隱患。與此同時,該系統(tǒng)模型中所采用的技術(shù)、開發(fā)環(huán)境、測試設(shè)備、受控對象等都可為與后門相關(guān)的信息安全課題提供相關(guān)的實驗對象、研究工具以及測試平臺。
作者:張永華 高宏玲 楊玚 尹文婷 單位:工業(yè)和信息化部計算機(jī)與微電子發(fā)展研究中心