前言:想要寫出一篇引人入勝的文章?我們特意為您整理了遠程數(shù)據(jù)通信身份認證服務設(shè)計與實現(xiàn)范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:依據(jù)工業(yè)互聯(lián)網(wǎng)的數(shù)據(jù)采集需要,設(shè)計實現(xiàn)了遠程數(shù)據(jù)通信身份認證服務,用于智能采集終端與遠程數(shù)據(jù)平臺的身份驗證,包括驗證智能采集終端的唯一性和動態(tài)獲取數(shù)據(jù)發(fā)送通道的連接信息。利用HTTPS協(xié)議可以實現(xiàn)認證服務的加密傳輸,確保了服務的安全性和可靠性。
關(guān)鍵詞:HTTPS;身份認證;遠程數(shù)據(jù)通信
1HTTPS協(xié)議介紹
HTTPS是安全超文本傳輸協(xié)議,它是基于HTTP開發(fā),用于在客戶計算機和服務器之間交換信息[1],實際上HTTPS是SSLoverHTTP,是經(jīng)過SSL加密后的HTTP[2],HTTPS通過在TCP層與HTTP之間增加一個SSL(SecureSocketLater,安全套接字層協(xié)議)來加強安全性,HTTPS使用SSL在發(fā)送方將原始數(shù)據(jù)進行加密,然后在接收方進行解密,加密和解密需要發(fā)送方和接收方通過交換密鑰來實現(xiàn),因此所傳送的數(shù)據(jù)不容易被截獲和解密,它采用了對稱密碼技術(shù)和公開密碼技術(shù)相結(jié)合,提供包括秘密性、完整性和認證性3種基本的安全服務[3]。
2遠程數(shù)據(jù)通信身份認證服務設(shè)計與實現(xiàn)
2.1結(jié)構(gòu)設(shè)計
整個服務主要由3個模塊構(gòu)成,分別為訪問模塊、認證模塊和信息模塊。訪問模塊主要由HTTPS服務端、CA證書構(gòu)成,主要負責響應客戶端的HTPPS請求。認證模塊主要由身份ID模塊、身份驗證模塊構(gòu)成,主要負責為客戶端發(fā)放和驗證身份ID。信息模塊主要負責為已經(jīng)經(jīng)過身份驗證的客戶端動態(tài)分配數(shù)據(jù)通道連接信息。
2.2工作流程
智能終端(客戶端)與遠程數(shù)據(jù)平臺(服務端)進行數(shù)據(jù)發(fā)送之前,會利用本文的遠程數(shù)據(jù)通信身份認證服務對雙方進行身份認證,通過驗證之后會動態(tài)獲取到數(shù)據(jù)通信的通道連接信息,以此建立通信連接。本文的遠程數(shù)據(jù)通信身份認證服務適應任意數(shù)據(jù)通信協(xié)議,本文以MQTT協(xié)議為例,具體身份認證流程如下:1)客戶端向服務端發(fā)送獲取身份ID的HTTPS請求;2)訪問模塊將建立客戶端與服務端的HTTPS安全通信通道;3)身份ID模塊根據(jù)請求內(nèi)容驗證客戶端的唯一性(即驗證真?zhèn)危?,若為真,則返回客戶端一串隨機數(shù)作為身份ID(即token),同時將身份ID與創(chuàng)建時間存儲至服務端的身份IDRedis數(shù)據(jù)庫中;4)客戶端利用該身份ID作為token向服務端發(fā)送獲取數(shù)據(jù)通道連接信息的HTTPS請求,請求內(nèi)容包括數(shù)據(jù)通道的唯一標志;5)服務端的認證模塊將身份ID與身份IDRedis數(shù)據(jù)庫進行對比,同時計算該身份ID的創(chuàng)建時間與此刻時間差是否在規(guī)定的過期時間內(nèi),若通過驗證則調(diào)取信息模塊,反之則返回客戶端驗證失敗,客戶端需要重復第一步來獲取新的身份ID;6)信息模塊將數(shù)據(jù)通道的唯一標志與數(shù)據(jù)通道連接信息數(shù)據(jù)庫進行對比,若有則將MQTT通信服務器的連接信息(包括URL地址、用戶名、密碼和topic等)經(jīng)訪問模塊返回至客戶端,若沒有則觸發(fā)MQTT通信模塊創(chuàng)建該數(shù)據(jù)通道,并返回相應連接信息,客戶端根據(jù)返回的連接信息初始化數(shù)據(jù)通道,從而完成基于HTTPS的身份認證服務,并成功與MQTT通信服務器建立連接,即智能終端可通過MQTT數(shù)據(jù)通道將采集數(shù)據(jù)發(fā)送至遠程數(shù)據(jù)平臺。
2.3HTTPS安全通信建立
在整個工作流程中,客戶端與服務端首先要建立HTTPS安全通信通道,保證身份認證信息與數(shù)據(jù)通道連接信息均在安全加密下傳輸,保證數(shù)據(jù)通信的安全可靠,具體流程如下:1)服務端向客戶端發(fā)送服務端公鑰證書,說明站點身份;2)客戶端將利用公鑰證書加密一個自動生成的128位隨機數(shù)作為密鑰,并將該密鑰進行簽名,同密鑰和客戶端公鑰證書發(fā)送至服務端[4];3)服務端利用私鑰對密鑰進行解密得到真正的會話密鑰,通過該真正的會話密鑰、客戶端簽名和客戶端公鑰證書驗證客戶端身份[5],若會話密鑰統(tǒng)一則確定了雙方身份,進而利用該會話密鑰加密通信內(nèi)容,從此安全通信通道建立。
2.4身份ID模塊驗證唯一性
身份ID模塊會根據(jù)客戶端的請求內(nèi)容驗證客戶端的唯一性,其中利用HMACMD5算法進行加密,HMACMD5是從MD5哈希函數(shù)構(gòu)造的一種鍵控哈希算法,被用作基于哈希的消息驗證代碼(HMAC)[6]。此HMAC進程將密鑰與消息數(shù)據(jù)混合,使用哈希函數(shù)對混合結(jié)果進行哈希計算,將所得哈希值與該密鑰混合,然后再次應用哈希函數(shù)[7]。輸出的哈希值長度為128位。驗證流程如下:1)在客戶端投入生產(chǎn)環(huán)境前會預設(shè)客戶端唯一標志(endpointKey)和客戶端唯一標志密碼(endpointSecret)至客戶端中;2)客戶端向服務端發(fā)送獲取身份ID的HTTPS請求之前會獲取當前時間到格林威治時間1970年01月01日00時00分00秒的秒數(shù)與endpointKey進行字符串拼接,形成新字符串;3)使用hmacmd5算法,利用endpointSecret作為密鑰對該新字符串進行簽名加密;4)將該簽名作為客戶端獲取身份ID的HTTPS請求內(nèi)容發(fā)送至服務端;5)服務端將利用預設(shè)好的endpointSecret進行解密,同時驗證該時間與當前時刻之差是否在秒級延時內(nèi),若均通過則生成Base64編碼的隨機數(shù)token作為該客戶端的身份ID,經(jīng)由訪問模塊通過HTTPS安全通信通道返回至客戶端;6)記錄該身份ID與創(chuàng)建時間至身份IDRedis數(shù)據(jù)庫中,方便認證模塊進行token對比,身份IDRedis數(shù)據(jù)庫屬于內(nèi)存數(shù)據(jù)庫,支持并發(fā)的高速響應,同時具有過期鍵刪除策略,滿足身份ID的時效性與多客戶端快速響應等業(yè)務場景需求。
3結(jié)論
遠程數(shù)據(jù)通信身份認證服務可以實現(xiàn)客戶端與服務端的身份認證,同時可以動態(tài)獲取服務端通信數(shù)據(jù)通道的連接信息,保證數(shù)據(jù)通信的安全可靠,整個服務可直接應用于生產(chǎn)環(huán)境。應用HTTPS作為身份認證協(xié)議可以保證身份ID信息、數(shù)據(jù)通道連接信息在加密通道下傳輸,防止被截獲盜取。該遠程數(shù)據(jù)通信身份認證服務為企業(yè)在工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)采集遠程發(fā)送場景打下了基礎(chǔ),后續(xù)可針對本文設(shè)計實現(xiàn)的服務進行升級開發(fā),豐富認證管理功能。
[參考文獻]
[1]王定坤.基于中間人方式的HTTPS監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學,2008.
[2]吳維元,肖柳林,李榮輝.Web服務數(shù)據(jù)傳輸通道的安全性分析[J].網(wǎng)絡(luò)安全技術(shù)與應用,2008(2):85-86.
[3]陸榮杰,劉知貴,鄭曉紅,等.基于HTTPS隧道技術(shù)的統(tǒng)一認證平臺研究與實現(xiàn)[J].計算機應用研究,2006,23(12):168-170.
[4]王成現(xiàn),李夫?qū)?王京.基于HTTPS的移動安全防護體系[J].計算機系統(tǒng)應用,2016,25(7):101-106.
作者:曲曉峰 毛靜軒 單位:哈爾濱電氣集團有限公司