TWI720229B - 使用簽名之位址驗證 - Google Patents

使用簽名之位址驗證 Download PDF

Info

Publication number
TWI720229B
TWI720229B TW106123863A TW106123863A TWI720229B TW I720229 B TWI720229 B TW I720229B TW 106123863 A TW106123863 A TW 106123863A TW 106123863 A TW106123863 A TW 106123863A TW I720229 B TWI720229 B TW I720229B
Authority
TW
Taiwan
Prior art keywords
request
signature
address
physical address
error detection
Prior art date
Application number
TW106123863A
Other languages
English (en)
Other versions
TW201734792A (zh
Inventor
C 瑟里布林班傑明
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 TW201734792A publication Critical patent/TW201734792A/zh
Application granted granted Critical
Publication of TWI720229B publication Critical patent/TWI720229B/zh

Links

Images

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • 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
    • 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/3247Cryptographic 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 involving digital signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本發明揭示用於產生經簽名之位址之方法、系統及設備,其等包含經編碼於電腦儲存媒體上的電腦程式。該等方法之一者包含:藉由一裝置,自一組件接收複數個第一請求,各第一請求用於一實體位址且包含一虛擬位址;藉由該組件,使用該虛擬位址來判定一第一實體位址;針對該第一實體位址,產生一第一簽名;及將包含該第一簽名之一回應提供至該裝置;自該裝置接收複數個第二請求,各第二請求用於存取一第二實體位址且包含一第二簽名;對於該複數個第二請求之各者,藉由該組件使用該第二簽名來判定該第二實體位址是否有效;及對於該第二實體位址判定為有效的各第二請求,服務該對應第二請求。

Description

使用簽名之位址驗證
本說明書係關於驗證記憶體存取請求。 圖形處理單元(GPU)可具有對隨機位址之高度同時存取且可包含GPU上硬體以執行產生以中央處理單元(CPU)動態隨機存取記憶體(DRAM)為目標之位址之位址轉換。類似地,一些網路介面卡(NIC)及固態磁碟機(SSD)可執行其自身之位址轉換。 周邊組件互連(PCI)位址轉換服務(ATS)允許一裝置自一輸入/輸出記憶體管理單元(IOMMU)請求一位址轉換且在該裝置上本地快取該轉換。該裝置之對所轉換之範圍之後續存取可標記為已轉換且繞過該IOMMU。
一種記憶體管理單元自一裝置(例如,連接至一母板)接收位址轉換請求且針對所請求之各實體位址產生一簽名。該記憶體管理單元提供該簽名至該裝置且當自該裝置接收記憶體存取請求時,使用對應簽名來驗證經存取之記憶體位置、驗證發送該請求之該裝置或兩者。 一般而言,本說明書中所描述之標的之一新穎態樣可體現在方法中,該等方法包含以下動作:藉由一裝置自一組件接收複數個第一請求,該複數個第一請求之各者用於一對應實體位址且包含一對應虛擬位址;對於該複數個第一請求之各者:藉由該組件使用該對應虛擬位址來判定一第一實體位址;針對該第一實體位址產生一第一簽名,該第一簽名用以驗證該第一實體位址;且將包含該第一簽名之一回應提供至該裝置;自該裝置接收複數個第二請求,該複數個第二請求之各者用於存取一對應第二實體位址且包含一對應第二簽名;對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效;及對於使用該對應第二請求之該第二簽名將該第二實體位址判定為有效的各第二請求,服務該對應第二請求。此態樣之其他實施例包含對應電腦系統、設備及記錄在一或多個電腦儲存裝置上的電腦程式,其等各自經組態以執行該等方法之該等動作。一或多個電腦之一系統可經組態以憑藉將軟體、韌體、硬體或其等之一組合安裝在該系統上而執行特定操作或動作,軟體、韌體、硬體或其等之一組合在操作中致使該系統執行該等動作。一或多個電腦程式可經組態以憑藉包含指令而執行特定操作或動作,該等指令在由資料處理設備執行時致使該設備執行該等動作。 前述及其他實施例可各自視情況包含以下特徵之一或多者(單獨或以組合形式)。該方法可包含對於使用該對應第二請求之該第二簽名將該第二實體位址判定為無效的各第二請求,不服務該對應第二請求。對於該複數個第二請求之一第二不同子集,不服務該第二請求可包含對於該第二子集中之該等第二請求之各者,拒絕該各自第二請求。對於該複數個第二請求之一第二不同子集,不服務該第二請求可包含對於該第二子集中之該等第二請求之各者,記錄指示該各自第二請求之一對應錯誤。對於該複數個第二請求之一第二不同子集,不服務該第二請求可包含重設或暫停該裝置。對於使用該對應第二請求之該第二簽名將該第二實體位址判定為無效的各第二請求,不服務該對應第二請求可包含改變該裝置之一秘密值。對於使用該對應第二請求之該第二簽名將該第二實體位址判定為無效的各第二請求,不服務該對應第二請求可包含停用該裝置對一記憶體之存取。該方法可包含:服務該複數個第二請求之至少一者;及不服務該複數個第二請求之至少另一者。 在一些實施方案中,該方法包含:自該裝置接收一特定請求;判定該特定請求是否包含一虛擬位址;及判定該特定請求是否為i)回應於判定該特定請求包含一虛擬位址之該複數個第一請求之一者或ii)回應於判定該特定請求不包含一虛擬位址之該複數個第二請求之一者。該複數個第一請求之各者可包含該對應虛擬位址及該裝置之一識別符。對於該複數個第一請求之各者,產生針對該第一實體位址之該第一簽名可包含:使用該識別符來判定一秘密值;使用該第一實體位址及該秘密值產生一雜湊值;及使用該雜湊值之至少一部分產生該第一簽名。 在一些實施方案中,對於該複數個第一請求之各者,將包含該第一簽名之該回應提供至該裝置包含:級聯該第一簽名與該第一實體位址;及提供一回應,其包含與該回應之一單一欄位中之該第一實體位址級聯之該第一簽名。該裝置之該識別符可包含該裝置之一裝置匯流排數目。該複數個第二請求之各者可包含該對應第二實體位址、該對應第二簽名及該裝置之該識別符。對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效可包含:使用該識別符來判定該秘密值;使用該對應第二實體位址及該秘密值產生一雜湊值;使用該雜湊值之至少一部分產生一第三簽名;判定該對應第二簽名與該第三簽名是否相同;及回應於判定該對應第二簽名與該第三簽名相同而判定該對應第二實體位址有效。 在一些實施方案中,該複數個第二請求之各者包含該對應第二實體位址、該對應第二簽名及該裝置之該識別符。對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效可包含:使用該識別符來判定該秘密值;藉由使用該秘密值來解密該對應第二實體位址而產生一第三實體位址;使用該第三實體位址及該秘密值產生一雜湊值;使用該雜湊值之至少一部分產生一第三簽名;判定該對應第二簽名與該第三簽名是否相同;及回應於判定該對應第二簽名與該第三簽名相同而判定該對應第二實體位址有效。 在一些實施方案中,對於該複數個第一請求之各者,使用該雜湊值之至少一部分產生該第一簽名包含使用自該雜湊值之一預定數量之最低有效位元產生該第一簽名。對於該複數個第一請求之各者,使用該雜湊值之至少一部分產生該第一簽名可包含使用所有該雜湊值產生該第一簽名。藉由使用該秘密值來加密該第一實體位址而產生該雜湊值可包含:判定使用該秘密值來加密該第一實體位址之一密文及一鑑認標籤作為一伽羅瓦(Galois)訊息鑑認碼(GMAC)程序之輸入;及使用該鑑認標籤作為該雜湊值。 在一些實施方案中,該方法可包含使用該識別符來判定該裝置之至少一許可值。藉由使用該秘密值來加密該第一實體位址而產生該雜湊值可包含藉由使用該至少一許可值來加密該第一實體位址而判定該雜湊值。該至少一許可值可包含一讀取許可位元、一寫入許可位元、一執行許可位元、一快取能力位元、一快取位準提示位元、一事務類別或一虛擬通道數目之至少一者。 在一些實施方案中,該複數個第二請求之各者包含該裝置之一識別符。該等第二簽名之各者可包含一經加密之實體位址。對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效可包含:使用該識別符來判定一秘密值;藉由使用該秘密值來解密該對應經加密之實體位址而判定一解密值;判定該解密值是否包含具有一預定長度之零位之一首碼;在判定該解密值包含具有該預定長度之零位之該首碼之後判定該對應第二實體位址有效;及使用該解密值作為該對應第二實體位址。藉由使用該秘密值來解密該對應經加密之實體位址而判定該解密值可包含藉由使用該秘密值來解密該對應經加密之實體位址而判定該解密值作為一區塊加密之輸入。藉由使用該秘密值來解密該對應經加密之實體位址而判定該解密值可包含藉由使用該秘密值來解密該對應經加密之實體位址而判定該解密值作為一先進加密標準程序之輸入。 在一些實施方案中,自該裝置接收該複數個第二請求包含:對於該複數個第二請求之各者,藉由一交換晶片自該裝置接收該對應第二請求;對於該複數個第二請求之各者,藉由該交換晶片來判定該對應第二請求包含一未知位址;及對於該複數個第二請求之各者,藉由該交換晶片發送該對應第二請求至該組件。 在一些實施方案中,對於該複數個第一請求之各者,將包含該第一簽名之該回應提供至該裝置包含:對於該複數個第一請求之各者,使用一錯誤偵測碼欄位中之該第一簽名及該回應之一本體中之該第一實體位址產生該回應。對於該複數個第一請求之各者,使用該錯誤偵測碼欄位中之該第一簽名及該回應之該本體中之該第一實體位址產生該回應可包含:使用該第一簽名及不同於自該錯誤偵測碼欄位之內容之自該回應之內容產生一錯誤偵測碼值;及在該回應之該錯誤偵測碼欄位中使用該錯誤偵測碼值。對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效可包含:對於該複數個第二請求之各者,使用自該複數個第二請求之該對應者中之一錯誤偵測碼欄位之該對應第二簽名來驗證該對應第二實體位址。對於該複數個第二請求之各者,藉由該組件使用該對應第二簽名來判定該對應第二實體位址是否有效可包含:對於該複數個第二請求之各者,使用自該複數個第二請求之該對應者中之一錯誤偵測碼欄位之一錯誤偵測碼值來驗證該對應第二實體位址及該複數個第二請求之該對應者之一完整性,其中使用該對應第二簽名產生該錯誤偵測碼值。 在一些實施方案中,對於至少一第二請求,服務該對應第二請求包含:判定該第二請求包括一讀取請求;藉由該組件提供一讀取請求至與該對應第二實體位址相關聯之一第二裝置,該讀取請求包含該對應第二簽名;自該第二裝置接收對該讀取請求之一第二回應,該第二回應包含一目的地位址及一簽名;及使用該簽名來判定該目的地位址是否有效。該方法可包含:對於使用該簽名將該目的地位址判定為有效的該至少一第二請求之各者,將來自該第二回應之內容提供至該裝置;及對於使用該簽名將該目的地位址判定為無效的該至少一第二請求之各者,廢除該第二回應。該方法可包含:對於該至少一第二請求之一者,將來自該第二回應之內容提供至該裝置;及對於該至少一第二請求之另一者,廢除該第二回應。 本說明書中所描述之標的可在特定實施例中實施且可導致以下優點之一或多者。在一些實施方案中,例如,對於執行其自身之位址轉換之裝置或當該系統僅在轉換時間處確認位址時,下文所描述之系統及方法可防止一裝置在該裝置之一認可範圍之外存取一實體位址。例如,每當一裝置請求存取一位址時,一系統可確認應允許該裝置存取該位址。在一些實施方案中,下文所描述之系統及方法可防止一裝置之惡意或錯誤軟體或硬體利用該裝置中之故意或意外缺陷來在該系統意欲允許該裝置存取之一範圍之外存取記憶體(例如,當一裝置建置器不能夠確認裝置矽是否匹配該裝置之一設計時)。在一些實施方案中,下文所描述之系統及方法可防止簽名之蠻力猜測,此係因為表現良好的裝置從不發出無效位址且當一裝置第一次提供該系統一無效位址時該系統可暫停、重設該裝置或既暫停該裝置亦重設該裝置。 在一些實施方案中,下文所描述之系統及方法可藉由依靠在一裝置中儲存位址、位址之一簽名或兩者而不依靠信任裝置以僅產生有效位址來允許該系統在無需針對各請求存取裝置之實體位址之映射的情況下驗證該裝置之記憶體存取請求。在一些實施方案中,相較於(例如)具有轉換備緩緩衝器之其他系統,下文所描述之系統及方法可需要基於所需之秘密值之數目之更少記憶體儲存空間。在一些實施方案中,下文所描述之可幫助將一系統中之需要被信任之組件之數目限制於(例如)一中央處理單元(CPU)及在與CPU相同之晶片上之組件之系統及方法可在無需改變現有硬體或所有現有硬體(或兩者)之情況下實施。在一些實施方案中,一組件可針對一單個裝置、一索引或兩者使用多個秘鑰以移除該裝置對一些記憶體位置但並非該裝置先前已存取之所有記憶體位置之存取。 在附圖及以下「實施方式」中闡述本說明書之標的的一或多個實施例之細節。將自「實施方式」、圖式及申請專利範圍明白該標的之其他特徵、態樣及優點。
[ 相關申請案之交叉參考 ] 本申請案主張2015年5月20日申請之美國臨時申請案第62/164,288號及2015年9月20日申請之美國申請案第14/867,250號之權利,該等申請案之內容以引用的方式併入本文中。概述 在一些實施方案中,一輸入/輸出記憶體管理單元(IOMMU) (例如,在一周邊組件互連(PCI)根複合體中)使用僅該IOMMU已存取之一隨機產生之秘密值針對自一裝置之各位址轉換請求產生一簽名作為一密碼編譯密鑰之部分。該IOMMU提供該簽名至該裝置且在存取所轉換之實體位址之任何將來請求中,該裝置必須提供該IOMMU該簽名使得該IOMMU可(例如,使用一簡單計算)驗證且接受或拒絕該存取請求。該IOMMU可使用該簽名以防止該裝置欺騙任何其他實體位址或重播無效位址(例如,用於在該裝置之一允許範圍之外存取記憶體)。該IOMMU可對提供至該裝置之位址或一封包(例如,一快速周邊組件互連(PCIe)封包)之另一欄位中之簽名(例如,密碼編譯簽名)進行編碼。 例如,一裝置可自一記憶體管理單元(MMU)接收一經轉換之位址,該MMU使用PCI標準裝置位址轉換或填充裝置中頁表項目之MMU裝置驅動器位址映射操作來判定該經轉換之位址。在一些實例中,該MMU可調用MMU驅動器碼以分配對於每個裝置係唯一之一裝置虛擬位址且產生將該虛擬位址轉換成特定中央處理單元(CPU)實體位址之MMU頁表映射。 例如,當該MMU產生該頁表映射時,該MMU添加一簽名至該映射中之實體位址之各者。隨後,當該裝置經由位址轉換服務(ATS)自該MMU請求一轉換時,該MMU提供該簽名或該簽名與該位址兩者至該裝置。在一些實例中,該MMU裝置驅動器可發送虛擬位址及實體位址(包含簽名)至該裝置,(例如)因此該裝置包含本地頁表且不需要自該MMU請求一轉換。 在一些實施方案中,一系統可依靠當產生一簽名時防止一裝置欺騙該裝置之標示之部分的機構。例如,一PCIe裝置識別符可為稱為匯流排/裝置/功能(BDF)數目之一16位元元組且PCI之存取控制服務(ACS)可防止一裝置改變該裝置之匯流排數目。當(例如,藉由使用一元組:「位址,雜湊(MMU秘密值、實體位址、讀取許可位元、寫入許可位元、執行許可位元、裝置匯流排數目)」)替代提供至一裝置之一實體位址產生一簽名時,該MMU可使用該裝置之匯流排數目。在一些實施方案中,該MMU可使用其他位元或值作為除上述該等以外或替代上述該等之雜湊函數之輸入。在一些實例中,位址與簽名一起可為六十四個位元。該MMU可使用任何適當方法(包含下文所描述之額外方法)來產生簽名。 在一些實例中,當位址(例如,PCIe位址)可對六十四個位元編碼以識別各位址且典型頁面分配粒度為4KB、2MB及1GB時,一系統可針對各自頁面大小使用各頁面粒度之五十三個、四十四個或三十五個最高有效位元或最低有效位元以產生一簽名。在一些實例中,該MMU可針對一簽名提供具有五十三個位元之4KB大小轉換(例如)因此該MMU不必判定原始頁面轉換大小或計算三個簽名,各簽名具有自雜湊計算遮蔽之不同低階位元。在一些實施方案中,該MMU可在回應中添加一頁面大小指示(例如,該PCIe封包)且在雜湊資料中包含該欄位(例如)且使用該頁面大小來判定用於簽名之位元之數目及表示位址之位元之數目。 該裝置包含用於一特定實體位址之各記憶體存取請求中之該特定實體位址之簽名(例如,其通常含有該特定實體位址及該裝置之BDF)。例如,在運行時間期間,該裝置將發送一特定實體位址且在針對該特定實體位址之每個記憶體事務中發送該簽名。 當並行確認該簽名時,該MMU (例如,在一PCIe根複合體中)可開始處理請求且若該MMU判定該簽名無效則可中斷該請求之處理(例如)且當該MMU第一次自該裝置接收一無效位址時暫停、重設該裝置或既暫停該裝置又重設該裝置。在一些實例中,當該MMU偵測到一無效位址時或週期性地,該MMU可旋轉該秘密值以有效地破壞攻擊裝置可具有之所有可用知識。例如,該秘密值可為一每裝置秘密值且該MMU可僅改變提供該MMU一無效位址之裝置之秘密值。在一些實例中,該MMU可針對各裝置具有兩個秘密值(例如,用於秘密值旋轉)。 在一些實施方案中,該MMU可自一作業系統或一超管理器(例如,超管理器驅動器碼)接收該秘密值。在一些實施方案中,該MMU可內部產生該秘密值,(例如)且從不將該秘密值直接曝露給軟體。該系統可使用任何適當方法來產生該秘密值。簽名產生及驗證 圖1係一環境100之一實例,其中一記憶體管理單元102針對實體位址產生簽名,且將簽名提供至多個裝置A至B 104a至104b。例如,在時間TA 處,記憶體管理單元102可自裝置A 104a接收一位址轉換請求,且使用使虛擬位址(諸如包含在該位址轉換請求中之一虛擬位址)與實體位址相關聯之一位址映射106。 接著,在時間TB 處,記憶體管理單元102判定所請求之位址之一簽名。記憶體管理單元102可已在先前產生該簽名(例如,當針對裝置A 104a產生位址映射106時)且將該簽名儲存於位址映射106中,或可回應於接收該位址轉換請求而產生該簽名。記憶體管理單元102可(例如,使用該位址轉換請求中之該虛擬位址、對應實體位址、記憶體管理單元102自其接收該位址轉換請求之裝置A 104a、記憶體管理單元102之功能性,或記憶體管理單元102自其接收該位址轉換請求之裝置A 104a,或包含此等之兩者或兩者以上之一組合之任何其他適當方法)判定所請求之位址之一簽名類型108。 在一些實施方案中,記憶體管理單元102可使用一秘密值、實體位址以及裝置A 104a之一讀取許可位元、一寫入許可位元、一執行許可位元或一裝置匯流排數目,針對該實體位址產生一簽名。該秘密值可特定於記憶體管理單元102,且視情況特定於裝置A 104a。當該秘密值特定於記憶體管理單元102,且一裝置發送一無效存取請求至(例如)具有一無效位址、無效簽名或兩者之記憶體管理單元102時,記憶體管理單元102可重設該秘密值,且判定裝置存取之所有位址的新簽名。當該秘密值特定於一特定裝置(例如,裝置A 104a),且該特定裝置發送一無效存取請求至記憶體管理單元102時,記憶體管理單元102可重設該秘密值,且判定該特定裝置存取之所有位址而不是其他裝置存取之位址的新簽名。在一些實例中,記憶體管理單元102可使用特定於記憶體管理單元102而不是其他記憶體管理單元且亦特定於一特定裝置(例如,裝置A 104a)之一秘密值。在此等實例中,該特定裝置僅發送資料存取請求至記憶體管理單元102,而不是不具有用以判定該請求中之一簽名之該秘密值的另一記憶體管理單元。 記憶體管理單元102可判定裝置A 104a之許可,且使用該等許可(例如,讀取許可、寫入許可或執行許可)之一或多者來產生簽名。在一些實例中,記憶體管理單元102可使用裝置A 104a之任何數目的模式或許可位元(諸如一快取能力位元、一快取位準提示位元、一事務類別或一虛擬通道數目之一或多者)。記憶體管理單元102可使用一雜湊函數(例如,一強密碼編譯雜湊函數)來產生簽名。 在時間TC 處,記憶體管理單元102可選擇一雜湊函數來產生一簽名,且用位址108a (例如,附加或級聯至該位址之末端或開始)在提供至裝置A 104a之一回應中包含該簽名,使得裝置A 104a將在存取由實體位址108a識別之記憶體位置的任何請求中包含該簽名。例如,在時間TD 處,裝置A 104a將在存取由位址108a指定之記憶體位置之一請求中包含該簽名。 在時間TD 處,當記憶體管理單元102自裝置A 104a接收位址108a時,在時間TE 處,記憶體管理單元102使用該簽名來驗證該位址以確保:該位址、該簽名或兩者尚未由裝置A 104a修改;另一裝置不使用位址108a;且不應允許請求裝置A 104a存取對應記憶體位置。例如,記憶體管理單元102可確認僅裝置A 104a而不是裝置B 104b使用該簽名及該裝置匯流排數目或該特定裝置之該秘密值或兩者提供位址108a至記憶體管理單元102。 在一些實施方案中,記憶體管理單元102可藉由針對該位址產生一新簽名且比較該新簽名與來自該請求之簽名以判定該等簽名是否匹配而使用該簽名來驗證該位址或該請求。若該等簽名匹配,則記憶體管理單元102判定該位址及該請求有效。若該等簽名不匹配,則記憶體管理單元102判定該位址及該請求無效。記憶體管理單元102可執行任何適當方法以使用包含在該請求中之簽名來判定一位址及一對應請求是否有效。 在驗證該存取請求之後,在時間TF 處,記憶體管理單元102可服務該請求或致使該請求(例如)由另一組件服務。例如,記憶體管理單元102可允許裝置A 104a存取包含藉由該記憶體存取請求中之實體位址識別之一位置之一記憶體110。 當記憶體管理單元102判定已修改該位址、該簽名或兩者,或判定另一裝置(例如,裝置B 104b)提供位址108a至記憶體管理單元102時,記憶體管理單元102不服務該請求(例如)且可重設裝置A至B 104a至104b之一者或兩者或引起裝置A至B 104a至104b之一者或兩者之重設。例如,當已修改該位址或該簽名時,記憶體管理單元102或環境100中之另一組件(諸如一PCIe根複合體)重設裝置A 104a。在一些實例中,若記憶體管理單元102判定裝置B 104b提供位址108a至記憶體管理單元102,則當記憶體管理單元102提供位址108a至裝置A 104a時,記憶體管理單元102可重設裝置B 104b、裝置A 104a或兩者或引起裝置B 104b、裝置A 104a或兩者之重設。 當記憶體管理單元102重設一裝置或致使該裝置重設時,記憶體管理單元102可改變該裝置之秘密值。在一些實例中,當記憶體管理單元102在未重設該裝置之情況下改變該裝置之秘密值時,記憶體管理單元102可提供更新簽名至該裝置(例如)以防止記憶體管理單元102接收帶有使用一先前秘密值產生之一簽名的一請求且判定該請求無效。例如,記憶體管理單元102可提供一更新頁表至該裝置。 在一些實施方案中,記憶體管理單元102可使用一先進加密標準(AES)程序來產生該簽名。例如,記憶體管理單元102可使用一伽羅瓦(Galois)/計數器模式(GCM)作為一十輪AES-128加密程序來產生該簽名。該記憶體管理單元可使用一伽羅瓦(Galois)訊息鑑認碼(GMAC)程序來產生該簽名。(例如)除任何其他適當輸入值以外,記憶體管理單元102可使用實體位址、該裝置之秘密值、該請求裝置之許可及該請求裝置之匯流排數目作為AES-GCM程序之輸入。在一些實例中,記憶體管理單元102可使用一所得標籤(例如,一鑑認標籤或一GMAC標籤)作為該簽名(例如)且廢除所得密文。 在一些實施方案中,在時間TB 處,記憶體管理單元102可使用包含在一位址108b中之零位元之一首碼來產生一簽名。例如,記憶體管理單元102可:判定包含在位址108b中之前導零位元之數目;(例如)使用記憶體管理單元102或請求裝置A 104a之一秘密值及其他可能值(諸如如上文所描述之存取位元或值)來加密位址108b;且在時間TC 處提供經加密之位址至該請求裝置。 在驗證期間,在時間TE 處,回應於存取對應於經加密之位址之記憶體之一請求,記憶體管理單元102 (例如,使用該秘密值及其他值)解密該位址且判定包含在經解密之位址108b中之前導零位元之數目是否正確。若前導零位元之數目正確,則在時間TF 處,記憶體管理單元102服務該請求。若前導零位元之數目不匹配原來包含在該位址中之前導零位元之數目(例如)且不正確,則記憶體管理單元102不服務該請求且可重設或暫停該裝置或引起該裝置之重設或暫停。 在一些實例中,記憶體管理單元102可使用一區塊加密來加密位址108b。例如,記憶體管理單元102可使用具有一八個位元組區塊大小之一區塊加密或計數器模式中之AES與位址108b一起作為臨時標誌產生之輸入。當記憶體管理單元102使用一計數器(例如,每個秘密值一個計數器)時,記憶體管理單元102在時間TC 處在發送至裝置A 104a之一回應中包含加密程序中使用之該計數器之當前值,(例如)使得在解密程序期間,記憶體管理單元102可使用該計數器值。記憶體管理單元102可使用該秘密值作為該區塊加密之輸入。記憶體管理單元102可使用任何適當方法來加密位址108b且使用一對應方法來解密經加密之位址。 在一些實施方案中,在時間TB 處,記憶體管理單元102可針對一位址108c產生一簽名且在時間TC 處,將該簽名儲存於提供至該請求裝置(例如,裝置A 104a)之一回應之另一欄位中。在一些實例中,記憶體管理單元102可將該簽名儲存於(例如)由PCIe界定之一回應總和檢查碼中以偵測電傳訊線上之雜訊。例如,該記憶體管理單元可針對一回應封包產生一事務層封包摘要且在該回應封包之本體中包含實體位址。該記憶體管理單元可在該處理層封包摘要中包含該簽名(例如,附加至該摘要之末端作為一鏈路循環冗餘檢查(LCRC))且該請求裝置接收該回應封包。 當請求裝置A 104a需要存取由實體位址指定之記憶體位置時,請求裝置A 104a在時間TD 處提供具有該事務層封包摘要及該簽名之該回應封包至記憶體管理單元102,從而可能透過一或多個開關來選路該封包。在時間TE 處,記憶體管理單元102使用位於該總和檢查碼中之簽名來驗證位址且確保已修改或損壞該位址、該簽名或兩者且確保應服務該請求。 在一些實施方案中,該回應封包可包含指示是否存在該總和檢查碼之設定資料。例如,一組件或裝置通常可使用該總和檢查碼來判定該回應封包是否已損壞。在此等實施方案中,防止任何開關或將該封包自請求裝置A 104a傳遞至記憶體管理單元102之其他組件使用該總和檢查碼來判定該封包是否已損壞(例如,該設定資料可指示不存在該總和檢查碼,儘管簽名儲存於總和檢查碼位置中)。記憶體管理單元102或環境中之另一組件可使用任何適當方法來確保將一封包傳遞至記憶體管理單元102或自記憶體管理單元102傳遞至請求裝置A 104a之中間組件不使用總和檢查碼欄位中之簽名來判定該封包是否已損壞。 在一些實施方案中,記憶體管理單元102可使用一簽名及一封包之內容產生一總和檢查碼且將該總和檢查碼儲存於該封包中。接著,記憶體管理單元102可使用該總和檢查碼來確認該封包之內容及位址之簽名兩者。例如,當記憶體管理單元102自裝置A 104a接收一記憶體存取之一請求時,記憶體管理單元102可使用該請求中之位址產生一簽名且使用該簽名及該位址來產生一新總和檢查碼。若該新總和檢查碼匹配包含在該請求中之總和檢查碼,則記憶體管理單元102服務該請求或使該請求被服務(例如)且驗證該位址與該封包之完整性兩者。若該新總和檢查碼不匹配包含在該請求中之總和檢查碼,則記憶體管理單元102確保不服務該請求。 當記憶體管理單元102判定一實體位址之一記憶體存取請求不包含一簽名時,記憶體管理單元102不服務該請求。例如,當一惡意裝置發送一實體位址或一欺騙實體位址(例如,一無效實體位址)至記憶體管理單元102以用於存取對應於該實體位址之記憶體,且記憶體管理單元102判定該惡意裝置在該請求中不包含一簽名時,記憶體管理單元102可重設該惡意裝置或暫停該惡意裝置或引起該惡意裝置之重設或暫停。在判定該請求是否包含一簽名之前,記憶體管理單元102可判定該請求中之位址不是一虛擬位址,例如,如下文所更詳細描述。裝置間請求 在一些實例中,當記憶體管理單元102服務一請求時,記憶體管理單元102可在時間TJ 處提供該請求至另一裝置B 104b。在此等實例中,該請求可為一讀取請求或一寫入請求。記憶體管理單元102可在發送至另一裝置B 104b之請求中提供所請求之位址之簽名。例如,當記憶體管理單元102將自裝置A 104a接收之請求轉送至另一裝置B 104b時,所轉送之請求可包含所請求之位址或(例如,裝置A 104a之)目的地位址之簽名。記憶體管理單元102可在該請求之位址欄位、該請求之一標頭或兩者中包含該簽名。 在時間TK 處,另一裝置B 104b判定回應於該請求之資料且提供一回應至記憶體管理單元102。另一裝置B 104b在該回應中(例如,在本體、該標頭或兩者中)包含自該請求之簽名。例如,另一裝置B 104b可在該回應之一目的地位址、該回應之一總和檢查碼、該回應之一本體或此等之兩者或兩者以上之一組合中包含簽名,如下文所更詳細描述。 在時間TL 處,記憶體管理單元102接收該回應且使用該簽名來驗證該回應。例如,記憶體管理單元102使用上文所描述之方法之一者來驗證該回應以唯一地將該回應(例如,該目的地位址)連接至請求裝置A 104a。記憶體管理單元102可驗證(例如,請求裝置A 104a之)目的地位址、所請求之資料之位址或兩者。 在驗證該回應之後,記憶體管理單元102提供該回應至裝置A 104a。當記憶體管理單元102判定該回應無效時,記憶體管理單元102不提供該回應至在該回應中識別之一目的地。記憶體管理單元102可不提供該回應至該目的地(例如,可破壞該回應)以防止非請求回應被發送至裝置(例如,作為拒絕服務攻擊之一部分)。 在一些實施方案中,當將一請求轉送至另一裝置時,記憶體管理單元102可在時間TJ 處提供一請求至另一裝置B 104b,該請求包含將服務該請求之請求裝置A 104a及另一裝置B 104b兩者之一簽名。例如,記憶體管理單元102可使用該裝置之對應秘密值、對應匯流排數目及待存取之記憶體位置之實體位址來判定兩個簽名(每個簽名用於裝置之各者)。 接著,另一裝置B 104b將使用回應於該請求及在該回應之本體中、在一標頭中或兩者之兩個簽名(例如,一簽名在本體中而另一簽名在該標頭中)之資料來回應於該請求。接著,記憶體管理單元102使用兩個簽名來驗證該回應且回應於使用兩個簽名之驗證而僅提供該回應至該請求裝置。此可防止另一裝置B 104b發送對從未提供至另一裝置B 104b之請求之「回應」。 在一些實施方案中,當裝置可在一同級間環境中通信(例如,無需監測通信之一記憶體管理單元)時,裝置之各者可產生簽名且執行類似於上文所描述之驗證之驗證。例如,請求裝置A 104a可自另一裝置B 104b請求一虛擬位址之一位址轉換且回應於此而接收具有或不具有一位址之一簽名。接著,請求裝置A 104a可發送存取一對應實體記憶體位置之一請求至另一裝置B 104b且包含具有該請求之簽名。接著,另一裝置B 104b使用該簽名來驗證該請求且僅回應於判定該請求有效而回應該請求。 在一些實例中,自請求裝置A 104a發送之一請求可包含兩個簽名,另一裝置B 104b使用兩個簽名之一者來驗證該請求且請求裝置A 104a使用兩個簽名之另一者來驗證該回應。例如,第一簽名可包含在該請求之位址欄位中且另一裝置B 104b可使用該第一簽名來判定該請求是否有效。第二簽名可包含在該請求之一標頭中使得另一裝置B 104b在該回應中包含該第二簽名且請求裝置A 104a使用該第二簽名來判定該回應是否有效。當裝置A 104a接收(例如,在標頭中)不包含一簽名之一「回應」時,裝置A 104a (例如,藉由廢除資料)拒絕該回應。實例性程序流程 圖2係用於處理請求之一程序200之一流程圖。例如,程序200可由來自環境100之記憶體管理單元102使用。 一系統接收多個請求,各請求用於一實體位址(202)。例如,一記憶體管理單元、一開關或一根複合體接收該等請求。 對於各請求,該系統判定該請求是否包含一未知位址(204)。例如,當一組件(諸如一交換晶片)接收該請求時,該交換晶片可判定該交換晶片不辨識該位址且應將該位址轉送至一記憶體管理單元(例如,包含在該交換晶片或另一組件(諸如一根複合體)中)。 在一些實例中,當該交換晶片包含在一母板中時,該交換晶片可自一裝置(例如,一視訊卡)接收包含一位址之一請求。該交換晶片可判定其不知道包含在該請求中之該位址之一目的地(例如,該位址為一虛擬位址或包含一簽名)且判定該位址係未知的。接著,該交換晶片可判定是否將該請求轉送至一記憶體管理單元進行處理(例如,自一虛擬位址轉換成一實體位址或使用包含在該位址中之一簽名來驗證)。 回應於判定該請求不包含一未知位址,該系統處理該請求(206)。例如,該組件服務該請求(例如,藉由將該請求轉送至可具有回應於該請求之資料之另一裝置或組件)。 回應於判定該請求包含一未知位址,該系統發送該請求至一記憶體管理單元(208)。例如,該交換晶片發送該請求至該記憶體管理單元,此係因為該交換晶片不能夠使用該請求中之目的地位址來判定該請求之目的地。 該系統判定該請求是否包含一虛擬位址(210)。例如,該組件判定一位址類型欄位是否指示該請求包含一虛擬位址或一實體位址。在一些實例中,當該請求為一PCIe請求時,一位址類型欄位可具有非轉換虛擬位址之一第一編碼、一轉換請求(例如,包含一虛擬位址)之一第二編碼及一經轉換之位址(例如,包含一實體位址)之一第三編碼。 回應於判定該請求包含一虛擬位址,該系統使用該虛擬位址來判定一實體位址(212)。例如,該組件使用使虛擬位址與實體位址相關聯之一映射(例如,一頁表)來判定該實體位址。 該系統針對該實體位址產生一簽名(214)。例如,該組件使用本說明書中所描述之方法之一者來產生該簽名且將該簽名儲存於一位址欄位中(例如,一回應之本體、該回應之一標頭或兩者)。該組件可使用該裝置之一識別符來判定當產生該簽名時使用之一秘密值。在一些實例中,該組件可使用不特定於任何特定裝置之一通用秘密值(例如,特定於該組件)。 在一些實例中,該系統可使用該實體位址、該組件之一秘密值、該裝置之一秘密值、該裝置之一識別符(例如,一裝置匯流排數目、一讀取許可位元、一寫入許可位元、一執行許可位元或與該組件或該裝置或兩者相關聯之其他適當值)之兩者或兩者以上來產生一雜湊。該系統可使用該雜湊之所有或一部分作為該簽名(例如,一預定數目之最高有效位元或最低有效位元)。在一些實例中,該裝置之該識別符可特定於該裝置之功能。在一些實施方案中,該裝置之該識別符可為(例如,如藉由PCIe所指定之)該裝置之匯流排數目、裝置數目或功能數目之一或多者。 在一些實施方案中,該組件可:針對一實體位址產生一簽名;將該簽名級聯至該實體位址且加密級聯簽名及實體位址。該組件可將經加密之級聯簽名及實體位址置於該回應中。在一些實例中,該組件可:加密該實體位址;針對經加密之實體位址產生一簽名且將經加密之實體位址或該實體位址之明文版本與該簽名一起置於一回應中。該實體位址及經加密之實體位址之簽名可位於該回應之相同欄位中(例如,該本體)或可位於不同欄位中(例如,加密或明文之該實體位址可位於該本體中而該簽名可位於該回應之一標頭中)。 該系統提供包含該簽名之一回應(216)。例如,該組件提供該回應至該請求裝置。該回應可包含具有一簽名之一明文實體位址(例如,位於該回應之本體欄位中或與該簽名一起位於一標頭中)。該回應可包含具有一簽名之一經加密之實體位址(例如,位於該回應之本體欄位中或與該簽名一起位於一標頭中)。該回應可在該回應之本體中包含一經加密之實體位址使得該實體位址之一解密版本在該實體位址之一預定部分中包含一已知良好值(例如,明文位址之最前N 個位元必須全部為零位)。在一些實例中,N 為三十二個位元。 回應於判定該請求不包含一虛擬位址,該系統判定是否使用一對應簽名來驗證該請求之實體位址(218)。例如,該組件針對該實體位址產生一簽名,且比較新產生之簽名與包含於該請求中之一簽名,以判定兩個簽名是否相同。 在一些實施方案中,該組件可使用經包含於該請求中之該請求裝置之一識別符來判定該裝置之一秘密值,或當該組件不具有每個裝置秘密值時,該組件可使用一通用秘密值。接著,該組件使用該組件先前用以產生經包含於該請求中之簽名(例如,使用該秘密值)的相同方法來針對該實體位址產生一簽名,且接著比較新產生之簽名與經包含於該請求中之簽名,以判定是否驗證該實體位址及該請求。 在一些實施方案中,當該簽名為一位址中之一預定數目的零位時,該組件可判定已藉由解密經包含於該請求中之一經加密的實體位址,且比較該解密位址中之若干連續零位(例如,在該實體位址之開始或末端處)與一已知值(例如,指定應位於該位址中之連續零位之數目)來驗證該位址。若該解密位址中之連續零位的數目與該已知值相同,則該組件判定該簽名及該請求已得到驗證。若該解密位址中之連續零位的數目與該已知值不同,則該組件判定該簽名及該請求未經驗證。 回應於判定使用該對應簽名來驗證該請求之該實體位址,該系統服務該請求(220)。例如,該組件將該請求轉送至一目的地裝置或組件。 回應於判定不使用該對應簽名來驗證該請求之該實體位址,該系統不服務該請求(222)。例如,該組件可:拒絕該請求;重設或暫停發送該請求至該組件之該裝置;記錄識別該請求之一錯誤(例如,記錄在一錯誤記錄中);改變該請求裝置之一秘密值;停用該請求裝置對一記憶體之存取,或此等之兩者或兩者以上之任何組合。在一些實施方案中,一交換晶片或一根複合體回應於來自一記憶體管理單元之一訊息而停用該請求裝置對一記憶體之存取(例如,當該記憶體管理單元判定不應服務該請求時)。 上文所描述之程序200中之步驟的順序僅為繪示性的,且可以不同順序來執行請求的處理。例如,在接收一虛擬位址至一實體位址之一轉換之一請求(例如,步驟202)之前,該系統可針對該實體位址產生一簽名(例如,執行步驟214)。 在一些實施方案中,程序200可包含額外步驟、更少步驟,或該等步驟的一些步驟可被分成多個步驟。例如,該組件可在不執行剩餘步驟的情況下執行步驟202、210及218至222。在一些實例中,該組件可在不執行剩餘步驟的情況下執行步驟202及210至216。在一些實施方案中,程序200可不包含步驟204至208。 在一些實施方案中,一第一組件(例如,一交換晶片)可首先接收該等請求之各者,且接著將該等請求轉送至一第二組件(例如,一記憶體管理單元) (例如)作為步驟202之部分。該第一組件可判定該等請求之各者包含一未知位址(例如,一虛擬位址或具有一簽名之一位址),且接著提供該請求至該第二組件(例如,一記憶體管理單元)。在一些實施方案中,一第一組件可執行步驟202及204,且視情況而定對於該等請求之一些執行步驟206,且接著將未使用步驟206處理之請求轉送至一第二組件進行處理。該第一組件及該第二組件可通信以服務或不服務該請求(例如,當拒絕該請求或暫停一請求裝置時)。 在一些實施方案中,當一交換晶片中之一記憶體管理單元執行程序200中的步驟時,於發送該請求至另一裝置或組件進行處理之前,該記憶體管理單元可將包含一簽名之一請求轉換成一「標準」請求(例如,不具有一簽名)。例如,在判定已驗證一請求之後,該記憶體管理單元可轉換該請求以僅包含實體位址而無簽名,且將經轉換之請求轉送至另一裝置或組件(例如,一根複合體)進行處理。在一些實例中,於將該請求轉送至一目的地裝置之前,一記憶體管理單元將該請求轉換成不具有一簽名之一標準請求(無論該記憶體管理單元位於一系統中之何處(例如,該記憶體管理單元是否為一交換晶片、一根複合體或另一組件之部分))。在發送該請求至另一裝置(例如,一根複合體)之前,該記憶體管理單元可將包含該請求之一封包標記為「位址已轉換」。選用實施方案細節 在一些實施方案中,一記憶體管理單元可平衡一裝置在首次嘗試時可成功判定一簽名之機率與該簽名(例如,一更短簽名)之長度。例如,若該記憶體管理單元使用一密碼編譯程序且該簽名為N個位元長,則該裝置具有猜中取決於所用之密碼編譯程序而不應允許該裝置存取之一位址或許可之一有效簽名之一
Figure 02_image001
機率。該裝置可儲存有效位址及有效簽名且使用該等有效位址及有效簽名使某種形式之已知明文攻擊可用。 在一些實例中,該記憶體管理單元可截斷位址(例如,藉由移除非必要位元(諸如零位))。例如,當該記憶體管理單元使用六十四位元位址時,該記憶體管理單元可產生一個十六位元簽名(例如,藉由自一對應位址移除最前面十六個位元)且針對該位址使用四十八個位元。當接收存取一記憶體位置之一請求時,該記憶體管理單元可使用該位址之四十八個位元產生一新簽名且比較該新簽名與與該位址包含在一起之簽名以判定兩個簽名是否匹配。若兩個簽名匹配,則該記憶體管理單元可處理該請求。若兩個簽名不匹配,則該記憶體管理單元不處理該請求(例如)且可重設該請求裝置、暫停該請求裝置或既重設該請求裝置亦暫停該請求裝置。 在一些實施方案中,當一組件(例如,一PCIe交換晶片)藉由位址選路記憶體存取請求時,執行該選路之該組件可執行驗證。在一些實例中,當執行該選路之該組件接收一未知位址(例如,含有一簽名及一截斷位址)時,執行該選路之該組件可將該未知位址轉送至一記憶體管理單元(例如,包含該記憶體管理單元之一PCIe根複合體)進行處理。 在一些實施方案中,一環境在一位址之位元與一簽名之位元之間可包含一可組態劃分使得該可組態劃分可經調整以達成一裝置猜中一有效簽名之一所要機率。例如,在包含1TB隨機存取記憶體(RAM)之一環境中,一記憶體管理單元可針對該簽名使用二十四個位元。該記憶體管理單元可基於該環境中之RAM或另一記憶體之大小來調整該簽名之大小。例如,當最初開啟包含該記憶體管理單元之一電腦時,該記憶體管理單元可判定該簽名之大小。 在一些實施方案中,在接收一虛擬位址至一對應實體位址之一轉換之一請求之後,一記憶體管理單元產生一簽名。在一些實施方案中,當提供一裝置對應虛擬位址或回應於接收該裝置之虛擬位址之識別時,一記憶體管理單元針對所有實體位址產生簽名。在此等實施方案中,該記憶體管理單元可將簽名儲存於一位址映射中。在一些實例中,該記憶體管理單元可提供該位址映射至該裝置且在該位址映射之位址欄位中包含簽名。 在一些實施方案中,一記憶體管理單元提供一單個簽名至一裝置(例如,回應於一對應實體位址之一請求)。在一些實施方案中,一記憶體管理單元每次提供多個簽名至一裝置(例如,針對實體位址之一區塊或針對該裝置存取之所有實體位址)。該記憶體管理單元可回應於偵測一裝置而提供多個簽名至該裝置。 在一些實施方案中,一記憶體管理單元可回應於一位址轉換請求而僅提供一簽名至一請求裝置(例如,當加密該位址時)。在一些實施方案中,一記憶體管理單元可回應於一位址轉換請求而提供一簽名與一位址兩者至一請求裝置。 在一些實施方案中,該記憶體管理單元可使用上文所描述之方法之兩者或兩者以上來產生一簽名。例如,該記憶體管理單元可將一簽名之部分儲存於一封包之一位址欄位中且將該簽名之部分儲存於一標頭欄位(例如,一總和檢查碼欄位)中。在一些實例中,該記憶體管理單元可:判定前導零之數目;加密該位址;判定經加密之位址之一簽名且將該簽名儲存於包含本體中之經加密位址之一封包之一標頭欄位(例如,一總和檢查碼欄位)中。當判定是否針對一存取請求來驗證該位址時,該記憶體管理單元可:產生一新簽名;比較該新簽名與包含在該存取請求中之簽名;解密該位址;判定該解密位址中之前導零之數目且僅當該解密位址中之前導零之數目正確且該新簽名與包含在該存取請求中之簽名相同時服務該請求。 在一些實施方案中,除一記憶體管理單元或一輸入/輸出記憶體管理單元以外的一組件可產生及驗證簽名或執行上述步驟之一些步驟。例如,一開關、一根複合體或一中央處理單元可產生及驗證簽名。在一些實例中,一單個類型之組件(例如,一記憶體管理單元)可產生簽名且多個不同類型之組件(例如,記憶體管理單元與開關兩者)可驗證該等簽名。 一實體系統可包含產生及驗證位址之多個記憶體管理單元及其他組件。在此等實例中,特定組件可產生、驗證(或兩者)特定裝置之位址。在一些實施方案中,組件可共用一特定裝置之秘密值以允許多個組件產生、驗證(或兩者)該特定裝置之簽名。 在一些實施方案中,一組件可包含一單個裝置之多個密鑰。例如,該組件可使用不同密鑰來產生及驗證該裝置之不同位址。當一系統移除該裝置對該等位址之一些位址之存取時,該組件移除或改變該等位址之密鑰,從而可能亦使其他位址無效。為了最小化無效位址之數目,該組件使用多個密鑰使得僅具有相同密鑰之位址無效,且若該裝置仍存取該等位址之一些位址,則可能需要對位址進行重新簽名,而使用其他密鑰簽名及驗證之位址不需要重新簽名。 例如,當一裝置為一圖形處理單元或使用一較大記憶體分配之另一裝置時,該裝置可具有大量頁面,該等頁面之一部分係持久的且該等頁面之另一部分迅速翻動且快速無效。例如,該裝置可對該部分持續存取,此係由於廢料收集。在此等實例中,一組件可針對(例如)該裝置將繼續存取之位址之一第一子集使用一第一密鑰且針對(例如)快速無效之位址之一第二子集使用一第二密鑰。接著,當該裝置不再存取該等位址之一或多者時該組件可改變該第二密鑰以防止該裝置存取藉由位址之該第二子集中之位址識別之對應記憶體位置。 該組件可使用兩個以上密鑰來實現密鑰旋轉之進一步改良。例如,該組件可針對該裝置將繼續存取之位址之一第一子集使用一第一密鑰或兩個第一密鑰且針對該裝置將僅暫時存取或當記憶體由其他組件或裝置覆寫時對應記憶體位置之內容快速改變之位址之一第二子集使用十個第二密鑰。該組件可比一或若干第一密鑰更快速旋轉該第二密鑰或該等第二密鑰之任一者。 該組件可在一簽名中包含一索引識別符以判定針對一特定位址使用何種密鑰。例如,該組件可將密鑰保持在一陣列中且當產生一簽名時在一簽名中(例如,在該簽名之開始或末端處)包含該索引識別符。當該組件接收一記憶體存取請求時,該組件判定來自該簽名之該索引識別符且使用該索引識別符來判定包含當驗證該記憶體存取請求時使用之密鑰之該陣列中之一位置(例如)及包含在該記憶體存取請求中之位址。 在一些實例中,該組件可使用指示針對一特定位址使用何種密鑰之一頁表中之一識別符(例如,一頁表項目)。當針對一位址產生一簽名時該組件可設定該識別符且使用該識別符來判定當驗證該位址時使用何種密鑰。當針對各裝置使用一單個密鑰時或當針對一或多個裝置使用多個密鑰時(或兩者),該組件可使用該識別符(例如)來判定針對各裝置使用何種密鑰。 在一些實施方案中,一組件可針對一單個裝置使用一索引替代多個密鑰以允許使一裝置存取之位址之一子集無效同時允許該裝置繼續存取位址之另一子集。例如,一簽名之一部分可為該組件用以判定該裝置是否存取一對應記憶體位置之一索引。當該組件接收一記憶體存取請求時,該組件判定一緩衝器中之一對應位置是否含有一預定值。若該緩衝器中之該對應位置含有該預定值,且該組件驗證該簽名,則該組件允許該裝置存取該對應記憶體位置。若該緩衝器中之該對應位置不含有該預定值,或該組件不驗證該簽名,則該組件不服務該記憶體存取請求(例如,該組件防止該裝置存取該對應記憶體位置)。 在一些實例中,該組件可保留位址之一第一組索引給該裝置將繼續存取之頁面且保留位址之一第二組索引給對於該裝置快速無效之頁面。該第二組索引中之索引之數目可大於該第一組索引中之索引之數目。 該組件可使用一位元向量,其中每個索引值一個位元。為了允許該裝置存取與一特定索引(例如,其包含表示該位元向量中之該特定索引之一位置之一特定索引值)相關聯之記憶體位置,該組件將該位元向量中之該特定索引之位置之一值設定為一預定值(例如,1)。當該組件使用密鑰針對該裝置產生一簽名時,該組件在該簽名中(例如,在該簽名之開始或末端處)包含該特定索引值。當該組件自該裝置接收一記憶體存取請求時,該組件判定對應於該特定索引值(自包含在該記憶體存取請求中之簽名擷取)之該位元向量中之一位置是否為該預定值。當該位元向量中之該位置為該預定值且該組件驗證該記憶體存取請求時,該組件允許服務該記憶體存取請求。當該位元向量中之該位置不是該預定值或該組件不驗證該記憶體存取請求時,該組件防止服務該記憶體存取請求。 在一些實例中,該組件可使用一單個裝置之多個密鑰與一索引兩者來判定該單個裝置是否應存取一特定記憶體位置。例如,該組件可使用一頁表項目中之一第一位元來指示何種密鑰用以針對一對應位址產生一簽名及該頁表中之一第二位元來指示何種索引用以允許該裝置存取對應記憶體位置。 在一些實施方案中,當一裝置本地快取位址時,一組件可藉由發送一ATS無效訊息或任何其他適當類型之訊息至該裝置而使一位址無效(例如,對於該裝置不再存取之一記憶體位置)。在一些實施方案中,一組件可使一位址無效以改變與該位址相關聯之一密鑰、一索引或兩者。 例如,當一組件使一裝置存取之位址之一第一子集中之各位址與一特定密鑰、一特定索引或兩者相關聯且判定該裝置不應能夠存取藉由來自位址之該第一子集之一第一位址識別之一記憶體位置時,該組件可改變該密鑰、該索引值或兩者。為了允許該裝置繼續存取藉由位址之該第一子集中之其他位址識別之一或多個其他記憶體位置,該組件:針對位址(例如,一第二位址)發送一無效訊息至該裝置;針對位址產生一新簽名(若需要);或將該索引改變為一新索引值(或兩者)且發送另一訊息至具有該新簽名、該新索引值(或兩者)之該裝置。接著,假定該新密鑰、該新索引(或兩者)仍有效,當該組件接收其他位址之一者(例如,該第二位址)之一存取請求時,該組件驗證該存取請求。該組件可指派其他位址至最初可或可不包含其他位址之位址之一第二子集(例如,該組件可指派該第二位址至已用於一第三位址或尚未用於任何位址之一密鑰或一索引或兩者)。額外實施方案細節 本說明書中所描述之標的之實施例及功能操作可在數位電子電路中實施、在有形體現之電腦軟體或韌體中實施、在電腦硬體(其包含本說明書中所揭示之結構及其結構等效物)中實施或在其等之一或多者之組合中實施。本說明書中所描述之標的之實施例可實施為一或多個電腦程式(即編碼在一有形非暫時性程式載體上以由資料處理設備執行或以控制資料處理設備之操作的電腦程式指令之一或多個模組)。替代地或另外,該等程式指令可編碼在一人工產生之傳播信號(例如一機器產生之電信號、光學信號或電磁信號,其經產生以編碼資訊用於傳輸至適合接收器設備以由一資料處理設備執行)上。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機存取記憶體裝置或串行存取記憶體裝置或其等之一或多者之一組合。 術語「資料處理設備」是指資料處理硬體且涵蓋用於處理資料的所有種類之設備、裝置及機器(其等包含(舉實例而言)一可程式化處理器、一電腦或多個處理器或電腦)。該設備亦可為或進一步包含專用邏輯電路(例如一FPGA (現場可程式閘陣列)或一ASIC (特定應用積體電路))。除硬體之外,該設備可視情況包含產生電腦程式之一執行環境之碼(例如構成處理器韌體之碼)、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合。 一電腦程式(其亦可稱為或描述為一程式、軟體、一軟體應用、一模組、一軟體模組、一指令碼或程式碼)可以任何形式之程式設計語言(其包含編譯或解釋語言,或宣告或程序式語言)寫入且該電腦程式可以任何形式(其包含作為一獨立程式或作為一模組、組件、副常式或適於在一計算環境中使用的其他單元)部署。一電腦程式可但不需要對應於一檔案系統中之一檔案。一程式可儲存於保持其他程式或資料(例如儲存於一標示語言文件中、儲存於專用於所討論之程式之一單一檔案中、或儲存於多個協調檔案(例如儲存一或多個模組、副程式或程式碼之部分的檔案)中的一或多個指令碼)之一檔案之一部分中。一電腦程式可經部署以在一電腦或多個電腦(其等位於一位置處或跨越多個位置分佈且藉由一通信網路互連)上執行。 本說明書中所描述之程序及邏輯流程可藉由執行一或多個電腦程式以藉由對輸入資料進行操作且產生輸出來執行功能的一或多個可程式電腦來執行。該等程序及邏輯流程亦可藉由專用邏輯電路(例如一FPGA (場可程式閘陣列)或一ASIC (特定應用積體電路))執行且設備亦可實施為專用邏輯電路(例如一FPGA (場可程式閘陣列)或一ASIC (特定應用積體電路))。 適於執行一電腦程式之電腦包含(舉實例而言)通用或專用微處理器或兩者或任何其他種類之中央處理單元。通常,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之基本元件為用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。通常,一電腦亦將包含或可操作地耦合以自用於儲存資料之一或多個大容量儲存裝置(例如磁碟、磁光碟或光碟)接收資料或將資料轉移至該一或多個大容量儲存裝置或兩者。然而,一電腦不需要具有此等裝置。再者,一電腦可嵌入另一裝置(例如(僅舉幾例)一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲主控台、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如一通用串列匯流排(USB)快閃驅動器)中。 適於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,其等包含(舉實例而言):半導體記憶體裝置(例如EPROM、EEPROM及快閃記憶體裝置);磁碟(例如內部硬碟或可抽換式磁碟);磁光碟;及CD-ROM磁碟及DVD-ROM磁碟。處理器及記憶體可由專用邏輯電路補充或併入專用邏輯電路中。 為提供與一使用者之互動,本說明書中所描述之標的之實施例可在具有用於顯示資訊給該使用者之一顯示裝置(例如,一CRT (陰極射線管)或LCD (液晶顯示器)監視器)及該使用者可藉由其提供輸入至該電腦之一鍵盤及指標裝置(例如,一滑鼠或一軌跡球)之一電腦上實施。其他種類之裝置亦可用以提供與一使用者之互動;例如,提供至該使用者之回饋可為任何形式之感覺回饋(例如,視覺回饋、聽覺回饋或觸覺回饋);且可以任何形式(包含聲波輸入、語音輸入或觸覺輸入)接收來自該使用者之輸入。另外,一電腦可藉由發送文件至由一使用者使用之一裝置且自該裝置接收文件來與該使用者互動;例如,藉由回應於自一使用者之裝置上之一網頁瀏覽器接收之請求而發送網頁至該網頁瀏覽器。 此一類型之電腦之一實例在圖3中展示,其展示一通用電腦系統300之一示意圖。根據一實施方案,系統300可用於相關聯於先前描述之電腦實施方法之任一者而描述的操作。系統300包含一處理器310、一記憶體320、一儲存裝置330及一輸入/輸出裝置340。組件310、320、330及340之各者使用一系統匯流排350互連。處理器310能夠處理用於在系統300內執行的指令。在一實施方案中,處理器310為一單執行緒處理器。在另一實施方案中,處理器310為一多執行緒處理器。處理器310能夠處理儲存於記憶體320中或儲存於儲存裝置330上的指令以針對輸入/輸出裝置340上的一使用者介面顯示圖形資訊。 記憶體320儲存系統300內的資訊。在一實施方案中,記憶體320為一電腦可讀媒體。在一實施方案中,記憶體320為一揮發性記憶體單元。在另一實施方案中,記憶體320為一非揮發性記憶體單元。 儲存裝置330能夠為系統300提供大容量儲存器。在一實施方案中,儲存裝置330為一電腦可讀媒體。在各種不同實施方案中,儲存裝置330可為一軟磁碟裝置、一硬碟裝置、一光碟裝置或一磁帶裝置。 輸入/輸出裝置340為系統300提供輸入/輸出操作。在一實施方案中,輸入/輸出裝置340包含一鍵盤及/或指標裝置。在另一實施方案中,輸入/輸出裝置340包含用於顯示圖形使用者介面的一顯示單元。 儘管本說明書含有諸多特定實施方案細節,但此等細節不應視為可申請之範疇之限制,而應視為特定實施例特有之特徵之描述。本說明書中在單獨實施例之背景內容中所描述之特定特徵亦可在一單一實施例中組合實施。相反,在一單一實施例之背景內容中所描述之各種特徵亦可在多個實施例中單獨或以任何適合子組合實施。再者,儘管特徵可在上文描述為以特定組合起作用且甚至最初如此申請,但來自一申請組合之一或多個特徵在一些情況中可自該組合去除,且該申請組合可係關於一子組合或一子組合之變動。 類似地,儘管在圖式中以一特定順序描繪操作,但此不應理解為要求此等操作以所展示之該特定順序或以循序次序執行,或要求執行所繪示之所有操作以達成期望結果。在特定情況中,多工及並行處理可係有利的。再者,上文所描述之實施例中的各種系統模組及組件之分離不應理解為在所有實施例中皆要求此分離,且應瞭解所描述之程式組件及系統大體上可在一單一軟體產品中整合在一起或封裝成多個軟體產品。 已描述標的之特定實施例。其他實施例在隨附申請專利範圍之範疇內。例如,申請專利範圍中所列舉之動作可以一不同順序執行且仍達成期望結果。作為一實例,附圖中所描繪之程序未必需要所展示之特定順序或循序次序來達成期望結果。在一些情況中,多工及並行處理可係有利的。
100‧‧‧環境102‧‧‧記憶體管理單元104a至104b‧‧‧裝置A至裝置B106‧‧‧位址映射108‧‧‧簽名類型108a‧‧‧位址108b‧‧‧位址108c‧‧‧位址110‧‧‧記憶體200‧‧‧程序202‧‧‧步驟204‧‧‧步驟206‧‧‧步驟208‧‧‧步驟210‧‧‧步驟212‧‧‧步驟214‧‧‧步驟216‧‧‧步驟218‧‧‧步驟220‧‧‧步驟222‧‧‧步驟300‧‧‧通用電腦系統310‧‧‧處理器320‧‧‧記憶體330‧‧‧儲存裝置340‧‧‧輸入/輸出裝置350‧‧‧系統匯流排TA‧‧‧時間TB‧‧‧時間TC‧‧‧時間TD‧‧‧時間TE‧‧‧時間TF‧‧‧時間TJ‧‧‧時間TK‧‧‧時間TL‧‧‧時間
圖1係一環境之一實例,其中一記憶體管理單元針對實體位址產生簽名且將簽名提供至多個裝置。 圖2係用於處理請求之一程序之一流程圖。 圖3係可結合本文獻中所描述之電腦實施方法一起使用的一計算系統之一方塊圖。 各種圖式中的相同元件符號及名稱指示相同元件。
200‧‧‧程序
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟
208‧‧‧步驟
210‧‧‧步驟
212‧‧‧步驟
214‧‧‧步驟
216‧‧‧步驟
218‧‧‧步驟
220‧‧‧步驟
222‧‧‧步驟

