王朝陽 汪顥懿 左 敏 張青川
(北京工商大學農產品質量安全追溯技術及應用國家工程實驗室 北京 100048)
隨著人民生活水平的不斷提高,消費者對食品品質以及安全的要求也越來越高,大眾對食品的關注點已經轉變為食材的源頭,食品加工過程、倉儲、運輸等。同時近年來食品安全問題頻發,從最早的三聚氰胺、地溝油到現如今的臺灣“塑化劑”風波、湖南大米鎘元素超標、天津獨流調料造假等事件,當前食品安全隱患愈發嚴重。另一方面,大多數食品對于加工、運輸、倉儲等環節中的溫度、濕度、光強等環境因素有較高要求,一旦這些因素未達標,食品變質的可能性增大,若這樣的食品流向市場,將會嚴重危害公眾的健康。因此,亟需采用安全、可信、透明的食品安全溯源系統來加強對食品產業鏈的監管與效率,提高食品安全水平,保障國民飲食健康。隨著信息科學的飛速發展,在食品安全溯源系統中融入智能技術、物聯網技術,極大地促進了我國食品安全溯源體系的發展,使得公眾能參與到食品安全監管中。在服務器端,以去中心化的分布式結構應用、不可篡改的時間戳、安全信任機制為核心的區塊鏈技術成為了信息技術的研究熱點。區塊鏈具有去中心化、唯一性、自治性、不可篡改性、匿名性等特性[1],是目前搭建食品安全追溯系統的不二之選,在實現追溯透明化的同時可以有效地保證服務器端的數據安全性。
但是,區塊鏈等技術并不能保證追溯信息在上“鏈”前的數據安全,若追溯信息在上傳至服務器端前就遭到篡改,后續的追溯過程將毫無意義。為此,如何杜絕企業上傳虛假或被篡改的追溯信息已經是目前亟需解決的問題。針對這一問題,本文設計實現了一種TrustZone[2-3]架構下基于優化RSA的食品追溯可信采集方法,利用可信執行環境、時間戳、非對稱加密算法等技術,并設計加密機制,可部署在養殖場、運輸車輛、銷售貨柜等嵌入式環境,對上傳至服務器端前的追溯數據提供安全保障。此外,由于食品安全追溯數據量極大,且嵌入式環境硬件計算能力有限,運算速度較慢,為了防止出現數據堆積的問題,本文對RSA算法進行優化,在保證安全性的同時提高運算速度。
針對攻擊者在數據采集端的竊取、篡改、破壞等惡意行為,國內外已有研究者基于國產密碼算法、ARMA的無線傳感器網絡、數字水印等技術,展開研究并提出了可行的防護方案。馮云等[4]提出了基于國產密碼算法的可信計算體系,將基于國產密碼算法的可信技術應用于采集終端的安全加固。王海元等[5]提出了基于ARMA的無線傳感器網絡可信數據采集方法,在保證采集數據的高度可信的同時顯著提高了網絡的整體性能。李紅濤等[6]提出了一種全新的數字水印嵌入方法,保障涉密圖像在傳輸過程中的安全性、可靠性和完整性。Zhao等[7]利用靜態隨機存取存儲器在不添加安全硬件的前提下生成可信根,來得到加密數據的安全密鑰,通過將加密后的數據存儲在系統硬件上來保證數據安全。Hein等[8]設計實現了一種基于安全密鑰和Merkle-Tree認證加密的安全設備,可有效防止攻擊者對數據的篡改、竊取、破壞。
非對稱加密算法中包含公開密鑰(Public Key,PK)和私有密鑰(Private Key,SK)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密,非對稱加密算法強度復雜,安全性主要由算法和密鑰管理決定。對稱密碼體制則是單一密鑰,并且是非公開的,所以保證其安全性就是保證密鑰的安全,但在解密時必須將密鑰向對方公開,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣將密鑰傳輸給對方,確保了密鑰對的安全性,因此非對稱加密算法安全性更好。本文列出了RSA、DSA、ECC、RABIN這4種目前應用最多的非對稱加密算法[9-13],并從成熟度、安全性、運算速度、資源消耗等特點進行對比,對比結果如表1所示。

