隨著WWW 的不斷發(fā)展,人們對(duì)以IP 網(wǎng)絡(luò)為基礎(chǔ)的Internet 應(yīng)用提出了更高的需求,將來(lái)的Internet 必將實(shí)現(xiàn)“利用IP 技術(shù)傳輸控制行為(Action over IP)”,。在工業(yè)控制領(lǐng)域怎樣實(shí)現(xiàn)儀器儀表的遠(yuǎn)程數(shù)據(jù)采集,,實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)互連及遠(yuǎn)程監(jiān)控成為技術(shù)的關(guān)鍵。因此需要一種合理的通訊模式來(lái)實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸[1],。
在本課題中,,通過(guò)SMTP協(xié)議的方式提供了一種新的嵌入式遠(yuǎn)程通訊模式。即在ARM處理器中實(shí)現(xiàn)SMTP協(xié)議,,并通過(guò)雙絞線連接到Internet上,。在該平臺(tái)上開(kāi)發(fā)的遠(yuǎn)程控制設(shè)備或儀器儀表實(shí)現(xiàn)了通過(guò)Internet進(jìn)行數(shù)據(jù)的遠(yuǎn)程傳輸,在任意一臺(tái)上網(wǎng)的計(jì)算機(jī)上都可以通過(guò)Internet對(duì)其進(jìn)行遠(yuǎn)程監(jiān)視和控制,。該方式對(duì)于無(wú)人值守的工,、民用控制及分布式水、電,、氣,、環(huán)境等遠(yuǎn)程監(jiān)控有普遍的意義和實(shí)際的應(yīng)用價(jià)值。
項(xiàng)目中選擇了基于ARM體系結(jié)構(gòu)的32位微處理器,,介紹了模塊的各組成部分,,包括基于ARM的硬件結(jié)構(gòu)模型、軟件結(jié)構(gòu),、SMTP的基本結(jié)構(gòu)及其運(yùn)行機(jī)制,。并詳細(xì)分析了ARM系統(tǒng)中嵌入式SMTP軟件模塊的具體實(shí)現(xiàn)和調(diào)試過(guò)程。
1. 系統(tǒng)整體結(jié)構(gòu)
在系統(tǒng)中,,將SMTP服務(wù)器引入到ARM的平臺(tái)上實(shí)現(xiàn)嵌入式SMTP服務(wù)器(Embedded SMTP Server),。在此軟硬件系統(tǒng)基礎(chǔ)上開(kāi)發(fā)控制設(shè)備及儀表,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,,SMTP技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備,。嵌入式SMTP系統(tǒng)與傳統(tǒng)SMTP Server相比,簡(jiǎn)化了協(xié)議結(jié)構(gòu),,將信息采集和信息發(fā)布都集成到現(xiàn)場(chǎng)的測(cè)控設(shè)備中,。由于SMTP是Internet中跨平臺(tái)的標(biāo)準(zhǔn)通信協(xié)議,,內(nèi)嵌于設(shè)備的SMTP 服務(wù)器可以接收任何標(biāo)準(zhǔn)郵件發(fā)送工具發(fā)出的E-mail指令和數(shù)據(jù)。同時(shí)由于SMTP技術(shù)的開(kāi)放性和獨(dú)立平臺(tái)特性,,大大降低了軟件系統(tǒng)和通信系統(tǒng)的設(shè)計(jì),、維護(hù)工作量,節(jié)省了人員培訓(xùn)費(fèi)用等,,提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平,。
1.1系統(tǒng)的硬件結(jié)構(gòu)
系統(tǒng)硬件的核心部件,由運(yùn)行嵌入式操作系統(tǒng)的嵌入式微處理器系統(tǒng)構(gòu)成,,在嵌入式操作系統(tǒng)之上運(yùn)行著系統(tǒng)的核心軟件,。由于ARM處理器技術(shù)成熟,市場(chǎng)占有率高,,且成本急劇下降,。從工控角度出發(fā),我們選用MOTOROLA基于ARM 內(nèi)核的MX9328MX1,。該芯片是一款基于ARM9T芯片,。它一方面具有ARM 處理器的低功耗、高性能等優(yōu)點(diǎn),;同時(shí)又具有豐富的片上資源,,非常適合嵌入式產(chǎn)品的開(kāi)發(fā)。
在硬件系統(tǒng)中包含實(shí)現(xiàn)SMTP通信功能的微處理器,,它可以和前端的應(yīng)用系統(tǒng)直接集成在一起,,也可以通過(guò)現(xiàn)場(chǎng)總線與應(yīng)用系統(tǒng)相連。包括:8M 的FLASH 存儲(chǔ)器用來(lái)存儲(chǔ)實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核,、TCP/IP 協(xié)議棧,、各種控制程序及其他并行模塊;32M的SDRAM存儲(chǔ)器供系統(tǒng)運(yùn)行時(shí)使用,;以太網(wǎng)接口實(shí)現(xiàn)與Internet/Intranet 連接,;現(xiàn)場(chǎng)總線擴(kuò)展控制模塊提供現(xiàn)場(chǎng)一定范圍內(nèi)設(shè)備的分布控制;通用IO口控制模塊等,。其硬件結(jié)構(gòu)圖如圖1 所示[2],。
圖1: 嵌入式SMTP遠(yuǎn)程控制平臺(tái)硬件結(jié)構(gòu)
考慮到性價(jià)比,系統(tǒng)的硬件結(jié)構(gòu)根據(jù)應(yīng)用環(huán)境的不同進(jìn)行調(diào)整,,硬件資源也很有限,。實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP 協(xié)議棧,、各種應(yīng)用程序都必須寫(xiě)入到FLASH中并在運(yùn)行時(shí)調(diào)入到SDRAM 中運(yùn)行,,這樣對(duì)軟件系統(tǒng)提出了較高的要求。
1.2系統(tǒng)軟件結(jié)構(gòu)
整個(gè)系統(tǒng)的軟件系統(tǒng)包括五個(gè)部分:①嵌入式操作系統(tǒng);②虛擬文件系統(tǒng),;③SMTP引擎,;④配置模塊;⑤安全模塊,;⑥控制程序接口模塊,。
嵌入式操作系統(tǒng)選用Linux,作為系統(tǒng)的軟件基礎(chǔ),,其優(yōu)異的跨平臺(tái)移植能力,、開(kāi)放的源代碼、配置的靈活性為開(kāi)發(fā)提供了便利,。內(nèi)置的TCP/IP協(xié)議??墒褂脩艨焖俚拈_(kāi)發(fā)出應(yīng)用層協(xié)議的程序。
Linux上的虛擬文件系統(tǒng)在FLASH及SDRAM的基礎(chǔ)上建立類似于磁盤(pán)的使用環(huán)境,。虛擬文件系統(tǒng)使用數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)文件大小、修改時(shí)間等信息,。通過(guò)虛擬文件系統(tǒng)將系統(tǒng)中所需的控制程序以及配置文本等以文件形式存儲(chǔ)于系統(tǒng)芯片上,。
SMTP引擎負(fù)責(zé)響應(yīng)用戶的請(qǐng)求,通過(guò)應(yīng)用程序接口使用戶遠(yuǎn)程控制設(shè)備的動(dòng)作,,臨界值狀態(tài)報(bào)告及定期向用戶報(bào)告工作狀態(tài),。
配置模塊使系統(tǒng)管理員可以遠(yuǎn)程使用郵件的方式設(shè)置設(shè)備的參數(shù),在系統(tǒng)啟動(dòng)中定義的配置環(huán)境變量包括設(shè)備的臨界值,,狀態(tài)報(bào)告周期,,Socket端口等網(wǎng)絡(luò)參數(shù),設(shè)備的啟動(dòng)停止時(shí)間,,工作周期等,。
網(wǎng)絡(luò)遠(yuǎn)程設(shè)備的配置和控制信息的訪問(wèn)是安全保護(hù)的重點(diǎn)。安全模塊通過(guò)在服務(wù)器上定義安全域和對(duì)每個(gè)安全域定義的用戶名/密碼實(shí)現(xiàn)對(duì)敏感信息的保護(hù),。還可以對(duì)請(qǐng)求控制動(dòng)作及數(shù)據(jù)采取加密措施實(shí)現(xiàn)安全保護(hù)功能,。系統(tǒng)主要通過(guò)ESMTP來(lái)實(shí)現(xiàn)保護(hù)措施。ESMTP為擴(kuò)展的SMTP協(xié)議,,是郵件服務(wù)器系統(tǒng)為了限制非本系統(tǒng)的正式用戶利用本系統(tǒng)散發(fā)垃圾郵件或其他不當(dāng)行為而開(kāi)設(shè)的一項(xiàng)安全認(rèn)證服務(wù),。
應(yīng)用程序接口模塊實(shí)現(xiàn)和嵌入式控制系統(tǒng)的控制及數(shù)據(jù)交換。在本系統(tǒng)中,,應(yīng)用程序接口與嵌入式操作系統(tǒng)通信,,通過(guò)設(shè)備的驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)嵌入系統(tǒng)的配置、監(jiān)視和控制,,是系統(tǒng)控制的核心,。監(jiān)控程序模塊使用CGI(Common Gateway Interface)的方式實(shí)現(xiàn)。
2. SMTP通訊模塊設(shè)計(jì)
通過(guò)電子郵件來(lái)與網(wǎng)絡(luò)嵌入式系統(tǒng)通信有如下優(yōu)點(diǎn):(1) 用戶接口是日常使用的標(biāo)準(zhǔn)電子郵件客戶程序,對(duì)技術(shù)要求較低,;(2) 有現(xiàn)成的協(xié)議用于從各種設(shè)備(桌面電腦,、手持設(shè)備及網(wǎng)絡(luò)電話)發(fā)送電子郵件并在因特網(wǎng)上傳輸;(3) 只需稍加處理,,便可對(duì)嵌入式設(shè)備上回復(fù)的電子郵件以HTML格式進(jìn)行編碼,,使數(shù)據(jù)的表現(xiàn)形式更為豐富和易讀;(4) 電子郵件客戶程序有自己的存檔日志,,便于進(jìn)行數(shù)據(jù)歸檔備份[3],。
系統(tǒng)中實(shí)現(xiàn)的是一個(gè)簡(jiǎn)化的SMTP Server。僅僅是根據(jù)基本的SMTP交互協(xié)議實(shí)現(xiàn)郵件接收和郵件轉(zhuǎn)儲(chǔ),。不提供郵件轉(zhuǎn)發(fā),,也不需要考慮多用戶的郵件并發(fā)連接。該SMTP Server僅僅為單用戶提供專用連接,,并按自己的特定格式接收,。
因此,該SMTP Server實(shí)現(xiàn)的核心是實(shí)現(xiàn)最簡(jiǎn)單的SMTP鎖步協(xié)議對(duì)話機(jī),,并從郵件中析取出命令及附件數(shù)據(jù),。在分析標(biāo)準(zhǔn)SMTP協(xié)議后,程序中僅實(shí)現(xiàn)符合應(yīng)用需求的最簡(jiǎn)潔的SMTP對(duì)話機(jī)制,。Server只是對(duì)客戶命令有效的發(fā)出每一個(gè)對(duì)話的響應(yīng)碼及固定信息,,然后接收客戶機(jī)的應(yīng)答。在應(yīng)答消息中也僅僅分析應(yīng)答的字符命令是否正確,,而不理睬其他信息,。在郵件處理過(guò)程中,只查找主題并判斷,,然后從郵件中判斷出附件的標(biāo)志并從附件開(kāi)始處接收數(shù)據(jù)然后解碼,。
2.1 SMTP通訊基本流程
為實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制及狀態(tài)響應(yīng),將SMTP軟件的結(jié)構(gòu)模塊化,。分為套接字通訊模塊,、E-mail編碼模塊、E-mail解析模塊,、SMTP/ESMTP協(xié)議模塊,、附件解析模塊。其基本結(jié)構(gòu)如圖2,。
圖2: 嵌入式SMTP遠(yuǎn)程控制流程
2.2 套接字通訊模塊
網(wǎng)絡(luò)套接字模塊負(fù)責(zé)與遠(yuǎn)端客戶機(jī),、服務(wù)器建立TCP連接,發(fā)送和接收從客戶端發(fā)送的命令和數(shù)據(jù)以及向其他SMTP服務(wù)器端返回郵件數(shù)據(jù),。這些都是基于TCP/IP棧通過(guò)Linux操作系統(tǒng)的標(biāo)準(zhǔn)Socket機(jī)制來(lái)實(shí)現(xiàn)的,。在網(wǎng)絡(luò)模塊中,為便于升級(jí),考慮到了IPv4到IPv6過(guò)渡。在用戶設(shè)置服務(wù)器地址的時(shí)候,可以支持IP地址輸入和域名輸入兩種方式,這樣給用戶帶來(lái)很大方便,。
在該模塊中,,提供一個(gè)TCP流套接字服務(wù)器。在端口25上綁定套接字,,最多可以提供一個(gè)連接,,支持5個(gè)等待。一旦服務(wù)器接受一個(gè)連接,,該套接字被傳給SMTP/ESMTP協(xié)議模塊,,來(lái)處理SMTP協(xié)議實(shí)現(xiàn)交互。處理完后關(guān)閉套接字,,然后可以等待另一個(gè)請(qǐng)求,。
2.3 E-mail編碼模塊
在系統(tǒng)中,遠(yuǎn)程設(shè)備需要周期性的將設(shè)備運(yùn)行狀態(tài)及各參數(shù)發(fā)送給管理者,,以及在管理者發(fā)送查詢指令時(shí)將查詢的關(guān)鍵值發(fā)送給管理者,。這需要設(shè)備能夠根據(jù)運(yùn)行的參數(shù)構(gòu)造標(biāo)準(zhǔn)結(jié)構(gòu)的E-mail并發(fā)送。
E-mail編碼模塊的功能是:設(shè)備發(fā)送郵件時(shí),,將設(shè)備參數(shù)及狀態(tài)轉(zhuǎn)變成標(biāo)準(zhǔn)的適合在Internet上傳輸?shù)泥]件格式,。
一個(gè)完整的E-mail報(bào)文包括包封、報(bào)頭和報(bào)體,。包封是用SMTP命令MAIL FROM和RCPT TO來(lái)定義。報(bào)頭信息包括:收件人(To:),,發(fā)件人(Sender:),,抄送者(CC:),發(fā)送日期(Date:),,主題(Subject:),,MIME版本(Mime-version:)等。在報(bào)體中信息包括:內(nèi)容類型(Content-Type:),,內(nèi)容傳輸編碼類型(Content-Transfer-Encoding:),,邊界定義(Boundary:)及信息內(nèi)容等。郵件信息每行之間都以CR/LF(回車換行符)作為結(jié)尾,??梢酝ㄟ^(guò)這些郵件頭信息的關(guān)鍵詞,解析出收件人,、發(fā)件人,、抄送人、發(fā)送日期,,MIME版本號(hào)等[4],。
報(bào)體信息包括郵件的正文和附件。正文開(kāi)始的標(biāo)記是郵件頭信息結(jié)束后的兩個(gè)回車換行符,即兩個(gè)CR/LF,。郵件結(jié)束的標(biāo)志是
2.4 SMTP/ESMTP協(xié)議模塊
SMTP/ESMTP是一種基于命令/應(yīng)答模式的鎖步協(xié)議,。客戶機(jī)給出字符串命令,,服務(wù)器給出數(shù)字代碼應(yīng)答,,實(shí)現(xiàn)郵件的鎖步傳輸。
在TCP連接基礎(chǔ)上(端口號(hào)25),,本模塊實(shí)現(xiàn)SMTP/ESMTP協(xié)議的最小命令集,。作為客戶發(fā)送郵件時(shí),實(shí)現(xiàn)的客戶連接命令包括: ELHO(或者HELO),、AUTH LOGIN,、USER、PASS,、MAIL FROM,、RCPT TO、DATA,、RSET,、NOOP、QUIT,。作為服務(wù)器接收郵件時(shí),,響應(yīng)的數(shù)字代碼包括:220(服務(wù)就緒)、221(服務(wù)關(guān)閉),、250(要求的郵件操作完成),、354(開(kāi)始郵件輸入,以
發(fā)送者的用戶名和密碼必須經(jīng)過(guò)Base64編碼后,發(fā)送到SMTP/ESMTP服務(wù)器端,,認(rèn)證才能成功,。實(shí)現(xiàn)過(guò)程見(jiàn)圖3。
圖3:SMTP/ESMTP協(xié)議模塊基本流程
2.5 E-mail解析模塊
遠(yuǎn)端設(shè)備在收到郵件指令時(shí),,應(yīng)能從郵件中正確析取出指令并做出響應(yīng),。
系統(tǒng)中的E-mail解析模塊通過(guò)查找E-mail中的主題來(lái)知道命令類型,。其在E-mail報(bào)體中查找字符串Subject來(lái)發(fā)現(xiàn)E-mail的主題,并從中找到規(guī)定類型的命令字頭,。如無(wú)相應(yīng)主題,,返回-1,將郵件丟棄,。根據(jù)主題命令字的不同,,完成設(shè)備的相關(guān)動(dòng)作控制或相應(yīng)狀態(tài)的郵件報(bào)告。對(duì)于數(shù)據(jù)塊的更新,,使用附件解析模塊來(lái)得到附件中的數(shù)據(jù),。
3. 安全性問(wèn)題
由于SMTP技術(shù)的開(kāi)放性和標(biāo)準(zhǔn)性,其開(kāi)發(fā)的簡(jiǎn)單便利也帶來(lái)很多缺點(diǎn),。設(shè)備的遠(yuǎn)程控制必須對(duì)訪問(wèn)者有所區(qū)分,,否則系統(tǒng)的安全將不可預(yù)料。
特別是,,SMTP協(xié)議在發(fā)送郵件信息,,甚至是用戶名和密碼的時(shí)候采用的是明文發(fā)送。通過(guò)常見(jiàn)的抓包工具,,就可以輕易獲得正在接收或發(fā)送郵件的用戶的所有信息,,包括用戶名和密碼以及郵件信息,這給設(shè)備的正常操控帶來(lái)了極大的威脅。即使ESMTP協(xié)議在發(fā)送用戶名和密碼的時(shí)候采用的是base64編碼,,但其解碼也是輕而易舉,,因此其安全性也有限。
對(duì)于安全問(wèn)題,,可根據(jù)不同的控制環(huán)境使用不用的策略[6],。
(1) 閉環(huán)網(wǎng)絡(luò)訪問(wèn)策略:把網(wǎng)絡(luò)訪問(wèn)范圍局限在 Intranet 范圍內(nèi),通過(guò)網(wǎng)內(nèi)任意PC機(jī)發(fā)送的郵件命令可以進(jìn)行遠(yuǎn)程監(jiān)視,、診斷、遠(yuǎn)程控制和參數(shù)設(shè)置,。所有可能的攻擊點(diǎn)全部局限在本網(wǎng)絡(luò)范圍內(nèi),。
(2) 只讀訪問(wèn)策略:對(duì)關(guān)鍵信息和敏感信息,一個(gè)重要的安全措施就是將其標(biāo)記為只讀特性,,尤其是從Intranet 范圍外的IP 地址來(lái)的訪問(wèn)請(qǐng)求,。這樣用戶可以在任意地方查看遠(yuǎn)程設(shè)備的狀況,出現(xiàn)問(wèn)題可以及時(shí)采取措施,。
(3) 引入加密機(jī)制,如:MD5加密就可以增加安全性,。
4. 結(jié)束語(yǔ)
本文介紹了在ARM的硬件平臺(tái)上,如何構(gòu)建以嵌入式Linux為基礎(chǔ)利用SMTP協(xié)議來(lái)進(jìn)行設(shè)備的遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)方法,。通過(guò)該方法,,我們實(shí)現(xiàn)了對(duì)傳統(tǒng)工控項(xiàng)目的遠(yuǎn)程控制改造升級(jí),。在該方案的基礎(chǔ)上,完全可以實(shí)現(xiàn)設(shè)備的網(wǎng)絡(luò)化和智能化管理,為現(xiàn)場(chǎng)可編程設(shè)備的在線遠(yuǎn)程監(jiān)控,、管理及維護(hù)等功能提供了實(shí)現(xiàn)的可能性和技術(shù)上的支持,。通過(guò)對(duì)SMTP協(xié)議的合理利用,使“Action over IP”的思想得以實(shí)現(xiàn),從而在遠(yuǎn)處可以對(duì)設(shè)備的“行為”進(jìn)行有效的管理和控制,。
該文的創(chuàng)新點(diǎn)為:
1,、 使用低成本、高可靠的ARM硬件平臺(tái)替代價(jià)格昂貴的工控機(jī)降低了生產(chǎn)運(yùn)營(yíng)成本,,提高硬質(zhì)合金生產(chǎn)線的安全可靠性,。
2、 由于采用SMPT這樣簡(jiǎn)單的通訊協(xié)議,,降低了工控網(wǎng)絡(luò)管理復(fù)雜性,,使硬件與軟件維修都變得方便,易于掌握,。
3,、 采用加密傳輸通訊確保數(shù)據(jù)安全,ARM平臺(tái)采用TCP/IP標(biāo)準(zhǔn)方便與外網(wǎng)通訊,,實(shí)現(xiàn)企業(yè)數(shù)據(jù)庫(kù)共享,。