TWI749488B - 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體 - Google Patents

電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體 Download PDF

Info

Publication number
TWI749488B
TWI749488B TW109109600A TW109109600A TWI749488B TW I749488 B TWI749488 B TW I749488B TW 109109600 A TW109109600 A TW 109109600A TW 109109600 A TW109109600 A TW 109109600A TW I749488 B TWI749488 B TW I749488B
Authority
TW
Taiwan
Prior art keywords
transaction
section
processed
backup
blockchain
Prior art date
Application number
TW109109600A
Other languages
English (en)
Other versions
TW202101261A (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 TW202101261A publication Critical patent/TW202101261A/zh
Application granted granted Critical
Publication of TWI749488B publication Critical patent/TWI749488B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

本文描述了用於檢測和禁止重放攻擊的方法、系統和裝置,包括編碼在電腦儲存媒體上的電腦程式。所述方法之一包括:接收要在區塊鏈中完成的交易。判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,其中,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案。根據所述當前工作區段判定所述交易先前是否已被處理。當判定所述交易先前已被處理時,跳過所述交易。當判定所述交易先前未被處理時處理所述交易,以及將所述交易的交易資訊寫入所述當前工作區段。

Description

電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體
本文涉及識別重放攻擊(或重播攻擊),在重放攻擊中交易或傳輸被惡意性或欺騙性重複。
分散式帳本系統(DLS),也可稱為共識網路和/或區塊鏈網路,使得參與的實體能夠安全且不可篡改地儲存資料。在不引用任何特定用例的情況下,DLS通常被稱為區塊鏈網路。區塊鏈網路類型的示例可以包括公有區塊鏈網路、私有區塊鏈網路和聯盟區塊鏈網路。聯盟區塊鏈網路針對選擇的實體組群提供,該實體組群控制共識處理,並包括存取控制層。
重放攻擊可以指攻擊方發送目標主機已經接收過的包(例如區塊鏈網路中的交易)的情況。重放攻擊的目的是欺 騙區塊鏈網路。重放攻擊可以由例如惡意電腦使用者的發起方執行,其攔截(例如透過竊取)交易並重新發送與交易有關的資料。重放攻擊可以在任何網路通訊處理中發生、並且是惡意電腦使用者最常用的攻擊方法之一。
布隆過濾器可以用於識別交易是否已經發生。布隆過濾器是被優化以高效插入和查詢的資料結構,並可以接受例如“某樣東西(交易)一定不存在或可能存在”之類的查詢並返回概率值。布隆過濾器具有相對於傳統資料結構更高效且消耗更少計算資源(例如,儲存空間)的優點。布隆過濾器的一個缺點是返回值是概率性的(也即,不精確的)。
期望加速識別重複交易的處理以更快速地識別重放攻擊。
本文描述了用於使用儲存空間互換識別重放攻擊的技術。這些技術一般涉及儲存交易資訊(例如,交易標識(ID))。用於儲存交易資訊的記憶體可以被劃分為工作區段和備份區段。工作區段可以用於儲存當前交易資訊。一旦工作區段接近寫滿,交易可以被儲存在備份區段中。在重疊階段,交易資訊可以被儲存在工作區段和備份區段來提供冗餘。在切換時,備份區段可以被指定為新的寫有交易資訊的工作區段。僅對最近的交易進行交易資訊的儲存和搜尋可以加速搜尋時間。
本文還提供了耦接到一個或多個處理器並且其上儲存 有指令的一個或多個非暫態電腦可讀儲存媒體,當所述指令由所述一個或多個處理器執行時,所述指令將促使所述一個或多個處理器按照本文提供的方法的實施例執行操作。
本文還提供了用於實施本文提供的所述方法的系統。該系統包括一個或多個處理器以及耦接到所述一個或多個處理器並且其上儲存有指令的電腦可讀儲存媒體,當所述指令由所述一個或多個處理器執行時,所述指令將導致所述一個或多個處理器按照本文提供的方法的實施例執行操作。
應瞭解,依據本文的方法可以包括本文描述的方面和特徵的任意組合。也就是說,根據本文的方法不限於本文具體描述的方面和特徵的組合,還包括所提供的方面和特徵的任意組合。
以下在圖式和描述中闡述了本文的一個或多個實施例的細節。根據說明書和圖式以及申請專利範圍,本文的其他特徵和優點將顯而易見。
100:環境
102:聯盟區塊鏈網路
106,108:計算設備
110:網路
200:示例性概念架構
202,204,206:參與者系統
212:區塊鏈網路
214:節點
216:區塊鏈
216',216",216''':完整副本
300:重放攻擊場景
302:發送方銀行Alice
304:接收方銀行Bob
306,312,320:匯款請求資訊
308,314,322:正確MAC值
310:竊取和保存
316:主動攻擊方Mallory
318,324:重放攻擊
400:常規系統
402:用戶端
404:伺服器
500:系統
600:方法
700:裝置
702:接收模組
704:第一判定模組
706:第二判定模組
708:跳過模組
710:處理模組
712:寫入模組
[圖1]是示出可以用於執行本文實施例的環境的示例的圖。
[圖2]描述了根據本文實施例的示例性架構。
[圖3]是示出根據本文實施例的重放攻擊場景的示例的方塊圖。
[圖4]是示出根據本文實施例的用於檢測重放攻擊的常規系統的示例的方塊圖。
[圖5]是示出根據本文實施例的用於檢測重放攻擊的系統的示例的方塊圖。
[圖6]是描述用於檢測和禁止(disable)重放攻擊的方法的示例的流程圖。
[圖7]描述了根據本文實施例的裝置的模組的示例。
各圖式中相同的元件編號和名稱指示相同的元素。
本公開描述了涉及用於使用儲存空間互換以更高效地識別重放攻擊技術的方案。僅最近交易的資訊被儲存在記憶體的工作區段中。在判定達到臨界值條件時,例如當工作區段處於寫滿的臨界值百分比時,執行切換。在切換期間,備份區段成為工作區段。在重疊階段,交易資訊可以被儲存在工作區段和備份區段以提供冗餘。僅對最近的交易進行交易資訊的儲存和搜尋可以加速搜尋時間。例如,交易可以是區塊鏈中的交易。
為本文的實施例提供進一步的背景,並且如上所述,分散式帳本系統(DLS),又可以稱為共識網路(例如,由點對點節點組成)和區塊鏈網路,使參與的實體安全地、不可篡改地進行交易和儲存資料。儘管術語“區塊鏈”通常與特定網路和/或用例相關聯,但是在不參考任何特定用例情況下,本文使用“區塊鏈”來一般地指代DLS。
區塊鏈是以交易不可篡改的方式儲存交易的資料結構。因此,記錄在區塊鏈上的交易是可靠且可信的。區塊鏈包括一個或多個區塊。鏈中的每個區塊透過包含在鏈中緊鄰其之前的前一區塊的加密雜湊值(cryptographic hash)連結到該前一區塊。每個區塊還包括時間戳記、自身的加密雜湊值以及一個或多個交易。已經被區塊鏈網路中的節點驗證的交易經雜湊處理並編入默克爾(Merkle)樹中。Merkle樹是一種資料結構,在該樹的葉節點處的資料經雜湊處理,並且在該樹的每個分支中的所有雜湊值在該分支的根處級聯(concatenate)。此處理沿著樹持續一直到整個樹的根,在整個樹的根處儲存了代表樹中所有資料的雜湊值。透過判定雜湊值是否與該樹的結構一致而可快速驗證該雜湊值是否為儲存在該樹中的交易的雜湊值。
區塊鏈是用於儲存交易的去中心化或至少部分去中心化的資料結構,而區塊鏈網路是透過廣播、驗證和確認交易等來管理、更新和維護一個或多個區塊鏈的計算節點的網路。如上所述,區塊鏈網路可作為公有區塊鏈網路、私有區塊鏈網路或聯盟區塊鏈網路被提供。本文參考聯盟區塊鏈網路進一步詳細描述了本文的實施例。然而,可以預期,本文的實施例可以在任何適當類型的區塊鏈網路中實現。
通常,聯盟區塊鏈網路在參與的實體間是私有的。在聯盟區塊鏈網路中,共識處理由可以被稱為共識節點的授權的節點集控制,一個或多個共識節點由相應的實體(例 如,金融機構、保險公司)操作。例如,由十(10)個實體(例如,金融機構、保險公司)組成的聯盟可以操作聯盟區塊鏈網路,每個實體操作聯盟區塊鏈網路中的至少一個節點。
在一些示例中,在聯盟區塊鏈網路內,全域區塊鏈被提供為跨所有節點複製的區塊鏈。也就是說,所有共識節點相對於全域區塊鏈處於完全共識狀態。為了達成共識(例如,同意向區塊鏈添加區塊),在聯盟區塊鏈網路內實現共識協定。例如,聯盟區塊鏈網路可以實現實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)共識,下面將進一步詳細描述。
圖1是示出可用於執行本文實施例的環境100的示例的圖。在一些示例中,環境100使得實體能夠參與聯盟區塊鏈網路102中。環境100包括計算設備106、108和網路110。在一些示例中,網路110包括區域網路(LAN)、廣域網路(WAN)、網際網路或其組合,並且連接網站、使用者設備(例如,計算設備)和後台系統。在一些示例中,可以透過有線和/或無線通訊鏈路來訪問網路110。在一些示例中,網路110使得能夠與聯盟區塊鏈網路102通訊或在聯盟區塊鏈網路102內部通訊。通常,網路110表示一個或多個通訊網路。在一些情況下,計算設備106、108可以是雲端計算系統(未示出)的節點,或者每個計算設備106、108可以是單獨的雲端計算系統,其包括透過網路互連並且用作分散式處理系統的多個電腦。
在所描繪的示例中,計算設備106、108可以各自包括能夠作為節點參與至聯盟區塊鏈網路102中的任何適當的計算設備。計算設備的示例包括(但不限於)伺服器、桌上型電腦、筆記型電腦、平板電腦和智慧手機。在一些示例中,計算設備106、108承載用於與聯盟區塊鏈網路102交流互動的一個或多個由電腦實施的服務。例如,計算設備106可以承載第一實體(例如,使用者A)的由電腦實施的、例如交易管理系統的服務,例如,第一實體使用該交易管理系統管理其與一個或多個其他實體(例如,其他使用者)的交易。計算設備108可以承載第二實體(例如,使用者B)的由電腦實施的、例如交易管理系統的服務,例如,第二實體使用該交易管理系統管理其與一個或多個其他實體(例如,其他使用者)的交易。在圖1的示例中,聯盟區塊鏈網路102被示出為節點的點對點網路(Peer-to-Peer network),並且計算設備106、108分別提供參與聯盟區塊鏈網路102的第一實體和第二實體的節點。
圖2描繪了根據本文實施方式的示例性概念架構200。示例性概念架構200包括分別對應於參與者A、參與者B和參與者C的參與者系統202、204、206。每個參與者(例如,用戶、企業)參與到作為點對點網路提供的區塊鏈網路212中,該點對點網路包括多個節點214,至少一些節點將資訊不可篡改地記錄在區塊鏈216中。如本文中進一步詳述,儘管在區塊鏈網路212中示意性地描述了單個區塊鏈216,但是在區塊鏈網路212上提供並維護了區塊鏈216 的多個副本。
在所描繪的示例中,每個參與者系統202、204、206分別由參與者A、參與者B和參與者C提供或代表參與者A、參與者B和參與者C,並且在區塊鏈網路中作為各自的節點214發揮作用。如本文所使用的,節點通常是指連接到區塊鏈網路212且使相應的參與者能夠參與到區塊鏈網路中的單個系統(例如,電腦、伺服器)。在圖2的示例中,參與者與每個節點214對應。然而,可以預期,一個參與者可以操作區塊鏈網路212內的多個節點214,和/或多個參與者可以共用一個節點214。在一些示例中,參與者系統202、204、206使用協定(例如,超文字傳輸協定安全(HTTPS))和/或使用遠端程序呼叫(RPC)與區塊鏈網路212通訊或透過區塊鏈網路212進行通訊。
節點214可以在區塊鏈網路212內具有不同的參與程度。例如,一些節點214可以參與共識處理(例如,作為將區塊添加到區塊鏈216的礦工節點),而其他節點214不參與此共識處理。作為另一示例,一些節點214儲存區塊鏈216的完整的副本,而其他節點214僅儲存區塊鏈216的一部分的副本。例如,資料訪問特權可以限制相應的參與者在其相應的系統記憶體儲的區塊鏈資料。在圖2的示例中,參與者系統202、204、206分別儲存區塊鏈216的完整副本216'、216"、216'''。
區塊鏈(例如,圖2的區塊鏈216)包括區塊的鏈,每個區塊儲存資料。資料的示例包括表示兩個或更多個參與者 之間的交易的交易資料。儘管本文透過非限制性示例使用了“交易”,但是可以預期,任何適當的資料(例如,文檔、圖像、視頻、音頻)可以儲存在區塊鏈中。交易的示例可以包括但不限於交換有價物(例如,資產、產品、服務、貨幣)。交易資料不可篡改地儲存在區塊鏈中。也就是說,交易資料不能被改變。
在將交易資料儲存在區塊中之前,對交易資料進行雜湊處理。雜湊處理是將交易資料(作為字串資料提供)轉換為固定長度雜湊值(也作為字串資料提供)的處理。無法對雜湊值進行去雜湊處理(un-hash)以獲得交易資料。雜湊處理確保即使交易資料中的輕微改變也會導致完全不同的雜湊值。此外,如上所述,雜湊值具有固定長度。也就是說,無論交易資料的大小如何,雜湊值的長度都是固定的。雜湊處理包括透過雜湊函數處理交易資料以產生雜湊值。雜湊函數的示例包括(但不限於)輸出256位雜湊值的安全雜湊演算法(SHA)-256。
多個交易的交易資料被雜湊處理並儲存在區塊中。例如,提供了兩個交易的雜湊值,並對它們自身進行雜湊處理以提供另一個雜湊值。重複該處理,直到對於所有要儲存在區塊中的交易提供單個雜湊值為止。該雜湊值被稱為Merkle根雜湊值,並儲存在區塊的頭中。任何交易中的更改都會導致其雜湊值發生變化,並最終導致Merkle根雜湊值發生變化。
透過共識協定將區塊添加到區塊鏈。區塊鏈網路中的 多個節點參與共識協定,並執行將區塊添加到區塊鏈中的工作。這樣的節點稱為共識節點。上文介紹的PBFT用作共識協定的非限制性示例。共識節點執行共識協定以將交易添加到區塊鏈,並更新區塊鏈網路的整體狀態。
更詳細地,共識節點產生區塊頭,對區塊中的所有交易進行雜湊處理,並將雜湊值成對地組合以產生進一步的雜湊值,直到為區塊中的所有交易提供單個雜湊值(Merkle根雜湊值)。將此雜湊值添加到區塊頭中。共識節點還判定區塊鏈中最新區塊(即,添加到區塊鏈中的最後一個區塊)的雜湊值。共識節點還向區塊頭添加隨機數(nonce)和時間戳記。
通常,PBFT提供容忍拜占庭錯誤(例如,故障節點、惡意節點)的實用拜占庭狀態機複製。這透過假設將發生故障(例如,假設存在獨立節點故障和/或由共識節點發送的操縱消息)在PBFT中實現的。在PBFT中,在包括主共識節點和備共識節點的序列中提供共識節點。主共識節點會定期更改,透過由區塊鏈網路內的所有共識節點對區塊鏈網路的全域狀態達成一致,將交易添加到區塊鏈中。在該處理中,消息在共識節點之間傳輸,並且每個共識節點證明消息是從指定的對等節點(peer node)接收的,並驗證在傳輸期間消息未被篡改。
在PBFT中,共識協定是在所有共識節點以相同的狀態開始的情況下分多個階段提供的。首先,用戶端向主共識節點發送用以呼叫服務操作(例如,在區塊鏈網路內執 行交易)的請求。回應於接收到該請求,主共識節點將該請求組播到備共識節點。備共識節點執行該請求,並且各自向用戶端發送回復。用戶端等待直到接收到臨界值數量的回復。在一些示例中,用戶端等待直到接收f+1個回復,其中f是區塊鏈網路內可以容忍的故障共識節點的最大數量。最終結果是,足夠數量的共識節點就將記錄添加到區塊鏈的順序達成一致,並且該記錄或被接受或被拒絕。
在一些區塊鏈網路中,實施密碼學來維護交易的隱私。例如,如果兩個節點想要保持交易隱私,以使得區塊鏈網路中的其他節點不能看出交易的細節,則這兩個節點可以對交易資料進行加密處理。加密處理的示例包括但不限於對稱加密和非對稱加密。對稱加密是指使用單個金鑰既加密(從明文產生密文)又解密(從密文產生明文)的加密處理。在對稱加密中,同一金鑰可用於多個節點,因此每個節點都可以對交易資料進行加密/解密。
非對稱加密使用金鑰對,每個金鑰對包括私密金鑰和公開金鑰,私密金鑰僅對於相應節點是已知的,而公開金鑰對於區塊鏈網路中的任何或所有其他節點是已知的。節點可以使用另一個節點的公開金鑰來加密資料,並且該加密的資料可以使用其他節點的私密金鑰被解密。例如,再次參考圖2,參與者A可以使用參與者B的公開金鑰來加密資料,並將加密的資料發送給參與者B。參與者B可以使用其私密金鑰來對該加密資料(密文)進行解密並提取出原 始資料(明文)。使用節點的公開金鑰加密的消息只能使用該節點的私密金鑰解密。
非對稱加密用於提供數位簽章,這使得交易中的參與者能夠確認交易中的其他參與者以及交易的有效性。例如,節點可以對消息進行數位簽章,而另一個節點可以基於參與者A的該數位簽章來確認該消息是由該節點發送的。數位簽章還可以用於確保消息在傳輸過程中不被篡改。例如,再次參考圖2,參與者A向參與者B發送一條消息。參與者A產生該消息的雜湊值,然後使用其私密金鑰加密該雜湊值,以提供作為加密的雜湊值的數位簽章。參與者A將該數位簽章附加到該消息上,並將該具有數位簽章的消息發送給參與者B。參與者B使用參與者A的公開金鑰解密該數位簽章,並提取雜湊值。參與者B對該消息進行雜湊處理並比較雜湊值。如果雜湊值相同,參與者B可以確認該消息確實來自參與者A,且未被篡改。
在一些情況下,區塊鏈可以被惡意代理方攻擊。例如,諸如軟體機器人(又稱為例如互聯網機器人、網頁機器人、全球資訊網(WWW)機器人或機器人)的惡意代理方可以在區塊鏈上發起重放攻擊。重放攻擊可以試圖使區塊鏈中的交易被重新處理,這可以造成其他問題:計算資源的浪費(例如,處理速度、網路頻寬、記憶體使用和資料儲存使用)或財產損失(例如,一定金額的貨幣)。
圖3是示出根據本文實施例的重放攻擊場景300的示例的方塊圖。重放攻擊場景300包括重放攻擊,所述重放攻 擊包括重放曾在發送方銀行Alice 302和接收方銀行Bob 304之間將要發生的交易。交易包括Alice 302提供的匯款請求資訊306和正確MAC值308。例如,在交易期間,可能會發生由透過竊取或保存交易資訊的惡意代理方實施的竊取和保存310,包括竊取匯款請求資訊312和竊取由Alice 302提供的(或從中竊取)正確MAC值314。在此示例中,惡意代理方是主動攻擊方Mallory 316。主動攻擊方Mallory 316可以使用匯款請求資訊320和正確MAC值322發起重放攻擊318。在重放攻擊324期間,主動攻擊方Mallory 316可以重複地發送先前竊取和保存的資訊與MAC值的組合。
防重放攻擊技術,例如本公開中描述的用於防止重放攻擊324的技術,與中心化系統相比一般更難在去中心化系統中實現。本公開中描述的技術可以提供改進的高性能、防重放技術,例如可以在穩定的儲存空間中快速搜尋交易資訊。
圖4是示出根據本文實施例的用於檢測重放攻擊的常規系統400的示例的方塊圖。常規系統400包括用戶端402和伺服器404。
在406,用戶端402準備交易。流程從406進行到408。
在408,用戶端402發起交易請求408。流程從408進行到410。
在410,伺服器404在布隆過濾器中執行對交易的搜尋。
在412,判定在布隆過濾器中是否找到該交易。如果 在布隆過濾器中沒有找到該交易,則流程進行到414,交易正常執行,且交易請求被處理。然而,如果在布隆過濾器中找到該交易,則流程進行到416,在區塊鏈中查尋該交易。
在418,判定在區塊鏈中是否找到該交易。如果在區塊鏈中沒有找到該交易,則流程進行到414,交易正常執行,且交易請求被處理。然而,如果在區塊鏈中找到該交易,則流程進行到420,交易被跳過(bypass)。
為了例如常規系統400的系統的正確運行,通常使包含交易資訊(例如,經處理交易的交易雜湊值(tx_hash))的記憶體的大小盡可能大。例如,記憶體大小可以與交易資訊的大小和交易的數量成比例。然而,本公開所使用的技術可以考慮並使用典型重播的典型時間分佈的模式。例如,包括正常交易且還包括試圖重放交易的時間視窗通常較短。結果,從正常交易發生的時刻開始經過5分鐘後,可以忽略與網路重傳相關聯的組合傳輸控制協定(TCP)的重放嘗試。
圖5是示出根據本文實施例的用於檢測重放攻擊的系統500的示例的方塊圖。然而系統500包括與系統400中的元件相似的元件,應當注意,系統500包括對系統400的優化。例如,在一些實施例中,優化可以加速對重放攻擊的識別。例如可以使用系統500來執行對交易的重找,例如在使用布隆過濾器搜尋交易之後。
在系統500內的處理可以以和常規系統400相同的方式 開始。例如,在406,用戶端402準備交易。
在408,用戶端402發起交易請求408。流程從406進行到502。
在502,判定當前工作區504。例如,在當前示例中至少最初,當前工作區504可以是區段A,而區段B可以用作備份工作區。流程從502進行到506。
在506,可以在工作區段執行對交易的搜尋。流程從506進行到508。
在508,判定在工作區段中是否找到該交易。如果在工作區段中沒有找到該交易,隨後,在510,判定是否超過發起區段切換的臨界值。可以存在例如當工作區段達到容量的預設百分比時(例如95%)的臨界值。
如果在510判定超過臨界值,則在512清空備份區段以準備將備份區段作為新的工作區段。流程從512進行到514。
在514,交易資訊被寫入備份區段。流程從514進行到516。
在交易資訊被寫入在記憶體的兩個位置中的重疊階段期間,在兩個區段中完成寫入。寫入資訊的冗餘可以用於使用最近交易構成備份區段直到執行切換。在切換時,備份區段成為新的工作區段,且交易資訊僅被寫入新的工作區段。
在516,交易資訊被寫入當前工作區段,並且交易被正常處理。
如果在508判定在工作區段找到了該交易,則流程進行到518,在區塊鏈中查尋該交易。
在520,判定在區塊鏈中是否找到該交易。
在522,如果在520處在區塊鏈中找到該交易,則認為該交易是重複交易,在522該交易被跳過。否則,在516交易資訊被寫入當前工作區段,並且交易被正常處理。
在一些實施例中,系統500順利且高效地運行,是因為系統500的儲存空間可以被分成對等的可替換地用於執行重找操作的部分(例如,區段A和區段B)。儲存空間可以儲存交易資訊(例如,交易ID),該資訊可用於重找操作。在任何給定的時間,僅其中一個區段作為記憶體中的工作區段,且另一個區段是記憶體中的備份區段。在重找操作期間在508執行的搜尋僅在記憶體的一半上、具體為在工作區段上執行。在當前示例中,區段A最初是記憶體中的工作區段,且區段B最初是記憶體中的備份區段。當區段A是工作區段時,重找操作僅搜尋區段A。
一段時間後,區段A中的儲存空間可能寫滿交易資訊。在某個時間點,例如達到臨界值條件,需要準備好在某時間將發生記憶體區段的切換。在完成切換時,區段A(在當前示例中最初為工作區段)將停止作為工作區段並將成為備份區段。在同時,區段B將停止作為備份區段並將成為工作區段。
在準備切換時,可以存在重疊階段,在重疊階段期間被寫入工作區段的交易資訊可以被冗餘地寫入備份區段。 例如,在切換將要發生時,交易資訊可以被寫入區段A和區段B。例如,這發生在區段A還是工作區段、且區段B(當前為備份區段)即將成為工作區段時。區段B至少需要較少數量的交易的交易資訊,使得當區段A不再是工作區段,有用數量的交易的交易資訊將被寫入區段B(例如,用於重找操作中的搜尋)。
在正常操作期間,系統500的工作流跳過步驟512和514。然而,在切換期間(在510判定超過了臨界值),執行步驟512和514。在切換時,或更具體地在重疊階段的開始,清空(clear)備份區段以準備寫入交易資訊。
在一些實施例中,在510可以使用各種臨界值。例如,除了使用的工作區的百分比(例如,95%)臨界值,還可以在工作區段的誤判率超過10%時發起切換。
優點可以包括以下中的一個或多個。首先,系統運行期間用於判定防重放的記憶體開銷保持穩定,其次,將記憶體分成完全相同的兩個分區(工作區段和備份區段)可以提高防重放演算法的效率。例如,雜湊映射演算法可能遭受使用空間之間的衝突,且布隆過濾器可以造成與分配空間和歷史資料的總和成正比的誤判概率。另外,在切換期間的雙寫機制可以提供工作區段和備份區段之間的無縫切換。
圖6是描述用於檢測和禁止重放攻擊的方法600的示例的流程圖。為了方便起見,方法600將被描述為由位於一個或多個位置並根據本文適當地程式設計的一個或多個電 腦的系統執行。例如,適當程式設計的檢測和禁止重放攻擊的系統(例如,圖5的系統500)可以執行方法600。
在602,接收要在區塊鏈中完成的交易。例如,用戶端402可以發起可被伺服器404接收的交易請求408。在一些實施例中,交易請求可以是可在區塊鏈內發送的交易。方法600從602進行到604。
在604,判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易。所述記憶體還儲存有備份區段,所述備份區段在與當前工作區段組合使用時為交易資訊提供替換儲存區段儲存方案。例如,系統500(例如,在502)可以判定記憶體中的當前工作區段是區段A還是區段B。方法600從604進行到606。
在606,使用當前工作區段判定交易先前是否已被處理。例如,系統500可以訪問(例如,在506)區段A中的交易資訊並判定(例如,在508)交易已經被處理。在一些實施例中,資料庫標記或其他指示可以指示記憶體中的哪個區段例如區段A或區段B是當前工作區段。方法600從606進行到608。
在608,當判定交易先前已被處理時,跳過所述交易。作為示例,系統500(例如,在516)可以正常處理交易。此外,系統500可以將交易資訊寫入當前工作區段。方法600從608進行到610。
在610,當判定交易先前未被處理過時,處理所述交 易並且將所述交易的交易資訊寫入當前工作區段。作為示例,系統500可以在516跳過該交易,例如,將交易資訊寫入區段A並正常處理該交易。在610之後,方法600可以停止。
在一些實施例中,方法600還包括用於執行切換當前工作區段和備份區段的步驟,例如,系統500可以判定是否滿足用於發起在當前工作區段和備份區段之間的切換的臨界值條件,在一些實施例中,臨界值條件是關於當前工作區段的已使用儲存容量的預設百分比(例如,95%)的指示。在一些實施例中,臨界值條件是關於當前工作區段的誤判率超過預設率(例如,10%)的指示。當判定滿足臨界值條件時,發起所述切換,包括開啟重疊階段,在該重疊階段中,所述交易資訊被寫入當前工作區段和備份區段。當開啟重疊階段時,清空備份區段。在重疊階段期間,交易資訊被寫入備份區段。
在一些實施例中,方法600還可以包括在重疊階段末端發生的步驟,例如,系統500可以判定是否到達重疊階段的末端。在該時刻,系統500可以停止(cease)將交易資訊寫入當前工作區段,並且系統500可以指定備份區段作為當前工作區段。
在一些實施例中,方法600還包括用於判定交易是否在區塊鏈中的步驟,例如,系統500可以搜尋區塊鏈以判定交易是否在區塊鏈中。在判定交易在區塊鏈中時,系統500可以跳過該交易。
在一些實施例中,方法600還包括使用用於判定交易已經存在的概率的布隆過濾器。例如,在判定交易先前已被處理之前,系統500可以使用布隆過濾器判定交易先前已被處理的概率。高概率可以指示交易先前已被處理。
圖7描繪了根據本文實施例的裝置700的模組的示例。
裝置700可以是用於檢測和禁止重放攻擊的裝置的實施例的示例。裝置700可以對應於以上描述的實施例,且裝置700包括以下:接收模組702,用於接收要在區塊鏈中完成的交易;第一判定模組704,用於判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案;第二判定模組706,用於根據當前工作區段判定交易先前是否已被處理;跳過模組708,用於當判定所述交易先前已被處理時,跳過所述交易;當判定所述交易先前未被處理時:處理模組710,用於處理交易;以及寫入模組712,用於將交易的交易資訊寫入當前工作區段。
在可選實施例中,裝置700還包括判定模組(例如,第一判定模組704、第二判定模組706或另一判定模組),用於判定是否滿足用於發起在當前工作區段和備份區段之間的切換的臨界值條件。
在可選實施例中,裝置700還包括,當判定滿足臨界值條件時:發起模組,用於發起切換,包括開啟重疊階 段,在該重疊階段中,交易資訊被寫入當前工作區段和備份區段;清空模組,用於清空備份區段;以及寫入模組(例如,寫入模組712或另一寫入模組),用於將交易資訊寫入備份區段。
在可選實施例中,裝置700還包括:判定模組(例如,第一判定模組704、第二判定模組706或另一判定模組),用於判定已經到達重疊階段的末端;停止模組,用於停止將交易資訊寫入當前工作區段;以及指定模組,用於指定所述備份區段為當前工作區段。
在可選實施例中,臨界值條件是關於所述當前工作區段的已使用儲存容量的預設百分比的指示,或是關於所述當前工作區段的誤判率超過預設率的指示。
在可選實施例中,裝置700還包括判定模組(例如,第一判定模組704、第二判定模組706或另一判定模組),用於判定交易是否在所述區塊鏈中;以及跳過模組(例如,跳過模組710或另一跳過模組),用於在判定所述交易在區塊鏈中時,跳過該交易。
在可選實施例中,裝置700還包括:判定模組(例如,第一判定模組704、第二判定模組706或另一判定模組),用於在判定交易先前是否已被處理之前,使用布隆過濾器判定交易先前已被處理的概率。
在先前實施例中示出的系統、裝置、模組或單元可以透過使用電腦晶片或實體來實現,或者可以透過使用具有特定功能的產品來實現。典型的實施設備是電腦,電腦可 以是個人電腦、膝上型電腦、行動電話、相機電話、智慧手機、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或這些設備的任意組合。
對於裝置中每個模組的功能和角色的實施例,可以參考前一方法中相應步驟的實施例。為簡單起見,這裡省略了細節。
由於裝置實施例基本上對應於方法實施例,對於相關部分,可以參考方法實施例中的相關描述。先前描述的裝置實施例僅是示例。被描述為單獨部分的模組可以是或不是物理上分離的,並且顯示為模組的部分可以是或不是物理模組,可以位於一個位置,或者可以分佈在多個網路模組上。可以基於實際需求來選擇一些或所有模組,以實現本文方案的目標。本領域普通技術人員無需付出創造性勞動就能理解和實現本申請的實施例。
再次參考圖7,其可以被解釋為示出了檢測和禁止重放攻擊的裝置的內部功能模組和結構。本質上,執行主體可以是電子設備,所述電子設備包括:一個或多個處理器;被配置為儲存一個或多個處理器的可執行指令的記憶體。
一個或多個處理器被配置為接收要在區塊鏈中完成的交易;判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所 述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案。根據所述當前工作區段判定所述交易先前是否已被處理;當判定所述交易先前已被處理時,跳過所述交易;以及當判定所述交易先前未被處理時:處理所述交易;以及將所述交易的交易資訊寫入所述當前工作區段。
本文描述的技術可以產生一個或多個技術效果。在一些實施例中,用於儲存交易資訊的記憶體被分成當前工作區段和備份區段。在其他實施例中,當在記憶體中執行搜尋時,僅需要搜尋包括當前工作區段的記憶體的一半,這節省了計算資源並加快了總體搜尋時間。在其他實施例中,當臨界值條件指示要切換記憶體中的區段時(即,當前工作區段和備份區段之間的切換),備份區段成為新的當前工作區段,並且已經是當前工作區段的區段被指定為新的備份區段。
所描述的主題的實施例可以包括單獨或組合的一個或多個特徵。
例如,在第一實施例中,一種電腦實現的用於檢測和禁止重放攻擊的方法,所述方法包括:接收要在區塊鏈中完成的交易;判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案;根據所述當前工作區段判定所述交易先 前是否已被處理;當判定所述交易先前已被處理時,跳過所述交易;以及當判定所述交易先前未被處理時:處理所述交易;以及將所述交易的交易資訊寫入所述當前工作區段。先前或其他描述的實施例可以各自可選地包括以下特徵中的一個或多個:
第一特徵,可與以下任意特徵組合,還包括:判定是否滿足用於發起在所述當前工作區段和所述備份區段之間的切換的臨界值條件。
第二特徵,可與任意先前或以下特徵組合,還包括:當判定滿足所述臨界值條件時:發起所述切換,包括開啟重疊階段,在該重疊階段中,所述交易資訊被寫入所述當前工作區段和所述備份區段;清空所述備份區段;以及將所述交易資訊寫入所述備份區段。
第三特徵,可與任意先前或以下特徵組合,還包括:判定已經到達所述重疊階段的末端;停止將所述交易資訊寫入所述當前工作區段;以及指定所述備份區段作為所述當前工作區段。
第四特徵,可與任意先前或以下特徵組合,指定所述臨界值條件是關於所述當前工作區段的已使用儲存容量的預設百分比的指示。
第五特徵,可與任意先前或以下特徵組合,指定所述臨界值條件是關於所述當前工作區段的誤判率超過預設率的指示。
第六特徵,可與任意先前或以下特徵組合,還包括: 判定所述交易是否在所述區塊鏈中;以及在判定所述交易在所述區塊鏈中時,跳過所述交易。
第七特徵,可與任意先前或以下特徵組合,還包括:在判定所述交易先前是否已被處理之前,使用布隆過濾器判定所述交易先前已被處理的概率。
本文中描述的主題、動作以及操作的實施例可以在數位電子電路、有形體現的電腦軟體或韌體、電腦硬體中實現,包括本文中公開的結構及其結構等同物,或者它們中的一個或多個的組合。本文中描述的主題的實施例可以實現為一個或多個電腦程式,例如,編碼在電腦程式載體上的一個或多個電腦程式指令模組,用於由資料處理裝置執行或控制資料處理裝置的操作。例如,電腦程式載體可以包括其上編碼有或儲存有指令的一個或多個電腦可讀儲存媒體。載體可以是有形的非暫態電腦可讀媒體,諸如磁片、磁光碟或光碟、固態驅動器、隨機存取記憶體(RAM)、唯讀記憶體(ROM)或其他類型的媒體。可選地或附加地,載體可以是人工產生的傳播信號,例如,機器產生的電信號、光信號或電磁信號,其被產生來編碼資訊用於傳輸到合適的接收器裝置以供資料處理裝置執行。電腦儲存媒體可以是或可以部分是可機讀存放裝置、可機讀儲存基板、隨機或串列訪問記憶體設備或它們中的一個或多個的組合。電腦儲存媒體不是傳播信號。
電腦程式也可以被稱為或描述為程式、軟體、軟體應用程式、app、模組、軟體模組、引擎、腳本或代碼,可 以以任何形式的程式設計語言編寫,包括編譯或演繹性語言、說明或程式性語言;它可以配置為任何形式,包括作為獨立程式,或者作為模組、元件、引擎、副程式或適合在計算環境中執行的其他單元,該環境可包括由通訊資料網路互聯的在一個或多個位置的一台或多台電腦。
電腦程式可以但非必須對應於檔案系統中的檔。電腦程式可以儲存在:保存其他程式或資料的檔的一部分中,例如,儲存在標記語言文檔中的一個或多個腳本;專用於所討論的程式的單個檔;或者多個協調檔,例如,儲存一個或多個模組、副程式或代碼部分的多個檔。
用於執行電腦程式的處理器包括,例如,通用和專用微型處理器兩者,和任意種類的數位電腦的任意一個或多個處理器。通常,處理器將接收用於執行的電腦程式的指令以及來自耦接至處理器的非暫態電腦可讀媒體的資料。
術語“資料處理裝置”包括用於處理資料的所有類型的裝置、設備和機器,包括例如可程式設計處理器、電腦或者多處理器或電腦。資料處理裝置可以包括專用邏輯電路,例如FPGA(現場可程式設計閘陣列)、ASIC(專用積體電路)或GPU(圖形處理單元)。除了硬體,該裝置還可以包括為電腦程式創建執行環境的代碼,例如,構成處理器韌體、協定堆疊,資料庫管理系統、作業系統或者它們中一個或多個的組合的代碼。
本文中描述的處理和邏輯流程可由執行一個或多個電腦程式的一台或多台電腦或處理器執行,以透過對輸入資 料進行操作並產生輸出來執行操作。處理和邏輯流程也可以由例如FPGA、ASIC、GPU等的專用邏輯電路,或專用邏輯電路與一個或多個程式設計電腦的組合來執行。
適合於執行電腦程式的電腦可以基於通用和/或專用微處理器,或任何其他種類的中央處理單元。通常,中央處理單元將從唯讀記憶體和/或隨機存取記憶體接收指令和資料。電腦的元件可包括用於執行指令的中央處理單元,以及用於儲存指令和資料的一個或多個記憶體設備。中央處理單元和記憶體可以補充有專用邏輯電路或整合在專用邏輯電路中。
通常,電腦還將包括或可操作地耦接至一個或多個存放裝置,以從一個或多個存放裝置接收資料或將資料傳輸到一個或多個存放裝置。存放裝置可以是例如,磁片、磁光碟或光碟、固態驅動器或任何其他類型的非暫態電腦可讀媒體。但是,電腦非必需這樣的設備。因此,電腦可以耦接至諸如一個或多個記憶體的、本地和/或遠端的一個或多個存放裝置。例如,電腦可以包括作為電腦組成部件的一個或多個本機存放區器,或者電腦可以耦接至雲網路中的一個或多個遠端存放器。此外,電腦可嵌入在另一個設備中,例如行動電話、個人數位助理(PDA)、移動音頻或視頻播放機、遊戲控制台、全球定位系統(GPS)接收器或可攜式存放裝置,例如,通用序列匯流排(USB)快閃記憶體驅動器,這裡僅舉幾例。
元件之間可以透過直接或經由一個或多個中介軟體進 行諸如電連接或光連接地彼此連接通訊而彼此“耦接”。如果元件中的一個元件被整合到另一個中,則元件也可以被彼此“耦接”。例如,整合到處理器中的儲存元件(例如,L2快取記憶體元件)被“耦接到”處理器。
為了提供與用戶的交流互動,本文中描述的主題的實施例可以在電腦上實現或配置為與該電腦通訊,該電腦具有:顯示裝置,例如,LCD(液晶顯示器)監視器,用於向使用者顯示資訊;以及輸入裝置,使用者可以透過該輸入裝置向該電腦提供輸入,例如鍵盤和例如滑鼠、軌跡球或觸控板等的指標裝置。其他類型的設備也可用於提供與用戶的交流互動;例如,提供給用戶的回饋可以是任何形式的感官回饋,例如視覺回饋、聽覺回饋或觸覺回饋;並且可以接收來自用戶的任何形式的輸入,包括聲音、語音或觸覺輸入。此外,電腦可以透過向使用者使用的設備發送文檔和從使用者使用的設備接收文檔來與用戶交流互動;例如,透過向使用者設備上的web瀏覽器發送web頁面以回應於從web瀏覽器收到的請求,或者透過與在例如智慧型電話或電子平板電腦等的使用者設備上運行的應用程式(app)進行交流互動。此外,電腦可以透過向個人設備(例如,運行消息收發應用的智慧手機)輪流發送文本消息或其他形式的消息,並從使用者接收回應訊息來與用戶交流互動。
本文使用與系統、裝置和電腦程式元件有關的術語“配置為”。對於被配置為執行特定操作或動作的一個或多 個電腦的系統,意味著系統已經在其上安裝了在操作中促使該系統執行所述操作或動作的軟體、韌體、硬體或它們的組合。對於被配置為執行特定操作或動作的一個或多個電腦程式,意味著一個或多個程式包括當被資料處理裝置執行時促使該裝置執行所述操作或動作的指令。對於被配置為執行特定操作或動作的專用邏輯電路,意味著該電路具有執行所述操作或動作的電子邏輯。
雖然本文包含許多具體實施例細節,但是這些不應被解釋為由申請專利範圍本身限定的對要求保護的範圍的限制,而是作為對特定實施例的具體特徵的描述。在本文多個單獨實施例的上下文中描述的多個特定特徵也可以在單個實施例中的組合實現。相反,在單個實施例的上下文中描述的各種特徵也可以單獨地或以任何合適的子組合在多個實施例中實現。此外,儘管上面的特徵可以描述為以某些組合起作用並且甚至最初如此要求保護,但是在一些情況下,可以從要求保護的組合中刪除該組合的一個或多個特徵,並且可以要求保護指向子組合或子組合的變體。
類似地,雖然以特定順序在圖式中描繪了操作並且在申請專利範圍中敘述了操作,但是這不應該被理解為:為了達到期望的結果,要求以所示的特定順序或依次執行這些操作,或者要求執行所有示出的操作。在一些情況下,多工並行處理可能是有利的。此外,上述實施例中的各種系統模組和元件的劃分不應被理解為所有實施例中都要求如此劃分,而應當理解,所描述的程式元件和系統通常可 以一起整合在單個軟體產品或者打包成多個軟體產品。
已經描述了主題的特定實施例。其他實施例在以下申請專利範圍的範圍內。例如,申請專利範圍中記載的動作可以以不同的循序執行並且仍然實現期望的結果。作為一個示例,圖式中描繪的過程無需要求所示的特定順序或次序來實現期望的結果。在一些情況下,多工和並行處理可能是有利的。

