TW202046143A - 資料儲存方法、裝置及設備 - Google Patents

資料儲存方法、裝置及設備 Download PDF

Info

Publication number
TW202046143A
TW202046143A TW109101679A TW109101679A TW202046143A TW 202046143 A TW202046143 A TW 202046143A TW 109101679 A TW109101679 A TW 109101679A TW 109101679 A TW109101679 A TW 109101679A TW 202046143 A TW202046143 A TW 202046143A
Authority
TW
Taiwan
Prior art keywords
data record
data
user
block
hash value
Prior art date
Application number
TW109101679A
Other languages
English (en)
Other versions
TWI725709B (zh
Inventor
李億澤
楊新穎
張淵
俞本權
閆文遠
Original Assignee
開曼群島商創新先進技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 開曼群島商創新先進技術有限公司 filed Critical 開曼群島商創新先進技術有限公司
Publication of TW202046143A publication Critical patent/TW202046143A/zh
Application granted granted Critical
Publication of TWI725709B publication Critical patent/TWI725709B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

公開了一種資料儲存方法、裝置及設備。應用服務端將用戶資料在可信執行環境中進行數位簽名,產生包含用戶數位簽名的第二資料記錄,將第二資料記錄儲存在中心化的塊鏈式帳本中,實現了對於包含用戶數位簽名的資料的不可竄改。

Description

資料儲存方法、裝置及設備
本說明書實施例涉及資訊技術領域,尤其涉及一種資料儲存方法、裝置及設備。
在以中心化的塊鏈式帳本儲存資料時,通常而言,資料庫服務端並不直接面向用戶。用戶的資料是基於應用服務端所產生,進而是應用服務端將用戶資料轉發至資料庫服務端進行儲存。在這種情形下,用戶並不知曉自己的資料是否在儲存過程中發生了錯誤或者改動。 基於此,需要一種可以保障用戶儲存資料安全性的方法,提高用戶體驗。
本發明實施例的目的是提供一種可以保障用戶儲存資料安全性的方法。 為解決上述技術問題,本發明實施例是這樣實現的: 一種資料儲存方法,應用於包括應用服務端和資料庫服務端的系統中,該方法包括: 應用服務端,獲取攜帶用戶標識的第一資料記錄; 應用服務端,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 應用服務端,發送該第二資料記錄至資料庫服務端; 資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值; 資料庫服務端,當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊,具體包括: 當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定; 當N>1時,根據待寫入資料塊中的第二資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值和各第二資料記錄的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序單調遞增。 對應的,本說明書實施例還提供一種資料儲存系統,包括應用服務端和資料庫服務端,在該系統中, 應用服務端,獲取攜帶用戶標識的第一資料記錄;根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名;發送該第二資料記錄至資料庫服務端; 資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值; 當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊,具體包括: 當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定; 當N>1時,根據待寫入資料塊中的第二資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值和各第二資料記錄的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序單調遞增。 另一方面,本說明書實施例還提供一種資料儲存方法,應用於應用服務端中,該方法包括: 獲取攜帶用戶標識的第一資料記錄; 根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 發送該第二資料記錄至資料庫服務端。 對應的,本說明書實施例還提供一種資料儲存裝置,應用於應用服務端中,該裝置包括: 接收模組,獲取攜帶用戶標識的第一資料記錄; 產生模組,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 發送模組,發送該第二資料記錄至資料庫服務端。 透過本說明書實施例所提供的方案,應用服務端將用戶資料在可信執行環境中進行數位簽名,產生包含用戶數位簽名的第二資料記錄,將第二資料記錄儲存在中心化的塊鏈式帳本中,實現了對於包含用戶數位簽名的資料的不可竄改,保障了用戶儲存資料安全性,提高用戶體驗。 應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書實施例。 此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。
為了使本領域技術人員更好地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的圖式,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬於保護的範圍。 在當前的伺服器架構中,資料庫服務端可以是直接對接的客戶端個人用戶,也可以是由一些應用服務端對接客戶端個人用戶,而資料庫服務端則對接該應用服務端。如圖1所示,圖1是本說明書實施例中所涉及的系統架構的示意圖。 以下結合圖式,詳細說明本說明書各實施例提供的技術方案。如圖2所示,圖2是本說明書實施例提供的一種系統方面的資料儲存方法的流程示意圖,應用於包括應用服務端和資料庫服務端的系統中,該流程具體包括如下步驟: S201,應用服務端,獲取攜帶用戶標識的第一資料記錄。 第一資料記錄可以是客戶端發送的原始資料,例如,客戶端所發送的操作命令、交易訂單等等;也可以是應用服務端基於客戶端的操作所產生的資料,例如,操作日誌等等。 在應用服務端,可以獲取此時的客戶端所對應的用戶標識,並將用戶標識與第一資料記錄進行綁定,例如,寫入第一資料記錄的指定位置中;或者,拼接到第一資料記錄的頭部等等,從而得到攜帶用戶標識的第一資料記錄。 S203,應用服務端,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄。 需要說明的是,在本說明書實施例中,應用服務端一般是中心化的提供服務,各用戶可以將自身的私鑰儲存於應用服務端之中,並且與用戶標識建立相應的對應關係,以及,可以隨時使用自身的公鑰對應用服務端的加密結果進行驗證,從而能夠保證應用服務端在加密過程中使用的是自身的私鑰。 同時,應用服務端在加密過程中,執行一段可以公開所見的代碼,從而公眾以及用戶均可以瞭解該代碼的用途,進而保證在本說明書實施例中所得到的加密資料的公正性。 在本說明書實施例中,該代碼為一段簽名代碼,用於根據用戶私鑰對該第一資料記錄進行數位簽名。使用私鑰進行數位簽名的方法已經很常見,此處不再贅述。需要說明的是,在這個過程中,調用的用戶私鑰並不公開所見的。 為此,在應用服務端中,可以在可信執行環境(Trusted Execution Environment, TEE)進行私鑰簽名來保障公正性。TEE可以起到硬體中的黑箱作用,在TEE中執行的代碼和資料操作系統層都無法偷窺,只有代碼中預先定義的介面才能對其進行操作。 可信執行環境是基於CPU硬體的安全擴展,且與外部完全隔離的可信執行環境。TEE最早是由Global Platform提出的概念,用於解決行動設備上資源的安全隔離,平行於操作系統為應用程式提供可信安全的執行環境。ARM的Trust Zone技術最早實現了真正商用的TEE技術。 伴隨著網際網路的高速發展,安全的需求越來越高,不僅限於行動設備,雲端設備,資料中心都對TEE提出了更多的需求。TEE的概念也得到了高速的發展和擴充。現在所說的TEE相比與最初提出的概念已經是更加廣義的TEE。例如,伺服器晶片廠商Intel,AMD等都先後推出了硬體輔助的TEE並豐富了TEE的概念和特性,在工業界得到了廣泛的認可。現在提起的TEE通常更多指這類硬體輔助的TEE技術。不同於行動端,雲端存取需要遠端存取,終端用戶對硬體平台不可見,因此使用TEE的第一步就是要確認TEE的真實可信。因此現在的TEE技術都引入了遠端證明機制,由硬體廠商(主要是CPU廠商)背書並透過數位簽名技術確保用戶對TEE狀態可驗證。換言之,在TEE中執行的結果可以得到硬體廠商的數位簽名。 同時僅僅是安全的資源隔離也無法滿足的安全需求,進一步的資料隱私保護也被提出。包括Intel SGX,AMD SEV在內的商用TEE也都提供了內部記憶體加密技術,將可信硬體限定在CPU內部,匯流排和內部記憶體的資料均是密文防止惡意用戶進行窺探。例如,英特爾的軟體保護擴展(SGX)等TEE技術隔離了代碼執行、遠端證明、安全配置、資料的安全儲存以及用於執行代碼的可信路徑。在 TEE中運行的應用程式受到安全保護,幾乎不可能被第三方存取。 以Intel SGX技術為例,SGX提供了圍圈(enclave,也稱為指定位址空間),即內部記憶體中一個加密的可信執行區域,由CPU保護資料不被竊取。以服務端採用支持SGX的CPU為例,利用新增的處理器指令,在內部記憶體中可以分配一部分區域EPC(Enclave Page Cache,圍圈頁面緩存或指定位址空間頁面緩存),透過CPU內的加密引擎MEE(Memory Encryption Engine)對其中的資料進行加密。EPC中加密的內容只有進入CPU後才會被解密成明文。因此,在SGX中,用戶可以不信任操作系統、VMM(Virtual Machine Monitor,虛擬機監控器)、甚至BIOS(Basic Input Output System,基本輸入輸出系統),只需要信任CPU便能確保代碼的執行。 在本說明書實施例中,透過在可信執行環境中執行公開的代碼以進行用戶私鑰加密,從而可以獲取得到的包含用戶數位簽名的第二資料記錄,該第二資料記錄的真實性由可信執行環境的硬體提供方所保障。 S205,應用服務端,發送該第二資料記錄至資料庫服務端。 S207,資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值。 S209,資料庫服務端,當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊。 該預設的成塊條件包括:待儲存的第二資料記錄數量達到數量閾值,例如,每接收到一千條第二資料記錄時,產生一個新資料塊,將一千條第二資料記錄寫入塊中;或者,距離上一次成塊時刻的時間間隔達到時間閾值,例如,每隔5分鐘,產生一個新資料塊,將在這5分鐘內接收到的第二資料記錄寫入塊中。 此處的N指的是資料塊的序號,換言之,在本說明書實施例中,資料塊是以塊鏈的形式,基於成塊時間的順序先後排列,具有很強的時序特徵。其中,資料塊的塊高基於成塊時間的先後順序單調遞增。塊高可以是序號,此時第N個資料塊的塊高即為N;塊高也可以其它方式產生。 當N=1時,即此時的資料塊為為初始資料塊。初始資料塊的雜湊值和塊高基於預設方式給定。例如,初始資料塊中不包含第二資料記錄,雜湊值則為任一給定的雜湊值,塊高blknum=0;又例如,初始資料塊的產生觸發條件與其它資料塊的觸發條件一致,但是初始資料塊的雜湊值由對初始資料塊中的所有內容取雜湊確定。 當N>1時,由於前一資料塊的內容和雜湊值已經確定,則此時,可以基於前一資料塊(即第N-1個資料塊)的雜湊值產生當前資料塊(第N個資料塊)的雜湊值,例如,一種可行的方式為,確定每一條將要寫入第N個塊中的第二資料記錄的雜湊值,按照在塊中的排列順序,產生一個默克爾樹,將默克爾樹的根雜湊值和前一資料塊的雜湊值拼接在一起,再次採用雜湊演算法,產生當前塊的雜湊值,以及還可以根據默克爾樹的根雜湊值和其它一些元資料(例如版本號、資料塊的產生時間戳等等)產生當前快的雜湊值。又例如,還可以按照塊中第二資料記錄的順序進行拼接並取雜湊得到整體第二資料記錄的雜湊值,拼接前一資料塊的雜湊值和整體第二資料記錄的雜湊值,並對拼接得到的字串進行雜湊運算,產生資料塊的雜湊值。 透過前述的資料塊的產生方式,每一個資料塊透過雜湊值確定,資料塊的雜湊值由資料塊中的第二資料記錄的內容、順序以及前一資料塊的雜湊值決定。用戶可以隨時基於資料塊的雜湊值或者第二資料記錄的雜湊值發起驗證,對於資料塊中任何內容(包括對於資料塊中第二資料記錄內容或者順序的修改)的修改都會造成在驗證時計算得到的資料塊的雜湊值和資料塊產生時的雜湊值不一致,而導致驗證失敗,從而實現了中心化下的不可竄改。 在本說明書實施例中,資料塊的格式是可以自定義的。在一種實施例中,資料塊的格式可以是類似於區塊鏈中的區塊格式。在每一個資料塊中,其包含用於儲存元資料的塊頭,和,用於儲存第二資料記錄的塊體。資料塊中的塊頭可以用於儲存諸如父雜湊、自身的塊雜湊值、版本號、資料記錄的默克爾樹的根雜湊、時間戳等等。 透過本說明書實施例所提供的方案,應用服務端將用戶資料在可信執行環境中進行數位簽名,產生包含用戶數位簽名的第二資料記錄,將第二資料記錄儲存在中心化的塊鏈式帳本中,數位簽名保障了資料確實由該用戶所產生,而中心化的塊鏈式帳本儲存實現了對於包含用戶數位簽名的資料的不可竄改,透過前述方案保障了用戶儲存資料安全性,提高用戶體驗。 在一種實施例中,資料庫服務端還可以在儲存第二資料記錄前對第二資料記錄進行驗證。即根據用戶標識確定對應的公鑰。在數位簽名過程中,對應的公鑰是公開可見的,任一用戶或者機構都可以知曉一名用戶所對應的公鑰,因而,根據用戶標識即可得到對應的公鑰,並對第二資料記錄進行驗證。 驗證如果通過,再將資料記錄寫入資料塊;否則,不寫入,並且還可以返回相應的通知消息至應用服務端。對於數位簽名的具體驗證方式在當前也很常規,此處不再贅述。 在一種實施例中,資料庫服務端還可以返回對於第二資料記錄的雜湊值至應用服務端,應用服務端轉發第二資料記錄的雜湊值至該用戶標識所對應的第一客戶端。從而第一客戶端可以隨時根據該雜湊值查詢得到相應的第二資料記錄,並且可以驗證該第二資料記錄中的私鑰的正確性。或者,可以隨時根據該雜湊值對第二資料記錄所處的帳本進行完整性驗證,具體的完整性驗證方式在前文已經詳述。 在一種實施例中,若多個不同的客戶端之間有可能需要共享資料。例如,在一種共享學習的平台中,不同的客戶端可以分別將自己的資料作為訓練樣本輸入到同一的學習平台(即應用服務端)中,學習平台可以對客戶端的資料進行的模型訓練。 同時,任一客戶端均可以對平台得到的訓練模型進行相應的操作(例如,更新,再次訓練等等),以及,一個客戶端可能還需要使用到其它客戶端的資料進行自身相關的模型訓練。在這種情形下,一名客戶端有動機去查詢驗證其它客戶端所提供的資料以及其它客戶端在使用過程中所產生的資料等等。 此時,第一客戶端或者應用服務端可以將第一客戶端操作所產生的第二資料記錄的雜湊值進行公開,其它客戶端可以發送該雜湊值至應用服務端進行相應的查詢。 進而,應用服務端,可以接收第二客戶端所發送的包含第二資料記錄的雜湊值的查詢請求,並轉發該查詢請求至資料庫服務端;資料庫服務端,根據該第二資料記錄的雜湊值查詢得到對應的第二資料記錄,並返回該資料記錄至應用服務端;應用服務端轉發該查詢得到的第二資料記錄至該第二客戶端,第二客戶端則可以採用第一客戶端的公鑰對該第二資料記錄進行解密驗證。 透過這種方式,在這類多客戶端共享資料的情形下,任一客戶端均可以對其它客戶端所產生的資料進行合法性驗證,確認其它任一用戶所提供或者所產生的資料是可靠合法的,達到共同公開監督,進一步保障用戶儲存資料安全性,提高用戶體驗。 對應的,本說明書實施例還提供一種資料儲存系統,包括應用服務端和資料庫服務端,在該系統中, 應用服務端,獲取攜帶用戶標識的第一資料記錄;根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名;發送該第二資料記錄至資料庫服務端; 資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值; 當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊,具體包括: 當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定; 當N>1時,根據待寫入資料塊中的第二資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值和各第二資料記錄的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序單調遞增。 進一步地,在該系統中,資料庫服務端還用於,根據用戶標識確定對應的用戶公鑰,採用該用戶公鑰對第二資料記錄進行驗證。 進一步地,在該系統中,在資料庫服務端中,該預設的成塊條件包括:待儲存的資料記錄數量達到數量閾值;或者,距離上一次成塊時刻的時間間隔達到時間閾值。 進一步地,在該系統中,資料庫服務端返回該第二資料記錄的雜湊值至應用服務端;應用服務端轉發第二資料記錄的雜湊值至該第一客戶端。 進一步地,在該系統中,應用服務端還用於,接收第二客戶端所發送的包含第二資料記錄的雜湊值的查詢請求,並轉發該查詢請求至資料庫服務端; 相應的,資料庫服務端還用於,根據該第二資料記錄的雜湊值查詢得到對應的第二資料記錄,並返回該資料記錄至應用服務端;應用服務端轉發該查詢得到的第二資料記錄至該第二客戶端,以便該第二客戶端採用第一客戶端的公鑰對該第二資料記錄進行解密驗證。 進一步地,在該系統中,該可信執行環境包括Intel SGX或AMD SEV或ARM Trustzone。 在另一方面,本說明書實施例還提供一種資料儲存方法,應用於應用服務端中,如圖3所示,圖3為本說明書實施例所提供的應用服務端方面的資料儲存方法的流程示意圖,該方法包括: S301,獲取攜帶用戶標識的第一資料記錄; S303,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; S305,發送該第二資料記錄至資料庫服務端。 對應的,本說明書實施例還提供一種資料儲存裝置,應用於應用服務端中,如圖4所示,圖4是本說明書實施例提供的一種資料儲存裝置的結構示意圖,包括: 接收模組401,獲取攜帶用戶標識的第一資料記錄; 產生模組403,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 發送模組405,發送該第二資料記錄至資料庫服務端。 本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行該程式時實現圖3所示的資料儲存方法。 圖5示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器1010、記憶體1020、輸入/輸出介面1030、通信介面1040和匯流排1050。其中處理器1010、記憶體1020、輸入/輸出介面1030和通信介面1040透過匯流排1050實現彼此之間在設備內部的通信連接。 處理器1010可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、專用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式實現,用於執行相關程式,以實現本說明書實施例所提供的技術方案。 記憶體1020可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態儲存設備,動態儲存設備等形式實現。記憶體1020可以儲存操作系統和其他應用程式,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程式代碼保存在記憶體1020中,並由處理器1010來調用執行。 輸入/輸出介面1030用於連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為組件配置在設備中(圖中未示出),也可以外接於設備以提供相應功能。其中輸入設備可以包括鍵盤、滑鼠、觸控螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。 通信介面1040用於連接通信模組(圖中未示出),以實現本設備與其他設備的通信互動。其中通信模組可以透過有線方式(例如USB、網路線等)實現通信,也可以透過無線方式(例如行動網路、WIFI、藍牙等)實現通信。 匯流排1050包括一通路,在設備的各個組件(例如處理器1010、記憶體1020、輸入/輸出介面1030和通信介面1040)之間傳輸資訊。 需要說明的是,儘管上述設備僅示出了處理器1010、記憶體1020、輸入/輸出介面1030、通信介面1040以及匯流排1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。 本說明書實施例還提供一種電腦可讀取儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現圖3所示的資料儲存方法。 電腦可讀取媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀取指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變內部記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀取媒體不包括暫存電腦可讀取媒體(transitory media),如調變的資料信號和載波。 透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平台的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。 上述實施例闡明的系統、方法、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。 本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於方法實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的方法實施例僅僅是示意性的,其中該作為分離部件說明的模組可以是或者也可以不是實體上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。 以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。
S201~S209:步驟 S301~S305:步驟 401:接收模組 403:產生模組 405:發送模組 1010:處理器 1020:記憶體 1030:輸入/輸出介面 1040:通信介面 1050:匯流排
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些圖式獲得其他的圖式。 [圖1]是本說明書實施例中所涉及的系統架構的示意圖; [圖2]是本說明書實施例提供的一種系統方面的資料儲存方法的流程示意圖; [圖3]為本說明書實施例所提供的應用服務端方面的資料儲存方法的流程示意圖; [圖4]是本說明書實施例提供的一種資料儲存裝置的結構示意圖; [圖5]是用於配置本說明書實施例方法的一種設備的結構示意圖。

Claims (15)

  1. 一種資料儲存方法,應用於包括應用服務端和資料庫服務端的系統中,該方法包括: 應用服務端,獲取攜帶用戶標識的第一資料記錄; 應用服務端,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 應用服務端,發送該第二資料記錄至資料庫服務端; 資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值; 資料庫服務端,當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊,具體包括: 當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定; 當N>1時,根據待寫入資料塊中的第二資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值和各第二資料記錄的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序單調遞增。
  2. 如請求項1所述的方法,資料庫服務端,在確定待寫入資料塊中的各第二資料記錄之前,該方法還包括: 根據用戶標識確定對應的用戶公鑰,採用該用戶公鑰對第二資料記錄進行驗證。
  3. 如請求項1所述的方法,該預設的成塊條件包括: 待儲存的第二資料記錄數量達到數量閾值;或者, 距離上一次成塊時刻的時間間隔達到時間閾值。
  4. 如請求項1所述的方法,該方法還包括: 資料庫服務端返回該第二資料記錄的雜湊值至應用服務端; 應用服務端轉發第二資料記錄的雜湊值至該用戶標識所對應的第一客戶端。
  5. 如請求項1所述的方法,該方法還包括: 應用服務端,接收第二客戶端所發送的包含第二資料記錄的雜湊值的查詢請求,並轉發該查詢請求至資料庫服務端; 資料庫服務端,根據該第二資料記錄的雜湊值查詢得到對應的第二資料記錄,並返回該資料記錄至應用服務端; 應用服務端轉發該查詢得到的第二資料記錄至該第二客戶端,以便該第二客戶端採用第一客戶端的公鑰對該第二資料記錄進行解密驗證。
  6. 如請求項1所述的方法,該可信執行環境包括Intel SGX或AMD SEV或ARM Trustzone。
  7. 一種資料儲存系統,包括應用服務端和資料庫服務端,在該系統中, 應用服務端,獲取攜帶用戶標識的第一資料記錄;根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名;發送該第二資料記錄至資料庫服務端; 資料庫服務端,接收該第二資料記錄,確定該第二資料記錄的雜湊值; 當達到預設的成塊條件時,確定待寫入資料塊中的各第二資料記錄,產生包含資料塊的雜湊值和各第二資料記錄的第N個資料塊,具體包括: 當N=1時,初始資料塊的雜湊值和塊高基於預設方式給定; 當N>1時,根據待寫入資料塊中的第二資料記錄和第N-1個資料塊的雜湊值確定第N個資料塊的雜湊值,產生包含第N個資料塊的雜湊值和各第二資料記錄的第N個資料塊,其中,資料塊的塊高基於成塊時間的先後順序單調遞增。
  8. 如請求項7所述的系統,資料庫服務端還用於,根據用戶標識確定對應的用戶公鑰,採用該用戶公鑰對第二資料記錄進行驗證。
  9. 如請求項7所述的系統,在資料庫服務端中,該預設的成塊條件包括: 待儲存的資料記錄數量達到數量閾值;或者,距離上一次成塊時刻的時間間隔達到時間閾值。
  10. 如請求項7所述的系統, 資料庫服務端返回該第二資料記錄的雜湊值至應用服務端;應用服務端轉發第二資料記錄的雜湊值至該第一客戶端。
  11. 如請求項7所述的系統, 應用服務端還用於,接收第二客戶端所發送的包含第二資料記錄的雜湊值的查詢請求,並轉發該查詢請求至資料庫服務端; 相應的,資料庫服務端還用於,根據該第二資料記錄的雜湊值查詢得到對應的第二資料記錄,並返回該資料記錄至應用服務端; 應用服務端轉發該查詢得到的第二資料記錄至該第二客戶端,以便該第二客戶端採用第一客戶端的公鑰對該第二資料記錄進行解密驗證。
  12. 如請求項7所述的系統,該可信執行環境包括Intel SGX或AMD SEV或ARM Trustzone。
  13. 一種資料儲存方法,應用於應用服務端中,該方法包括: 獲取攜帶用戶標識的第一資料記錄; 根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 發送該第二資料記錄至資料庫服務端。
  14. 一種資料儲存裝置,應用於應用服務端中,該裝置包括: 接收模組,獲取攜帶用戶標識的第一資料記錄; 產生模組,根據用戶標識獲取對應的用戶私鑰,在可信執行環境中執行預設的簽名代碼,產生包含用戶數位簽名的第二資料記錄,其中,該簽名代碼用於根據用戶私鑰對該第一資料記錄進行數位簽名; 發送模組,發送該第二資料記錄至資料庫服務端。
  15. 一種電腦設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,該處理器執行該程式時實現如請求項13所述的方法。
TW109101679A 2019-05-31 2020-01-17 資料儲存方法、裝置及設備 TWI725709B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910473001.0A CN110245518B (zh) 2019-05-31 2019-05-31 一种数据存储方法、装置及设备
CN201910473001.0 2019-05-31

Publications (2)

Publication Number Publication Date
TW202046143A true TW202046143A (zh) 2020-12-16
TWI725709B TWI725709B (zh) 2021-04-21

Family

ID=67885755

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109101679A TWI725709B (zh) 2019-05-31 2020-01-17 資料儲存方法、裝置及設備

Country Status (3)

Country Link
CN (1) CN110245518B (zh)
TW (1) TWI725709B (zh)
WO (1) WO2020238248A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783277B2 (en) 2019-05-31 2020-09-22 Alibaba Group Holding Limited Blockchain-type data storage
CN110245518B (zh) * 2019-05-31 2024-05-17 创新先进技术有限公司 一种数据存储方法、装置及设备
CN110688664B (zh) * 2019-09-25 2021-03-23 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的权限管理方法、装置及设备
CN111310208A (zh) * 2020-02-14 2020-06-19 云从科技集团股份有限公司 数据处理方法、***、平台、设备及机器可读介质
CN111786779B (zh) * 2020-06-18 2022-03-18 中国电子科技集团公司第三十研究所 一种新的可问责安全数据共享***和方法
CN111859467B (zh) * 2020-07-23 2024-03-26 中国工商银行股份有限公司 一种基于sgx的云数据完整性审计方法及装置
CN113468270A (zh) * 2021-02-07 2021-10-01 支付宝(杭州)信息技术有限公司 一种数据存储方法及***
CN115345616A (zh) * 2022-10-18 2022-11-15 上海特高信息技术有限公司 一种区块链交易在线签名的安全执行装置及其工作方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962765B2 (en) * 2007-06-14 2011-06-14 Red Hat, Inc. Methods and systems for tamper resistant files
CN103685162A (zh) * 2012-09-05 2014-03-26 ***通信集团公司 文件存储和共享方法
KR101613146B1 (ko) * 2015-03-24 2016-04-18 주식회사 티맥스데이터 데이터베이스 암호화 방법
CN106454528A (zh) * 2015-08-07 2017-02-22 阿里巴巴集团控股有限公司 基于可信执行环境的业务处理方法和客户端
PL3257191T3 (pl) * 2016-02-23 2019-01-31 Nchain Holdings Ltd Rejestr i zautomatyzowany sposób zarządzania łańcuchem bloków - egzekwowane umowy inteligentne
CN105975870B (zh) * 2016-05-19 2018-10-23 上海点融信息科技有限责任公司 数据脱敏方法和***
KR20180089682A (ko) * 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법
CN106997439B (zh) * 2017-04-01 2020-06-19 北京元心科技有限公司 基于TrustZone的数据加解密方法、装置及终端设备
CN108055133B (zh) * 2017-12-12 2020-02-14 江苏安凰领御科技有限公司 一种基于区块链技术的密钥安全签名方法
CN109635581A (zh) * 2018-12-12 2019-04-16 深圳市网心科技有限公司 一种数据处理方法、设备、***及存储介质
CN109768865A (zh) * 2019-01-18 2019-05-17 深圳市威赫科技有限公司 可信执行环境下的区块链上身份数字化实现方法及***
CN110245518B (zh) * 2019-05-31 2024-05-17 创新先进技术有限公司 一种数据存储方法、装置及设备

Also Published As

Publication number Publication date
CN110245518B (zh) 2024-05-17
WO2020238248A1 (zh) 2020-12-03
TWI725709B (zh) 2021-04-21
CN110245518A (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
TWI725709B (zh) 資料儲存方法、裝置及設備
TWI740388B (zh) 基於可信執行環境的操作記錄儲存方法、裝置及設備
US9246678B2 (en) Secure cloud storage and encryption management system
TWI727594B (zh) 塊鏈式帳本中的簽名驗證方法、系統、裝置及設備
US10116645B1 (en) Controlling use of encryption keys
WO2018177124A1 (zh) 业务处理方法、装置、数据共享***及存储介质
US10783277B2 (en) Blockchain-type data storage
US11108573B2 (en) Blockchain ledger authentication
US10003467B1 (en) Controlling digital certificate use
WO2020244236A1 (zh) 一种块链式账本的授时认证方法、装置及设备
WO2022161182A1 (zh) 基于数据流的可信计算的方法及装置
WO2020199708A1 (zh) 一种针对授时证书生成请求的监控方法、装置及设备
US10079681B1 (en) Securing service layer on third party hardware
US10783054B2 (en) Method, apparatus, and device for storing operation record based on trusted execution environment
JP2022534677A (ja) ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護
US11374898B1 (en) Use of partial hash of domain name to return IP address associated with the domain name
CN110851851B (zh) 一种块链式账本中的权限管理方法、装置及设备
TWI546698B (zh) 基於伺服器的登入系統、登入驗證伺服器及其驗證方法
CN111292082B (zh) 一种块链式账本中的公钥管理方法、装置及设备
US20240114012A1 (en) Zero-trust distributed data sharing
US20240119168A1 (en) Blind subpoena protection
WO2020000789A1 (zh) 实现接入验证的方法和装置
CN117579331A (zh) 远程证明方法、装置、电子设备及存储介质