李強李維剛周淼劉娜蔣藝
1.四川省生態環境監測總站,四川成都
2.四川省農業農村廳信息中心,四川成都
當前世界各國已經開始大范圍鼓勵和支持區塊鏈技術的發展和應用落地。瑞典農業科學家提出基于區塊鏈技術與云計算相結合的新生態環境監測服務EM Chain區塊鏈平臺,把區塊鏈同生態環境相結合,面向所有環境監測接口開放,創造讓用戶與用戶、用戶與環境監測對象直接對接結算的生態圈[1]。Gaetani等人設計并實現了基于區塊鏈的云計算環境監測數據庫系統,通過結合區塊鏈技術,保證了環境監測數據的完整性,并且提高了效率[2]。Lwis等人利用區塊鏈具有的獨有分權性質,針對環境監測云端系統架構進行改良設計,提出了環境監測區塊鏈重命名存儲系統。杰克遜等人提出基于區塊鏈技術的環境監測數據分布式采集以及可跟蹤的可信云并同步環境采集變量相關數據同時分布到云中[3]。中國的周平等人提出了一種結合環境監測數據云共享方案的區塊鏈模式,發揮區塊鏈框架自身內置自治屬性,利用區塊鏈的分布式技術收集和存儲技術,收集物聯網監測數據用以服務于許多不同類型的應用,例如智慧城市、智慧農業、綠色工業和制造業等[4]。
省級大數據監測中心(云平臺)一直以來負責采集環境生態數據,對生態覆蓋進行了深入研究并加以分析。為滿足對大數據監測中心存儲的高要求,一些部門已經采用云存儲和計算解決緊迫的存儲和處理需求[5]。
然而,對于數據所有者和監管者而言,云平臺收集的數據容易受到攻擊者攻擊,以獲取和修改數據并取得控制權限。如何保障環境監測質量的真實、準確、可靠,讓監測數據不敢、不能、不愿造假,需要構建一個全省的云(大數據中心)和鏈(區塊鏈)相結合的智慧環境系統[6]。特別是環境監測進行垂直管理制度改革后,各市監測站為派駐機構,以云+區塊鏈的混合共享方式,通過橫向數據共享模式把同環境相關的不同部門、不同行業的數據進行入鏈擴充節點;利用縱向數據共享方案把貫穿省(市、縣)環境監測部門所有的監測數據進行梯度排序后插入區塊節點,并可以實時登陸主鏈查詢。
當前,在我國農業生態及環境數據并行處理非結構化的存儲模式下,區塊鏈存儲與加密技術可以直接應用于環境監測云存儲架構。農業生態及環境監測因子的數據量大,利用映射監測采集數據的關鍵元數據是加載到農業生態及環境監測區塊鏈系統,而不是直接存儲在各自系統之中。當云存儲中節點請求存儲監測數據時,用戶通過訪問農業生態及環境監測區塊鏈系統可以查出可行的存儲節點位置并標記加密尚未存儲的環境監測因子數據,然后再把監測數據放置到前一位置。其它節點的關鍵信息也可以作為監測元數據并把相關環境監測因子記錄到區塊中。
由于不能單獨通過云來獲取監測傳感器數據的明文相關信息,所以需要一種高效、重新加密方案作為代理來滿足用戶要求,該方案允許監測數據僅對監測設備所有者以及整合區塊鏈的智能合約協議開發者可見,并且確保監測平臺將監測獲取的數據安全地傳輸給用戶。時至今日,許多企業和政府職能部門廣泛采用云計算來進行數據存儲和高性能計算,但是,云服務不能提供強有力的安全防御措施。本文提出了一種基于區塊鏈的農業生態及環境監測數據存儲和保護方案。該系統在加密后將物聯網監測數據加入區塊鏈并存儲分布在云中,為了便于收集環境監測設備采集的空氣質量、水質和土壤墑情等數據,系統終端將加密數據保存在云中,當用戶對監測數據進行訪問時,數據所有者委托云平臺重新加密監測數據,只有授權的訪問者才能解密相關數據[7]。
用戶訪問角色層:授權訪問者具有相同的訪問數據類型,他們通過實時數據共享來交換數據,或者通過并行計算獲得理想的數據結果。
數據采集監測層:數據監測層的授權用戶通過共享模式來維護從環境監測設備中采集的數據,并分發到區塊鏈上。利用鏈上的共識算法對相關數據進行采樣處理后,通過數據監測節點將采樣結果加入到區塊鏈中[8]。對不同監測設備所采集的不同環境中的樣本參數進行分析,完成對大氣、水、噪聲等環境因子的數據加密。
云存儲:利用共享云服務來存儲用戶角色層的訪問數據,統計訪問節點的上傳和下載、重加密代理次數,以及與塊鏈的讀寫交互。
1.2.1 環境監測數據采集和保存
環境監測設備進行監測主要通過空氣監測子站、水質監測子站和農業生態環境監測子站等。農業生態及環境監測子站通過在線監測環境數據儀器連接到網絡并捕獲和傳輸來采集數據。其中,云存儲用于保存和檢索數據庫中監測儀器采集的環境數據因子以及加密因子。區塊鏈是通過智能合約功能將采集的監測因子節點注冊到區塊鏈上并支撐云服務讀取區塊上的信息。注冊后的節點可以持續為監測設備提供所需的密鑰資料,以便將監測的空氣監測因子、水質監測因子和土壤墑情等農業生態環境監測因子數據加密發送到云存儲服務器提供者——省級監測部門。
以空氣中SO2監測為例進行相關應用研究。首先,空氣質量監測子站可借助區塊鏈平臺,利用網絡信息安全技術,只有規定授權的訪問節點以及提供所需密鑰材料的訪問節點才能讀取區塊以及執行智能合約應用,并對新產生的區塊進行驗證,這些授權節點包括環境監測設備所有人、省級環境質量監測數據發布平臺和省級監測部門預警平臺。其次,對于新生成的區塊鏈節點來說需要通過分組來獲得加密密鑰材料,并繼續驗證新塊的產生。再次,在每個SO2監測儀器部署前,需由省級監測部門認證節點的身份以及授權方式。授權通過后,監測系統通過區塊分發密鑰到每個設備。最后,SO2監測設備才可以在環境監測區塊鏈上完成注冊登記。空氣中SO2監測儀器運行的各個階段,如開始運行、空氣中監測數據因子上傳、產生機械故障、維護時間以及重新測試需要的時間等,這些信息都可以記錄到區塊鏈上。SO2監測儀器完成數據監測后,將待上傳的監測數據因子包含監測數據量、監測時間段,以及監測傳感器類型、監測數據內容等進行聚類并封裝,然后對監測采集后數據進行數字簽名。
1.2.2 用戶請求訪問監測數據
省市環境監測部門以及企業運營商作為第三方數據代理者請求訪問,通常被定義為用戶行動的數據請求代理,除要咨詢環境監測數據的要求和訪問監測數據內容,還要與產生的區塊進行交互,而且在區塊鏈上共享加密密鑰。
當用戶請求訪問省級監測部門的一組農業環境監測數據并且通過智能合約協議時,在監測系統區塊鏈上生成一個節點用戶,為此,節點分配一個新的區塊,節點用戶可以在任意時間查詢監測數據、農業環境監測因子等參數指標。同時,還可以由監測設備所有者授權給其他用戶共享數據。由于節點用戶無法完全信任云服務平臺,因此,監測數據的加密和存儲非常重要。監測區塊鏈系統在不需要第三方數據代理商的信任下,通過節點用戶參與模式以及分布式記賬的方式來有效整合和共享監測數據。因此,每個節點用戶所擁有的密鑰數據必須在上傳到云之前進行加密[10]。首先,在區塊鏈的未知節點中生成密文,并在其中隨機分布。其次,為保證農業環境監測數據的安全性,須利用存儲密文位置信息分布來確定區塊鏈正在運行和維護的節點,節點的密文信息只能是保存了私鑰的授權用戶才能正常解密。
云服務器提供者(省級監測部門)需要對監測設備接收的監測數據進行完整性檢查及認證,確定檢測是否完成。如果環境檢測數據是正確的,那么監測數據將會存儲在服務器上,并在區塊節點上記錄有效地址信息,確保信息的安全有效。將需要保護的農業生態及環境監測數據通過NTRU算法進行加密,把Hash值保存在區塊鏈中,防止監測關聯數據被篡改,只有擁有密鑰才能通過數據訪問接口進行用戶數據訪問,從而保護用戶隱私。由于Hash值可以防止數據篡改,并可作用于整個區塊鏈,當農業環境加密數據需要多個用戶來共享密鑰進行解密,將密鑰進行分發,并滿足最少用戶才能解密得到密文[11]。相關案例采用F、B模式分布的NTRU密鑰算法,先將私鑰分成F份,密鑰結構為(FFL1,PL2,PKS)如果有訪問用戶想要對數據進行解密,那么至少需要多個訪問用戶一起來解密才能獲取到受保護數據。這樣,監測數據不僅可以被用戶查詢,而且也可以由數據所有者授權給其他節點用戶進行數據共享。
簽密代理多重加密是運行在云服務器端的一種加密軟件,它負責對采集農業環境監測數據的用戶身份進行驗證以及完整性約束,并結合智能合約將監測數據存儲在云服務器上,然后在區塊中進行部署。根據用戶提供的請求,簽密代理軟件首先會過濾監測數據,然后對監測數據進行解密和重新加密,最后查找云服務器上的臨時位置并把多重加密的監測結果存儲在其中。簽密代理與區塊鏈交互并以此來共享和獲取代理重新加密所需的相關信息[12],這不僅可以實現基于區塊鏈代理重加密方案的關鍵細節,而且重新結合了智能合約相關協議并提出可應用協議框架。
2.2.1 智能合約
智能合約是數字化的合約條款,可以被看作是一個能夠獨立執行的程序或協議。智能合約是區塊鏈技術以及云存儲發展到一定程度的產物,同時,也成為訪問節點去中心化應用的關鍵。
2.2.2 智能合約在農業生態及環境監控中的應用
1)本文應用了兩個智能合約。第一個智能合約整合了農業環境監控采集數據、數據請求和數據獲取安全性等功能。當用戶請求數據時,觸發監控傳感器運行,并動態實時創建下一個智能合約,產生檢測環境實體標的共享地址。為保證環境監測參數獲取的安全性,系統會使用標準函數修飾符自動更新,檢查調用第一個智能合約函數的相關人員身份信息,而且僅允許他們進行監測采集樣本調用。
2)物聯網端監測設備。農業環境監測儀器通過管理數據監測因子(氣體因子、水環境因子和土壤墑情因子)和區塊鏈賬戶角色,利用監測終端在區塊鏈上執行信息上傳和過濾[13]。應用程序連接到監測數據采集終端,通過采集數據樣本參數執行加密功能,利用簽密代理重加密方案實現數據上載到云服務器。
3)用戶端應用。根據所請求數據的用戶選擇選項,在運行時通過區塊部署新的智能合約。
本文提出了一種結合農業生態及環境監測數據云共享方案的區塊鏈模式,這種共享方案發揮出了區塊鏈框架自身內置自治屬性,而且充分利用了區塊鏈的分布式技術和存儲技術,針對農業生態及環境監測云端系統架構進行了重構設計,利用監測終端采集環境因子的特征值,通過智能合約平臺進行過濾,并將過濾后的監測數據執行代理重加密導入區塊鏈。基于區塊鏈的農業生態及環境監測采用多重加密的云服務與區塊鏈交互,以獲取和共享代理重新加密所需的監測數據信息,將農業生態及環境監測與云平臺監管相結合,通過智能合約來實現去中心化的環境監管與維護。
本文還設計了農業生態及環境監測區塊鏈存儲系統以及密鑰管理并提出了區塊鏈的農業生態及環境監測數據存儲和保護方案。這種方式不僅非常適合當地氣象部門、水利部門以及農業部門頻繁的進行大量的管理操作和策略調整,而且還可以利用區塊鏈技術把當前農業生態及環境監測技術應用在生態環境建設和發展工作中。