TW201633152A - 用於減少從記憶體資訊洩漏之系統及方法 - Google Patents

用於減少從記憶體資訊洩漏之系統及方法 Download PDF

Info

Publication number
TW201633152A
TW201633152A TW104121813A TW104121813A TW201633152A TW 201633152 A TW201633152 A TW 201633152A TW 104121813 A TW104121813 A TW 104121813A TW 104121813 A TW104121813 A TW 104121813A TW 201633152 A TW201633152 A TW 201633152A
Authority
TW
Taiwan
Prior art keywords
memory
access
dummy
memory access
write
Prior art date
Application number
TW104121813A
Other languages
English (en)
Other versions
TWI673609B (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 TW201633152A publication Critical patent/TW201633152A/zh
Application granted granted Critical
Publication of TWI673609B publication Critical patent/TWI673609B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

一種系統及方法係包含和一記憶體連接之一處理單元,該處理單元係被配置以從該記憶體存取資料。一記憶體交易單元係被加入在該處理單元與該記憶體之間。該記憶體交易單元係被配置以在隨機的時間且在隨機的記憶體位置執行虛設的讀取操作以及寫入操作,且/或在藉由該處理單元從該記憶體的真實的存取之前插入隨機的延遲。

Description

用於減少從記憶體資訊洩漏之系統及方法
該些系統及方法是有關於在安全計算中減少從記憶體存取模式的資訊洩漏。
電腦安全性是被應用到例如是電腦及智慧型手機的計算裝置以及例如是私用及公用網路的包含網際網路的電腦網路之資訊安全性。電腦安全性可以涵蓋保護電腦為基礎的設備、資訊及服務免於非故意或是未被授權的存取、改變或毀壞所藉由的方法與機構。目前的安全計算系統係易受到經由記憶體存取模式的分析所執行之資訊竊盜的傷害。一種簡單的方法是藉由加上亂真的存取,例如是藉由平行於真實的存取來執行一虛設(dummy)加密,以將雜訊加到該記憶體存取模式。該雜訊係減小攻擊者可見到的信號,並且因此需要更多的樣本,但是並未消除該非故意或是未被授權的存取。
根據一特點,系統及方法可以提供一種和一記憶體連接之處理單元,該處理單元係被配置以從該記憶體存取資料。一記憶體交易單元係和該處理單元以及該記憶體連接。該記憶體交易單元係被配置以在隨機 的時間且在隨機的記憶體位置執行虛設的讀取操作以及寫入操作,且/或在藉由該處理單元從該記憶體的真實的存取之前插入隨機的延遲。
其它的系統、方法、特點及優點在審視以下的圖式及詳細說明之後將會是明顯的、或者將會變成是明顯的。所欲的是所有此種額外的系統、方法、特點及優點是內含在此說明之內,並且受到所附的申請專利範圍的保護。
100‧‧‧計算系統
102‧‧‧安全記憶體交易單元(SMTU)
104‧‧‧中央處理單元(CPU)/直接記憶體存取(DMA)
106‧‧‧記憶體
200‧‧‧程序
202‧‧‧記憶體存取請求
204‧‧‧佇列存取
206‧‧‧建立/更新統計
208‧‧‧產生虛設存取
210‧‧‧排程存取、延遲產生器
212‧‧‧記憶體存取
214‧‧‧傳回資料
在相關以下的詳細說明下,所附的圖式係加以參考,其中在不同的圖中之相同的元件符號可以是指相同的元件。
圖1是一被插置在一中央處理單元(CPU)/直接記憶體存取(DMA)與記憶體之間之範例的安全記憶體交易單元(SMTU)的方塊圖。
圖2是一用於模糊記憶體存取模式之範例的程序的流程圖。
系統及方法係被描述用於改進安全計算系統的安全性,例如是當敵手(adversary)嘗試獲得對於附接至一安全處理器的隨機存取記憶體(RAM)之未被限制的存取時。此存取可以藉由該敵手安裝在目標機器中以用於記錄有關其記憶體存取至該RAM的資訊之一記憶體匯流排分析器而被達成。當該記憶體存取發生時,該被記錄的資料係包含位址、被傳輸的資料以及時間。該系統及方法可以減少從敵手所觀察到的時序模式以及位址模式的資訊洩漏,以助於提供一種安全計算系統。
圖1是一種範例的計算系統100的方塊圖,其包含被設置在一中央處理單元(CPU)/直接記憶體存取(DMA)104與一記憶體106之間的一 安全記憶體交易單元(SMTU)102。一範例的SMTU 102係被描述於2014年9月23日公告、名稱為安全記憶體交易單元的共同被讓與的美國專利號8,843,767中,該美國專利係以其整體被納入於此。該SMTU 102可以被其它如同在此所述地運作的記憶體交易單元所取代。計算系統100經常需要外部的記憶體106(例如,DRAM、快閃、ROM、RAM、SSD、磁性硬碟等等)以儲存長期及短期使用的資料。為了符合安全性需求,該記憶體106的資料內容係受到保護。實體保護可能是昂貴而且不可靠的。因此,密碼及演算法類型的保護是較佳的。充分的保密可被提供給一例如是該CPU/DMA104的安全微處理器,其係藉由利用受保護的電路以及隱藏的高熵密鑰於具有經證實的安全性之密碼的演算法,以在將資料儲存在該記憶體106中之前加密該資料,並且在取出之後解密該資料。
安全資料認證標籤是通常被附加至該加密的資料。該些安全資料認證標籤係透露所儲存的資料是否已經被改變給該CPU/DMA 104。然而,一殘留的安全性問題係包含發生在加密及資料認證之後的資訊洩漏。該資訊洩漏的來源可能是在記憶體存取上的模式、該CPU/DMA 104所執行的某些操作的特徵、以及控制這些操作的軟體的特徵。
該SMTU 102係在該CPU/DMA 104與記憶體106之間被加入到該計算系統100,其係加密及認證被儲存在記憶體106中的資料。一種產生高的資訊損失之攻擊可能會藉由在該敵手控制尤其是計算系統100的功能時觀察記憶體存取模式,例如是藉由提供輸入並且觀察對於這些刺激所反應的記憶體存取模式而發生。此經常被稱為側寫(profiling)。所得知的知識接著可以在其被利用於現實的情況時,被利用以從該計算系統100獲 得資訊。除了其它方面之外,在記憶體存取中的模式可以透露給一敵手在該計算系統100中執行的軟體版本,其可能包含已知可利用的程式漏洞(bug);在側寫該軟體的功能部分之後的在任何給定的時間被執行的動作/功能;當大型查看表(lookup table)例如是被使用在密碼(AES、DES等等)的軟體實施方式時的快取未命中的事件,它們可能會透露該密鑰中的位元,而最終會透露該祕密的密鑰;以及該計算系統100在一給定的時間所執行的功能等等。
為了降低該資料洩漏,該SMTU 102可以在隨機的時間且在隨機的記憶體位置執行虛設的讀取操作以及寫入操作,且/或在例如是藉由該CPU/DMA 104或是輸入/輸出(I/O)操作所起始的真實的記憶體存取之前插入隨機的延遲。虛設的讀取及寫入操作係隱藏潛在的記憶體存取模式。這些虛設操作可以藉由該SMTU 102來加以執行,該SMTU 102係被插入在該計算系統100中而介於該記憶體106(例如是一加密RAM控制器)與該CPU/DMA 104及/或一同時與真實的應用程式執行的軟體工作之間。不論是任何方式,該虛設記憶體存取的功能對於執行在該計算系統100上的軟體而言都是透明的(transparent)。
額外或是替代地,該虛設記憶體存取的對策可以藉由掌握真實的記憶體存取並且較不常對於這些位置做出虛設存取而進一步改善。在查看表的情形中,該些虛設記憶體存取係被導引到該查看表的隨機頁。在硬體實施方式中,一種硬編碼的演算法可被用來識別是否有重複的真實的記憶體存取發生在一有限範圍的記憶體存取,並且那些位址於是以較高的機率而被使用於虛設存取。在軟體實施方式中,該程式可以提供指點給背 景的虛設記憶體存取工作,其係指出查看表何時被處理。此可以取代自動的查看表辨識、或是除了其之外的額外使用。所述的對策當和動態記憶體位址重映射(remapping)結合時可以最佳的工作,但是即使在無位址重映射下,安全計算的安全性仍然會改善。
該些虛設記憶體存取係減少從真實的記憶體存取的位址以及其時序兩者的資訊洩漏。當動態位址重映射被使用在一計算系統100中時,則不需要藉由虛設寫入操作的位址模糊(其只是用於模糊記憶體存取時序的模式),但是由於該SMTU 102所造成的安全性的整體改善係大於只是隱藏該計算系統100的記憶體存取時序資訊。當對於該記憶體106的存取可被一敵手觀察及分析時,該SMTU 102係改善該計算系統100的安全性。計算系統100包含飛行電腦、軍事及太空用程式、企業網路、個人及膝上型電腦、智慧型行動裝置等等。當該SMTU 102和傳統的密碼及演算法的記憶體保護一起被配置時,實際上從記憶體存取模式的所有資訊洩漏都可加以避免,並且惡意的資料變更可被偵測出。
圖2是一種用於模糊記憶體存取模式之範例的程序200的流程圖。該CPU/DMA 104係做出該記憶體106的一存取請求(202)。該SMTU 102係提供被儲存在該記憶體106中的資料的佇列存取(204)。為了適應安全的佇列存取,該SMTU 102係建立及更新真實的記憶體存取的統計(206)。該統計係決定虛設記憶體存取的產生,以模仿例如是一未受保護的系統的處理器的行為、或是隱藏該處理器的存取模式。產生虛設交易是一種將雜訊加到真實的交易之方式,以模糊利用記憶體交易的時序分析所可得的任何資訊。該些虛設交易係符合該CPU/DMA 104在此環境中自然所做的交易,但 是在那些限制之內加以隨機化。不符合正常的輸出模式之虛設交易可能會被輕易地濾除,並且因此在模糊時序資訊上不是有用的。該統計亦可被利用以決定對於真實的記憶體存取之延遲。
CPU/DMA 104和該記憶體106的互動可以透過該CPU/DMA 104的一快取系統來加以達成,因而該快取系統的行為將被瞭解。快取行為是在不同處理器之間變化,因而詳細的互動可以是依照個案來加以達成的。該些快取單元通常和該記憶體在一快取線的基礎上互動,因而此尺寸例如是藉由建立/更新統計(206)以針對於每個將被支援的處理器來加以瞭解。一般而言,該快取單元是以兩種不同的寫入模式來操作。一種模式係稱為寫通(write-through),而另一種模式通常是稱為寫回(copy-back)。在寫通模式中,所有的寫入都立即前往該記憶體106並且修改快取線。該些寫通的寫入係在該SMTU 102中產生一讀取-修改-寫入的週期。當寫回模式被使用時,該些快取線係即時地被修改。當該快取是在寫回模式時,每當有一快取未命中時,若待被清除(flushed)的快取線已經接收到一寫入,則一快取清除會發生。在寫回模式中之可能的順序是快取線清除接著是一快取線讀取、或者是只有快取線讀取而已。當該快取是在寫通模式時,一快取未命中只產生一快取線讀取。
為了效率的緣故,該快取線尺寸係符合該SMTU 102的區塊尺寸。此亦使得透過該SMTU 102之寫通模式的寫入看起來像是在寫回模式時所獲得的快取清除的寫入。去除此種區別係簡化模糊時序資訊的工作。如同在以下敘述的,該SMTU 102係排程對於該記憶體106的存取,並且延遲產生器視需要地插入延遲(210)。該CPU/DMA 104係存取該記憶體 106(212),並且該記憶體106係傳回該資料至該CPU/DMA 104(214)。為了隱藏時序資訊,該記憶體106可以利用讀取及寫入交易的一固定的模式來持續地運作,藉此隱藏所有的時序模式,但是就速度及功率的使用而論則會是在高成本之下。此模式係採用N個讀取接著是M個寫入的形式。N與M的值是可設定的參數,其係在瞭解有兩個相互競爭的目標下加以選擇。一個目標是藉由匹配該讀取及寫入的比例與該CPU之實際的使用模式來隱藏虛設記憶體存取發生的實際狀況,以防此比例可能被一敵手知道。另一個目標是使用這些值來模糊讀取及寫入的實際的比例,例如是當合理地假設該敵手並不知道此比例時。該SMTU 102可以持續地依循該模式來產生交易,其係利用真實的交易(若可利用的話),但是若真實的交易並非可利用的話,則產生隨機的交易。對於整個虛設寫入的操作模式而言,統計係針對於讀取及寫入的實際的比例以及其分布(連續相同的類型之數量以及該些記憶體存取的位址範圍)來加以維持(206)。
該SMTU 102係保護對抗至少兩種類型的記憶體攻擊,單次(one shot)攻擊以及平均的攻擊。在該單次攻擊下,對於在該系統中所執行的一演算法之一特定的記憶體位址配置,敵手只能夠觀察在記憶體匯流排上的流量一次。該系統的行為總是不同的;敵手並無法強迫相同的動作再次被執行。在此情況中,隨機延遲的記憶體存取(212)以及增加的虛設記憶體存取(208)是對抗流量分析之有效的對策。此情況係發生在某些應用(大部分是即時或通訊的系統)以及當該些記憶體位址被隨機地重映射時。在此後者的情形中,該些記憶體位址對於攻擊者而言看起來是隨機的,因而該時序資訊係藉由延遲的技術以及虛設存取來加以模糊化。從時序資訊洩漏的一 個例子是當(一利用表查看的程式的)一件資料是已經在該快取中時,該系統100並未從該記憶體106載入該表之對應的頁。該對應的記憶體存取之不存在是可識別的:因而規則的快取載入模式遭到破壞。
在一平均的攻擊下,敵手可以強迫相同的動作藉由遭受攻擊的系統反覆地加以執行。例如,啟動的記憶體初始化或是一韌體載入/解密程序可以是可重複的。在此例中,許多被觀察到的記憶體流量模式之一平均的程序可能會透露真實的記憶體存取,而虛設存取則消失在該雜訊中。在此情況中,該SMTU 102係偵測該系統之重複的動作,此可能是指出一攻擊。在偵測到重複之後,該安全計算系統可以執行所指明的動作,其包含抹除密鑰、清除儲存、發出警報聲響、或是其它通知該系統管理者有關一持續的攻擊之方式。該重複偵測的子系統係取得該系統在外部的刺激(像是重置、中斷)下的狀態的一雜湊,並且將這些雜湊值儲存在受保護的非揮發性記憶體中。大量重複的雜湊值係指出一平均的攻擊。
如上所述,該SMTU 102係在被加密且認證的記憶體的背景中操作,其中該加密及認證是依據該資料位置(位址)並且依據該資料版本(寫入計數器、時間戳記等等)而定。以上的說明之額外或替代的是,讀取記憶體的存取可被延遲一隨機的時間期間,並且接著是一寫入至相同的(邏輯)位置,其並非一定立即寫入,而是在一短暫的隨機的延遲之後。在此之間,該資料版本的資訊係被更新(例如,一寫入計數器或時脈係被增量)。即使該資料並未改變,該加密仍然會改變(其係根據該資料版本而定),因而竊聽者並不能夠分辨相同的資料或是更新的資料被寫回。該些寫入記憶體的存取係被修改成以一讀取位在其前面,該讀取只是驗證該資料的真實性,但是 若該記憶體資料是不需要的,例如若其已經在該CPU/DMA 104的一快取中,則並不利用之。在這兩種修改下,竊聽者並無法區別記憶體讀取及寫入的存取:因為它們看起來總是相同的。
以此種方式,該SMTU 102的使用是比加密及資料認證更複雜的。並沒有虛設演算法在該CPU中被執行(例如,並沒有虛設加密),而是該些記憶體存取係被隨機化。該SMTU 102所做的是比僅僅加上隨機或正規化的延遲以避免時序的攻擊還要多。僅僅引入隨機的延遲可能是以一線性因數來增加攻擊複雜度,因此其可能並未提供足夠的安全性。該SMTU 102反而是首先在隨機的時間插入虛設記憶體存取,並且在其之後可能引入、或者可能未引入明確的隨機的延遲。相對於資料區塊重映射的模糊方法,其並不需要維持一歷史表列,而且並不需要使用可能會佔用儲存空間並且複雜化記憶體存取之虛設資料區塊。該SMTU 102是使用適應性而且更複雜的演算法以隨機化記憶體存取及延遲。當實際的資料區塊並未被該程式存取時,該SMTU 102可以對於該些實際的資料區塊做出虛設存取。目前的存取模式的保護方案是存取兩個區塊,因為該設計總是在記憶體區域之間交換兩個區塊。然而,該SMTU 102並不需要記憶體交換的區域,並且當一資料區塊被請求時,其並未被限制於確切地存取兩個資料區塊。而是,該SMTU 102係包含一種適應性演算法,其係引入一可變數量的虛設存取至真實的資料。該適應性演算法可以隨著真實的記憶體存取的模式改變而改變。
該SMTU 102的適應性可被用來根據現在所隱藏的真實的記憶體存取之模式以改變其行為。有關於頻率,虛設記憶體存取可被插入成 使得整體的記憶體存取的頻率變成是固定的。一極端的例子是當100%的記憶體頻寬被利用時。該固定的頻率可以在該系統100執行典型或安全性的重要工作時的一側寫階段中離線地加以決定、或者其可以例如是藉由一移動平均的程序而動態地加以決定。有關於時序模式,某些演算法係在變化的記憶體存取頻率下工作。頻繁的存取的叢發係藉由靜默期間來加以分開。該SMTU 102可以識別此種模式,並且藉由插入虛設的存取叢發來模仿它們。有關於位址範圍,影像處理、矩陣處理或是查看表程式(作為例子)可能會經常存取一範圍的記憶體,並且在此範圍之外大部分是依序地存取(此係指出用於該演算法的指令提取)。該SMTU 102係偵測此種模式,並且依此調整該些虛設存取:大部分的虛設存取是發生在該有限的範圍中(其假冒的存取到該影像之原本無關的部分),並且偶然地存取連續的記憶體位置之短的序列(用於假冒程式執行)。有關於位址序列,載入程式碼通常是可識別的,線性的位址序列係被存取,其具有至其它序列的跳躍以及交錯的迴圈。類似的模式可以輕易地以虛設記憶體存取來加以產生,以被注入在真實的此種存取之間。此係模糊發生在程式執行期間的模式。
在此闡述的許多修改以及其它的實施例將會被受益於在先前的說明以及相關的圖式中所提出的教示之熟習此項技術者所思及。儘管特定的術語在此被採用,但是它們只是以一般及描述性的意思被使用而已,而不是為了限制之目的。
100‧‧‧計算系統
102‧‧‧安全記憶體交易單元(SMTU)
104‧‧‧中央處理單元(CPU)/直接記憶體存取(DMA)
106‧‧‧記憶體

Claims (15)

  1. 一種方法,其係包括:在隨機的時間且在隨機的記憶體位置執行虛設記憶體(dummy memory)存取,其包含執行一虛設的讀取操作以及一寫入操作中的至少一個,以及在從該記憶體(106)的真實的存取之前插入延遲。
  2. 如申請專利範圍第1項之方法,其進一步包括導引該些虛設記憶體存取至一查看表的隨機頁。
  3. 如申請專利範圍第1項之方法,其進一步包括動態重映射該記憶體(106)的位址。
  4. 如申請專利範圍第1項之方法,其中該些虛設記憶體存取係將雜訊加到真實的記憶體交易,以模糊利用該些記憶體交易的時序分析而可得的資訊。
  5. 如申請專利範圍第1項之方法,其中該些虛設記憶體存取係符合該記憶體(106)的正常的輸出模式。
  6. 如申請專利範圍第1項之方法,其中該被插入的延遲係包括藉由一隨機的時間期間來延遲一讀取記憶體存取,接著是一寫入記憶體存取至一相同的邏輯位置。
  7. 如申請專利範圍第6項之方法,其進一步包括即使資料並未改變,仍然在該延遲期間更新一資料版本的資訊。
  8. 如申請專利範圍第6項之方法,其中該寫入記憶體存取被修改成以該讀取記憶體存取位在其前面。
  9. 如申請專利範圍第1項之方法,其進一步包括偵測存取模式,並且據 此調整該些虛設記憶體存取。
  10. 如申請專利範圍第1項之方法,其進一步包括利用讀取及寫入交易的一固定的模式持續地來操作該記憶體(106)。
  11. 如申請專利範圍第1項之方法,其進一步包括維持真實的記憶體存取的統計。
  12. 如申請專利範圍第11項之方法,其中該統計係決定虛設記憶體存取的產生,以模仿一處理器(104)的行為或是隱藏該處理器(104)的存取模式。
  13. 如申請專利範圍第11項之方法,其中該統計係決定該些真實的記憶體存取之延遲。
  14. 如申請專利範圍第1項之方法,其進一步包括利用一適應性演算法,其中該適應性演算法係隨著真實的記憶體存取的模式改變而改變。
  15. 一種系統,其係包括:和一記憶體(106)連接的一處理單元(104),該處理單元係被配置以從該記憶體(106)存取資料;以及一記憶體交易單元(102),其係和該處理單元(104)以及該記憶體(106)連接;該記憶體交易單元(102)係被配置以執行申請專利範圍第1至14項的任一項之方法。
TW104121813A 2014-10-10 2015-07-06 用於減少從記憶體資訊洩漏之系統及方法 TWI673609B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/511,817 US9495111B2 (en) 2014-10-10 2014-10-10 System and method for reducing information leakage from memory
US14/511,817 2014-10-10

Publications (2)

Publication Number Publication Date
TW201633152A true TW201633152A (zh) 2016-09-16
TWI673609B TWI673609B (zh) 2019-10-01

Family

ID=53546115

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104121813A TWI673609B (zh) 2014-10-10 2015-07-06 用於減少從記憶體資訊洩漏之系統及方法

Country Status (5)

Country Link
US (1) US9495111B2 (zh)
EP (1) EP3007093B1 (zh)
JP (1) JP6663674B2 (zh)
CN (1) CN105512055B (zh)
TW (1) TWI673609B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9887833B2 (en) * 2012-03-07 2018-02-06 The Trustees Of Columbia University In The City Of New York Systems and methods to counter side channel attacks
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
WO2018034192A1 (ja) * 2016-08-19 2018-02-22 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体
US10394492B2 (en) * 2016-10-26 2019-08-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Securing a media storage device using write restriction mechanisms
CN108073805A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种数据读取方法和存储器
US10082975B1 (en) * 2017-03-02 2018-09-25 Micron Technology, Inc. Obfuscation-enhanced memory encryption
US10496552B2 (en) 2017-04-12 2019-12-03 The Regents Of The University Of Michigan Trusted computing system with enhanced memory
JP6809986B2 (ja) * 2017-06-08 2021-01-06 Kddi株式会社 アクセスプログラム、保護装置、最適化装置、最適化方法及び最適化プログラム
EP3419005A1 (en) * 2017-06-22 2018-12-26 Gemalto Sa Computing device processing expanded data
US20190116022A1 (en) * 2017-10-16 2019-04-18 Samsung Electronics Co., Ltd. Encryption device and operation method thereof
US11727124B2 (en) 2017-12-12 2023-08-15 Google Llc Oblivious access with differential privacy
WO2019155693A1 (ja) * 2018-02-07 2019-08-15 ソニーセミコンダクタソリューションズ株式会社 制御装置及び制御方法
CN112970022A (zh) * 2018-09-28 2021-06-15 维萨国际服务协会 数据流的不经意筛选
FR3087604B1 (fr) * 2018-10-18 2021-09-17 Ingenico Group Procede et dispositif de protection de donnees saisies au moyen d'une interface utilisateur non securisee.
US10866747B2 (en) * 2019-02-10 2020-12-15 Hewlett Packard Enterprise Development Lp Securing a memory drive
WO2021178957A1 (en) * 2020-03-06 2021-09-10 Cornell University Application-specific computer memory protection
US20220083347A1 (en) * 2020-09-14 2022-03-17 Intel Corporation Adding cycle noise to enclaved execution environment
EP4180997A1 (en) * 2021-11-16 2023-05-17 Samsung Electronics Co., Ltd. Storage device and operation method thereof

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01266643A (ja) * 1988-04-18 1989-10-24 Nippon Telegr & Teleph Corp <Ntt> キャッシュ制御方式
US5123045A (en) * 1989-08-18 1992-06-16 Massachusetts Institute Of Technology Comprehensive software protection system
JPH0520163A (ja) * 1991-07-16 1993-01-29 Kyocera Corp パーソナルコンピユータ
IL110181A (en) 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US6088452A (en) * 1996-03-07 2000-07-11 Northern Telecom Limited Encoding technique for software and hardware
US6957341B2 (en) * 1998-05-14 2005-10-18 Purdue Research Foundation Method and system for secure computational outsourcing and disguise
WO2002014981A2 (en) * 2000-08-14 2002-02-21 Audi Performance & Racing Enhanced module chipping system
IL161652A0 (en) * 2001-11-14 2004-09-27 Ibm Device and method with reduced information leakage
DE10216611A1 (de) * 2002-04-15 2003-11-06 Infineon Technologies Ag Verfahren zum Ersetzen eines Inhalts einer Datenspeichereinheit
US7254586B2 (en) * 2002-06-28 2007-08-07 Microsoft Corporation Secure and opaque type library providing secure data protection of variables
JP2005045752A (ja) * 2003-07-07 2005-02-17 Sony Corp 暗号処理装置、および暗号処理方法
US8307354B2 (en) * 2004-06-28 2012-11-06 Panasonic Corporation Program creation device, program test device, program execution device, information processing system
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7321524B2 (en) * 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
WO2007125454A2 (en) * 2006-04-27 2007-11-08 Nxp B.V. Secure storage system and method for secure storing
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
US20080189558A1 (en) * 2007-02-01 2008-08-07 Sun Microsystems, Inc. System and Method for Secure Data Storage
US8364918B1 (en) * 2007-04-06 2013-01-29 Marvell International Ltd. Sensed opportunistic garbage collection in memory components
US9117094B2 (en) * 2008-10-29 2015-08-25 Microsoft Technology Licensing, Llc Data location obfuscation
US8843767B2 (en) 2011-07-06 2014-09-23 The Boeing Company Secure memory transaction unit
US8612743B2 (en) * 2011-07-26 2013-12-17 The Boeing Company Wireless network security
CN103188075B (zh) * 2013-02-01 2016-01-06 广州大学 一种密钥和真随机数发生器及生成密钥和真随机数的方法
WO2014154280A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Obfuscating access to a data store by a software application
CN103678175B (zh) * 2013-12-05 2016-09-07 长城信息产业股份有限公司 一种地址隐藏方法及基于地址隐藏技术的嵌入式设备
GB2523804B (en) * 2014-03-06 2021-03-31 Advanced Risc Mach Ltd Transactional memory support
US20160026824A1 (en) * 2014-07-24 2016-01-28 The Boeing Company Security against memory replay attacks in computing systems
US20160048457A1 (en) * 2014-08-13 2016-02-18 The Boeing Company Dynamic memory address remapping in computing systems

Also Published As

Publication number Publication date
JP2016081522A (ja) 2016-05-16
US20160103626A1 (en) 2016-04-14
EP3007093B1 (en) 2018-04-04
JP6663674B2 (ja) 2020-03-13
CN105512055A (zh) 2016-04-20
US9495111B2 (en) 2016-11-15
TWI673609B (zh) 2019-10-01
EP3007093A1 (en) 2016-04-13
CN105512055B (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
TWI673609B (zh) 用於減少從記憶體資訊洩漏之系統及方法
Moghimi et al. Memjam: A false dependency attack against constant-time crypto implementations
Henson et al. Memory encryption: A survey of existing techniques
Wang et al. Covert and side channels due to processor architecture
US8726040B2 (en) Memory randomization for protection against side channel attacks
Anwar et al. Cross-VM cache-based side channel attacks and proposed prevention mechanisms: A survey
US10237059B2 (en) Diversified instruction set processing to enhance security
Guo et al. Adversarial prefetch: New cross-core cache side channel attacks
EP2990953B1 (en) Periodic memory refresh in a secure computing system
Zhang et al. Memory forensic challenges under misused architectural features
Li et al. Establishing software-only root of trust on embedded systems: facts and fiction
Jiang et al. A novel cache bank timing attack
Zankl et al. Side-channel attacks in the Internet of Things: threats and challenges
GB2528780A (en) Security against memory replay attacks in computing systems
CN107563226B (zh) 一种存储器控制器、处理器模块及密钥更新方法
CN107563228B (zh) 一种内存数据加解密的方法
US10169251B1 (en) Limted execution of software on a processor
Zonouz et al. Dynamic memory protection via Intel SGX-supported heap allocation
Zaidenberg et al. Timing and side channel attacks
Jiang et al. Mempoline: Mitigating memory-based side-channel attacks through memory access obfuscation
Henson Attack mitigation through memory encryption
Yitbarek Hardware Mechanisms for Efficient Memory System Security
Enck et al. Securing non-volatile main memory
CN103001772A (zh) 数据安全保护终端
WO2015157842A1 (en) Secured memory system and method therefor