Claims (19)

  1. 一種電腦實施方法,其包括:藉由一組件,自一裝置接收一請求,該請求包含一實體位址及一錯誤偵測碼值且係請求對由該實體位址識別之一記憶體位置之存取;藉由該組件使用該實體位址來針對該實體位址產生一簽名,其中該請求並未包含該簽名;藉由該組件使用該簽名及該錯誤偵測碼值來判定是否允許該裝置對由該實體位址識別之該記憶體位置之存取;及回應於使用該簽名及該錯誤偵測碼值來判定允許該裝置對由該實體位址識別之該記憶體位置之存取,而藉由該組件服務(servicing)該請求。
  2. 如請求項1之方法,其中使用該簽名及該錯誤偵測碼值來判定是否允許該裝置對由該實體位址識別之該記憶體位置之存取包括:使用該請求及該簽名來產生一第二錯誤偵測碼值;藉由比較該第二錯誤偵測碼值與該錯誤偵測碼值來判定該第二錯誤偵測碼值是否與該錯誤偵測碼值係相同值;及回應於判定該第二錯誤偵測碼值與該錯誤偵測碼值係相同值而判定允許該裝置對由該實體位址識別之該記憶體位置之存取。
  3. 如請求項2之方法,其中使用該請求及該簽名來產生該第二錯誤偵測碼值包括:使用該裝置之一識別符來判定該裝置之一秘密值;使用該實體位置及該秘密值來產生一雜湊(hash)值;及使用該雜湊值之至少一部分來產生該簽名。
  4. 如請求項1之方法,其中服務該請求包括將該請求轉送至一第二組件。
  5. 如請求項4之方法,其包括在將該請求轉送至該第二組件之前更新該請求中之設定資料以指示該請求並未包含一總和檢查碼(checksum)。
  6. 如請求項4之方法,其包括:自該第二組件接收一回應;及將該回應之至少一部分提供至該裝置。
  7. 如請求項1之方法,其包括判定該請求是否包含一虛擬位址,其中係回應於判定該請求並未包含一虛擬位址而使用該實體位址來針對該實體位址產生該簽名。
  8. 一種用於記憶體管理之系統,其包括一資料處理設備及一非暫時性電腦可讀儲存媒體,其與該資料處理設備資料通信且儲存可藉由 該資料處理設備執行之指令,且在此執行之後致使該資料處理設備執行操作,該等操作包括:自一裝置接收一請求,該請求包含一實體位址及一錯誤偵測碼值且係請求對由該實體位址識別之一記憶體位置之存取;使用該實體位址來針對該實體位址產生一簽名,其中該請求並未包含該簽名;使用該簽名及該錯誤偵測碼值來判定是否允許該裝置對由該實體位址識別之該記憶體位置之存取;及回應於使用該簽名及該錯誤偵測碼值來判定允許該裝置對由該實體位址識別之該記憶體位置之存取而服務該請求。
  9. 如請求項8之系統,其中使用該簽名及該錯誤偵測碼值來判定是否允許該裝置對由該實體位址識別之該記憶體位置之存取包括:使用該請求及該簽名來產生一第二錯誤偵測碼值;藉由比較該第二錯誤偵測碼值與該錯誤偵測碼值來判定該第二錯誤偵測碼值是否與該錯誤偵測碼值係相同值;及回應於判定該第二錯誤偵測碼值與該錯誤偵測碼值係相同值而判定允許該裝置對由該實體位址識別之該記憶體位置之存取。
  10. 如請求項9之系統,其中使用該請求及該簽名來產生該第二錯誤偵測碼值包括:使用該裝置之一識別符來判定該裝置之一秘密值; 使用該實體位置及該秘密值來產生一雜湊值;及使用該雜湊值之至少一部分來產生該簽名。
  11. 如請求項8之系統,其中服務該請求包括將該請求轉送至一組件。
  12. 如請求項11之系統,該等操作包括在將該請求轉送至該組件之前更新該請求中之設定資料以指示該請求並未包含一總和檢查碼。
  13. 如請求項11之系統,該等操作包括:自該組件接收一回應;及將該回應之至少一部分提供至該裝置。
  14. 如請求項8之系統,該等操作包括判定該請求是否包含一虛擬位址,其中係回應於判定該請求並未包含一虛擬位址而使用該實體位址來針對該實體位址產生該簽名。
  15. 一種非暫時性電腦可讀儲存媒體,其儲存可藉由一資料處理設備執行之指令,且在此執行之後致使該資料處理設備執行操作,該等操作包括:自一裝置接收一請求,該請求包含一實體位址、一錯誤偵測碼值及指示該請求並未包含一總和檢查碼之設定資料,且係請求對由該實體位址識別之一記憶體位置之存取; 回應於接收該請求而判定該實體位址之一簽名,其中該請求並未包含該簽名且該錯誤偵測碼值係先前使用該簽名所產生;回應於判定該簽名而使用該請求及該簽名產生一第二錯誤偵測碼值;回應於產生該第二錯誤偵測碼值而藉由比較該第二錯誤偵測碼值與該錯誤偵測碼值來判定該第二錯誤偵測碼值是否與該錯誤偵測碼值係相同值;回應於判定該第二錯誤偵測碼值與該錯誤偵測碼值係相同值而服務該請求。
  16. 如請求項15之電腦可讀儲存媒體,其中使用該請求及該簽名來產生該第二錯誤偵測碼值包括:使用該裝置之一識別符來判定該裝置之一秘密值;使用該實體位置及該秘密值來產生一雜湊值;及使用該雜湊值之至少一部分來產生該簽名。
  17. 如請求項15之電腦可讀儲存媒體,其中服務該請求包括將該請求轉送至一組件。
  18. 如請求項17之電腦可讀儲存媒體,該等操作包括:自該組件接收一回應;及將該回應之至少一部分提供至該裝置。
  19. 如請求項15之電腦可讀儲存媒體,其中回應於接收該請求而判定該實體位址之該簽名包括:回應於接收該請求而判定該請求是否包含一虛擬位址;及回應於判定該請求並未包含一虛擬位址而使用該實體位址來針對該實體位址產生該簽名。
