李敏盛 鐘堅 梁磊
(1.廣西廣播電視無線傳播樞紐臺;2廣西廣電網絡股份有限公司崇左分公司)
隨著業務的發展,廣播電視遠程監控系統的數據通訊也將逐漸從現有的2M私有SDH光纖網絡轉移到帶寬資源更充裕的IP數據承載網中,但該承載網也有其他單位和企業在使用,本單位的監控數據有可能在中途被截獲、泄露,甚至被篡改,將有可能會影響廣播電視的安全播出,還有可能帶來嚴重的負面影響。為解決這個信息安全問題,本文提出了一種基于物聯網平臺Android Things實現臺站端與服務端加密通信傳輸的設計方案。
對稱加密采用同一個密鑰對數據進行加解密,也稱單密鑰加密,優點是加解密速度快、效率高;缺點是在傳送數據前,加密方和解密方得商定好密鑰,如果某一方的密鑰被泄露,那么加密的數據就不安全了。
非對稱加密算法是生成兩個鑰匙(公鑰和私鑰),使用公鑰對數據進行加密,使用私鑰進行解密。例如設備A要向設備B發送隱秘數據,且只能是設備B才能解讀,這時設備B先生成一對密鑰,將公鑰發給A,設備A使用公鑰對明文數據加密,再將加密后的數據傳送給B,設備B將收到的信息使用私鑰進行解密,即使A發送的消息中途被截獲,因沒有私鑰進行解密,數據就無法解讀。優點是安全性相對于對稱加密更好,缺點是加密和解密需要的時間久、速度慢。
AES全稱為高級加密標準(Advanced Encryption Standard),是對稱加密的一種。
RSA是非對稱加密算法,算法可靠性來源于歐拉定理,對極大整數做因數分解,只要其密鑰的長度足夠長,加密的數據幾乎是不可能被解破的。

圖1
Android Things是基于Android,主要運用于物聯網嵌入式設備的操作系統,使用Weave協議與外部的傳感器/設備進行對話。Android Things已經支持Raspberry Pi 3 、 Intel Edison、NXP Pico 等硬件平臺,還可以基于TensorFlow(谷歌第二代人工智能系統)進行機器學習和深度學習。
本方案的設計思路是在原系統架構的基礎上,改變了終端設備直連到交換機的方式,在設備與交換機之間增加一個基于Android Things操作系統的嵌入式設備(下文中都稱其為系統控制控器),它的功能是:(1)實現客戶端與服務端相互加密數據傳輸;(2)終端設備被系統控制器隔離開,就算有人遠程惡意攻入網絡,沒有密鑰解密,也無法對終端設備進行控制、更改等操作,提高了網絡信息安全性。圖1為系統架構的網絡拓撲圖。
RSA算法的安全性能很高,但加密和解密速度比較慢,適合短內容的加解密。而AES加密和解密的速度比較快,適合長內容的加解密,但其密鑰不易保存和傳輸,安全性能相對較差。了解這兩種加密算法的優缺點后,本方案揚長避短,先使用AES加密長度較長的正文內容,再用RSA的公鑰對長度較短的AES密鑰進行加密。當另端收到加密的數據后,先使用RSA的私鑰解密出AES密鑰,然后用AES密鑰解密出正文內容。這種混合的加解密方式既保證了效率又保證了安全性。
(1)系統控制器啟動時或者每隔一段時間,都會自動生成新的RSA密鑰,然后主動將該公鑰發送給服務端,并向服務端請求服務端的RSA公鑰;服務端啟動時或每隔一段時間,也會生成一個新的RSA密鑰,并將該公鑰分發給所有在線客戶端。流程看圖2。

圖2
(2)系統控制器會定時詢問終端設備的狀態信息,并將狀態信息主動上報給服務端。上報過程的加解密流程如下:①.生成一個新的AES密鑰,使用AES算法對狀態信息加密;②.使用服務端的RSA公鑰對AES密鑰加密;③.將已加密數據發送給服務端;④.服務端收到加密數據后,使用本端的RSA私鑰解密出AES密鑰;⑤.再用AES密鑰解密出狀態信息。流程看圖3。
(3)服務端下發控制指令給系統控制器的加解密流程如下:①.生成一個新的AES密鑰,使用該密鑰加密控制指令;②.使用系統控制器端的RSA公鑰對AES密鑰進行加密;③.將加密數據發送給系統控制器;④.系統控制器收到加密數據后,使用本端的RSA私鑰解密出AES密鑰;⑤.使用AES密鑰解密出控制指令并下發給終端設備;⑥.終端設備將執行結果返回給系統控制器,再按照上面所述的上報過程的加解密流程,將執行結果返回服務端。流程看圖4。

圖3
假如使用密鑰長度為1024位的RSA進行加密,密文長度最大值是128字節。使用128位AES算法對內容信息加密,密文長度是隨明文長度大小變化而改變。但是對TCP和UDP傳輸協議來說,TCP的MTU默認是1460字節,UDP的MTU默認是1472字節,當一個數據包的長度超過這兩個長度時,數據包就會被自動拆分,所以在軟件設計時有兩個方案選擇:(1)確保加密后的數據不超過上面兩個數,(2)在進行TCP或UDP數據接收時,判斷當前長度是否為零,如果不為零繼續接收,直到收到上報端口的數據長度為零時,才將收到的幾個包進行合并,然后再進行解密。
Android Things 操作系統沒有像Windows系統一樣有直接的操作界面,為了配置系統控制器程序的內置參數,必須為其開發可以通過網口進行配置的程序,本方案計劃使用WEB頁面方式對其進行配置。
Android Things支持USB、藍牙、有線網絡、無線網絡 ,并提供了一個萬能的通道,支持 I2C、SPI 和 UART 的數據傳輸,這三種串行接口,可以直接外接各種傳感設備。比如調用臺站門口攝像頭,將靠近門口的人像抓拍下來后,使用Tensorflow深度學習來識別是工作人員還是陌生人,如果是工作人員將語音提示歡迎話語,如果是陌生人將語音提示一些提醒話語。
本方案主要通過基于Andriod Things 操作系統的物聯網開發平臺,來實現客戶端與服務端之間數據加密傳輸,提高遠程監控系統的可靠性,也為以后實現站內人工智能自動化,實現免維護臺站打下一個基礎,因此,有較好的應用推廣價值。
[1]陳魯生,沈世鎰.現代密碼學(第二版)[M].科學出版社.2008-08