方文祥,陳玕來
(華信咨詢設計研究院有限公司,浙江 杭州 310052)
移動智能終端存在多種通信安全問題,主要包括密碼安全性較低、信息收發缺少審核、安全補丁滯后以及信息追溯性較差等[1]。對于通信領域來說,傳統的通信信息基本都是以點對點的方式進行傳輸,不法分子很容易就能追蹤到信息傳輸的路徑,將正在傳輸中的信息攔截下來,導致信息通信存在較大的安全問題,必須要保證信息傳輸路徑的安全,避免信息在傳輸過程中出現問題。區塊鏈技術能夠很好地解決安全問題,利用通信網絡區塊鏈VOIP通信功能分析區塊鏈異常交易的數據,推導出具體的加密方案,保證數據信息始終處于最高級別的加密狀態,保護用戶隱私,以免出現信息泄露情況。
區塊鏈技術具有開放、去中心、公開透明、不可篡改以及可追溯等優點,能夠充分保證通信安全,提高通信效率。區塊鏈主要包含兩方面的技術,分別是區塊安全同步技術和智能合約技術。
從內容存儲結構來看,區塊鏈為分布式結構,底層P2P網格的各個節點有相同的權利。為了讓各個節點保持一致的狀態,可以利用共識機制讓各節點相互信任。區塊安全同步技術的應用主要包含3個步驟:一是挑選“出塊者”,也可將其稱為“記賬者”,主要包括單一節點和多個節點;二是生成區塊,將新接收的數據打包,加入到目前的區塊內,多個區塊共同構成鏈狀結構;三是驗證工作與同步工作,對各個節點的信息進行驗證,保證信息的一致性[2]。
智能合約最開始屬于一種協議,用戶能夠自行決定數字的形式。如今,智能合約被運用到區塊鏈領域,變成了一種程序代碼,可以按照約定條款執行算法,通過驅動轉換實現用戶的目標。運用智能合約技術時需要使用設備的接口和協議,由此形成一種代碼邏輯,只要到達了觸發條件,就會按照智能合約執行,基本不會受到干擾,能夠有效滿足用戶的要求[3]。
在密鑰派生算法設計中需要對公鑰進行加密處理,可以采用橢圓曲線密碼體制(Ellipse Curve Cryptosystem,ECC)。橢圓曲線的離散對數非常復雜,可以有效保證密碼的安全。當密鑰從私鑰轉換為公鑰時可以進行單項映射,單項映射的原理如圖1所示。其中,k→k′、k→k′都是單向映射。

