黃瑞銘
中海油田服務(wù)股份有限公司 河北 065201
隨著中海油田服務(wù)股份有限公司國(guó)際業(yè)務(wù)的拓展,在現(xiàn)有條件下,積極推進(jìn)企業(yè)現(xiàn)代物流體系建設(shè),是提高中海油服后勤保障能力的一條有效途徑。建設(shè)配送物資跟蹤的核心運(yùn)轉(zhuǎn)系統(tǒng),對(duì)通用物資庫(kù)所有入庫(kù)和后期配送的物資實(shí)現(xiàn)信息跟蹤,能全程查詢(xún)到物資配送過(guò)程中所對(duì)應(yīng)關(guān)鍵節(jié)點(diǎn)信息成為企業(yè)信息化建設(shè)的重要任務(wù)。
在系統(tǒng)實(shí)施過(guò)程中,如何確保所傳遞數(shù)據(jù)的真實(shí)性是系統(tǒng)重要安全問(wèn)題之一。本系統(tǒng)嘗試采用RFID技術(shù)進(jìn)行相關(guān)研究,讀寫(xiě)器和標(biāo)簽之間的認(rèn)證是保證數(shù)據(jù)安全性最重要手段之一。該數(shù)據(jù)加密密鑰若在網(wǎng)絡(luò)中以明文的形式傳輸,很有可能被不法分子截取,進(jìn)而獲取雙方傳輸?shù)臄?shù)據(jù),或者偽裝成一方,與另一方通信。這將自然而然的涉及到密鑰存儲(chǔ)和管理的問(wèn)題?;谏鲜鰡?wèn)題,在查閱相關(guān)資料的基礎(chǔ)上,發(fā)現(xiàn)國(guó)內(nèi)外學(xué)者在RFID身份認(rèn)證的過(guò)程中都是使用簡(jiǎn)單的 Hash單向函數(shù)來(lái)實(shí)現(xiàn),本文將提出一種基于可信第三方—KDC(Key Dispatch Center密鑰分配中心)的認(rèn)證方案,提出將Kerberos協(xié)議應(yīng)用于RFID系統(tǒng)。將改進(jìn)Kerberos協(xié)議,以實(shí)現(xiàn)讀寫(xiě)器與標(biāo)簽之間的雙向認(rèn)證,進(jìn)而保證數(shù)據(jù)的真實(shí)性。
盡管Kerberos身份認(rèn)證協(xié)議有其巨大的應(yīng)用優(yōu)勢(shì),但是要將它應(yīng)用于配送物資跟蹤系統(tǒng)中,仍存在一些缺陷,不足之處主要體現(xiàn)在以下幾個(gè)方面:
(1)密鑰交換問(wèn)題
由于Kerberos身份認(rèn)證采用的是對(duì)稱(chēng)加密機(jī)制,加密和解密使用的是相同的密鑰,使得雙方交換密鑰時(shí)的安全性難以保障。一旦攻擊者截獲密鑰,竊聽(tīng)、篡改信息就變得易如反掌。因此,發(fā)送方如何安全、高效地將密鑰發(fā)送到接受方式Kerberos協(xié)議難以解決的問(wèn)題。
(2)密鑰管理問(wèn)題
隨著用戶(hù)數(shù)量的增加,使得密鑰管理更復(fù)雜。不同客戶(hù)端與服務(wù)器之間通信使用不同的密鑰,這致使服務(wù)器端存儲(chǔ)的密鑰數(shù)量非常多。這在密鑰管理和維護(hù)方面帶來(lái)很大的麻煩。
(3)共享客戶(hù)端口令的局限性
Kerberos服務(wù)器與客戶(hù)端共享的服務(wù)會(huì)話密鑰是客戶(hù)端的口令字,而服務(wù)器在響應(yīng)時(shí)不需驗(yàn)證客戶(hù)端的真實(shí)性,只是直接假設(shè)只有合法客戶(hù)端擁有了該口令字。如果攻擊者截獲該響應(yīng)消息,就很容易形成密碼攻擊。
(4)數(shù)字簽名問(wèn)題
Kerberos協(xié)議采用的對(duì)稱(chēng)密碼體制中通信雙方擁有相同的密鑰,所以接受方可以偽造簽名,發(fā)送方也可以否認(rèn)發(fā)送過(guò)某消息,即存在鑒別認(rèn)證和不可否認(rèn)性的困難。尤其在RFID系統(tǒng)中,存在大量的陌生標(biāo)簽和讀寫(xiě)器,讓這些互不認(rèn)識(shí)的設(shè)備進(jìn)行安全可信的信息傳遞是其急待解決的問(wèn)題。
基于上述問(wèn)題,本文提出的改進(jìn)的Kerberos協(xié)議中,使用公鑰密碼體制去維護(hù)KDC與客戶(hù)端之間,客戶(hù)端與服務(wù)器之間傳輸數(shù)據(jù)的安全性。密鑰分發(fā)中心KDC分別用客戶(hù)端和服務(wù)器的公鑰去加密服務(wù)會(huì)話密鑰,由于加密后的服務(wù)會(huì)話密鑰只有用各自的私鑰才能解密,進(jìn)一步增強(qiáng)了雙方通信的安全性。同時(shí),公鑰密碼體制給密鑰的管理和維護(hù)方面帶來(lái)很大的方便。
用公鑰密碼的理念來(lái)改進(jìn)Kerberos協(xié)議,就能有效克服上述4點(diǎn)缺陷,讓Kerberos協(xié)議更適合配送物資跟蹤系統(tǒng)這種及時(shí)性要求高、標(biāo)簽的運(yùn)算和存儲(chǔ)資源有限、安全性風(fēng)險(xiǎn)大的特殊環(huán)境。以下將詳細(xì)描述改進(jìn)后的協(xié)議流程。
密鑰分配中心(KDC)為可信的第三方,假設(shè)讀寫(xiě)器能與KDC通信,并能夠從KDC處獲取票證許可票證(TGT)和訪問(wèn)某特定服務(wù)器的服務(wù)票證(ST)。同時(shí),KDC的列表中存儲(chǔ)著所有讀寫(xiě)器和標(biāo)簽的公鑰信息,分別用 Rpubkey和Tpubkey表示。讀寫(xiě)器的私鑰存于讀寫(xiě)器的存儲(chǔ)器中,用Rprikey表示;而標(biāo)簽的私鑰存于標(biāo)簽的存儲(chǔ)器中,用Tprikey表示。讀寫(xiě)器中存儲(chǔ)著KDC的公鑰,用Rpubkey表示,便于讀寫(xiě)器對(duì)KDC發(fā)送的消息進(jìn)行認(rèn)證和識(shí)別。讀寫(xiě)器的基本信息用Rinfo表示,用于后續(xù)認(rèn)證。
(1)讀寫(xiě)器向KDC請(qǐng)求票證許可票證TGT
讀寫(xiě)器向密鑰分發(fā)中心(KDC)發(fā)送一個(gè)Kerberos身份認(rèn)證服務(wù)請(qǐng)求,以期獲得票證許可票證TGT。該請(qǐng)求包含讀寫(xiě)器名Readername、請(qǐng)求TGT所需的服務(wù)信息Rinfo以及使用讀寫(xiě)器的公鑰加密的時(shí)間戳。
即Request1=Readername||Rinfo||ERpubkey(Timestamp)
改進(jìn)Keberos協(xié)議的應(yīng)用環(huán)境是在多標(biāo)簽、多讀寫(xiě)器環(huán)境中,目的在于防止非法讀寫(xiě)器讀取到標(biāo)簽的內(nèi)容,在眾多的讀寫(xiě)器中至少能保證一臺(tái)讀寫(xiě)器是安全的,而標(biāo)簽內(nèi)存儲(chǔ)的不可能是貨物詳細(xì)的信息,需要跟后臺(tái)數(shù)據(jù)庫(kù)交互才能完成信息獲取,此處的密鑰分發(fā)中心(KDC)完全可以設(shè)置在部署數(shù)據(jù)庫(kù)的上位機(jī)上。
基于KDC分配密鑰的巨大優(yōu)勢(shì)在于密鑰是實(shí)時(shí)分配,不同的時(shí)刻、不同的通信雙方之間使用的密鑰是不同的,完全有KDC決定,這極大保障了RFID系統(tǒng)的安全性,其次通信過(guò)程中的密鑰無(wú)需在初始化階段固定在標(biāo)簽中,這就可以防止通過(guò)分析標(biāo)簽結(jié)構(gòu)來(lái)截獲密鑰,同時(shí)減少系統(tǒng)部署的負(fù)擔(dān)。
(2) KDC向讀寫(xiě)器發(fā)送加密的TGT和登錄會(huì)話密鑰Lskey
KDC先用Rprikey解密 ERpubkey(Timestamp)得到Timestamp,判定該標(biāo)簽是否有效,若有效,則該讀寫(xiě)器是合法的。之后,利用該讀寫(xiě)器的相關(guān)信息生成登錄會(huì)話密鑰 Lskey,再用讀寫(xiě)器的公鑰將其加密得到 ERpubkey(Lskey),用KDC自己的私鑰加密TGT得到 EKprikey(TGT)。
最后,將Response1 = ERpubkey(Lskey)||EKpubkey(TGT(Rinfo))發(fā)送給讀寫(xiě)器。
(3)讀寫(xiě)器向KDC請(qǐng)求訪問(wèn)特定標(biāo)簽的服務(wù)票證ST
讀寫(xiě)器用自己的私鑰解密 ERpubkey(Lskey),得到登錄會(huì)話密鑰Lskey,并用KDC的公鑰解密 EKpubkey(TGT(Rinfo)),得到TGT。之后,讀寫(xiě)器向KDC發(fā)送訪問(wèn)某特定標(biāo)簽的請(qǐng)求。Request2=Readername ||ELskey(tag)||TGT||Tagid。其中,tag為認(rèn)證符,用于后續(xù)的認(rèn)證過(guò)程,Tagid為讀寫(xiě)器想訪問(wèn)標(biāo)簽的ID。
嚴(yán)格來(lái)說(shuō),讀寫(xiě)器與標(biāo)簽的通信是廣播方式完成的,它會(huì)將請(qǐng)求發(fā)送給識(shí)別范圍內(nèi)所有的標(biāo)簽,正因如此,在開(kāi)放信道內(nèi)才有保證其數(shù)據(jù)安全的必要性。這中間又分兩個(gè)步驟,首先是獲取所有標(biāo)簽的ID,讀寫(xiě)器用輪詢(xún)的方式查看有無(wú)新標(biāo)簽進(jìn)入,在標(biāo)簽進(jìn)入讀寫(xiě)器的識(shí)別范圍內(nèi),會(huì)響應(yīng)讀寫(xiě)器,并將ID返回給它(ID只是標(biāo)簽的名字,不會(huì)包含隱私信息,同時(shí)也是做到點(diǎn)對(duì)點(diǎn)通信所必須的,而標(biāo)簽的隱私數(shù)據(jù)如貨物價(jià)格、產(chǎn)地和EPC碼等,是通過(guò)AES加密后傳輸?shù)?,這一點(diǎn)類(lèi)似計(jì)算機(jī)網(wǎng)絡(luò)里的 ARP,當(dāng)一臺(tái)計(jì)算機(jī)加入到一個(gè)新的網(wǎng)絡(luò)之后會(huì)廣播其MAC地址,告訴所有主機(jī)它的訪問(wèn)地址,這一步是公開(kāi)的,但更深層次的數(shù)據(jù)獲取等操作是需要雙方認(rèn)證的;其次是訪問(wèn)某特定 ID的標(biāo)簽,比如讀寫(xiě)器要訪問(wèn)001,就會(huì)廣播Read-001消息,眾多標(biāo)簽在接受到這個(gè)消息后,會(huì)根據(jù)自身的ID是否是001,還有該讀寫(xiě)器是否具有訪問(wèn)權(quán)限來(lái)決定響應(yīng)與否。
在安全行要求及其嚴(yán)格的情況下,標(biāo)簽 ID也是不允許明文傳輸?shù)模梢酝ㄟ^(guò)隨機(jī)Hash-Lock協(xié)議對(duì)ID進(jìn)行加密:標(biāo)簽在收到讀寫(xiě)器的請(qǐng)求Query后,生成一個(gè)隨機(jī)數(shù)R,并計(jì)算其中,IDk為標(biāo)簽ID標(biāo)識(shí),并將(R,數(shù)據(jù)對(duì)送至后臺(tái)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)查詢(xún)滿足的記錄。若找到則將對(duì)應(yīng)的IDj發(fā)往標(biāo)簽,標(biāo)簽比較與是否相同,最后確定是否認(rèn)證通過(guò),這種方式在獲得標(biāo)簽 ID安全性的同時(shí),自然會(huì)帶來(lái)計(jì)算復(fù)雜性,每訪問(wèn)一個(gè)標(biāo)簽都意味著讀寫(xiě)器遍歷一次數(shù)據(jù)庫(kù)。
(4)KDC發(fā)送加密的服務(wù)會(huì)話密鑰Sskey和服務(wù)票證ST
KDC收到Request2后,先用Lskey解密ELskey(tag),得到認(rèn)證符tag,并做初步判定,若合法,則繼續(xù)后續(xù)的驗(yàn)證。從TGT中提取讀寫(xiě)器的相關(guān)信息,并使用該信息創(chuàng)建訪問(wèn)相應(yīng)標(biāo)簽的服務(wù)會(huì)話密鑰 Sskey。之后,KDC用 Lskey加密Sskey,得到
ELskey(Sskey);用相應(yīng)標(biāo)簽的公鑰加密服務(wù)票證ST,得到 ETpubkey(ST)。
響應(yīng)消息Response2 =ELskey(Sskey)||ETpubkey(S T)
(5)讀寫(xiě)器向特定標(biāo)簽發(fā)送訪問(wèn)請(qǐng)求
讀寫(xiě)器接收Response2后,先用Lskey解密ELskey(Sskey),得到服務(wù)會(huì)話密鑰 Sskey,該密鑰用于后續(xù)讀寫(xiě)器與標(biāo)簽之間通信時(shí)加密數(shù)據(jù)。接著,讀寫(xiě)器向標(biāo)簽發(fā)送訪問(wèn)請(qǐng)求Request,Request中包含用Sskey和ST加密的身份認(rèn)證信息,以及從KDC處接收到的 ETpubkey(S T)。
即Request =EST(ESskey(Rinfo||Timestamp))||ETpubkey(S T)
(6)讀寫(xiě)器與標(biāo)簽進(jìn)行相互認(rèn)證
標(biāo)簽先用自己的私鑰解密 ETpubkey(S T)(非對(duì)稱(chēng)密碼體制中的私鑰解密的過(guò)程非常簡(jiǎn)單,都是與、或、非、異或、移位之類(lèi),易于硬件實(shí)現(xiàn),在查閱資料的過(guò)程中,已經(jīng)有人將RSA、橢圓曲線等非對(duì)稱(chēng)加密算法應(yīng)用于RFID讀寫(xiě)器標(biāo)簽通信的過(guò)程中,因此私鑰解密應(yīng)用于RFID系統(tǒng)身份認(rèn)證這種操作頻度不高的行為上是可行的),得到ST;再?gòu)腟T中分離出服務(wù)會(huì)話密鑰 Sskey,利用 ST和 Sskey解密EST(ESskey(Rinfo || Timestamp)),從而得到時(shí)間戳Timestamp。再將解密認(rèn)證符得到的讀寫(xiě)器信息Rinfo與ST中分離出的做比較,若相同,則該讀寫(xiě)器就是合法的,認(rèn)證通過(guò)。
接著,標(biāo)簽利用 Sskey加密 Timestamp后得到ESskey(Timestamp),(此處的 TimeStamp是上一步中從讀寫(xiě)器發(fā)來(lái)的信息中分離出來(lái)的,相當(dāng)于隨機(jī)數(shù)的作用,加入時(shí)間因素后隨機(jī)性相應(yīng)增強(qiáng),安全性提高)并傳回給讀寫(xiě)器。讀寫(xiě)器使用Sskey解密后獲取時(shí)間戳。若此時(shí)間戳與其初始發(fā)送的相同,則該標(biāo)簽正是讀寫(xiě)器想訪問(wèn)的,認(rèn)證通過(guò)。
Kerberos認(rèn)證協(xié)議的作用在于身份認(rèn)證,如同登錄一些系統(tǒng)需要輸入用戶(hù)名密碼,在確認(rèn)身份無(wú)誤之后,而身份認(rèn)證過(guò)程操作頻度不大、實(shí)時(shí)性不強(qiáng)、但安全要求非常高,所以效率并非考慮的主要因素,Kerberos協(xié)議主要應(yīng)用于計(jì)算機(jī)局域網(wǎng)組網(wǎng)時(shí)網(wǎng)內(nèi)主機(jī)認(rèn)證,抽象來(lái)看,應(yīng)用環(huán)境類(lèi)似RFID系統(tǒng),改進(jìn)之后的認(rèn)證過(guò)程并沒(méi)有延續(xù)原始協(xié)議復(fù)雜的消息加密體制,而是常用公鑰加密、私鑰解密,附加簡(jiǎn)單邏輯操作,適合RFID這種計(jì)算資源有限的環(huán)境,效率也是可以保證的。
通過(guò)以上的改進(jìn)協(xié)議應(yīng)用于配送物資跟蹤系統(tǒng)的測(cè)試環(huán)節(jié)中,取得了預(yù)計(jì)的效果。說(shuō)明用公鑰密碼的理念來(lái)改進(jìn)Kerberos協(xié)議,就能有效克服傳統(tǒng)的Kerberos協(xié)議的4點(diǎn)缺陷。具有一定的價(jià)值。
[1]林責(zé)彬,王永華,詹宜巨.一種基于隨機(jī)序列的RFID安全協(xié)議[J].計(jì)算機(jī)工程.2008.
[2]陳克力,郭春生.一種雙層/雙向認(rèn)證的隨機(jī)Hash鎖RFID安全協(xié)議[J].電子技術(shù)應(yīng)用.2008.
[3]李章林,盧桂章,辛運(yùn)幃.重加密技術(shù)在RFID安全中的應(yīng)用[J].計(jì)算機(jī)工程.2008.
[4]裴友林,楊善林.基于密鑰矩陣的RFID安全協(xié)議[J].計(jì)算機(jī)工程.2008.