杜慶峰
摘 要:文章介紹了傳統互聯網系統中非對稱軟件加解密方案在無線監控系統中的應用及實現,分析非對稱加解密方案在無線監控系統中實施的必要性、可行性,包括與其他加解密方案對比分析,以提高無線監控系統中數據傳輸安全。結合實際無線監控系統方案,提供具體軟件實現供參考。
關鍵詞:軟件加解密;RSA;監控
中圖分類號:TP393.4 文獻標志碼:A 文章編號:2095-2945(2017)33-0144-02
1 概述
隨著互聯網普及以及物聯網應用日益廣泛,無線監控及數據傳輸成為信息交互的主要方式,隨之而來的數據傳輸安全愈發重要,本文主要介紹傳統網絡通信數據加密方案在無線監控系統中的應用。
2 數據加密的必要性和可行性
從整體架構看,無線監控系統有幾大特點。第一,系統一般由中心服務器和采集控制終端組成,在組成為大多為1對多。對于多級分層架構,可以分解為N個1對多系統的疊加。第二,中心服務器一般固定部署,監控采集終端則分散部署在現場。第三,中心服務器相對有完善的管理和維護人員、組織參與,監控采集終端則相對開放。
如上所述,無線監控系統中監控采集終端數量多,地理位置分散,明文傳輸很可能遭到劫持和盜聽,輕則導致數據泄密,重則可能出現系統被攻擊,導致系統癱瘓。通過數據加密,提高數據傳輸安全,可最大程度對系統進行保護。
對于1對多系統,特別是中心服務器的安全性相對較高,將數據加解密密鑰保存在中心服務器,一方面密鑰本身的管理可以得到保證,另外,只在中心服務器保存一份密鑰,減少密鑰擴散幾率,確保密鑰安全,從而可以保證數據的安全。
對于數據傳輸加解密兩端分散情況,通過采用非對稱加密方式,一方面降低對監控采集終端安全管理要求,同時可以提高加密安全效果。為此,可采用網絡通信中使用較為廣泛的RSA加密方案。
3 方案對比
與非對稱加解密對應,另一種加解密方案為對稱加解密。所謂對稱加解密,簡言之就是數據加密和數據解密采用相同的密鑰??梢姡瑢τ趯ΨQ加解密方案,數據加密方和數據解密方都需要持有相同密鑰。與非對稱加解密方案相比,該方案優點大概如下,第一,該方案相對簡單,雙方使用相同加解密密鑰,容易實現。第二,對稱加密數據在解密時,直接通過確定算法實現,執行效率和速度相對高。
針對無線監控系統,堆成加解密方案最大不足就是安全。如上所述,無線監控系統大多存在開放環境,且監控終端相對物理位置分散,如果采用對稱加解密方案,相同的密鑰需要分散到每個數據監控采集終端。在整個運行過程中,任一數據監控采集終端將密鑰泄露,整個系統安全完全丟失。相對于對稱加解密方案,非堆成加解密方案采用公鑰和私鑰對方式,公鑰可以公開,不擔心密鑰泄露,適合數據監控采集終端量多、位置分散場景。另外,一旦出現加解密密鑰泄露,非對稱加解密方案可以通過動態更新公私密鑰對,從而恢復系統安全。
可見,在無線監控系統中,采用非對稱加解密方案更安全。
4 實現方案
當前常用非對稱加解密方案有很多種,這里主要介紹RSA加解密方案在無線監控系統中的實現思路。鑒于無線監控系統大多采用嵌入式系統,如ARM等,可采用離線處理與在線加解密相結合方式。
離線處理主要指在系統發布前,借助工具生成加密公鑰與私鑰對,將公鑰發布到終端應用,私鑰保留在服務器。
系統運行時,監控采集終端使用公鑰對數據進行加密后,通過無線傳輸方式發送到服務器,服務器使用本地密鑰對監控終端發送數據進行解密,得到監控終端原始明文數據。
GPS校時功能:通過GPS對計算機網絡進行精準校時。
光照度獲?。和ㄟ^光敏探頭獲取所在城市的實時光照度,用于實現路燈的光照度控制。
5 軟件設計
對于非對稱加解密公鑰和私鑰,可借助第三方工具生成,如openssl,相關操作如下:
openssl genrsa -out rsa_private.pem 2048
其中rsa_private.pem為生成私鑰文件名稱。
根據私鑰導出公鑰:
openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
其中rsa_public_pem為導出公鑰文件名稱,rsa_private.pem為上述生成的私鑰文件名稱。至此,加解密所需公鑰和私鑰文件已經生成。
監控采集終端對數據進行加密。由于監控采集終端大多采用ARM,數據加密需要通過代碼實現。對于無線監控系統監控采集終端,設備一般不支持文件系統,對于文件生成的加密公鑰,不能使用通用讀取公鑰文件方式獲取公鑰,而是需要將公鑰內容記錄到內存,然后從內存中讀取公鑰,主要接口如下:
通過標準文件方式讀取公鑰文件內容,原型如下:
BIO_METHOD * BIO_s_mem(void);
BIO_set_mem_eof_return(BIO *b,int v);
long BIO_get_mem_data(BIO *b, char **pp)
BIO_set_mem_buf(BIO *b,BUF_MEM *bm,int c);
BIO_get_mem_ptr(BIO *b,BUF_MEM **pp);
BIO *BIO_new_mem_buf(void *buf, int len);
讀取公鑰文件后,從公鑰文件中讀取pem格式公鑰文件內容。原型如下:
rsa = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL);
調用RSA_public_encrypt()對數據進行加密。
此時監控采集終端已經完成對通信數據發送前的加密操作,后續即可進行數據傳輸。
中心服務器接收到數據后,首先對數據進行解密。鑒于中心服務器大多為windows或linux服務器,可以直接調用opensls的文件操作函數獲取密鑰進行解密。
為了便于數據傳輸,實際系統可根據需要對數據做base64編解碼處理。通過base64編碼后數據傳輸更方便,同時也帶來副作用,就是增加網絡傳輸流量,具體是否需要對數據做base64編碼后傳輸,可根據實際系統需要決定,這里不做具體描述。
6 結束語
非對稱加密技術適用于數據通信兩端遠距離傳輸,在滿足數據加密基礎上,同時降低操作難度,包括密鑰管理維護要求,使得無線監控系統數據加解密方案可行。
參考文獻:
[1]CJJ/T 227-2014.城市照明自動控制系統技術規范[S].
[2]楊輝.基于物聯網的路燈節能管理系統[J].城市照明,2017(1).
[3]羅路勝,文春明.基于ARM的無線溫濕度監測控制系統[J].科技創新與應用,2016(13):26-27.endprint