圖1 ECC密鑰派生映射規則
在ECC單項映射中,將僅自己可見的初始私鑰映射為所有人可見的初始公鑰。安全通信系統可以采用公鑰密碼體制,通過Weierstrass方程形成密鑰,在無協商密鑰共享中運用加密算法、解密算法、簽名算法等。在安全通信的數字簽名體制中,簽名時使用私鑰,驗證時使用對應的公鑰,以此來保證信息的真實性[4]。
安全通信系統的運行需要遵循加密通信邏輯,而密鑰派生算法就是該邏輯的基礎。安全通信系統需要遵循種子密鑰流程,建立可逆公鑰密碼體制,利用數字簽名機制驗證用戶的身份。用戶提交申請后,根據消息簽名和公鑰驗證消息的真實性,記錄用戶的申請信息,對種子密鑰進行初始化處理。在處理過程中,對消息簽名、公鑰、加密種子進行驗證,驗證無誤后添加對方。此時再次更新種子密鑰,形成加密種子,根據會話密鑰進行通信,最終完成密鑰協商[5]。在區塊鏈網絡系統中,網絡節點并沒有部署中心化。如果某個通信網絡節點出現故障,并不會使整個區塊鏈系統無法運行,數據信息可以正常在網絡中傳輸。就算大部分的節點受到攻擊導致網絡節點斷開,整個系統依舊能夠持續運行。當區塊鏈系統受到病毒的惡意攻擊時,區塊鏈技術還可以通過協議進行保護,確保那些通過驗證的數據能夠順利傳播出去。
利用區塊鏈技術對安全通信系統的聯盟鏈通信功能模塊進行設計,用戶可以一直保持連接的狀態,接收不同的信息后對信息進行自動解析,直接將處理后的信息轉發給用戶。應用層包含多種類型的信息,如會話信息和心跳信息等。會話信息能夠在正式通信中發揮作用,自動識別用戶身份,同時還能生成區塊,便于雙方驗證。心跳信息能夠更新用戶會話參數,同時發送密鑰[6]。區塊鏈技術可以在較短的時間內完成傳輸工作,將數據信息快速傳輸到不同地區的網絡節點上。即使互聯網服務突然中斷,區塊鏈技術依舊可以通過高頻無線電或者傳真等方法繼續傳遞信息。區塊鏈技術能夠提供安全穩定的網絡通信環境,使信息傳輸過程更加可靠。
移動智能終端安全通信系統的客戶端功能模塊主要包括用戶注冊登錄功能模塊、個人信息管理功能模塊、用戶通信功能模塊。在用戶注冊登錄模塊的設計中,需要保護用戶的用戶名和密碼。用戶在注冊時需要填寫密碼并確認密碼,如果兩次密碼完全相同,就可以發送請求。系統會判斷用戶名是否存在重名的情況,如果沒有重名就會隨機生成密鑰。如果密鑰符合標準,就會自動存儲用戶的信息。在個人信息管理模塊的設計中,要對后臺存儲功能和相關操作進行設計。進入信息列表和通信界面后,工作人員可以獲取信息數據,還可以查詢信息和修改信息。該模塊運行時,可以對數據進行傳遞或調用。按照數據的類型和統一資源定位符(Uniform Resource Locator,URL)發送請求,通過請求后調用接口并對數據庫下達命令,返回時會判斷是否成功[7]。
在用戶通信模塊的設計中,需要與聯盟鏈進行交互,運用派生密鑰對通信的信息進行加密處理。對于發送方來說,用戶發送信息后構建消息體,判斷該消息是否為心跳消息。如果是心跳消息,就要讓消息體包裝密鑰派生參數,同時還要進行簽密。如果不是心跳信息,繼續判斷是否為好友申請消息。如果是好友申請消息,就要讓消息體包裝個人初始密鑰、種子密鑰以及握手標識,同時還要對信息進行簽密處理。如果不屬于好友申請信息,繼續判斷信息是否屬于文字消息。如果不屬于文字消息,就要將信息上傳到文件系統中,提取URL消息;如果屬于文字消息,繼續判斷消息是否屬于群聊消息。如果屬于群聊消息,就要利用群會話密鑰進行加密處理;如果不屬于群聊信息,就要利用好友會話密鑰進行加密處理。最后,將消息體發送到鏈服務端。對于接收方來說,系統要對消息體進行解析,判斷信息是否為好友申請、文字消息、群聊消息。確認消息的類型后,獲得對應的解密消息,將消息存儲到本地設備中,同時將消息同步到個人服務后臺[8]。
數據庫能夠長時間存儲數據信息,隨著在通信過程中數據信息的數量越來越多,操作時可能會出現卡頓等問題,對此需要進行優化設計。移動智能終端能夠利用MUI框架封裝storage,在本地設備上存儲大量的緩存信息和用戶的基本信息,利用鍵值劃分各個信息的類別,實現分類存儲和快速調用。后臺數據庫為MySQL,記錄著用戶的個人信息,包括好友信息、列表信息、緩存信息等。數據庫各部分的關系如圖2所示。

圖2 數據庫E-R示例
用戶信息表中含有主鍵ID,記錄了用戶名、密碼以及用戶的其他信息。好友關系表中包含用戶和好友的ID信息,記錄了雙方成為好友的日期。成為好友時,系統會自動生成好友種子密鑰,其他人不能修改種子密鑰,只有好友能夠調用種子密鑰[9]。
數據庫中還包含消息記錄表的相關信息,例如用戶和好友的會話時間。某一方發出消息后,并不會只產生一條記錄,雙方可以通過各自的ID進行訪問。訪問時,系統會形成兩條記錄,雙方的信息標識也不同。當用戶添加好友時要進行密鑰協商,并且按照“3次握手”機制生成添加好友的種子密鑰,根據協商信息判斷用戶是否想要進入下個環節。此外,數據庫包含區塊頭和區塊體兩部分。區塊頭不僅能夠存儲用戶信息,而且還能存儲業務方面的數據信息,確保數據庫能夠和通信系統相互兼容[10]。
通過運用區塊鏈技術,為用戶提供一個安全、高效的移動智能終端通信平臺。充分應用區塊鏈技術和安全通信技術,同時還要運用現代密碼學技術,保障網絡通信安全,避免用戶信息泄露,為用戶創建一個安全的通信環境。