胡冶 李翔
摘 要:RFID標簽的簽發(fā)和驗證是RFID應用系統(tǒng)的關鍵環(huán)節(jié)和重要節(jié)點,是RFID應用系統(tǒng)安全的基礎和保障。通過引入MD5簽名算法和DES加密算法,有效提高了RFID標簽的防偽、防篡改、防復制的能力,增強了RFID標簽的安全性。
關鍵詞:RFID;簽發(fā);驗證;加密
中圖分類號:TP316 文獻標識碼:B 文章編號:2095-1302(2015)03-00-02
0 引 言
RFID(Radio Frequency Identification,射頻識別技術)是自動識別技術的一種,通過無線射頻方式進行非接觸雙向數(shù)據(jù)通信,對目標加以識別并獲取相關數(shù)據(jù)。它的主要核心部件是電子標簽,通過相距幾厘米到幾米距離內讀寫器發(fā)射的無線電波,可以讀取電子標簽內儲存的信息,識別電子標簽代表的物品、人和器具的身份。射頻識別技術具有很多突出的優(yōu)點:RFID技術不需要人工干預、不需要直接接觸、不需要光學可視即可完成信息輸入和處理,可工作于各種惡劣環(huán)境,可識別高速運動物體并可同時識別多個標簽,操作快捷方便,實現(xiàn)了無源和免接觸操作,應用便利、無機械磨損、壽命長。目前RFID技術已在倉儲、物流、交通、海關、追溯、金融等諸多領域得到了廣泛應用,其安全特性的重要性不言而喻,它決定了各個RFID應用項目的成敗。
RFID標簽的簽發(fā)是整個RFID應用鏈的起點和源點,是整個RFID應用的安全體系中最重要的核心環(huán)節(jié)之一,是后續(xù)安全要素的基礎和前提。同樣,RFID標簽的驗證也是RFID應用安全體系的核心環(huán)節(jié)和重要節(jié)點。本文通過引入MD5算法和DES算法,從技術上提高了RFID標簽應用的安全特性,有效減低了RFID標簽被偽造、篡改和攻擊的風險。
1 MD5和DES算法
MD5(Message-Digest Algorithm 5[1],信息摘要算法5)用于確保信息傳輸完整一致,是計算機廣泛使用的摘要算法之一。作為典型應用,MD5可對一段信息(Message)產生信息摘要(Message-Digest),以防止被篡改。MD5報文摘要算法將任意長度的信息作為輸入值,并將其換算成一個 128 位長度的"指紋信息"或"報文摘要"值來代表這個輸入值,并以換算后的值作為結果。
一般情況下,MD5算法是非常安全的。MD5算法的優(yōu)勢在于其使用不需要支付版權費用的,且已有各種計算機語言的算法實現(xiàn)。
DES(Data Encryption Standard)[2]是在1975年由IBM公司公開發(fā)表的。DES是對稱加密算法體系中的代表,在計算機網(wǎng)絡系統(tǒng)中廣泛使用。在DES算法中,明文按64位進行分組,密鑰長64位,密鑰事實上是56位參與DES運算分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。
DES算法具有很高的安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。
由于MD5算法存在一定的碰撞幾率[3],為避免對RFID標簽摘要信息的惡意攻擊、復制和克隆,本文提出,在對RFID核心數(shù)據(jù)進行散列算法獲得摘要信息后,用DES算法予以加密,從而避免對現(xiàn)有RFID標簽數(shù)據(jù)的篡改、復制和克隆,以及非授權RFID標簽的出現(xiàn),提高了RFID標簽的安全可靠性。
2 RFID標簽的簽發(fā)
RFID標簽的簽發(fā),是指對對即將進入RFID應用領域的標簽進行發(fā)行機構的數(shù)字簽發(fā),賦予其應用屬性和特征,標明該標簽的作用域、適用范圍和發(fā)行機構,避免與其他標簽或業(yè)務系統(tǒng)的混用、誤用、非授權使用等,并盡量使其具備防偽造、防篡改和防攻擊等能力的過程。通常,對RFID的標簽需經過系統(tǒng)權限驗證、讀取預發(fā)行標簽的基本特征數(shù)據(jù)并驗證,對標簽進行數(shù)字簽名等若干步驟。在本文中,如圖1所示,我們將整個簽發(fā)過程分為:
①驗證標簽發(fā)行權限;②驗證使用者權限;③讀標簽特征數(shù)據(jù);④讀標簽TID;⑤對TID、系統(tǒng)預設的標簽編號以及其他的標簽特征數(shù)據(jù)進行MD5散列算法并進行DES加密;⑥將⑤的結果寫入標簽發(fā)行數(shù)據(jù)區(qū)。
圖1 RFID標簽簽發(fā)流程
本發(fā)行簽發(fā)模式的最大特點是將RFID標簽固有的物理特征數(shù)據(jù)TID納入了MD5數(shù)據(jù)摘要并進行了DES數(shù)據(jù)加密,結合后續(xù)的驗證機制,可有效避免RFID標簽被偽造、克隆或篡改,提高了RFID標簽的安全防偽能力。
簽發(fā)過程的部分核心源碼實現(xiàn)如下:
Procedure issue
begin
...
tagValue=tagBasicValue+tagTid;
tagMD5Value:=MD5Encrypt(tagValue);
//MD5散列,得到信息摘要
tagDESValue:=DESEncrypt(tagMD5Value,Password);
//DES 加密
Res:=WriteLabelBlock(Handle_Scanner,
tagDESValue,USER,@mask,@AccessPassword);
//結果寫入標簽
...
end;
3 RFID標簽的驗證
RFID標簽的驗證是RFID應用系統(tǒng)對本其使用的RFID的標簽的合法性進行確認的過程。本文提出的RFID標簽的驗證基本流程如圖2所示。
RFID標簽驗證的基本流程包括:①驗證RFID讀權限;②讀標簽TID、標簽編號及其他標簽特征數(shù)據(jù),讀標簽發(fā)行數(shù)據(jù)區(qū)數(shù)據(jù);③DES解密標簽散列數(shù)據(jù)、HASH(TID+標簽編號+其他標簽特征數(shù)據(jù));④比較解密數(shù)據(jù)與HASH散列數(shù)據(jù);⑤簽名認證完畢。
結合RFID標簽的簽發(fā)流程不難看出,通過對標簽固有的物理特征數(shù)據(jù)TID、標簽編號和其他標簽特征數(shù)據(jù)進行HASH散列,并將結果與解密后的發(fā)行簽發(fā)數(shù)據(jù)進行比較,可有效驗證RFID標簽的合法性,降低了RFID標簽被偽造和非法入侵的風險,提高了RFID應用系統(tǒng)的安全保障。
圖2 RFID標簽驗證的基本流程
驗證過程的部分核心源碼實現(xiàn)如下:
Procedure Verification
begin
res:=ReadWordBlock(Handle_Scanner,USER,@IDTemp,@ nCounter);
if res=_OK then
begin
for j:=0 to nCounter do
begin
VerifyValues := VerifyValues +chr(IDTemp [j]);
End;
TidMD5Value:=DESDecode(VerifyValues, ,Password); //DES解密
end;
ReadLabelID(Handle_Scanner,Tid,Tid_len,@mask,@IDBuffer,@nCounter); //讀
for j:=0 to nCounter do
begin
TidValues := TidValues +chr(IDBuffer [j]);
End;
If TidMD5Value = MD5Encrypt(TidValues) then
//比較MD5值
Begin
...
End;
end;
4 結 語
本文針對RFID標簽的簽發(fā)和驗證提出了基于DES和HASH算法的鏈式結構,有效解決了RFID標簽可能存在的可能被偽造、盜用或非法入侵的安全隱患,提升了RFID標簽的安全和可用性。
在現(xiàn)有的諸多RFID應用體系框架中,還存在著很多安全隱患,亟待相關RFID從業(yè)人員從技術或管理角度予以解決,這也將是我們下一步的工作內容和研究方向。
參考文獻
[1] Ronald L. Rivest. The MD5 Message-Digest Algorithm. Network Working Group Request for Comments: 1321[S].1992.
[2] NBS. Data Encryption Standard[S]. FIPS-Pub.46,1977.
[3] Tao Xie, Dengguo Feng. How To Find Weak Input Differences For MD5 Collision Attacks[EB/OL], http://eprint.iacr.org/2009/223.pdf, 2009.