一種資源服務(wù)器和客戶端交互會(huì)話消息的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種資源服務(wù)器和客戶端交互會(huì)話消息的方法及裝置。
【背景技術(shù)】
[0002]物聯(lián)網(wǎng)(The Internet of things)是新一代信息技術(shù)的重要組成部分,是指通過(guò)各種信息傳感設(shè)備,實(shí)時(shí)采集任何需要監(jiān)控、連接、互動(dòng)的物體或過(guò)程等各種需要的信息,與互聯(lián)網(wǎng)結(jié)合形成的一個(gè)巨大網(wǎng)絡(luò)。
[0003]通常,在物聯(lián)網(wǎng)中,RS (Resource Server,資源服務(wù)器)上面包含一個(gè)或多個(gè)資源實(shí)體,資源實(shí)體可以是傳感器,如濕度傳感器、溫度傳感器、重力傳感器、各種工業(yè)傳感器等;資源實(shí)體也可以是控制器,如燈的開(kāi)關(guān)、溫度調(diào)節(jié)器、各種工業(yè)控制器等。
[0004]資源服務(wù)器是受限節(jié)點(diǎn),受限節(jié)點(diǎn)相對(duì)于非受限節(jié)點(diǎn),擁有有限的中央處理單元、有限的存儲(chǔ)空間、有限的電池容量、有限的數(shù)據(jù)傳輸能力、有限的用戶界面等,通常指?jìng)鞲衅鳌⒖刂破?、智能?duì)象、智能設(shè)備等。受限節(jié)點(diǎn)中的RAM (Random Access Memory,隨機(jī)存儲(chǔ)器)的存儲(chǔ)容量小等于50千字節(jié),非授權(quán)節(jié)點(diǎn)中的ROM (Read Only Memory,只讀存儲(chǔ)器)的存儲(chǔ)容量小于等于為250千字節(jié)。由受限節(jié)點(diǎn)組成的網(wǎng)絡(luò)通常稱為受限網(wǎng)絡(luò),這樣的網(wǎng)絡(luò)通常傳輸通道不穩(wěn)定、帶寬有限而且不可預(yù)測(cè)、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也不穩(wěn)定。
[0005]授權(quán)服務(wù)器一般位于資源服務(wù)器的歸屬域,是非受限節(jié)點(diǎn),非受限節(jié)點(diǎn)是指,相對(duì)于受限節(jié)點(diǎn),處理能力強(qiáng)、存儲(chǔ)空間大、電池容量大、傳輸能力強(qiáng)、用戶界面豐富等特點(diǎn)的設(shè)備,非授權(quán)節(jié)點(diǎn)中的RAM的存儲(chǔ)容量大于50千字節(jié),非授權(quán)節(jié)點(diǎn)中的ROM的存儲(chǔ)容量大于為250千字節(jié)。授權(quán)服務(wù)器它代表資源擁有者來(lái)協(xié)助資源服務(wù)器行使對(duì)客戶端的權(quán)限認(rèn)證和授權(quán)控制,授權(quán)服務(wù)器的主要功能包括下列功能的一項(xiàng)或者多項(xiàng):1)從資源擁有者處獲取資源服務(wù)器的授權(quán)信息,即:哪個(gè)客戶端對(duì)哪個(gè)資源服務(wù)器在什么條件下?lián)碛心男┰L問(wèn)權(quán)限;2)協(xié)助資源服務(wù)器來(lái)建立客戶端與資源服務(wù)器之間的安全數(shù)據(jù)傳輸通道,即:協(xié)商會(huì)話密鑰或提供認(rèn)證信息;3)根據(jù)客戶端或資源服務(wù)器的請(qǐng)求,針對(duì)不同的客戶端和不同的授權(quán)服務(wù)器上的不同的資源信息,返回授權(quán)信息;4)存儲(chǔ)資源擁有者設(shè)置的授權(quán)規(guī)則,并根據(jù)授權(quán)規(guī)則,對(duì)來(lái)自于客戶端或資源服務(wù)器的授權(quán)請(qǐng)求做授權(quán)驗(yàn)證。
[0006]如圖1所示,在實(shí)際應(yīng)用中,客戶端需要訪問(wèn)資源服務(wù)器上的資源實(shí)體來(lái)獲取相關(guān)的資源,為了提高安全性,客戶端和資源服務(wù)器之間交互的消息需要進(jìn)行加密,密鑰協(xié)商過(guò)程如下:
[0007]步驟1:客戶端向資源服務(wù)器發(fā)送資源請(qǐng)求;
[0008]在該步驟中,資源請(qǐng)求中未包含授權(quán)信息;
[0009]步驟2:資源服務(wù)器返回授權(quán)服務(wù)器的地址信息給客戶端;
[0010]步驟3:客戶端向認(rèn)證管理器發(fā)送授權(quán)請(qǐng)求,該授權(quán)請(qǐng)求用于請(qǐng)求授權(quán)信息;
[0011]步驟4:認(rèn)證管理器將授權(quán)請(qǐng)求轉(zhuǎn)發(fā)至授權(quán)服務(wù)器,請(qǐng)求授權(quán)信息;
[0012]步驟5:授權(quán)服務(wù)器生成隨機(jī)數(shù),并基于第一密鑰和隨機(jī)數(shù)生成第二密鑰:K_RS-C ;
[0013]在該步驟中,第一密鑰為預(yù)先配置的與資源服務(wù)器的共享密鑰;
[0014]步驟6:授權(quán)服務(wù)器向認(rèn)證管理器發(fā)送授權(quán)信息、第二密鑰和隨機(jī)數(shù);
[0015]步驟7:認(rèn)證管理器向客戶端轉(zhuǎn)發(fā)授權(quán)信息,以及第二密鑰和隨機(jī)數(shù);
[0016]步驟8:客戶端保存接收到的第二密鑰和授權(quán)信息,將隨機(jī)數(shù)發(fā)送給資源服務(wù)器。
[0017]在這之后,還執(zhí)行如下操作:資源服務(wù)器基于第一密鑰和接收到的隨機(jī)數(shù)生成第二密鑰;
[0018]客戶端與資源服務(wù)器基于第二密鑰來(lái)建立DTLS(Datagram Transport LayerSecurity,數(shù)據(jù)包傳輸層安全性協(xié)議)安全通道,并基于DTLS安全通道,客戶端與資源服務(wù)器之間進(jìn)行交互。
[0019]從上述可以看出,現(xiàn)有技術(shù)中認(rèn)證管理器和授權(quán)服務(wù)器都知道客戶端和資源服務(wù)器之間傳輸會(huì)話消息的密鑰,可以獲取客戶端和資源服務(wù)器之間交互的會(huì)話消息,因此,安全性較差。
【發(fā)明內(nèi)容】
[0020]本發(fā)明實(shí)施例提供一種資源服務(wù)器和客戶端交互會(huì)話消息的方法及裝置,用以解決現(xiàn)有技術(shù)中客戶端和資源服務(wù)器之間交互會(huì)話消息時(shí)存在的安全性較差的缺陷。
[0021]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0022]第一方面,提供一種資源服務(wù)器和客戶端交互會(huì)話消息的方法,包括:
[0023]接收客戶端發(fā)送的客戶端的第一密鑰及認(rèn)證管理器的第一數(shù)字簽名;
[0024]對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,在所述第一數(shù)字簽名驗(yàn)證成功時(shí),根據(jù)所述客戶端的第一密鑰生成資源服務(wù)器的第一密鑰;
[0025]接收所述客戶端發(fā)送的所述客戶端利用所述客戶端的第二密鑰加密的第二數(shù)字簽名,所述第二數(shù)字簽名是所述客戶端對(duì)所述客戶端的第一密鑰和所述資源服務(wù)器的第二密鑰所作的數(shù)字簽名;
[0026]基于所述資源服務(wù)器的第一密鑰對(duì)加密的所述第二數(shù)字簽名進(jìn)行解密,獲取所述第二數(shù)字簽名時(shí),對(duì)所述第二數(shù)字簽名進(jìn)行驗(yàn)證;
[0027]所述第二數(shù)字簽名驗(yàn)證成功時(shí),利用所述資源服務(wù)器的第一密鑰加密與所述客戶端交互的會(huì)話消息。
[0028]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)字簽名是所述認(rèn)證管理器對(duì)所述客戶端的公鑰利用所述認(rèn)證管理器的私鑰生成的。
[0029]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證之前,還包括:
[0030]獲取所述認(rèn)證管理器的公鑰、所述客戶端的公鑰;
[0031]對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,具體包括:
[0032]根據(jù)哈希算法對(duì)所述客戶端的公鑰生成第一信息摘要;
[0033]使用所述認(rèn)證管理器的公鑰對(duì)所述第一數(shù)字簽名解密,并比較將所述第一數(shù)字簽名解密后得到的信息與所述第一信息摘要是否相同;
[0034]所述第一數(shù)字簽名驗(yàn)證成功,具體包括:
[0035]所述第一數(shù)字簽名解密后得到的信息與所述第一信息摘要相同。
[0036]結(jié)合第一方面,以及第一方面的第一至第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,根據(jù)所述客戶端的第一密鑰生成資源服務(wù)器的第一密鑰,具體包括:
[0037]根據(jù)所述客戶端的第一密鑰生成的所述資源服務(wù)器的第一密鑰符合如下規(guī)則:
[0038]kl = A'b mod p
[0039]其中,所述kl為所述資源服務(wù)器的第一密鑰,所述A為所述客戶端的第一密鑰,所述b為所述資源服務(wù)器的第三密鑰,所述P為素?cái)?shù)。
[0040]結(jié)合第一方面,以及第一方面的第一至第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,接收所述第二數(shù)字簽名之前,還包括:
[0041]向授權(quán)服務(wù)器發(fā)送所述資源服務(wù)器的公鑰;
[0042]接收所述授權(quán)服務(wù)器對(duì)所述資源服務(wù)器的公鑰生成的第三數(shù)字簽名;
[0043]將所述第三數(shù)字簽名發(fā)送至所述客戶端。
[0044]結(jié)合第一方面,以及第一方面的第一至第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,接收所述第二數(shù)字簽名之前,還包括:
[0045]將所述資源服務(wù)器的公鑰、所述資源服務(wù)器的第二密鑰、所述資源服務(wù)器利用所述資源服務(wù)器的第一密鑰加密的第四數(shù)字簽名發(fā)送至所述客戶端,所述第四數(shù)字簽名是所述資源服務(wù)器對(duì)所述資源服務(wù)器的第二密鑰和所述客戶端的第一密鑰所作的數(shù)字簽名。
[0046]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,將所述資源服務(wù)器的公鑰、所述資源服務(wù)器的第二密鑰、所述第四數(shù)字簽名發(fā)送至所述客戶端之前,還包括:
[0047]生成的所述資源服務(wù)器的第二密鑰符合如下規(guī)則:
[0048]B = g'b mod p
[0049]其中,所述B為所述資源服務(wù)器的第二密鑰、所述g為原根、所述b為所述資源服務(wù)器的第三密鑰。
[0050]結(jié)合第一方面,以及第一方面的第一至第六種可能的實(shí)現(xiàn)方式,在第七種可能的實(shí)現(xiàn)方式中,生成的所述客戶端的第二密鑰符合如下規(guī)則:
[0051]k2 = B'a mod p
[0052]其中,所述k2為所述客戶端的第二密鑰、所述B為所述資源服務(wù)器的第二密鑰、所述a為所述客戶端的第三密鑰。
[0053]結(jié)合第一方面,以及第一方面的第一至第七種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,對(duì)所述第二數(shù)字簽名進(jìn)行驗(yàn)證,具體包括:
[0054]根據(jù)哈希算法對(duì)所述客戶端的第一密鑰和所述資源服務(wù)器的第二密鑰生成第二信息摘要;
[0055]使用所述客戶端的公鑰對(duì)第二數(shù)字簽名解密,并比較將所述第二數(shù)字簽名解密后得到的信息與所述第二信息摘要是否相同;
[0056]所述第二數(shù)字簽名驗(yàn)證成功,具體包括:
[0057]所述第二數(shù)字簽名解密后得到的信息與所述第二信息摘要相同。
[0058]第二方面,提供一種資源服務(wù)器和客戶端交互會(huì)話消息的方法,包括:
[0059]接收資源服務(wù)器發(fā)送的授權(quán)服務(wù)器的第三數(shù)字簽名、所述資源服務(wù)器的第二密鑰,及所述資源服務(wù)器利用所述資源服務(wù)器的第一密鑰加密的第四數(shù)字簽名,所述第四數(shù)字簽名是所述資源服務(wù)器對(duì)所述資源服務(wù)器的第二密鑰和所述客戶端的第一密鑰所作的數(shù)字簽名;
[0060]對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證,在所述第三數(shù)字簽名驗(yàn)證成功時(shí),根據(jù)所述資源服務(wù)器的第二密鑰生成所述客戶端的第二密鑰;
[0061]利用所述客戶端的第二密鑰對(duì)所述第四數(shù)字簽名進(jìn)行解密,獲取所述第四數(shù)字簽名時(shí),對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;
[0062]在所述第四數(shù)字簽名驗(yàn)證成功時(shí),利用所述客戶端的第二密鑰加密與所述資源服務(wù)器交互的會(huì)話消息。
[0063]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述第三數(shù)字簽名是所述授權(quán)服務(wù)器對(duì)所述資源服務(wù)器的公鑰利用所述授權(quán)服務(wù)器的私鑰生成的。
[0064]結(jié)合第二方面,以及第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證之前,還包括:
[0065]獲取所述授權(quán)服務(wù)器的公鑰、所述資源服務(wù)器的公鑰;
[0066]對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證,具體包括:
[0067]根據(jù)哈希算法對(duì)所述資源服務(wù)器的公鑰生成第三信息摘要;
[0068]使用所述授權(quán)服務(wù)器的公鑰對(duì)所述第三數(shù)字簽名解密,并比較將所述第三數(shù)字簽名解密后得到的信息與所述第三信息摘要是否相同;
[0069]所述第三數(shù)字簽名驗(yàn)證成功,具體包括:
[0070]所述第三數(shù)字簽名解密后得到的信息與所述第三信息摘要相同。
[0071]結(jié)合第二方面,以及第二方面的第一至第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,根據(jù)所述資源服務(wù)器的第二密鑰生成所述客戶端的第二密鑰,具體包括:
[0072]根據(jù)所述資源服務(wù)器的第二密鑰生成的所述客戶端的第二密鑰符合如下規(guī)則:
[0073]k2 = B'a mod p
[0074]其中,所述k2為所述客戶端的第二密鑰,所述B為所述資源服務(wù)器的第二密鑰,所述a為所述客戶端的第三密鑰,所述P為素?cái)?shù)。
[0075]結(jié)合第二方面,以及第二方面的第一至第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證,具體包括:
[0076]根據(jù)哈希算法對(duì)所述資源服務(wù)器的第二密鑰和所述客戶端的第一密鑰生成第四信息摘要;
[0077]使用所述資源服務(wù)器的公鑰對(duì)第四數(shù)字簽名解密,并比較將所述第四數(shù)字簽名解密后得到的信息與所述第四信息摘要是否相同;
[0078]所述第四數(shù)字簽名驗(yàn)證成功,具體包括:
[0079]所述第四數(shù)字簽名解密后得到的信息與所述第四信息摘要相同。
[0080]結(jié)合第二方面,以及第二方面的第一至第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,接收所述第三數(shù)字簽名、所述資源服務(wù)器的第二密鑰,及所述第四數(shù)