Claims (15)

  1. 一種電腦實現的用於檢測和禁止重放攻擊的方法,所述方法包括:接收要在區塊鏈中完成的交易;判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案;根據所述當前工作區段判定所述交易先前是否已被處理;回應於判定所述交易先前已被處理,跳過所述交易;以及回應於判定所述交易先前未被處理:判定是否滿足用於發起在所述當前工作區段和所述備份區段之間的切換的臨界值條件,其中所述臨界值條件是關於所述當前工作區段的誤判率超過預設率的指示;當判定滿足所述臨界值條件時:發起所述切換,包括開啟重疊階段,在所述重疊階段中,所述交易資訊被寫入所述當前工作區段和所述備份區段;清空所述備份區段;以及將特定交易資訊寫入所述備份區段; 處理所述交易;以及將所述特定交易資訊寫入所述當前工作區段。
  2. 如請求項1所述的方法,還包括:判定已經到達所述重疊階段的末端;停止將所述交易資訊寫入所述當前工作區段;以及指定所述備份區段作為當前工作區段。
  3. 如請求項1所述的方法,其中,所述臨界值條件是關於所述當前工作區段的已使用儲存容量的預設百分比的指示。
  4. 如請求項1所述的方法,還包括:判定所述交易是否在所述區塊鏈中;以及在判定所述交易在所述區塊鏈中時,跳過所述交易。
  5. 如請求項1所述的方法,還包括:在判定所述交易先前是否已被處理之前,使用布隆過濾器判定所述交易先前已被處理的概率。
  6. 一種電腦實現的系統,包含:一或多個電腦;以及一或多個電腦記憶體裝置與該一或多個電腦可相互操作地耦接,並且具有儲存一或多個指令之有形、非暫時性機器可讀取媒體,當由一或多個電腦執行時,執行用於檢測和禁止重放攻擊的一或多個操作,所述操作包含:接收要在區塊鏈中完成的交易,判定用於儲存交易資訊的記憶體中的當前工作區段, 所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案,根據所述當前工作區段判定所述交易先前是否已被處理,回應於判定所述交易先前已被處理,跳過所述交易;以及回應於判定所述交易先前未被處理:判定是否滿足用於發起在所述當前工作區段和所述備份區段之間的切換的臨界值條件,其中所述臨界值條件是關於所述當前工作區段的誤判率超過預設率的指示;當判定滿足所述臨界值條件時:發起所述切換,包括開啟重疊階段,在所述重疊階段中,所述交易資訊被寫入所述當前工作區段和所述備份區段;清空所述備份區段;以及將特定交易資訊寫入所述備份區段;處理所述交易;以及將所述特定交易資訊寫入所述當前工作區段。
  7. 如請求項6之系統,所述操作更包含:判定已經到達所述重疊階段的末端; 停止將所述交易資訊寫入所述當前工作區段;以及指定所述備份區段作為當前工作區段。
  8. 如請求項6所述的系統,其中,所述臨界值條件是關於所述當前工作區段的已使用儲存容量的預設百分比的指示。
  9. 如請求項6之系統,所述操作更包含:判定所述交易是否在所述區塊鏈中;以及在判定所述交易在所述區塊鏈中時,跳過所述交易。
  10. 如請求項6之系統,所述操作更包含:在判定所述交易先前是否已被處理之前,使用布隆過濾器判定所述交易先前已被處理的概率。
  11. 一種非暫時性電腦可讀的儲存媒體,其儲存一或多個指令,所述指令可由電腦系統執行,以執行用於檢測和禁止重放攻擊的操作,所述操作包含:接收要在區塊鏈中完成的交易;判定用於儲存交易資訊的記憶體中的當前工作區段,所述當前工作區段被指定用於識別已處理的歷史交易,所述記憶體還儲存有備份區段,所述備份區段在與所述當前工作區段組合使用時為所述交易資訊提供替換儲存區段儲存方案;根據所述當前工作區段判定所述交易先前是否已被處理; 回應於判定所述交易先前已被處理,跳過所述交易;以及回應於判定所述交易先前未被處理:判定是否滿足用於發起在所述當前工作區段和所述備份區段之間的切換的臨界值條件,其中所述臨界值條件是關於所述當前工作區段的誤判率超過預設率的指示;當判定滿足所述臨界值條件時:發起所述切換,包括開啟重疊階段,在所述重疊階段中,所述交易資訊被寫入所述當前工作區段和所述備份區段;清空所述備份區段;以及將特定交易資訊寫入所述備份區段;處理所述交易;以及將所述特定交易資訊寫入所述當前工作區段。
  12. 如請求項11之非暫時性電腦可讀的儲存媒體,所述操作更包含:判定已經到達所述重疊階段的末端;停止將所述交易資訊寫入所述當前工作區段;以及指定所述備份區段作為當前工作區段。
  13. 如請求項1所述的非暫時性電腦可讀的儲存媒體,其中,所述臨界值條件是關於所述當前工作區段的已使用儲存容量的預設百分比的指示。
  14. 如請求項11之非暫時性電腦可讀的儲存媒體,所述操作更包含:判定所述交易是否在所述區塊鏈中;以及在判定所述交易在所述區塊鏈中時,跳過所述交易。
  15. 如請求項11之非暫時性電腦可讀的儲存媒體,所述操作更包含:在判定所述交易先前是否已被處理之前,使用布隆過濾器判定所述交易先前已被處理的概率。
