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