陳新林 王政銘
摘 要:文中突破了IC端讀寫限制,解決了基于NFC不安全通信環境下的芯片動態防偽問題。通過設計方案,降低了廠商密鑰管理的難度,進一步提高了防偽可靠性。在通信環境不安全甚至不友好的情況下,仍然能夠保證IC芯片與企業后臺數據庫系統數據同步,進一步提高系統的適用性,降低對數據庫安全性的要求。即便數據庫信息被泄漏給偽造者,由于IC方和企業后臺數據庫系統DBS方實施了雙向動態更新,使得對IC標簽的克隆、偽造無法實現。
關鍵詞:無源芯片;動態信息防偽;NFC;防偽技術
中圖分類號:TP309 文獻標識碼:A 文章編號:2095-1302(2018)01-0-03
0 引 言
假冒偽劣產品層出不窮,給消費者、企業以及社會造成了巨大損失。雖然打假活動在不斷進行,同時相關單位也在不斷研究和應用新型防偽技術,但造假者也在不斷進步,所以需要我們更新和利用新技術防偽。根據其特性,目前傳統的防偽技術可分為兩類:一是特殊工藝和材料防偽,主要包括激光、油墨、特殊紙張防偽;二是數碼防偽,包括條形碼、二維碼和傳統的IC卡(智能卡、M1)防偽。基于傳統工藝的防偽技術無法承載數據信息且易于造假,二維碼則無法動態寫入信息、可被復制等,而M1技術作為RFID標簽中的一種,借助NFC(無線近場通信)技術,通過M1-RFID-NFC模式在市場上得到了廣泛應用。然而,這種IC卡的安全過于依賴密鑰,其安全性也受到質疑并被成功破解。只有采用了CPU數據處理器的IC卡才具有足夠高的安全性。本項目基于IC卡及NFC(無線近場通信)技術研制,但目前的產品或解決方案還不成熟,仍存在一些問題待解決,如密鑰管理復雜性問題、芯片克隆問題。由于需要考慮安全性,限制了一般非授權用戶操作過程中系統更新卡中信息,導致克隆問題不能有效解決,若讓一般非授權用戶操作時可由系統更新卡中信息又將面臨NFC通信環境的安全性問題等。為簡化描述,本文將芯片系統、NFC系統及廠商數據庫系統分別用IC、NFC、DBS代表。
1 文獻綜述
目前,在芯片防偽領域大多采用含有CPU的智能芯片,內含CPU、固化有加密解密程序及相應的存儲空間等,可看作一個小型的信息處理系統。芯片系統通過NFC系統與廠商數據庫系統交互,比對相關聯數據,可最終判斷產品真偽。
文獻[1]提出了基于NFC技術的酒類防偽溯源系統;文獻[2]提出了基于NFC芯片的防偽溯源系統;文獻[3]提出了基于NFC的茶葉防偽驗證可追溯系統等。
在專利方面,有企業設計了基于NFC芯片防偽認證的商品追溯方法;基于NFC芯片防偽認證的數據加密方法;基于NFC芯片防偽認證的自動批量處理以及自動寫卡方法等。
通過對現有技術及專利的跟蹤研究發現,至少存在如下4個方面的問題:
(1)為確保防偽的有效性,在多數系統中,一般采取對寫有防偽信息的數據進行加密存儲,有些系統要求廠商對密碼進行嚴格的保護[1]。
(2)由于IC與DBS之間的信息到通過NFC傳送,而這種傳送方式的安全性和可靠性難以得到保證。為保持IC及DBS數據的一致性,有些系統采用雙向驗證方式,即對IC及NFC進行雙向驗證,先確定IC及NFC的合法性,然后再進行數據讀寫[2,3]。但客觀上來說,這些都是將IC、DBS的安全建立在NFC的安全之上。
(3)一般都未涉及DBS的安全。實際上,企業內部工作人員利用工作之便獲取信息再暴露給其他人員的案例屢有發生;或者由于管理不善,致使某些人非法獲取了數據庫資料,均有可能對防偽系統造成威脅。
(4)非授權普通用戶無權更新卡內信息,導致IC卡復制得不到有效控制,通過毀損芯片(即撕毀)來對付偽造的方式在很多場合并不現實。
上述4個問題導致芯片防偽存在較大的安全威脅,一是系統嚴重依賴于密鑰的安全,一旦密鑰泄密,整個防偽系統便癱瘓;二是通過驗證讀寫設備的合法性來確保通信安全及數據一致性,各類讀寫設備是開放的,存在諸多安全隱患,容易遭受攻擊[4];三是對某些人員直接獲取數據庫信息缺乏防范;四是批量復制得不到有效控制。
對現有技術的應用,日本和韓國處于領先地位,有不少研究開發的產品已應用于企業中。目前,北京和深圳也有個別企業在開發相關產品,并在一些品牌企業中得到了應用。由于技術尚不成熟,還需要改進,因此可通過本技術的實現,解決該技術實際應用中存在的部分未解決的問題。通過產業化應用,打擊造假、售假行為,保護品牌企業的產品,維護消費者權益,具有非常廣闊的市場前景。
2 芯片存儲結構及讀寫規則設計
2.1 芯片的存儲結構和標識信息以及讀寫規則
芯片的存儲結構如圖1所示。
芯片存儲結構及標識記錄信息:
IC_UID表示芯片編號;Private Key代表私鑰;IC_DynamicCode為動態碼;IC_Count為查詢計數器;IC_SalesStatus為銷售狀態;IC_MakerSpecialCode為制造商特殊碼,這些為關鍵標識。IC_ MakerSign為廠家簽名;IC_ ProductInformation為產品信息為附加標識,可根據需要增刪。
芯片讀寫規則:
(1) Private Key:寫入和讀取。非對稱加密私鑰信息,在出廠時寫入,僅供芯片的CPU使用。
(2)IC_DynamicCode:寫入和讀取。動態驗證碼,每次查詢后修改,僅供芯片的CPU使用。
(3)IC_Count:寫入和讀取。查詢計數器,每次查詢成功后加1。
(4)IC_SalesStatus:寫入和讀取,表示銷售狀態。
(5)IC_MakerSpecialCode:寫入和讀取。制造商特殊碼在出廠時寫入。在產品真偽存在爭議時,作為一種附加的驗證信息,將設置為一個特定狀態。
(6)IC_ MakerSign:寫入和讀取。在出廠時寫入廠家簽名,可用廠家經CA認證的密鑰加密。
(7)IC_ ProductInformation:寫入和讀取。在出廠時寫入產品信息,具體內容根據需要編輯,該信息可由NFC讀取。
2.2 企業后臺數據庫DBS結構及讀寫規則
數據庫結構如圖2所示。
數據庫結構及記錄的信息:
DB_UID表示芯片編號;Public Key表示公鑰;DB_TemporaryDynamicCode為臨時動態碼; DB_DynamicCode為動態碼;DB_TemporaryCount為查詢臨時計數器;DB_Count為查詢計數器;DB_SalesStatus為銷售狀態;DB_MakerSpecialCode為制造商特殊碼,這些為關鍵字段。DB_ ProductInformation為產品信息,為附加字段,可以根據需要增刪。
數據庫讀寫規則:
(1) DB_UID:寫入和讀取。在芯片初始化時,將芯片的IC_UID寫入數據庫。
(2) Public Key:寫入和讀取。非對稱加密公鑰信息,在芯片初始化時,私鑰寫入芯片,公鑰寫入數據庫。
(3)DB_TemporaryDynamicCode:寫入和讀取。臨時動態驗證碼,每次查詢后修改。
(4)DB_DynamicCode:寫入和讀取。動態驗證碼,每次查詢后修改。
(5)DB_TemporaryCount:寫入和讀取。查詢計數器臨時值,每次查詢成功后加1。
(6)DB_Count:寫入和讀取。查詢計數器,每次查詢成功后加1。
(7)DB_SalesStatus:寫入和讀取。表示銷售狀態,如在售、已售、不可售等。
(8)DB_MakerSpecialCode:寫入和讀取。在出廠時寫入制造商特殊碼,在產品真偽存在爭議時,作為一種附加的驗證信息。
(9)DB_ ProductInformation:寫入和讀取。在出廠時寫入產品信息,具體內容根據需要編輯,該信息可由NFC讀取。
3 針對IC-NFC-DBS的信息通信過程
動態防偽實現的關鍵在于保證IC_Count與DB_Count的一致性。由于NFC在IC-DBS通信過程中存在通信不穩定、攔截、偽造信息的可能,為保證在不安全通信環境下完成IC_Count與DB_Count的同步,在每一次查詢操作中,采取先校驗再同步的策略。通過IC保存的私鑰對IC_Count進行加密。由于NFC沒有密鑰,無法加密解密,因此無法篡改信息。NFC或不發送該信息,或將該信息原版發送,反之亦然。在這個通信環節,即便NFC不可信,也不會影響通信安全。信息通信過程如圖3所示。
(1)NFC讀取IC信息,將IC_Count,IC_UID加密發送給DBS數據庫。
(2)DBS收到上述信息后,先定位IC_UID的記錄,再用公鑰解密獲得IC_Count,若IC_Count=DB_TempraryCount (或DB_Count),則產生2個隨機數DB_R1,DB_R2,然后將DB_R1,DB_R2以及數據庫信息DB_TemporaryDynamicCode,DB_DynamicCode, DB_TemporaryCount ,DB_Count,DB_SalesStatus,DB_UID通過公鑰加密發送給IC。
(3)IC接收到DBS的信息后解密,經過相關驗證后記錄在IC 中,然后將加密過的DB_R1,IC_Count,IC_UID回送DBS。即使NFC中斷通信,由于IC與DBS同步已經部分完成,不會影響下次查詢的正確性。
(4)DBS收到信息后解密,在進行相關驗證后,更新DB_DynamicCode, DB_TemporaryDynamicCode(隨機數),DB_Count;DB_TemporaryCount加1,然后將加密過的DB_R2,DB_TemporaryCount,DB_Count,DB_UID發回IC。若NFC偽造隨機數NFC_R2,由于NFC_R2≠DB_R2,通信中止,對IC及DBS均無任何損害。若NFC中斷通信,由于IC與DBS同步已經完成,不影響下次查詢的正確性。
(5)IC接收到信息后解密,將DBS傳送過來的值放在一個臨時變量里,然后執行加密DB_R2,IC_Count,IC_UID,IC端產品信息發回DBS。
(6)DBS接收到信息后解密,將IC傳送過來的值放在一個臨時變量里,執行相關驗證后將DB_TemporaryCount放入DB_Count,完成相關操作,在NFC端顯示前后臺產品信息。由此保證了信息的安全與完整,防止對IC卡的克隆。
4 結 語
隨著具有NFC功能的智能手機的發展,廣大消費者可以利用手機實現對產品真偽的驗證,大大方便了消費者。即使采用芯片防偽,如果防偽標識無法動態變化,那么其效果與印刷防偽載體區別并不大,其防偽的可靠度亦不高。因而,動態更新芯片及后臺數據庫信息的研究則顯得尤為重要,由于這方面的研究還處于起步階段,理論研究與實際應用均不成熟,尚有較多問題需要解決。同時要使形形色色的NFC手機等設備具備讀寫芯片和后臺數據庫的功能,其可控性與安全性問題需要妥善解決。通過本技術解決了芯片克隆與安全可控性問題,實現了不安全環境下的動態信息變更與動態防偽,對NFC芯片防偽具有極為重要的意義,具有廣闊的市場前景。
參考文獻
[1] 沈曉靜.基于NFC技術的酒類防偽溯源系統設計與實現[D].上海:復旦大學,2013.
[2] 葉志華,王彬.基于NFC芯片的防偽溯源系統的設計[J].物聯網技術,2016,6(3):111-114.
[3] 楊亞洲.NFC防偽芯片設計與FPGA驗證[D].長沙:湖南大學,2014.
[4] 趙競.Mifare非接觸式IC卡安全性分析[D].杭州:杭州電子科技大學,2012.
[5] 劉艷飛,余明輝.基于物聯網技術的豬肉防偽追溯系統研究[J].現代電子技術,2016,39(3):55-57.
[6] 黃葉玨.基于NFC的茶葉防偽驗證可追溯系統的設計與研究[J].農村經濟與科技,2013,24(3):151-152.
[7] 周海赟.基于NFC與云計算技術的智慧安防系統研究[J].重慶科技學院學報(自然科學版),2017,19(1):101-103.
[8] 李珊,余少標,王功文.基于NFC和商用密碼技術的防偽溯源系統研究[J].數碼世界,2017(5):58-60.