天津工業大學計算機科學與軟件學院 袁新洋
隨著智能手機的普及和物聯網技術的高速發展,手機無疑是物聯網時代的基礎平臺之一。3G技術的高數據傳輸速率給我們帶來樂趣的同時也為我們生活帶來很多方便,也為基于手機終端的物聯網技術提供了很好的發展空間,以手機作為物聯網的終端平臺將是一種必然的發展趨勢。
物聯網技術作為一個新興的綜合性技術,具有互聯網的特點,智能化特征;同時聯合了通信技術、射頻技術、無線技術等。
嵌入式應用系統的開發屬于跨平臺開發,即開發平臺使用的處理器和開發對象的處理器往往是不同的類型,因此需要交叉的軟件集成開發環境,即進行代碼編寫、編譯、連接、調試的環境。嵌入式系統運行需要特定的目標環境,該環境面向特定的應用領域,要實現預期的功能'還需要軟硬件協同設計。這種方法的特點是:在設計時從系統功能的實現考慮'把軟硬件同時考慮進去,既可最大限度的利用有效資源,縮短開發周期,又能取得更好的設計效果。
Java ME是Java Micro Edition的簡稱,它支持Java SE標準核心類庫的一個子集,增加了一些支持嵌入式系統的擴充類庫,定位在嵌入式系統的應用上,如手機、PDA等電子產品上。當前時代移動通信產品遍地開花,產品的軟硬件環境也各式各樣,僅手機操作系統就有Symbian、Palm OS、Linux、Windows Mobile等多個,致使系統移植成為一個瓶頸。Java可以幫助解決這個問題,因為Java具有“一次編寫、隨處運行”的特點。在任何一個支持Java的手機上都可以運行用J2ME開發的程序,并且支持J2ME的運營商和手機廠商比較多。此外,J2ME還有龐大的開發工具、數量眾多的開發社區等資源支持,這些都是J2ME的優勢。
一次完整的認證過程不但只是對合法用戶的識別,還要做好前期準備和后期審計工作。認證前的工作是給用戶賦予權限,使合法用戶具有某些權力。認證過程中,密鑰的安全是非常重要的,因此一定要做好保密工作,可以釆用加密變換的方法傳輸數據,加密方法可以選擇對稱加密法或者公鑰加密法。除此之外,時效性也是一個值得注意的問題,失效性是杜絕重放攻擊的有效方法。
本文中設計的系統是以手機作為用戶終端,集互聯網技術、監控技術、傳感器技術、定位技術、自動報警為一體的多功能監控系統,它可應用于智能家居、貨物跟蹤、超市監管等領域。
整個系統主要分為三個大模塊:前端信息采集模塊、服務器模塊、客戶端模塊,三個模塊分工合作,各盡其能。
2.1.1 前端采集模塊設計
前端采集模塊主要負責信息的采集:攝像頭對視頻信息采集,傳感器對周圍環境信息的采集,定位模塊對位置信息采集等。之后,把采集得到的信息按一定的數據格式封裝后通過3G無線網絡發送到服務器。前端處理器采用三星S3C2440ARM9開發板,板子上有串口、USB接口、USBHOST接口等,可以外接多個功能模塊。選擇USB攝像頭,使其與ARM9開發板相連,負責圖像信息的采集。將GPS設備ARM9開發板的USB HOST相連,負責位置信息的采集。溫度傳感器、濕度傳感器以及危險氣體傳感器并不是被ARM處理器控制,而是由STC12C5204單片機直接進行控制,單片機通過COM口與ARM9開發板交互信息。為了保證信息傳輸的指令,無線收發模塊選擇3G網卡,設定服務器的IP地址后,采用TCP協議向服務器發送數據。
2.1.2 服務器功能設計
服務器分為監控管理、用戶管理、數據管理等幾個模塊。服務器要負責接收前端采集到的數據,將數據處理、顯示。除此之外,還要負責響應客戶端請求。監控管理負責接收并處理前端采集到的信息(溫度、濕度、危險氣體、GPS定位),接收到這些信息以后可以在服務器顯示出來。與手機客戶端的數據信息交互也主要在這個模塊實現,根據手機客戶端請求,向客戶端發送需求信息。用戶管理又可以分為用戶注冊、用戶認證、權限管理、用戶刪除等功能。用戶注冊包括用戶基本信息注冊和手機客戶端注冊,客戶端注冊是為了實現用戶與手機客戶端的綁定。注冊過程要把用戶的注冊信息存入數據庫,用戶注銷負責把申請注銷的用戶信息全部清理并收回權限。
2.1.3 手機客戶端設計
系統采用手機作為客戶端,安裝了客戶端軟件的手機,通過登錄服務器的方式查看實時信息,鑒于手機具有隨身攜帶的優點,因此用戶可以隨時了解到所關心的信息。手機客戶端主要實現用戶登錄-輸入設備號-查看信息。用戶成功登錄前,需要通過手機客戶端與服務器進行雙向認證,彼此認證通過后即可輸入所要査詢設備的設備號進行信息査詢。
為了增強系統的安全性,本文在S/Key技術的基礎上,提出了一種基于動態口令的雙向身份認證方法,不但實現了服務器對客戶端的身份認證,而且實現了客戶端對服務器的有效認證。雙向認證方法的基礎是通過對動態口令的驗證,達到驗證用戶身份的目的。在此基礎上,采用手機序列號(手機序列號是Imei碼的俗稱,Imei碼由GSM全球移動通信協會統一分配,是由15位數字組成的“電子串號”,它與每臺移動電話機一一對應,而且該碼是全世界唯一的)和手機號生成客戶識別碼(我們稱之為PN碼)實現手機客戶端軟件與用戶的綁定,做到手機與用戶的一一對應,達到了服務器對用戶的二次認證的目的。
雙向認證方法在本系統中主要應用在客戶端與服務器之間,用戶通過手機客戶端首先發起服務請求,服務器收到請求以后向客戶端發出挑戰信息,客戶端根據挑戰信息對服務器進行身份認證,對服務器認證通過后則進一步向服務器發送請求認證信息,服務器進行對客戶端的認證,若認證通過則一次完整的認證過程結束。服務器對用戶的認證需要驗證客戶端標識碼(PN碼)和動態口令。驗證過程中,服務器首先根據用戶ID檢索出該用戶的手機號碼和Imei碼,并使用與客戶端相同的方法計算PN碼,然后用計算出的PN碼對收到的信息(用PN碼作為加密密鑰的加密后動態口令值)進行解密,如果解密不成功說明有錯誤,否則進一步驗證解密出的動態口令。
本文以手機作為應用平臺,以3G網絡作為傳輸媒介,設計了一個多功能的物聯網應用系統,雖然在硬件上本系統能夠實現一些基本的數據采集以及定位跟蹤,并不能滿足所有的需求,開發面向具體環境具體應用的系統是下一步要做的主要工作。
[1]石立峰.手機與物聯網[J].中國產業,2010(11).
[2]王文軒.基于3G手機短信(SMS)的家電物聯網系統[J].物聯網技術,2011(10).
[3]劉強,崔莉,陳海明.物聯網關鍵技術與應用[J].計算機科學,2010(06).