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