WO2016071743A1 - Integrity protection for data storage - Google Patents

Integrity protection for data storage Download PDF

Info

Publication number
WO2016071743A1
WO2016071743A1 PCT/IB2014/065885 IB2014065885W WO2016071743A1 WO 2016071743 A1 WO2016071743 A1 WO 2016071743A1 IB 2014065885 W IB2014065885 W IB 2014065885W WO 2016071743 A1 WO2016071743 A1 WO 2016071743A1
Authority
WO
WIPO (PCT)
Prior art keywords
counter
sequence number
epoch
memory block
selected memory
Prior art date
Application number
PCT/IB2014/065885
Other languages
English (en)
French (fr)
Inventor
Michael Kenneth BOWLER
Original Assignee
Elliptic Technologies Inc.
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 Elliptic Technologies Inc. filed Critical Elliptic Technologies Inc.
Priority to PCT/IB2014/065885 priority Critical patent/WO2016071743A1/en
Priority to CN201480083238.3A priority patent/CN107111730B/zh
Publication of WO2016071743A1 publication Critical patent/WO2016071743A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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

Definitions

  • the present disclosure relates to integrity protection of data storage, memory caching and cryptography.
  • a method for protecting the integrity of a memory system divided in a plurality of memory blocks each of which has a local sequence number.
  • the method maintains an age counter for each of the memory blocks; maintains an opportunity counter for each of the memory blocks; maintains an epoch counter for the memory system; writes data in a selected memory block; increases the local sequence number of the selected memory block; updates the opportunity counter for the selected memory block if the local sequence number of the selected memory block rolls over; computes a message authentication code (MAC) in the selected memory block based on a global sequence number and the local sequence number; updates the age counter and the opportunity counter for any non-selected memory blocks if the opportunity counter for the non-selected memory blocks does not match the LSB of the epoch counter for the non- selected memory blocks; and computes a new MAC for any memory block for which the updating is performed.
  • MAC message authentication code
  • each of the MACs is updated opportunistically (1) after the corresponding age counter rolls over and (2) during the writing of data to the corresponding memory block.
  • FIG. 1 is a diagram of a global sequence number.
  • FIG. 2 is a flow chart of an example of the use of a local sequence number with an opportunity counter.
  • Integrity protection of memory systems located on insecure devices is generally done by computing a cryptographic integrity protection value or Message Authentication Code (MAC) and storing it along with the data. Therefore an unauthorized third party cannot modify the information written in memory.
  • MAC Message Authentication Code
  • a MAC algorithm sometimes called a keyed (cryptographic) hash function (however, a cryptographic hash function is only one of the possible ways to generate MACs), accepts as input a secret key and arbitrary-length data to be authenticated, and outputs a MAC (sometimes known as a tag).
  • the MAC value protects the data integrity as well as its authenticity, by allowing verifiers (who also possess the secret key) to detect any changes to the data content.
  • the MAC When the memory is authentically updated, the MAC is recomputed. To prevent replays of previously authentic values, a unique value, such as a counter or a sequence number, is added to the authentication input.
  • a MAC is also used when data cache writes out cache-lines to external memory.
  • a sequence number is associated to each and every cache line in the memory. Therefore, an attacker cannot capture an image of the external memory and after the memory has been updated, replace the cache-lines within the memory with a previously captured version.
  • the memory is segmented into memory blocks, and a MAC is stored along with each memory block.
  • a block can be one cache line or a larger memory space. Therefore, the authentication algorithm only needs to be performed over an individual, smaller memory block.
  • a separate sequence number needs to be maintained for every memory block. The sequence number needs to be sufficiently large to prevent it from expiring (rolling over) too often.
  • the cryptographic integrity algorithm needs to be re-keyed, which results in re-computing the MAC for all data blocks.
  • the memory system is not accessible, leading to access delays. Large sequence numbers are therefore preferable, but with a large number of blocks, a substantial amount of sequence number data needs to be stored and maintained.
  • An existing solution is to maintain a small local sequence number per memory block and a global epoch counter.
  • the epoch counter and the local sequence number are concatenated to form the sequence number applied to the integrity algorithm.
  • any time the epoch counter is updated each MAC needs to be updated.
  • the memory system is not accessible during the refresh process.
  • a global sequence number 100 comprises a local sequence number 101 and a global epoch counter 102.
  • the local sequence number 101 is subdivided into two fields: an opportunity counter 110 and an age counter 115.
  • An instance of the local sequence number 101 is maintained for every external cache line or memory block. All local sequence numbers reset to zero on key initialization.
  • the global epoch counter 102 is a counter global to all blocks.
  • the opportunity counter 110 allows the MAC to be updated opportunistically after the age counter 115 rolls over, during normal updates (writes) of the data block. It also allows the MAC to be refreshed to new epoch values off-line.
  • the width of the age, opportunity, and epoch counters can be tuned to tradeoff the frequency of epoch update, off-line integrity check refresh to new epoch values, and opportunistic epoch updates versus memory storage requirements for the counter values.
  • a 32-bit global sequence number can include a 4-bit age counter and a 2-bit opportunity counter.
  • the epoch counter 102 and the age counter are concatenated to form the full sequence number used in computing the integrity protection value.
  • the Least Significant Bits (LSB) of the epoch counter are inferred by comparing the global epoch counter 102 to the local opportunity counter 110.
  • the opportunity counter 110 is compared to the LSB of the epoch counter 102. If they match, the age counter is incremented by 1. If the age counter wraps (carries into the opportunity counter), the epoch counter is incremented by 1. When the epoch counter increments, all local sequence numbers need to be checked, and every line that has an opportunity counter matching the LSB of the new epoch, needs to immediately have its MAC recomputed with the new sequence number.
  • the opportunity counter allows an offline update or refresh of the MAC when the epoch counter changes.
  • a background process or thread may update the local sequence numbers so that the opportunity counters are in sync with the current epoch. This can occur when the cache is not busy, i.e., on a low priority process.
  • the age counter resets to zero, to minimize the need for epoch updates.
  • the opportunity counter is set to match prior to computing the MAC, and the age counter is reset to zero.
  • the MAC corresponding to the line is therefore refreshed opportunistically.
  • the refresh process of an external cache line MAC value is performed by reading in the cache-line and validating the MAC.
  • the new MAC is computed using the updated global sequence number.
  • interrupts are optionally generated to the processor at various thresholds to prompt a proactive rekey operation before the counter expires.
  • a background process checks the opportunity counters and updates the MAC for any opportunity counter that is about to expire (for example the memory blocks that are 1 bit away from the LSB of the epoch.
  • any memory block MAC can be updated based on a pre-determined policy. This maximizes the time a cache-line can be opportunistically updated before getting hit with a refresh, and still allows the refresh to run as a background process.
  • FIG. 2 shows an example flow chart of an embodiment when an authentication code is updated for a memory block i is initiated at step 201. If step 203 determines that the opportunity counter for block i is different from the LSB of the epoch counter at step 203, the local sequence number is from a different epoch, then step 205 sets the opportunity counter for block i to the LSB of the epoch counter and resets the age counter for block i to zero. Otherwise, the local sequence number is in the current epoch, and step 207 increments the age counter for block i is incremented. If the age does not roll (i.e., there is no carry) at step 209, the memory block i is updated with the new sequence number at step 211.
  • the epoch counter needs to be updated at step 213, the opportunity counter for block i is set to the LSB of the epoch counter and the age is reset to 0.
  • the memory block i is updated accordingly. All memory blocks j are checked at step 219 except for the one that was just updated at step 213 which is skipped by the If step 215.
  • the opportunity counter for block j is equal to the LSB of the epoch counter at step 219, then the opportunity counter has fallen behind by a number of epochs represented by the number of bits in the opportunity counter (in this example, four epochs, because the opportunity counter is 2 bits), and the MAC of memory block j needs to be refreshed at step 221. If the opportunity counter for block j is not equal to the LSB of the epoch counter at step 219, then no update is necessary for block j, and the next block is checked by incrementing the value of j at step 217.
  • Any algorithm, software, or method disclosed herein can be embodied in software stored on a non-transitory tangible medium such as, for example, a flash memory, a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), or other memory devices, but persons of ordinary skill in the art will readily appreciate that the entire algorithm and/or parts thereof could alternatively be executed by a device other than a controller and/or embodied in firmware or dedicated hardware in a well-known manner (e.g., it may be implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.).
  • ASIC application specific integrated circuit
  • PLD programmable logic device
  • FPLD field programmable logic device
  • machine-readable instructions represented in any flowchart depicted herein can be implemented manually as opposed to automatically by a controller, processor, or similar computing device or machine.
  • specific algorithms are described with reference to flowcharts depicted herein, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example machine readable instructions may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