TW106123863A 2015-05-20 2016-05-13 使用簽名之位址驗證 TWI720229B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562164288P 2015-05-20 2015-05-20
US62/164,288 2015-05-20
US14/867,250 2015-09-28
US14/867,250 US9749319B2 (en) 2015-05-20 2015-09-28 Address validation using signatures

Publications (2)

Publication Number Publication Date
TW201734792A TW201734792A (zh) 2017-10-01
TWI720229B true TWI720229B (zh) 2021-03-01

Family

ID=56027260

Family Applications (3)

Application Number Title Priority Date Filing Date
TW108142552A TWI726496B (zh) 2015-05-20 2016-05-13 用於驗證記憶體存取請求之系統、電腦實施方法及非暫時性電腦可讀儲存媒體
TW105114972A TWI596475B (zh) 2015-05-20 2016-05-13 使用簽名之位址驗證
TW106123863A TWI720229B (zh) 2015-05-20 2016-05-13 使用簽名之位址驗證

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW108142552A TWI726496B (zh) 2015-05-20 2016-05-13 用於驗證記憶體存取請求之系統、電腦實施方法及非暫時性電腦可讀儲存媒體
TW105114972A TWI596475B (zh) 2015-05-20 2016-05-13 使用簽名之位址驗證

Country Status (10)