表1 算法對比結果
本文設計的TrustZone架構下的食品追溯可信采集方法主要包括數據采集層、加密層、存儲三部分。通過設計基于非對稱加密算法和時間戳的加密機制,在可信執行環境中對追溯信息進行加密,以確保追溯信息的可信性。
追溯數據采集,是指從傳感器和其他待測設備等模擬和數字被測單元中自動采集追溯信息(非電量或者電信號),送到上位機中進行分析、處理。由于傳統的采集系統存在響應慢、精度低、可靠性差、效率低、操作繁瑣等弊端,已經不能完全適應當前追溯領域的需求。如今嵌入式技術已經相對成熟,因此,基于嵌入式的追溯信息采集設備是目前最優的選擇方案。經過對現有的食品安全追溯領域的調研,本文對追溯環節以及數據類型進行了總結,并確定了本文方法所采集的數據類型;食品安全追溯可以分為生產環節、倉儲環節、運輸環節三部分,具體追溯對象以及追溯信息如表2所示。

表2 追溯對象與追溯信息
本文方法所需的硬件設備主要包括:電源、ARM核心控制模塊、傳感器、存儲設備等模塊,系統框架如圖1所示。通過調用溫度傳感器、濕度傳感器、位置傳感器、光強傳感器、氣壓傳感器等傳感器對食品追溯環境中的環境信息進行數據采集。采集到的追溯數據在ARM核心控制模塊中由CA端傳入TA端,在TrustZone技術構建的可信執行環境中,通過基于時間戳和優化后的非對稱加密算法的加密機制,對數據加密,最后將追溯信息與密文共同存儲。在上傳至服務器前,可通過公鑰對數據進行解密驗證,進一步確保數據的可信性。由于全部加密過程均在可信執行環境中進行,不僅可以確保私鑰的可信性,由于私鑰存放在安全的永久存儲器中,還可以防止遭受來自外界攻擊者的竊取與篡改。
在追溯過程中,追溯信息通常由數據、采集時間兩部分構成。對于傳統的追溯系統,不法分子可以在數據上傳服務器或區塊鏈之前,在本地對追溯數據以及采集時間進行篡改,以此來欺騙公眾及監管部門,對此文章將通過加密機制來保證追溯信息的可信性以及時效性(時間的遞推)。加密機制如圖2所示。

圖2 加密機制設計
(1) 在可信執行環境內生成公鑰私鑰對(PK,SK),私鑰將永久存儲在可信執行環境中。
(2) 將傳感器采集到的追溯信息(m)傳輸至可信執行環境。
(3) 在可信執行環境內對追溯信息加蓋時間戳(time),以確保追溯信息中時間參數的單一性。
(4) 加蓋時間戳的若干條追溯信息將在內存中組成數據塊,等待處理。
(5) 使用非對稱加密算法,通過私鑰對追溯信息進行加密。
(6) 將原始追溯信息、時間戳、密文組成新的追溯信息(M),并進行存儲。
(7) 在上傳至區塊鏈或服務器前,需要用公鑰(PK)對密文(C)進行驗證,以確保追溯信息上鏈前的可信性。
TrustZone是ARM提出的一種提供基于硬件的隔離機制,為需要高安全性的代碼構建安全可靠的環境[14-15]。它將系統的硬件和軟件資源分為兩部分,一個是可信執行環境,另一個是普通環境。所有的敏感操作都應該在可信執行環境中被保護,其余安全性要求較低的操作在普通執行環境中執行,例如Rich OS和大多數應用程序。核心狀態由安全配置寄存器(SCR)中的NS位區分,NS位只能由安全核心修改。通過安全監控呼叫(SMC),無論在何種環境中,它都可以進入監控模式并切換到其他環境。
2.3.1可信執行環境
可信執行環境(Trusted Execution Environment,TEE)[16-17]首先由Global Platform(GP)提出,并制定技術規范,它是與設備上的Rich OS(通常是Android等)并存的運行環境,并且給Rich OS提供安全服務??尚艌绦协h境可分為硬件層與軟件層兩部分,其中軟件層包括系統層、接口層、應用層,如圖3所示。TEE所需的軟硬件資源通過TrustZone技術與Rich OS分離,為了保護TA的資源和數據的保密性,完整性和訪問權限,安全性需求較高的應用(可信應用,TA)需要在TEE中得到授權后才能通過客戶端應用(CA)端進行調用,每個TA是相互獨立的,而且不能在未授權的情況下互相訪問。為了保證TEE本身的可信根,TEE在安全啟動過程中是要通過驗證并且與Rich OS隔離[18]。