PCT/IB2014/065885 2014-11-07 2014-11-07 Integrity protection for data storage WO2016071743A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/IB2014/065885 WO2016071743A1 (en) 2014-11-07 2014-11-07 Integrity protection for data storage
CN201480083238.3A CN107111730B (zh) 2014-11-07 2014-11-07 用于数据存储的完整性保护

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2014/065885 WO2016071743A1 (en) 2014-11-07 2014-11-07 Integrity protection for data storage

Publications (1)

Publication Number Publication Date
WO2016071743A1 true WO2016071743A1 (en) 2016-05-12

Family

ID=55908652

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2014/065885 WO2016071743A1 (en) 2014-11-07 2014-11-07 Integrity protection for data storage

Country Status (2)

Country Link
CN (1) CN107111730B (zh)
WO (1) WO2016071743A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042780B2 (en) 2014-11-07 2018-08-07 Synopsys, Inc. Integrity protection for data storage
WO2022114900A1 (ko) * 2020-11-27 2022-06-02 한국과학기술원 다중 명령어 큐 스토리지에서 순서 보장 단위를 정하는 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486399B (zh) * 2021-07-14 2023-03-24 上海瓶钵信息科技有限公司 基于risc-v架构的数据存储方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100272A1 (en) * 2006-04-24 2009-04-16 Bernard Smeets Anti-roll-back mechanism for counter
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US8015378B2 (en) * 2005-01-07 2011-09-06 Telefonaktiebolaget L M Ericsson (Publ) Updating memory contents of a processing device
US20120317344A1 (en) * 2009-12-18 2012-12-13 St-Ericsson Sa Method of and apparatus for storing data
US20140208109A1 (en) * 2011-12-28 2014-07-24 Alpa T. Narendra Trivedi Method and system for protecting memory information in a platform

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2320345A3 (en) * 2005-09-14 2011-08-10 Sandisk Corporation Hardware driver integrity check of memory card controller firmware
DE112010003345B4 (de) * 2009-08-21 2017-07-27 International Business Machines Corporation Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems
EP2726991B1 (en) * 2011-06-29 2018-03-14 Intel Corporation Method and apparatus for memory encryption with integrity check and protection against replay attacks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015378B2 (en) * 2005-01-07 2011-09-06 Telefonaktiebolaget L M Ericsson (Publ) Updating memory contents of a processing device
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US20090100272A1 (en) * 2006-04-24 2009-04-16 Bernard Smeets Anti-roll-back mechanism for counter
US20120317344A1 (en) * 2009-12-18 2012-12-13 St-Ericsson Sa Method of and apparatus for storing data
US20140208109A1 (en) * 2011-12-28 2014-07-24 Alpa T. Narendra Trivedi Method and system for protecting memory information in a platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042780B2 (en) 2014-11-07 2018-08-07 Synopsys, Inc. Integrity protection for data storage
WO2022114900A1 (ko) * 2020-11-27 2022-06-02 한국과학기술원 다중 명령어 큐 스토리지에서 순서 보장 단위를 정하는 방법 및 장치