Country Link
US (7) US9749319B2 (zh)
EP (3) EP3298498B1 (zh)
CN (2) CN107438850B (zh)
DE (2) DE202016107447U1 (zh)
DK (2) DK3298498T3 (zh)
FI (1) FI3489835T3 (zh)
GB (2) GB2553228C (zh)
HK (1) HK1245918B (zh)
TW (3) TWI726496B (zh)
WO (1) WO2016187029A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749319B2 (en) 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10157153B2 (en) * 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
US10241706B2 (en) * 2016-05-20 2019-03-26 Renesas Electronics Corporation Semiconductor device and its memory access control method
US10255202B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Multi-tenant encryption for storage class memory
US11082523B2 (en) * 2017-02-09 2021-08-03 International Business Machines Corporation System, method and computer program product for a distributed virtual address space
US10324858B2 (en) * 2017-06-12 2019-06-18 Arm Limited Access control
US11030117B2 (en) * 2017-07-14 2021-06-08 Advanced Micro Devices, Inc. Protecting host memory from access by untrusted accelerators
US10860382B1 (en) * 2017-08-28 2020-12-08 Amazon Technologies, Inc. Resource protection using metric-based access control policies
FR3071350A1 (fr) * 2017-09-15 2019-03-22 Stmicroelectronics (Rousset) Sas Controle d'acces a une memoire au moyen d'alias d'adresse
US10997066B2 (en) * 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
US11153094B2 (en) * 2018-04-27 2021-10-19 EMC IP Holding Company LLC Secure data deduplication with smaller hash values
DE102018112816A1 (de) * 2018-05-29 2019-12-05 Infineon Technologies Ag Adresscodierter Zugriff auf Speicher
US10853273B2 (en) * 2018-08-01 2020-12-01 Micron Technology, Inc. Secure memory system programming
US10853271B2 (en) * 2018-08-03 2020-12-01 Arm Limited System architecture with query based address translation for access validation
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11144631B2 (en) * 2018-09-11 2021-10-12 Apple Inc. Dynamic switching between pointer authentication regimes
US10852964B2 (en) * 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
GB2579591B (en) * 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
GB2579590B (en) 2018-12-04 2021-10-13 Imagination Tech Ltd Workload repetition redundancy
TWI681650B (zh) * 2018-12-14 2020-01-01 中華電信股份有限公司 不可否認的非集中式服務請求驗證系統、其方法及有效性驗證方法
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US10936506B2 (en) * 2019-02-22 2021-03-02 Chengdu Haiguang Integrated Circuit Design Co., Ltd. Method for tagging control information associated with a physical address, processing system and device
US10929310B2 (en) 2019-03-01 2021-02-23 Cisco Technology, Inc. Adaptive address translation caches
US11360910B2 (en) * 2019-06-28 2022-06-14 Intel Corporation Prevention of trust domain access using memory ownership bits in relation to cache lines
US10949358B2 (en) * 2019-09-25 2021-03-16 Intel Corporaton Secure address translation services using message authentication codes and invalidation tracking
US11507514B2 (en) * 2020-02-05 2022-11-22 Arm Limited Secure memory translations
US11775380B2 (en) * 2020-11-12 2023-10-03 Arm Limited Data processing systems
KR20220091955A (ko) * 2020-12-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 폐기 방법 및 그 메모리 시스템
US11693733B2 (en) 2021-01-21 2023-07-04 Kioxia Corporation Soft error detection and correction for data storage devices
US11663118B2 (en) * 2021-03-10 2023-05-30 Infineon Technologies Ag Address vectors for data storage elements
US11644980B2 (en) * 2021-06-22 2023-05-09 Intel Corporation Trusted memory sharing mechanism
US11651110B2 (en) * 2021-07-08 2023-05-16 Dell Products, L.P. Hardware device mutual authentication system and method for a baseboard management controller (BMC)
US11934567B2 (en) * 2021-09-07 2024-03-19 Nvidia Corporation Preventing unauthorized translated access using address signing
US11556482B1 (en) * 2021-09-30 2023-01-17 International Business Machines Corporation Security for address translation services
US11899593B2 (en) * 2021-12-21 2024-02-13 Intel Corporation Method and apparatus for detecting ATS-based DMA attack

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255124A1 (en) * 2003-04-03 2004-12-16 Stephan Courcambeck Protection of a program waiting to be executed in a memory used by a microprocessor
US6892304B1 (en) * 1997-10-09 2005-05-10 Phoenix Technologies Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US20060253708A1 (en) * 2005-05-10 2006-11-09 Stmicroelectronics S.A. Integrity control of a memory external to a processor
US8108321B2 (en) * 2006-01-12 2012-01-31 Urbissimo, Inc. System and method for shipping and delivering parcels to a virtual address
US20120303948A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Address translation unit, device and method for remote direct memory access of a memory

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
CN100487676C (zh) * 2001-03-07 2009-05-13 甲骨文国际公司 分布式共享磁盘系统中的磁盘写操作
US6722135B2 (en) * 2002-01-29 2004-04-20 General Electric Company Performance enhanced control of DLN gas turbines
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7487327B1 (en) 2005-06-01 2009-02-03 Sun Microsystems, Inc. Processor and method for device-specific memory address translation
US7757280B2 (en) * 2006-01-17 2010-07-13 International Business Machines Corporation Method and system for memory protection and security using credentials
JP2008102850A (ja) * 2006-10-20 2008-05-01 Toshiba Corp 情報処理装置及び情報処理方法
JP4588751B2 (ja) * 2007-11-13 2010-12-01 株式会社コナミデジタルエンタテインメント 記憶処理装置、記憶処理方法、ならびに、プログラム
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US8751795B2 (en) * 2010-09-14 2014-06-10 Mo-Dv, Inc. Secure transfer and tracking of data using removable non-volatile memory devices
US9355031B2 (en) 2011-04-21 2016-05-31 International Business Machines Corporation Techniques for mapping device addresses to physical memory addresses
US9703723B2 (en) * 2011-08-29 2017-07-11 International Business Machines Corporation Method and apparatus for performing mapping within a data processing system having virtual machines
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
US9749319B2 (en) 2015-05-20 2017-08-29 Google Inc. Address validation using signatures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892304B1 (en) * 1997-10-09 2005-05-10 Phoenix Technologies Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US20040255124A1 (en) * 2003-04-03 2004-12-16 Stephan Courcambeck Protection of a program waiting to be executed in a memory used by a microprocessor
US20060253708A1 (en) * 2005-05-10 2006-11-09 Stmicroelectronics S.A. Integrity control of a memory external to a processor
US8108321B2 (en) * 2006-01-12 2012-01-31 Urbissimo, Inc. System and method for shipping and delivering parcels to a virtual address
US20120303948A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Address translation unit, device and method for remote direct memory access of a memory