TW109109600A 2019-06-26 2020-03-23 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體 TWI749488B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
WOPCT/CN2019/093085 2019-06-26
PCT/CN2019/093085 WO2019170171A2 (en) 2019-06-26 2019-06-26 Improved anti-replay device based on memory space interchange

Publications (2)

Publication Number Publication Date
TW202101261A TW202101261A (zh) 2021-01-01
TWI749488B true TWI749488B (zh) 2021-12-11

Family

ID=67847529

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109109600A TWI749488B (zh) 2019-06-26 2020-03-23 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體

Country Status (6)

Country Link
US (3) US10791143B1 (zh)
EP (1) EP3659319B1 (zh)
CN (2) CN114666163A (zh)
SG (1) SG11202002416RA (zh)
TW (1) TWI749488B (zh)
WO (1) WO2019170171A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210365554A1 (en) * 2020-05-25 2021-11-25 Eta Scale Ab Securing computing systems against microarchitectural replay attacks
CN113438219B (zh) * 2020-07-08 2023-06-02 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的重放交易识别方法及装置
CN111539829B (zh) 2020-07-08 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的待过滤交易识别方法及装置
CN113726875A (zh) 2020-07-08 2021-11-30 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易处理方法及装置
CN112492002B (zh) 2020-07-08 2023-01-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易转发方法及装置
CN111541789A (zh) 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的数据同步方法及装置
CN113505363B (zh) * 2021-08-04 2022-11-29 上海瓶钵信息科技有限公司 通过软件方式实现存储空间防重放的方法和系统
CN117670330A (zh) * 2024-02-01 2024-03-08 中国信息通信研究院 基于区块链的交易处理方法和装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190079998A1 (en) * 2017-01-31 2019-03-14 Thomas Jay Rush Blockchain data-processing engine
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
TW201924278A (zh) * 2017-11-09 2019-06-16 安地卡及巴布達商區塊鏈控股有限公司 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974928B2 (en) * 2004-07-13 2011-07-05 Pitney Bowes Inc. System and method for securing database records from tampering and managing and recovering from component failure in devices such as postage value dispensing systems
JP2007265270A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ストレージシステム及び記憶領域割当て方法
EP2461613A1 (en) * 2010-12-06 2012-06-06 Gemalto SA Methods and system for handling UICC data
CN102073563B (zh) * 2011-02-23 2015-09-09 深圳市江波龙电子有限公司 闪存设备、闪存设备中存储块的管理方法及系统
US9996837B2 (en) * 2014-06-06 2018-06-12 Visa International Service Association Integration of secure protocols into a fraud detection system
EP3248360B1 (en) * 2015-01-19 2020-05-06 Inauth, Inc. Systems and methods for trusted path secure communication
US10230756B2 (en) * 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
CN106911641A (zh) * 2015-12-23 2017-06-30 索尼公司 用于授权访问的客户端装置、服务器装置和访问控制系统
US11130042B2 (en) * 2016-02-02 2021-09-28 Bao Tran Smart device
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
US10567420B2 (en) * 2016-11-08 2020-02-18 International Business Machines Corporation Biology based techniques with cognitive system analysis for handling information security and privacy
GB201703864D0 (en) * 2017-03-10 2017-04-26 Irdeto Bv Secured system operation
CN111614655A (zh) * 2017-03-24 2020-09-01 创新先进技术有限公司 一种共识校验的方法及装置
CN106991607B (zh) * 2017-03-29 2020-04-10 杭州溪塔科技有限公司 一种基于区块链账户模型的无序交易控制方法
US10289320B1 (en) * 2017-04-21 2019-05-14 EMC IP Holding Company LLC Utilizing a virtual backup appliance within data storage equipment
CN108881120B (zh) * 2017-05-12 2020-12-04 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107247773B (zh) * 2017-06-07 2018-05-15 北京邮电大学 一种基于区块链的在分布式数据库中进行交易查询的方法
CN107909369A (zh) * 2017-10-13 2018-04-13 布比(北京)网络技术有限公司 基于跨链交易的共识方法、装置和存储介质
US11165862B2 (en) * 2017-10-24 2021-11-02 0Chain, LLC Systems and methods of blockchain platform for distributed applications
US10671492B2 (en) * 2017-12-18 2020-06-02 International Business Machines Corporation Forecast recommended backup destination
US11120464B2 (en) * 2017-12-21 2021-09-14 Paypal, Inc. System for managing a loyalty program marketplace
US11288740B2 (en) * 2017-12-29 2022-03-29 Intel Corporation Securing distributed electronic wallet shares
US11102008B2 (en) * 2018-03-02 2021-08-24 Intertrust Technologies Corporation Trust and identity management systems and methods
US11223631B2 (en) * 2018-04-06 2022-01-11 Hewlett Packard Enterprise Development Lp Secure compliance protocols
US10848553B2 (en) * 2018-04-16 2020-11-24 Infrared5, Inc. System and method for real-time secure multimedia streaming over a decentralized network
US20190361917A1 (en) * 2018-05-25 2019-11-28 Bao Tran Smart device
CN108805569A (zh) 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
US10887081B2 (en) * 2018-06-28 2021-01-05 International Business Machines Corporation Audit trail configuration in a blockchain
US10650023B2 (en) * 2018-07-24 2020-05-12 Booz Allen Hamilton, Inc. Process for establishing trust between multiple autonomous systems for the purposes of command and control
US10896149B2 (en) * 2018-07-29 2021-01-19 International Business Machines Corporation Composition operators for smart contract
US10901955B2 (en) * 2018-07-29 2021-01-26 International Business Machines Corporation Smart contract input mapping
US10896195B2 (en) * 2018-07-29 2021-01-19 International Business Machines Corporation Automatic generation of smart contracts
CN111899103B (zh) 2018-10-25 2024-05-03 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
CN109710675A (zh) * 2018-12-26 2019-05-03 深圳乐信软件技术有限公司 一种存储数据库切换方法、装置、服务器及存储介质
CN110431577B (zh) * 2018-12-29 2023-08-22 创新先进技术有限公司 用于检测重放攻击的系统和方法
CN110383279B (zh) * 2018-12-29 2024-03-15 创新先进技术有限公司 用于检测重放攻击的系统和方法
US11405181B2 (en) * 2019-07-12 2022-08-02 Microsoft Technology Licensing, Llc Lightweight blockchain based on split-trust

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190079998A1 (en) * 2017-01-31 2019-03-14 Thomas Jay Rush Blockchain data-processing engine
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
TW201924278A (zh) * 2017-11-09 2019-06-16 安地卡及巴布達商區塊鏈控股有限公司 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法