Also Published As

Publication number Publication date
CN107111730B (zh) 2021-01-08
CN107111730A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
US20210124820A1 (en) Application program integrity verification method and network device
US8516271B2 (en) Securing non-volatile memory regions
US9076019B2 (en) Method and apparatus for memory encryption with integrity check and protection against replay attacks
US11184164B2 (en) Secure crypto system attributes
TWI673609B (zh) 用於減少從記憶體資訊洩漏之系統及方法
US11269786B2 (en) Memory data protection based on authenticated encryption
US11134377B2 (en) Encrypting/decrypting data on mobile terminal
US11658808B2 (en) Re-encryption following an OTP update event
US8010587B2 (en) Random number generator
US10042780B2 (en) Integrity protection for data storage
US9350732B1 (en) Integrity protection for data storage
US20170085540A1 (en) Secure data re-encryption
KR102117838B1 (ko) 캐시 메모리의 보안-관련 데이터를 보호하기 위한 방법
WO2016071743A1 (en) Integrity protection for data storage
US10862669B2 (en) Encryption/description method protected against side-channel attacks
CN106850211B (zh) 一种基于mac地址的加密方法及系统
US11121867B2 (en) Encryption methods based on plaintext length
CN108154042B (zh) 一种文件系统加密方法及装置
US11281434B2 (en) Apparatus and method for maintaining a counter value
CN117692134A (zh) 密钥更新管理系统和密钥更新管理方法
WO2020036887A1 (en) Authentication of files
US20200249912A1 (en) Information processing apparatus, information processing method, and storage medium
EP3832945B1 (en) System and method for protecting memory encryption against template attacks
WO2018233321A1 (zh) 应用于分布式存储系统的数据判断方法及分布式存储系统
US20220284088A1 (en) Authentication of write requests

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14905343

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 21.08.2017)

122 Ep: pct application non-entry in european phase

Ref document number: 14905343

Country of ref document: EP

Kind code of ref document: A1