Also Published As

Publication number Publication date
US10027666B2 (en) 2018-07-17
US20160344731A1 (en) 2016-11-24
FI3489835T3 (fi) 2024-09-11
CN110134619B (zh) 2020-07-21
EP3739458A1 (en) 2020-11-18
GB2574280A (en) 2019-12-04
GB2553228B (en) 2018-09-19
CN107438850B (zh) 2019-03-08
CN110134619A (zh) 2019-08-16
GB201715263D0 (en) 2017-11-08
TWI726496B (zh) 2021-05-01
US20180324181A1 (en) 2018-11-08
GB2574280B (en) 2020-04-01
EP3489835A1 (en) 2019-05-29
US10326763B2 (en) 2019-06-18
TW201734792A (zh) 2017-10-01
TWI596475B (zh) 2017-08-21
TW202024927A (zh) 2020-07-01
CN107438850A (zh) 2017-12-05
US20220131861A1 (en) 2022-04-28
GB2553228C (en) 2021-03-17
GB201813182D0 (en) 2018-09-26
WO2016187029A1 (en) 2016-11-24
EP3298498B1 (en) 2019-03-13
US20230216848A1 (en) 2023-07-06
EP3489835B1 (en) 2024-07-03
US11223620B2 (en) 2022-01-11
DK3298498T3 (da) 2019-05-20
US11627131B2 (en) 2023-04-11
EP3298498A1 (en) 2018-03-28
US20170339145A1 (en) 2017-11-23
GB2553228A (en) 2018-02-28
US9749319B2 (en) 2017-08-29
DE112016002285T5 (de) 2018-02-15
US20200267148A1 (en) 2020-08-20
DE202016107447U1 (de) 2017-01-18
HK1245918B (zh) 2020-04-09
DK3489835T3 (da) 2024-09-30
US20190260745A1 (en) 2019-08-22
US10666652B2 (en) 2020-05-26
US11870780B2 (en) 2024-01-09
TW201642136A (zh) 2016-12-01

Similar Documents

Publication Publication Date Title
TWI720229B (zh) 使用簽名之位址驗證
US10073977B2 (en) Technologies for integrity, anti-replay, and authenticity assurance for I/O data
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US10325118B2 (en) Cryptographic cache lines for a trusted execution environment
JP4876053B2 (ja) トラステッド・デバイス集積回路
US20220006653A1 (en) System and methods for confidential computing
US20170286320A1 (en) Avoiding redundant memory encryption in a cryptographic protection system
CN106716435B (zh) 设备与安全处理环境之间的接口
WO2017105704A1 (en) Bidirectional cryptographic io for data streams
EP2889794A2 (en) Offloading functionality from a secure processing environment
CN115017089A (zh) 一种远程内存访问的系统及方法