圖3 可信執行環境框架
TEE內部API主要包含了密鑰管理、密碼算法、安全存儲、安全時鐘資源和服務,還有擴展的可信UI等API??尚臮I是指當有關涉密或關鍵信息需要顯示或輸入時,顯示器和鍵盤等硬件資源將全部由TEE接管,Rich OS中的應用不能對其進行訪問。在進行TA程序開發時,TEE內部API是提供給TA的編程接口,而TEE外部API則是讓運行在Rich OS中的CA訪問TA服務和數據的底層通信接口。
2.3.2時間戳認證
在傳統的食品安全追溯領域中存在這樣一種現象,有一些不法分子在篡改食品安全追溯信息時,通過偽造數據中的時間信息等方法,使用篡改后的數據對真實信息進行覆蓋,來欺騙數據庫以及數據認證。針對這一問題,本文將根據TrustZone的內置時鐘,對追溯信息加蓋無法篡改的時間戳,進一步確保追溯信息的可信性。
時間戳是指一個能表示一份數據在某個特定時間之前已經存在的、完整的、可驗證的數據,通常是一個字符序列,唯一地標識某一刻的時間?;赥rustZone技術的可信執行環境具有自己獨特的時間機制,該時鐘具有唯一且連貫性。在可信執行環境中,當可信時鐘源產生中斷或某些受監控的系統行為發生時都將會觸發安全指令,任何對時間信息的篡改、插入或刪除都將被系統拒絕,以保證系統內全部數據時間的真實性以及時序單一性,因此即使攻擊者侵入可信執行環境或破解了密鑰對,也無法對已經加蓋時間戳的追溯數據進行篡改。本文將使用絕對時間戳,以便用戶以及監管部門在服務器端的食品安全追溯系統中通過時間信息對系統中的數據進行檢索。
2.3.3加密機制的實現
在OP-TEE中進行TA程序的編寫,實現追溯信息加密。
(1) 在TA中使用Privkey Generator生成密鑰對,并將私鑰永久存儲在TA中。
(2) 創建CA-TA通話,將追溯信息傳入TA端,并使用command ID調用TA端的加密程序。
(3) 應用TrustZone技術中可信執行環境時間不可篡改這一特點,為追溯信息加蓋時間戳。
(4) 加蓋時間戳的追溯信息將在內存中暫時存儲,每當數據累計至256 KB時將組成一個數據塊。
(5) 使用優化后的加密算法對追溯信息進行加密。
(6) 將原始追溯信息、時間戳、密文組成新的追溯信息,并傳回CA端進行存儲。
(7) 將公鑰存入數據庫或區塊鏈的智能合約中,在數據傳入服務器前進行驗證。
在嵌入式環境下,開發難度較高,因此需要選擇安全性高且更加成熟的非對稱加密算法,便于根據具體的應用需求做進一步優化。另一方面,嵌入式環境下硬件水平較低,而且由于非對稱加密算法較為復雜,使得其運算速度較慢,系統負載過大,資源消耗問題比較嚴重。因此需要針運算效率、密文大小、資源需求等方面對算法進行優化。通過對比表1中RSA、DSA、ECC、RABIN四種算法,根據成熟度、安全性、運算速度、資源消耗等特點,最終選擇RSA算法。
針對嵌入式環境下運算能力較差,食品安全追溯信息量較大,追溯平臺負載較重等問題,本文中將引入Rabin算法、霍夫曼編碼和隨機分量s,對RSA算法進行優化。
3.2.1霍夫曼編碼
為了提高加密速度,可以使用霍夫曼編碼[19]來對數據進行壓縮,它是一種用于無損數據壓縮的算法,可以從壓縮數據中精確恢復原始數據。該算法用于壓縮數據(符號或字母)以生成可變長度代碼而不是每個符號的固定長度代碼。該算法通過對內容中符號或字母的統計分析以構造頻率表,并通過頻率表來構建霍夫曼樹,用于每個符號分配其適當的代碼長度。在數據文件上應用霍夫曼編碼將生成兩個文件:二進制文件(B)和頭文件(H)。二進制文件取決于用于檢索原始數據的頭文件,因此,如果頭文件丟失,則無法檢索真實數據。頭文件包含原始數據文件的所有符號或其相應的ASCII代碼。頭文件包含為其出現分配的唯一符號,其中沒有符號重復兩次,二進制文件包含每個符號的代碼。例如原文:Beijing Technology and Business University,e表示為110,t表示為010等。
頭文件為:
u00bdu00b4u00d1u00e7u00efu00e0u00e2u00b2u00a9u0082u00d1u0088u0094u00d3u0091u00c48
二進制文件為:
0000100110111101101101000000001011010001111
00111000010111110111111100000111000101011001010
10100100000110100000101101000110001000100101001
101001110010001110001000101110000111000
要解壓縮消息,通過頭文件來構建霍夫曼樹,從樹的根開始逐位讀取二進制文件,找到0位時,向左移動到樹上;找到1位時,在樹上向右移動,直到找到葉節點,然后對所有剩余位重復該過程,直到檢索到所有消息字符。
3.2.2隨機分量s
通過引入隨機分量s,每次加密消息時都會獲得不同的密文,因此攻擊者很難從關于原始消息的密文中進行破解。本文使用字母s來表示隨機分量,其中s是通過使用加密安全偽隨機數生成器生成的隨機數,并且對于每個消息(隨機數)使用一次。本文使用s來隱藏頭文件的密文并使二進制文件失效。在s小于密文的情況下,多s進行多次疊加來作為密文的長度,如果s大于密文,則把s的個位數除去后為密文的相同長度,在使二進制文件失效時應用相同的方法。為了使加密過程在語義上安全,本文選擇隨機分量s并計算新的密文C′=C×s。同樣,為了使二進制文件B在語義上安全,使用s對B進行盲化,例如B′=B×s。另一方面,隨機分量s應該受到保護,本次本文將使用Rabin加密算法對s進行加密。
3.2.3優化實現
要解壓縮消息,通過頭文件來構建霍夫曼樹,從樹的根開始逐位讀取二進制文件,找到0位時,向左移動到樹上;找到1位時,在樹上向右移動,直到找到葉節點,然后對所有剩余位重復該過程,直到檢索到所有消息字符。
優化后的RSA算法依靠霍夫曼編碼來增強安全性并加速加密和解密過程。為了增強執行速度,加密算法僅加密頭文件并使二進制文件保密,而不是加密整個消息。通過s參數對二進制文件進行盲化使得加密消息在語義上是安全的,具體優化算法如下:
步驟1在接收端生成公鑰/私鑰對。
1) 計算RSA算法公鑰/私鑰對。
2) 計算Rabin算法公鑰/私鑰對。
步驟2發送端的加密準備。
1) 為每一條加密信息生成隨機分量s。
2) 使用霍夫曼代碼壓縮信息。輸出:二進制文件(B)和頭文件(H)。
步驟3發送端加密過程。
1) 使用RSA算法對H進行加密,任取大整數N和e,加密結果為:C=HemodN,0 2) 使用s對C進行盲化,生成C′=C×s。 3) 使用s對B進行盲化,生成B′=B×s。 4) 使用Rabin算法對s進行加密,得到s′=s2modN。 步驟4接收端的解密過程。 1) 使用Rabin算法對s解密。 2) 計算C=C′×s。 3) 計算B′=B×s。 4) 使用RSA算法對C進行解密,任取大整數d,生成H=CdmodN。 步驟5在接收端解壓縮信息。 1) 將H、B傳入霍夫曼代碼獲得解密結果。 原型系統試點部署在北京市農業農村局與北京市畜牧總站合作建立的智能禽舍中,位于北京市順義區。禽舍環境監測系統將數據監測節點分為前部節點、中部節點和尾部節點三個區域,每個區域獨立采集、傳輸數據,實現了不同分區不同情況的差異化處理,可以針對性地對禽舍中環境信息進行監控,為后續的追溯提供數據支持。 實驗環境主要分為硬件與軟件兩部分。 (1) 硬件部分:系統硬件部分采用基于ARM的樹莓派3B作為主控板,數據采集端使用XL51智能溫濕度傳感器,該設備支持溫濕度、TVOC、大氣壓力,以及二氧化碳、氨氣、硫化氫、甲醛等氣體濃度的數據采集。 (2) 系統部分:樹莓派使用Linux操作系統, 基于此環境搭建Python語言、C語言、OP-TEE的軟件環境,數據采集中使用Python語言操作GPIO。使用OP-TEE作為trust OS,C語言作為開發語言,進行CA-TA程序的開發,并部署在樹莓派3B上,安全操作系統以及開發環境均遵循GP TEE系統開發架構規范,追溯系統使用基于Truffle框架和Ganache可視化應用的北京市畜牧總站智能雞舍監控管理平臺。 實驗數據通過在四個禽舍部署的各不同分區的傳感器設備采集,傳感器均安置在雞舍中的百葉窗中,實驗環境如圖4所示。每個雞舍安裝6個傳感器,傳感器數據采集頻率為每30 s一次,每個雞舍單日產生約1.7萬條數據樣本。實驗數據通過CA端傳入TA端,加蓋時間戳后進行加密操作,隨后由實驗數據、時間戳(Time)、密文(Ciphertext)組成追溯信息,由TA端傳回CA端并進行存儲。嵌入式環境最終輸出的追溯信息如表3所示。 圖4 實驗環境 表3 數據加密結果 加密后的數據將上傳至基于聯盟區塊鏈的北京市畜牧總站智能雞舍監控管理平臺,通過智能合約中的公鑰對密文進行檢驗,由于數據量巨大,系統將對一小時內采集到的驗證無誤的數據取平均值上傳至聯盟區塊鏈追溯系統供應用查詢使用,通過Ganache可視化應用觀察到追溯數據成功上傳到系統后,區塊數正常增加且交易記錄增長。在該系統中輸入追溯目標的追溯ID,即可對數據進行查詢,如圖5所示。 圖5 追溯數據查詢結果 在測試中,本文將分別使用RSA算法以及優化后的RSA算法對10個不同尺寸的文件進行加密,每個文件加密三次,并對單位時間運算次數取均值,測試文件大小從1 MB到10 MB。圖6顯示了RSA算法優化前后對不同尺寸的文件的加密過程。此外,由圖7可以看出,對于相同的明文,優化后的RSA算法所生成的密文大小明顯小于優化前。 圖6 運算效率對比 圖7 密文大小對比 由原型系統的試點效果可知,TrustZone架構下基于優化RSA的食品追溯可信采集方法可以有效地確保智能禽舍所采集的追溯信息在上傳服務器前的信息安全,實現追溯數據可信采集同時在嵌入式環境下也可以高效工作,并部署在更多的工作環境中。加密后的追溯數據可以通過北京市畜牧總站智能雞舍監控管理平臺進行數據驗證,從而確保追溯數據從采集端到存儲端的全過程數據安全。在優化后的算法中使用隨機分量s可以保證加密過程中的語義安全,每次加密消息時都會獲得不同的密文,同時二進制文件也通過隨機分量s進行了盲化,攻擊者無法逆向破解密鑰對于密文,進一步提了RSA算法的安全性。圖6顯示加密速度與兩個密碼系統加密的文件大小成正比,但優化后的RSA算法明顯更快,較優化前平均提高了94.9%,這是由于優化后的RSA算法并不加密全部信息,而是通過霍夫曼編碼對數據進行壓縮后再運行加密算法,這在確保信息安全的同時提高了運算速度。另一方面,在追溯過程中信息量極大,由圖7可以看出改進后的RSA算法生成的密文的大小較優化前平均減少55.5%,這將有利于減輕本地以及服務器端的存儲壓力,降低追溯成本。 本文提出并實現一種TrustZone架構下基于優化RSA的食品追溯可信采集方法,對TrustZone技術進行研究并首次將其應用在食品安全追溯領域,有效地解決了追溯數據在上傳至服務器端之前的數據安全隱患,填補了當前的行業空白。本文根據嵌入式環境以及應用需求設計了基于優化RSA算法的追溯信息加密機制,在可信執行環境中對追溯數據進行加蓋時間戳和加密保護,加密后的追溯數據可以在服務器端通過公鑰進行驗證。通過原型系統試點測試以及分析可以看出,本文方法可以高效、安全地對食品追溯數據進行加密,防止攻擊者對數據進行篡改,并適合應用在數據量大且硬件計算能力有限的嵌入式環境中,同時該方法可以與區塊鏈等新興技術相結合,實現食品生產全流程數據的可信追溯,未來可根據不同種類食品的生產業務邏輯,進一步豐富食品的可信追溯種類。4 方法的實現與分析
4.1 原型系統部署
4.2 數據采集與加密


4.3 數據追溯

4.4 RSA算法優化性能測試


4.5 結果分析
5 結 語