Also Published As

Publication number Publication date
CN114666163A (zh) 2022-06-24
EP3659319A2 (en) 2020-06-03
CN111108734B (zh) 2022-05-31
EP3659319A4 (en) 2020-09-09
EP3659319B1 (en) 2021-11-24
US11102242B2 (en) 2021-08-24
WO2019170171A3 (en) 2020-04-23
US10791143B1 (en) 2020-09-29
WO2019170171A2 (en) 2019-09-12
US11388190B2 (en) 2022-07-12
US20210014268A1 (en) 2021-01-14
CN111108734A (zh) 2020-05-05
TW202101261A (zh) 2021-01-01
US20210344709A1 (en) 2021-11-04
SG11202002416RA (en) 2020-04-29

Similar Documents

Publication Publication Date Title
TWI749488B (zh) 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體
EP3673620B1 (en) Shared blockchain data storage
US11405219B2 (en) Shared blockchain data storage
AU2018348334B2 (en) Achieving consensus among network nodes in a distributed system
TWI705690B (zh) 分布式網路中進行主節點變更的系統
AU2018348335B2 (en) Performing a recovery process for a network node in a distributed system
EP3669281B1 (en) Shared blockchain data storage
JP6830552B2 (ja) アンチリプレー攻撃認証プロトコル
AU2019321923B2 (en) Asynchronous processing of blockchain blocks
TW202111586A (zh) 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存
TW202119210A (zh) 基於錯誤校正碼的共享區塊鏈資料儲存的資料安全性