基於區塊鏈的資料存證方法及裝置、電子設備
本說明書一個或多個實施例係有關區塊鏈技術領域,尤其有關一種基於區塊鏈的資料存證方法及裝置、電子設備。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速地進行資料同步的特性,使得區塊鏈技術已在眾多的領域中廣泛地進行應用。
本說明書提出一種基於區塊鏈的資料存證方法,係應用於與終端設備對接的可插拔設備,其中,所述可插拔設備搭載了安全運算環境,所述安全運算環境中儲存了與所述可插拔設備對應的私鑰,所述方法包括:
獲取所述終端設備採集到的目標資料的資料摘要;
在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
可選地,獲取所述終端設備採集到的目標資料的資料摘要,包括:
接收所述終端設備發送的由所述終端設備採集到的目標資料的資料摘要;或者,接收所述終端設備發送的由所述終端設備採集到的目標資料,並在本地計算所述目標資料進的資料摘要。
可選地,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章,包括:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章。
可選地,所述安全運算環境中儲存了密鑰產生演算法;
所述方法還包括:
獲取所述可插拔設備的使用用戶在首次使用所述可插拔設備時輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中呼叫所述密鑰產生演算法產生所述私鑰以及公鑰;以及
將產生的所述私鑰與所述使用用戶的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
可選地,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章,包括:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
確定所述安全運算環境中是否儲存了與所述身份資訊綁定的私鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私鑰對所述資料摘要進行簽章。
可選地,將簽章後的所述資料摘要發布至所述區塊鏈,包括:
將簽章後的所述資料摘要發布至所述區塊鏈;或者,將簽章後的所述資料摘要發送至所述終端設備,以由所述終端設備將所述資料摘要發布至所述區塊鏈。
可選地,所述終端設備包括執法記錄器或者行車記錄器,所述目標資料包括視頻資料、音訊資料、圖像資料中的一種或者多種的組合。
可選地,所述可插拔設備搭載了USB接口,所述可插拔設備透過所述USB接口與所述終端設備實現硬體對接。
可選地,所述可插拔設備搭載了SE安全計算晶片,所述安全運算環境為基於所述SE安全計算晶片搭建的安全運算環境。
可選地,所述可插拔設備搭載了LED指示燈,所述方法還包括:
控制所述LED指示燈向用戶提示所述可插拔設備的操作狀態,其中,所述操作狀態包括正在所述安全運算環境中執行運算的操作狀態;以及,在所述安全運算環境中完成運算的操作狀態。
本說明書還提出一種基於區塊鏈的資料存證裝置,係應用於與終端設備對接的可插拔設備,其中,所述可插拔設備搭載了安全運算環境,所述安全運算環境中儲存了與所述可插拔設備對應的私鑰,所述裝置包括:
獲取模組,獲取所述終端設備採集到的目標資料的資料摘要;
簽章模組,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
發布模組,將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
可選地,所述獲取模組:
接收所述終端設備發送的由所述終端設備採集到的目標資料的資料摘要;或者,接收所述終端設備發送的由所述終端設備採集到的目標資料,並在本地計算所述目標資料進的資料摘要。
可選地,所述簽章模組:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章。
可選地,所述安全運算環境中儲存了密鑰產生演算法;
所述裝置還包括:
認證模組,獲取所述可插拔設備的使用用戶在首次使用所述可插拔設備時輸入的身份資訊;基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
產生模組,如果針對所述使用用戶的身份認證通過,在所述安全運算環境中呼叫所述密鑰產生演算法產生所述私鑰以及公鑰;以及,將產生的所述私鑰與所述使用用戶的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
可選地,所述簽章模組:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
確定所述安全運算環境中是否儲存了與所述身份資訊綁定的私鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私鑰對所述資料摘要進行簽章。
可選地,所述發布模組:
將簽章後的所述資料摘要發布至所述區塊鏈;或者,將簽章後的所述資料摘要發送至所述終端設備,以由所述終端設備將所述資料摘要發布至所述區塊鏈。
可選地,所述終端設備包括執法記錄器或者行車記錄器,所述目標資料包括視頻資料、音訊資料、圖像資料中的一種或者多種的組合。
可選地,所述可插拔設備搭載了USB接口,所述可插拔設備透過所述USB接口與所述終端設備實現硬體對接。
可選地,所述可插拔設備搭載了SE安全計算晶片,所述安全運算環境為基於所述SE安全計算晶片搭建的安全運算環境。
可選地,所述可插拔設備搭載了LED指示燈,所述裝置還包括:
控制模組,控制所述LED指示燈向用戶提示所述可插拔設備的操作狀態,其中,所述操作狀態包括正在所述安全運算環境中執行運算的操作狀態;以及,在所述安全運算環境中完成運算的操作狀態。
本說明書還提出一種可插拔設備,包括:
處理器;
用於儲存機器可執行指令的記憶體,
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取終端設備採集到的目標資料的資料摘要,其中,所述可插拔設備與所述終端設備對接,所述可插拔設備搭載了安全運算環境,所述安全運算環境中儲存了與所述可插拔設備對應的私鑰;
在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在以上技術方案中,一方面,由於可插拔設備搭載了安全運算環境,並且在該安全運算環境中儲存了與可插拔設備對應的私鑰;因此透過將可插拔設備與終端設備進行硬體對接,就可以便捷地為終端設備提供安全的運算環境;使得可插拔設備可以作為通用的安全硬體,與不同的終端設備進行硬體對接,為不同的終端設備提供安全的運算環境;而且,當終端設備需要將採集到的資料在區塊鏈上進行存證時,可以在可插拔設備上搭載的安全運算環境中,利用儲存的私鑰對終端設備採集到的資料進行簽章,並將簽章後的資料發布至區塊鏈進行資料存證,從而可以避免在區塊鏈上存證的資料在傳播過程中被非法篡改,保障在區塊鏈上存證資料時的資料安全;
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備可以不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為物理世界和鏈上世界的樞紐,更加便捷的將採集到的資料在區塊鏈上進行存證;而且,對於獲得終端設備採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷地對獲得的資料進行合法性驗證;因此,使得終端設備可以將採集到的資料作為證據提交給第三方,可以顯著的提升終端設備採集到的資料的可用性。
由於在區塊鏈儲存的資料具有不可篡改的特性,因此將資料儲存在區塊鏈上來做資料存證,是業界目前的主流趨勢。
然而,在實際應用中,對於一些流資料;比如,執法記錄器或者行車記錄器採集到的視頻流、音訊流等資料;由於其自身所需佔用的儲存空間較大,則通常無法直接儲存到區塊鏈上進行存證。
但在一些場景下,這類流資料卻又存在著強烈的存證需求;比如,在司法存證的場景,對於執法記錄器或者行車記錄器採集到的視頻流,可能會作為證據提交給司法部門。
由於缺乏資料認證手段,這類流資料作為證據的合法性,通常會存在廣泛質疑。因此,對於這類流資料,最好的處理方式還是儲存在區塊鏈上進行資料局存證;同時,還需要能夠更加便捷地驗證這些存證的資料作為司法證據的合法性。
基於以上需求,本說明書提出一種利用可插拔設備為終端設備搭建安全運算環境,來便捷地將終端設備採集到的資料在區塊鏈上進行存證的技術方案。
在實現時,可以預先在可插拔設備上搭建安全運算環境,在安全運算環境中儲存與可插拔設備對應的私鑰,並透過將可插拔設備與終端設備進行硬體對接,將搭建完成的安全運算環境提供給終端設備;
例如,可以在可插拔設備上搭載SE(Secure Element,安全元件)安全計算晶片,為可插拔設備搭建安全預算環境,在安全運算環境中儲存與可插拔設備對應的私鑰。同時,可以在終端設備上預留諸如USB等通用介面,使得可插拔設備可以透過這些通用介面存取終端設備,與終端設備實現硬體對接,將搭建完成的安全運算環境提供給終端設備。
進一步的,終端設備在採集到需要在區塊鏈上存證的資料之後,可插拔設備可以獲取終端設備所採集到的目標資料的資料摘要;
例如,終端設備可以計算採集到的目標資料的資料摘要,再將計算出的資料摘要發送給可插拔設備;或者,終端設備可以將採集到的目標資料直接發送給可插拔設備,由可插拔設備在本地進行摘要計算,得到該目標資料的資料摘要。
可插拔設備在獲取終端設備所採集到的目標資料的資料摘要之後,可以在可插拔設備搭載的安全運算環境中,基於儲存的私鑰,對該目標資料的資料摘要進行簽章處理,然後將簽章後的資料摘要發布至區塊鏈。
例如,可以由可插拔設備直接將簽章後的資料摘要發布至區塊鏈;或者,可插拔設備也可以將簽章後的資料摘要發送至終端設備,由終端設備將簽章後的資料摘要發布至區塊鏈。
區塊鏈中的節點設備在接收到發布的簽章後的資料摘要之後,可以獲取與該可插拔設備的私鑰對應的公鑰,然後基於該公鑰對該資料摘要的簽章進行驗證;如果簽章驗證通過,可以將該資料摘要儲存到區塊鏈中進行資料存證。
在以上技術方案中,一方面,由於可插拔設備搭載了安全運算環境,並且在該安全運算環境中儲存了與可插拔設備對應的私鑰;因此透過將可插拔設備與終端設備進行硬體對接,就可以便捷地為終端設備提供安全的運算環境;使得可插拔設備可以作為通用的安全硬體,與不同的終端設備進行硬體對接,為不同的終端設備提供安全的運算環境;而且,當終端設備需要將採集到的資料在區塊鏈上進行存證時,可以在可插拔設備上搭載的安全運算環境中,利用儲存的私鑰對終端設備採集到的資料進行簽章,並將簽章後的資料發布至區塊鏈進行資料存證,從而可以避免在區塊鏈上存證的資料在傳播過程中被非法篡改,保障在區塊鏈上存證資料時的資料安全;
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備可以不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為物理世界和鏈上世界的樞紐,更加便捷地將採集到的資料在區塊鏈上進行存證;而且,對於獲得終端設備採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷地對獲得的資料進行合法性驗證;因此,使得終端設備可以將採集到的資料作為證據提交給第三方,可以顯著地提升終端設備採集到的資料的可用性。
下面透過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖1,圖1是本說明書一實施例提供的一種基於區塊鏈的資料存證方法,係應用於與終端設備對接的可插拔設備,其中,該可插拔設備搭載了安全運算環境,該安全運算環境中儲存了與該可插拔設備對應的私鑰,所述方法執行以下步驟:
步驟102,獲取所述終端設備採集到的目標資料的資料摘要;
步驟104,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
步驟106,將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由第三方支付平臺的伺服器、境內銀行伺服器、境外銀行伺服器、以及若干用戶節點設備作為成員設備組成的一個聯盟鏈。該聯盟鏈的營運方可以依託於該聯盟鏈,來線上部署諸如基於聯盟鏈的跨境轉帳、資產轉移等線上業務。
上述終端設備,可以包括能夠作為節點設備加入區塊鏈,並將採集到的資料在區塊鏈上進行存證的任意形式的終端設備;
例如,在實際應用中,上述終端設備具體可以包括執法記錄器或者行車記錄器等。執法記錄器或者行車記錄器可以作為節點加入區塊鏈,並將採集到的諸如視頻資料、音訊資料等流資料,在區塊鏈上進行存證。
其中,將資料在區塊鏈上進行存證,是指將資料作為證據在區塊鏈中進行持久化儲存。
上述目標資料,包括由終端設備採集到的,需要在區塊鏈的分散式資料庫中完成資料存證的任意類型的資料。
例如,上述目標資料具體可以是諸如執法記錄器或者行車記錄器等終端設備採集到的視頻資料、音訊資料、圖像資料等流資料。
在本說明書中,可以為終端設備搭建安全運算環境,並利用搭建的安全運算環境,來儲存和維護用於對終端設備需要在區塊鏈上存證的資料進行簽章的私鑰。
在實現時,可以預先在可插拔設備上搭建安全運算環境,在該安全運算環境中儲存與可插拔設備對應的私鑰,並透過將可插拔設備與終端設備進行對接的方式,將在可插拔設備上搭建完成的安全運算環境,提供給終端設備。
透過這種方式,可以不再需要對終端設備的硬體環境進行改造,在終端設備的硬體環境中引入新的硬體來為終端設備搭建安全運算環境,而只需要透過將可插拔設備與終端設備進行、對接,就可以便捷地為終端設備提供安全的運算環境,使得可插拔設備可以作為通用的硬體與不同的終端設備進行硬體對接,為不同的終端設備提供安全的運算環境。
其中,終端設備與可插拔設備之間進行對接的具體方式,在本說明書中不進行特別限定,本領域技術人員在將本說明書的技術方案付諸實現時,可以進行靈活的選擇;
在示出的一種實現方式中,可插拔設備具體可以透過終端設備上提供的硬體介面,與終端設備實現硬體對接。
當然,在實際應用中,除了以上示出的可插拔設備透過終端設備提供的硬體介面,與終端設備實現硬體對接以外,在實際應用中,也可以透過軟體介面來實現對接;
例如,在一種實現方式中,也可以在終端設備上提供藍牙介面,而可插拔設備可以透過終端設備上的藍牙介面,與終端設備建立藍牙連接,進行無線資料通訊實現對接。
其中,在終端設備的硬體環境中搭建安全運算環境的具體方式,在本說明書中也不進行特別限定。
在示出的一種實施方式中,可以採用基於SE(Secure Element,安全元件)的解決方案,為可插拔設備搭建安全運算環境。
在這種解決方案下,可以在可插拔設備的硬體環境中引入SE安全計算晶片,利用SE安全計算晶片儲存和維護可插拔設備的私鑰,來搭建安全運算環境。
請參見圖2,圖2為本說明書示出的一種可插拔設備的硬體結構圖。
如圖2所示,上述可插拔設備具體可以包括殼體,設置在殼體內部的PCB電路板,安裝在PCB電路板上的USB接口、SE安全計算晶片、以及LED指示燈。
其中,上述SE安全計算晶片與USB接口電連接,用於面向可插拔設備提供安全運算環境,儲存和維護與可插拔設備對應的私鑰。
上述USB接口,與上述SE安全計算晶片電連接,用於與終端設備進行硬體對接;
例如,請參見圖3和圖4,以終端設備為可攜式錄音設備為例,可以在可攜式錄音設備上提供USB插口,在可插拔設備上提供USB接口,用戶可以透過將可插拔設備上的USB接口,插入該可攜式錄音設備的USB插口中,與該可攜式錄音設備實現硬體對接。
其中,需要說明的是,本說明書中描述的USB接口,是指USB設備中作為USB Slave的一端;而本說明書中描述的USB插口,是指USB設備中作為USB host的一端。
上述LED指示燈,與上述SE安全計算晶片電連接,用於向用戶提示可插拔設備當前的操作狀態;
例如,在實現時,可以利用SE安全計算晶片自身的處理能力,在SE安全計算晶片中植入一些用於控制LED指示燈來提示可插拔設備的操作狀態的控制邏輯,透過SE安全計算晶片來執行這些控制邏輯,來向用戶提示可插拔設備的操作狀態。
其中,在本說明書中,可插拔設備的操作狀態,具體可以包括正在上述安全運算環境中執行運算的操作狀態;以及,在上述安全運算環境中完成運算的操作狀態。
例如,在上述安全運算環境中,基於該安全運算環境儲存的私鑰,對終端設備採集到的目標資料進行簽章處理的過程中,可以稱之為上述可插拔設備正在上述安全運算環境中執行運算的操作狀態;而在上述安全運算環境中,基於該安全預算環境儲存的私鑰對終端設備採集到的目標資料簽章處理完成後,可以稱之為上述可插拔設備在上述安全運算環境中完成運算的操作狀態。
需要說明的是,透過LED指示燈向用戶提示可插拔設備的操作狀態的具體控制邏輯,本領域技術人員在將本說明書的技術方案付諸實現時,可以基於實際的需求進行定義,在本說明書中不進行特別限定;
例如,在示出的一種實現方式中,上述控制邏輯具體可以是,可插拔設備在SE安全計算晶片提供的安全運算環境中執行運算的過程中,可以控制該LED指示燈處於常亮的狀態,來表示可插拔設備處於“正在運算中”這一操作狀態;而當可插拔設備在SE安全計算晶片提供的安全運算環境中完成運算後,可以控制該LED指示燈處於熄滅的狀態,來表示可插拔設備處於“運算結束”這一操作狀態。
在示出的另一種實現方式中,上述控制邏輯具體也可以是,可插拔設備在SE安全計算晶片提供的安全運算環境中執行運算的過程中,可以控制該LED指示燈保持熄滅,來表示可插拔設備處於“運算中”這一操作狀態;而當可插拔設備在SE安全計算晶片提供的安全運算環境中完成運算後,可以控制該LED指示燈按照預設的頻率進行多次閃爍,來表示可插拔設備處於“運算結束”這一操作狀態。
當然,在本說明書,除了透過在可插拔設備的硬體環境中,引入SE安全計算晶片的方式,來為可插拔設備搭建安全運算環境以外,在實際應用中,顯然也可以透過其它的方式,為可插拔設備搭載安全運算環境;
例如,在示出的一種實施方式中,可以採用基於TEE(Trusted Execution Environment,可信執行環境)的解決方案,為終端設備搭建安全運算環境。在這種解決方案下,可以對可插拔設備的硬體環境中已有的硬體(比如已有的主處理晶片)的軟體環境進行改造(不需要引入額外的安全計算晶片),在該軟體環境中來搭建可信執行環境,利用該可信執行環境儲存和維護可插拔設備的私鑰,來搭建安全運算環境。
又如,在示出的另一種實施方式,可以採用基於SE+TEE的解決方案,為終端設備搭建安全運算環境。在這種解決方案下,可以利用SE安全計算晶片來儲存和維護可插拔設備的私鑰,利用TEE來面向可插拔設備提供安全的運算環境。
在本說明書中,上述可插拔設備可以作為節點設備加入到區塊鏈(也稱之為設備上鏈),並將與該可插拔設備對應的私鑰,在為該可插拔設備搭建的安全運算環境中進行儲存和維護。
其中,與可插拔設備對應的私鑰,具體可以是由可插拔設備持有的私鑰,也可以是可插拔設備的使用用戶所持有的私鑰。
亦即,本說明書中描述的“與可插拔設備對應的私鑰”,具體可以是可插拔設備的設備生產商在設備生產階段,為該可插拔設備產生的,並由該可插拔設備持有的私鑰;也可以是由可插拔設備在用戶使用該可插拔設備時,由可插拔設備自主的為該用戶產生的,並由該用戶個人持有的私鑰。
在示出的一種實施方式中,可插拔設備持有的私鑰以及公鑰,可以由設備生產商在設備生產階段為可插拔設備產生,並由設備生產商預先將該私鑰寫入該可插拔設備的安全運算環境中進行儲存和維護。
在這種情況下,可插拔設備持有的私鑰以及公鑰,則與可插拔設備的使用用戶的身份並不關聯。對於該可插拔設備的不同的使用用戶而言,可以共用由設備生產商預設寫入該可插拔設備的安全運算環境中的同一個私鑰。
在示出的一種實施方式中,可插拔設備持有的私鑰以及公鑰,也可以由可插拔設備自主的為該可插拔設備的使用用戶產生,並由可插拔設備將該私鑰寫入該可插拔設備的安全運算環境。
在這種情況下,可插拔設備自主產生的私鑰以及公鑰,可以與可插拔設備的使用用戶的身份相關聯,可插拔設備可以基於不同的使用用戶的身份資訊,為不同的使用用戶分別產生一對私鑰和公鑰,並將產生的私鑰與各使用用戶的身份資訊分別進行綁定,然後將綁定關係在安全運算環境中進行儲存和維護。
例如,在實現時,可插拔設備的生產商可以預先將密鑰產生演算法寫入該可插拔設備的安全運算環境。當可插拔設備的使用用戶在使用可插拔設備時,可插拔設備可以提示使用用戶輸入身份資訊進行身份認證;其中,使用用戶輸入的身份資訊的資料類型,以及可插拔設備所採用的身份認證方式,在本說明書中均不進行特別的限定;例如,可以採用諸如輸入密碼或者口令的傳統認證方式,也可以採用諸如基於指紋或者人臉等生理特徵的認證方式。
當可插拔設備獲取到使用用戶輸入的身份資訊後,可以確定安全運算環境中是否儲存了與該身份資訊綁定的私鑰;如果安全運算環境中並未儲存與該身份資訊綁定的私鑰,表明該使用用戶為首次使用該可插拔設備的新用戶,此時終端設備可以基於獲取到的該身份資訊對該使用用戶進行身份認證;如果針對該使用用戶身份認證通過,則可插拔設備可以在上述安全運算環境中呼叫上述密鑰產生演算法產生一對私鑰以及公鑰,並將產生的私鑰與該使用用戶的身份資訊進行綁定,然後將綁定關係在上述安全運算環境中進行儲存和維護。在本說明書中,用戶可以使用終端設備進行資料獲取,並在該可插拔設備上的安全運算環境中,基於該可插拔設備的私鑰對採集到的資料進行簽章後,發布至區塊鏈上進行資料存證。
其中,在本說明書中,終端設備在將採集到的目標資料在區塊鏈上進行存證時,可以僅需要將採集到的資料在本地儲存,將採集到的資料的資料摘要在區塊鏈上進行存證即可,不再需要將採集到的資料的原始內容在區塊鏈上進行存證。
需要說明的是,在實際應用中,如果終端設備採集到的目標資料為諸如視頻資料、音訊資料等流資料,這類流資料在區塊鏈上進行存證時,終端設備也可以按照預設的時間週期,對流資料進行分片存證的方式;
例如,以視頻資料為例,終端設備可以將每N分鐘的視頻資料作為一個分片,計算該分片的資料摘要,然後將該分片的資料摘要在區塊鏈中進行存證,並嚴格保證在區塊鏈上存證的各分片的資料摘要在時間上的順序,以便於進行回溯。
在本說明書中,終端設備在將採集到的目標資料在區塊鏈上進行存證時,可插拔設備可以獲取終端設備採集到的目標資料的資料摘要,並在安全運算環境中,基於可插拔設備持有的私鑰對該目標資料的資料摘要進行簽章處理。
其中,終端設備採集到的目標資料的資料摘要,具體可以由終端設備在其本地進行計算,也可以由可插拔設備在其本地進行計算。
在示出的一種實施方式中,終端設備在將採集到的目標資料在區塊鏈上進行存證時,可以在本地計算該目標資料的資料摘要;比如,該資料摘要具體可以是基於特定的雜湊演算法計算該目標資料的hash值;然後,終端設備可以將計算出的該目標資料的資料摘要,發送給對接的可插拔設備;而可插拔設備可以接收終端設備發送的目標資料的資料摘要,並將接收到的目標資料的資料摘要,在安全運算環境中,基於可插拔設備持有的私鑰對該目標資料的資料摘要進行簽章處理。
在示出的一種實施方式中,終端設備在將採集到的目標資料在區塊鏈上進行存證時,也可以將採集到的目標資料的原始內容發送給可插拔設備;而可插拔設備可以接收終端設備發送的目標資料,並在本地計算接收到的目標資料的資料摘要,然後在安全運算環境中,基於可插拔設備持有的私鑰對計算出的目標資料的資料摘要進行簽章處理。
其中,在一種場景下,如果可插拔設備的安全運算環境中儲存和維護的私鑰,為設備生產商在設備生產階段為可插拔設備產生的,由可插拔設備設備持有的私鑰;在這種情況下,可以引入對可插拔設備的使用用戶的身份認證機制,提示使用用戶輸入身份資訊進行身份認證;當可插拔設備獲取到使用用戶輸入的身份資訊後,可以基於獲取到的身份資訊對該使用用戶進行身份認證;如果針對該使用用戶的身份認證通過,可插拔設備可以在安全運算環境中,基於該安全運算環境中儲存和維護的由該可插拔設備持有的私鑰,對該資料摘要進行簽章處理。在另一種場景下,如果可插拔設備的安全運算環境中儲存和維護的私鑰,為終端設備自主為使用用戶產生的,由使用用戶持有的私鑰;此時,安全運算環境中預先儲存和維護了使用用戶的身份資訊與私鑰的綁定關係。
在這種情況下,當可插拔設備獲取到該使用用戶輸入的身份資訊後,可以查詢安全運算環境中維護的綁定關係,確定安全運算環境中是否儲存了與該身份資訊綁定的私鑰;如果安全運算環境中儲存了該身份資訊綁定的私鑰,可插拔設備可以在安全運算環境中,基於查詢到的該私鑰,對該資料摘要進行簽章處理。
當然,如果安全運算環境中並未儲存與該身份資訊綁定的私鑰,表明該使用用戶為首次使用該可插拔設備的新用戶,此時可插拔設備可以基於獲取到的該身份資訊對該使用用戶進行身份認證,並在身份認證通過後,呼叫安全運算環境中儲存的密鑰產生演算法,為該使用用戶產生私鑰和公鑰,並使用產生的私鑰,對該資料摘要進行簽章處理;以及,將產生的私鑰與該使用用戶的身份資訊進行綁定,然後將綁定關係在安全運算環境中進行儲存和維護。
在本說明書中,當可插拔設備在安全運算環境中,基於安全運算環境中儲存的私鑰,對終端設備採集到的目標資料的資料摘要進行簽章處理完成之後,可以將簽章後的資料摘要,在區塊鏈中進行發布;
例如,可以基於簽章後的資料摘要建構一筆區塊鏈交易(Transaction),將該交易向其它各節點設備進行廣播擴散。
其中,簽章後的資料摘要,可以由可插拔設備直接在區塊鏈中進行發布,也可以由可插拔設備將簽章後的資料摘要發送至終端設備,再由終端設備在區塊鏈中進行發布。
而區塊鏈中的節點設備在接收到發布的該簽章後的資料摘要後,可以獲取與安全運算環境中儲存的私鑰對應的公鑰,然後基於獲取到的公鑰對該資料摘要的簽章進行驗證;如果該資料摘要的簽章驗證通過,該節點設備可以在區塊鏈中發起對該資料摘要的共識處理,並在該資料摘要共識處理通過後,將該資料摘要打包進區塊在區塊鏈中進行儲存,以完成針對該資料摘要的資料存證。
其中,需要說明的是,本說明書中所描述的區塊鏈所採用的共識機制,在本說明書中不進行特別限定,在實際應用中,區塊鏈的營運方可以基於實際的需求來靈活的選擇。
在示出的另一種實施方式中,終端設備在將採集到的目標資料時,在區塊鏈上進行存證時,還可以將該目標資料的描述資料與該目標資料的資料摘要,一併在區塊鏈上進行存證。
這種情況下,在可插拔設備的安全運算環境中,基於安全運算環境中儲存的私鑰,對該目標資料的資料摘要進行簽章處理時,可以將該資料摘要和該目標資料的描述資訊進行整體簽章;即將資料摘要和該目標資料的描述資訊進行打包後作為一個整體進行簽章;然後,將簽章後的資料摘要和上述目標資料的描述資料,發布至區塊鏈進行資料存證。
例如,可以基於簽章後的資料摘要和上述目標資料的描述資料建構一筆區塊鏈交易,將該交易向其它各節點設備進行廣播擴散。
或者,在另一種情況下,在可插拔設備的安全運算環境中,基於安全運算環境中儲存的私鑰,對該目標資料的資料摘要進行簽章處理時,也可以僅針對該資料摘要進行簽章;然後,將上述目標資料的描述資料,和將簽章後的資料摘要,發布至區塊鏈進行資料存證。
例如,可以基於上述目標資料的描述資料,和簽章後的資料摘要來建構一筆區塊鏈交易,將該交易向其它各節點設備進行廣播擴散。
其中,上述目標資料的描述資訊所包含的具體內容,在本說明書中不進行特別限定,在實際應用中,可以涵蓋與上述目標資料相關的任意內容。
在示出的一種實施方式中,由於資料的採集時刻、採集地點和資料相關的對象,通常為資料作為證據文件的極其重要的屬性;因此,在本說明書中,上述目標資料的描述資訊,具體可以包括上述目標資料的採集時刻、採集地點、以及上述目標資料相關的對象中的一個或者多個的組合。
其中,在示出的一種實施方式中,目標資料的採集時刻,具體可以是終端設備在採集到目標資料時,與時間認證中心進行互動,從時間認證中心獲取到的經過認證的權威時刻(時間戳記)。目標資料的採集地點,可以是終端設備採集到目標資料時,即時呼叫終端設備搭載的定位模組(比如,GPS模組)獲取到的精確採集地點。而與上述目標資料相關的對象,可以是終端設備在採集到目標資料後,由該終端設備的合法用戶手動輸入的相關對象。
例如,以執法記錄器採集到的與車禍事件的取證視頻資料為例,該視頻資料的描述資訊,具體可以包括採集到該視頻資料的時刻從時間認證中心獲取到的經過認證的權威時刻、採集到該視頻資料的時刻執法記錄器即時呼叫定位模組獲取到的精確採集地點、以及由執法者輸入的與該視頻資料相關的車輛資訊、駕駛者資訊等。
在以上技術方案中,一方面,由於可插拔設備搭載了安全運算環境,並且在該安全運算環境中儲存了與可插拔設備對應的私鑰;因此透過將可插拔設備與終端設備進行硬體對接,就可以便捷的為終端設備提供安全的運算環境;使得可插拔設備可以作為通用的安全硬體,與不同的終端設備進行硬體對接,為不同的終端設備提供安全的運算環境。
而且,當終端設備需要將採集到的資料在區塊鏈上進行存證時,可以在可插拔設備上搭載的安全運算環境中,利用儲存的私鑰對終端設備採集到的資料進行簽章,並將簽章後的資料發布至區塊鏈進行資料存證,從而可以避免在區塊鏈上存證的資料在傳播過程中被非法篡改,保障在區塊鏈上存證資料時的資料安全。
例如,一台可插拔設備可以預先完成設備上鏈,取得作為在區塊鏈上的身份的公私鑰對,並將私鑰在安全運算環境中進行維護和儲存。當用戶需要將一台並未上鏈的設備採集到的資料在區塊鏈上存證時,用戶可以透過將可插拔設備上的USB接口,插入該終端設備的USB插口中,與該終端設備實現硬體對接,將可插拔設備的安全運算環境提供給終端設備,來快捷地將該終端設備改造成一台已經上鏈的設備,來完成在區塊鏈上的資料存證。進一步地,當該終端設備在完成資料存證之後,用戶需要就將其它的終端設備採集到的資料在區塊鏈上存證時,可以執行相同的操作,與上述可插拔設備進行硬體對接,來快捷地將該終端設備也改造成一台已經上鏈的設備。
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備可以不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為物理世界和鏈上世界的樞紐,更加便捷的將採集到的資料在區塊鏈上進行存證;而且,對於獲得終端設備採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷地對獲得的資料進行合法性驗證;因此,使得終端設備可以將採集到的資料作為證據提交給第三方,可以顯著的提升終端設備採集到的資料的可用性。
例如,對於執法記錄器或者行車記錄器等終端設備,只需要將採集到的視頻資料、音訊資料等流資料的原始內容在本地儲存,並將這些流資料的原始內容的資料摘要在區塊鏈上存證即可,不再需要將將這些流資料的原始內容在區塊鏈上進行存證。
而且,用戶在將執法記錄器或者行車記錄器採集到的流資料作為證據提交給第三方機構(比如,司法機構或者保險公司)時,第三方機構只需要重新計算獲得的資料的資料摘要,將該資料的資料摘要與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷的對獲得的資料進行合法性驗證,從而透過這種方式,可以顯著提升執法記錄器或者行車記錄器採集到的資料作為合法證據文件的高可用性。
與上述方法實施例相對應,本說明書還提供了一種基於區塊鏈的資料存證裝置的實施例。本說明書的基於區塊鏈的資料存證裝置的實施例可以應用在電子設備上。其中,所述電子設備可以是與終端設備對接的可插拔設備;所述電子設備搭載了安全運算環境,所述安全運算環境中儲存了與所述電子設備對應的私鑰,裝置實施例可以透過軟體來實現,也可以透過硬體或者軟硬體結合的方式來實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在電子設備的處理器將非易失性記憶體中對應的電腦程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖5所示,為本說明書的基於區塊鏈的資料存證裝置所在電子設備的一種硬體結構圖,除了圖5所示的處理器、記憶體、網路介面、以及非易失性記憶體之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖6是本說明書一示例性實施例示出的一種基於區塊鏈的資料存證裝置的方塊圖。
請參考圖6,所述基於區塊鏈的資料存證裝置60可以應用在前述圖5所示的電子設備中,包括有:獲取模組601、簽章模組602和發布模組603。
獲取模組601,獲取所述終端設備採集到的目標資料的資料摘要;
簽章模組602,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
發布模組603,將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本實施例中,所述獲取模組601:
接收所述終端設備發送的由所述終端設備採集到的目標資料的資料摘要;或者,接收所述終端設備發送的由所述終端設備採集到的目標資料,並在本地計算所述目標資料進的資料摘要。
在本實施例中,所述簽章模組602:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章。
在本實施例中,所述安全運算環境中儲存了密鑰產生演算法;
所述裝置60還包括:
認證模組604(圖5中未示出),獲取所述可插拔設備的使用用戶在首次使用所述可插拔設備時輸入的身份資訊;基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
產生模組605(圖5中未示出),如果針對所述使用用戶的身份認證通過,在所述安全運算環境中呼叫所述密鑰產生演算法產生所述私鑰以及公鑰;以及,將產生的所述私鑰與所述使用用戶的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
在本實施例中,所述簽章模組602:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
確定所述安全運算環境中是否儲存了與所述身份資訊綁定的私鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私鑰對所述資料摘要進行簽章。
在本實施例中,所述發布模組603:
將簽章後的所述資料摘要發布至所述區塊鏈;或者,將簽章後的所述資料摘要發送至所述終端設備,以由所述終端設備將所述資料摘要發布至所述區塊鏈。
在本實施例中,所述終端設備包括執法記錄器或者行車記錄器;所述目標資料包括視頻資料、音訊資料、圖像資料中的一種或者多種的組合。
在本實施例中,所述可插拔設備搭載了USB接口;所述可插拔設備透過所述USB接口與所述終端設備實現硬體對接。
在本實施例中,所述可插拔設備搭載了SE安全計算晶片;所述安全運算環境為基於所述SE安全計算晶片搭建的安全運算環境。
在本實施例中,所述可插拔設備搭載了LED指示燈,所述裝置60還包括:
控制模組606(圖5中未示出),控制所述LED指示燈向用戶提示所述可插拔設備的操作狀態,其中,所述操作狀態包括正在所述安全運算環境中執行運算的操作狀態;以及,在所述安全運算環境中完成運算的操作狀態。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分布到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種可插拔設備的實施例。該可插拔設備包括:處理器以及用於儲存機器可執行指令的記憶體,其中,處理器和記憶體通常透過內部匯流排而相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取終端設備採集到的目標資料的資料摘要,其中,所述可插拔設備與所述終端設備對接,所述可插拔設備搭載了安全運算環境,所述安全運算環境中儲存了與所述可插拔設備對應的私鑰;
在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章;
將簽章後的所述資料摘要發布至所述區塊鏈,以由區塊鏈中的節點設備基於所述私鑰對應的公鑰對所述資料摘要的簽章進行驗證,並在所述簽章驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本實施例中, 透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收所述終端設備發送的由所述終端設備採集到的目標資料的資料摘要;或者,接收所述終端設備發送的由所述終端設備採集到的目標資料,並在本地計算所述目標資料進的資料摘要。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中基於與所述可插拔設備對應的私鑰對所述資料摘要進行簽章。
在本實施例中,所述安全運算環境中儲存了密鑰產生演算法;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述可插拔設備的使用用戶在首次使用所述可插拔設備時輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用用戶進行身份認證;
如果針對所述使用用戶的身份認證通過,在所述安全運算環境中呼叫所述密鑰產生演算法產生所述私鑰以及公鑰;以及,
將產生的所述私鑰與所述使用用戶的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述可插拔設備的使用用戶輸入的身份資訊;
確定所述安全運算環境中是否儲存了與所述身份資訊綁定的私鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私鑰對所述資料摘要進行簽章。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
將簽章後的所述資料摘要發布至所述區塊鏈;或者,將簽章後的所述資料摘要發送至所述終端設備,以由所述終端設備將所述資料摘要發布至所述區塊鏈。
在本實施例中,所述可插拔設備搭載了LED指示燈;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
控制所述LED指示燈向用戶提示所述可插拔設備的操作狀態;其中,所述操作狀態包括正在所述安全運算環境中執行運算的操作狀態;以及,在所述安全運算環境中完成運算的操作狀態。
本領域技術人員在考慮說明書及實踐這裡揭示的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未揭示的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍來指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用來限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
102:方法步驟
104:方法步驟
106:方法步驟
60:基於區塊鏈的資料存證裝置
601:獲取模組
602:簽章模組
603:發布模組
圖1是一示例性實施例提供的一種基於區塊鏈的資料存證方法的流程圖;
圖2是一示例性實施例提供的一種可插拔設備的硬體結構圖;
圖3是一示例性實施例提供的一種可插拔設備與終端設備對接的示意圖;
圖4是一示例性實施例提供的另一種可插拔設備與終端設備對接的示意圖;
圖5是一示例性實施例提供的一種電子設備的結構示意圖;
圖6是一示例性實施例提供的一種基於區塊鏈的資料存證裝置的方塊圖。