KR102625275B1 - 비휘발성 메모리를 구비하는 전자 기기 - Google Patents

비휘발성 메모리를 구비하는 전자 기기 Download PDF

Info

Publication number
KR102625275B1
KR102625275B1 KR1020180090631A KR20180090631A KR102625275B1 KR 102625275 B1 KR102625275 B1 KR 102625275B1 KR 1020180090631 A KR1020180090631 A KR 1020180090631A KR 20180090631 A KR20180090631 A KR 20180090631A KR 102625275 B1 KR102625275 B1 KR 102625275B1
Authority
KR
South Korea
Prior art keywords
data
authentication code
message authentication
volatile memory
control unit
Prior art date
Application number
KR1020180090631A
Other languages
English (en)
Other versions
KR20200015172A (ko
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 엘지전자 주식회사
Priority to KR1020180090631A priority Critical patent/KR102625275B1/ko
Priority to US16/530,456 priority patent/US11588811B2/en
Priority to PCT/KR2019/009658 priority patent/WO2020027618A1/en
Publication of KR20200015172A publication Critical patent/KR20200015172A/ko
Application granted granted Critical
Publication of KR102625275B1 publication Critical patent/KR102625275B1/ko

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • 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/12Details relating to cryptographic hardware or logic circuitry

Abstract

본 발명은 전자 기기에 관한 것이다. 본 발명의 실시예에 따른 전자 기기는, 내부에 제어부가 구비되지 않은 비휘발성 메모리와, 비휘발성 메모리를 제어하는 제어부를 포함하며, 제어부는, 비휘발성 메모리로 데이터 전송시, 전송할 데이터와 함께, 생성된 메시지 인증 코드를 전송하도록 제어한다. 이에 의해, 내부 제어부가 구비되지 않은 비휘발성 메모리에서 재생 어택을 효율적으로 방어할 수 있게 된다.

Description

비휘발성 메모리를 구비하는 전자 기기{Electronic apparatus including nonvolatile memory}
본 발명은 전자 기기에 관한 것이며, 더욱 상세하게는 재생 어택을 효율적으로 방어할 수 있는 내부 제어부가 구비되지 않은 비휘발성 메모리를 구비하는 전자 기기에 관한 것이다.
전자 기기는, 다양한 신호 처리 등을 위해, 데이터를 저장하며, 특히, 전원 오프 이후에도, 데이터를 저장하기 위해, 비휘발성 메모리 등을 구비한다.
비휘발성 메모리 중 raw flash memory는 eMMC/UFS 와 달리, 내부에 제어부가 구비되지 않으며, 이에 따라, 이전에 전송자가 전송한 데이터(Data)를 보관하고 있다가, 재사용하는 공격인, 재생 공격(Replay attack)에 취약한 단점이 있다.
한편, 재생 공격의 대상으로는, 예를 들어, 컨텐츠의 사용기간이 기록된 라이선스 파일, 보안 업데이트 되기 이전에 취약한 데이터 등일 수 있다.
특히, 이러한 재생 공격은, 수신자가 이전에 수신했던 데이터(Data)가 재사용되어 전송되었다는 것을 알 수 없기 때문에, 일반적인 Symmetric, Asymmetric 알고리즘만으로는 데이터(Data)가 통째로 재사용되는 공격을 막을 수 없게 된다.
본 발명의 목적은, 내부 제어부가 구비되지 않은 비휘발성 메모리에서 재생 어택을 효율적으로 방어할 수 있는 전자 기기를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 전자 기기는, 내부에 제어부가 구비되지 않은 비휘발성 메모리와, 비휘발성 메모리를 제어하는 제어부를 포함하며, 제어부는, 비휘발성 메모리로 데이터 전송시, 전송할 데이터와 함께, 생성된 메시지 인증 코드를 전송하도록 제어한다.
한편, 제어부는, 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다.
한편, 제어부는, 비휘발성 메모리로 데이터 전송시, 전송할 데이터, 메시지 인증 코드, 및 카운트를 함께 전송하도록 제어할 수 있다.
한편, 제어부는,제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다.
한편, 제어부는, 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다.
한편, 제어부는, 외부의 재생 공격 방어를 위한, 방어 유닛을 구비하고, 방어 유닛은, 메시지 인증 코드키, 메이지 인증 코드 로직, 및 쓰기 카운터를 포함할 수 있다.
한편, 제어부는, 비휘발성 메모리로의 데이터 전송시, 전송할 데이터, 메시지 인증 코드키, 메이지 인증 코드 로직을 이용하여, 메시지 인증 코드를 생성할 수 있다.
한편, 제어부는, 비휘발성 메모리로부터의 인증에 필요한 데이터 수신시, 읽어드릴 데이터, 쓰기 카운트, 및 메시지 인증 코드를 함께 수신할 수 있다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 비휘발성 메모리로부터 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 쓰기 카운트와, 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단할 수 있다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고, 비휘발성 메모리로부터 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 메시지 인증 코드와, 연산된 제2 메시지 인증 코드를 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단할 수 있다.
한편, 제어부는, 비휘발성 메모리 내의 점검 영역에 대한 재생 공격 체크를 수행하며, 재생 공격 체크는, 비휘발성 메모리 내의 데이터 패킷 내의 카운트 체크 및 메시지 인증 코드를 포함할 수 있다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고, 연산된 제2 메시지 인증 코드와, 비휘발성 메모리 내의 데이터 패킷 내의 메시지 인증 코드가 불일치하는 경우, 재생 어택이 있는 것으로 판단할 수 있다.
한편, 비휘발성 메모리 내의 점검 영역에 대한 재생 공격 체크는, 비휘발성 메모리로의 쓰기, 읽기 또는 데이터 가비지 수거 중 적어도 하나의 경우에 수행된다.
한편, 비휘발성 메모리는, 복수의 데이터 패킷과, 복수의 데이터 패킷에 대한 플래그를 구비하는 맵 테이블을 구비하며, 복수의 데이터 패킷, 각각은, 데이터 및 메시지 인증 코드를 구비할 수 있다.
한편, 비휘발성 메모리는, 복수의 데이터를 구비하는 점검 블럭과, 복수의 데이터에 대응하는 메시지 인증 코드를 구비하는 메시지 인증 코드 블럭을 구비할 수 있다.
한편, 비휘발성 메모리는, 복수의 데이터를 구비하는 점검 블럭과, 복수의 데이터에 대응하는 메시지 인증 코드를 구비하는 메시지 인증 코드 블럭을 구비할 수 있다.
본 발명의 일실시예에 따르면, 전자 기기 및 이를 구비하는 전자 기기는, 내부에 제어부가 구비되지 않은 비휘발성 메모리와, 비휘발성 메모리를 제어하는 제어부를 포함하며, 제어부는, 비휘발성 메모리로 데이터 전송시, 전송할 데이터와 함께, 생성된 메시지 인증 코드를 전송하도록 제어한다. 이에 따라, 내부 제어부가 구비되지 않은 비휘발성 메모리에서 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로 데이터 전송시, 전송할 데이터, 메시지 인증 코드, 및 카운트를 함께 전송하도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는,제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 외부의 재생 공격 방어를 위한, 방어 유닛을 구비하고, 방어 유닛은, 메시지 인증 코드키, 메이지 인증 코드 로직, 및 쓰기 카운터를 포함할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로의 데이터 전송시, 전송할 데이터, 메시지 인증 코드키, 메이지 인증 코드 로직을 이용하여, 메시지 인증 코드를 생성할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로부터의 인증에 필요한 데이터 수신시, 읽어드릴 데이터, 쓰기 카운트, 및 메시지 인증 코드를 함께 수신할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 비휘발성 메모리로부터 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 쓰기 카운트와, 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고, 비휘발성 메모리로부터 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 메시지 인증 코드와, 연산된 제2 메시지 인증 코드를 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리 내의 점검 영역에 대한 재생 공격 체크를 수행하며, 재생 공격 체크는, 비휘발성 메모리 내의 데이터 패킷 내의 카운트 체크 및 메시지 인증 코드를 포함할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 제어부는, 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고, 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고, 연산된 제2 메시지 인증 코드와, 비휘발성 메모리 내의 데이터 패킷 내의 메시지 인증 코드가 불일치하는 경우, 재생 어택이 있는 것으로 판단할 수 있다. 이에 따라, 재생 어택 여부를 간단하게 판단할 수 있게 된다.
한편, 비휘발성 메모리는, 복수의 데이터 패킷과, 복수의 데이터 패킷에 대한 플래그를 구비하는 맵 테이블을 구비하며, 복수의 데이터 패킷, 각각은, 데이터 및 메시지 인증 코드를 구비할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 비휘발성 메모리는, 복수의 데이터를 구비하는 점검 블럭과, 복수의 데이터에 대응하는 메시지 인증 코드를 구비하는 메시지 인증 코드 블럭을 구비할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 비휘발성 메모리는, 복수의 데이터를 구비하는 점검 블럭과, 복수의 데이터에 대응하는 메시지 인증 코드를 구비하는 메시지 인증 코드 블럭을 구비할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
도 1은 본 발명의 실시예에 따른 전자 기기의 내부 블록도를 도시한 도면이다.
도 2a는 비휘발성 메모리로의 데이터 전송 준비를 나타내는 도면이다.
도 2b는 비휘발성 메모리로의 데이터 전송 및 저장을 나타내는 도면이다.
도 2c는 비휘발성 메모리로부터의 데이터 읽기 및 인증을 나타내는 도면이다.
도 3a는 데이터 재생 공격 검출의 일예를 나타내는 도면이다.
도 3b는 데이터 재생 공격 검출의 다른 예를 나타내는 도면이다.
도 3c는 데이터 가비지 수거(Data Garbage Collection)를 설명하는 도면이다.
도 4는 비휘발성 메모리로의 쓰기에 대한 동작 방법을 설명하는 순서도이다.
도 5는 비휘발성 메모리로의 읽기에 대한 동작 방법을 설명하는 순서도이다.
도 6은 비휘발성 메모리로의 데이터 가비지 수거에 대한 동작 방법을 설명하는 순서도이다.
도 7은 재생 어택의 설명에 참조되는 도면이다.
도 8은 본 발명의 실시예에 따른 전자 기기에서의 재생 어택의 설명에 참조되는 도면이다.
도 9a 내지 도 9d는 재생 어택 설명을 위해 참조되는 비휘발성 메모리의 내부 구조를 도시하는 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
한편, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
도 1은 본 발명의 실시예에 따른 전자 기기의 내부 블록도를 도시한 도면이다.
도면을 참조하면, 전자 기기(100)는, 내부에 제어부가 구비되지 않은 비휘발성 메모리(140)와, 비휘발성 메모리(140)를 제어하는 제어부(170)를 포함할 수 있다.
비휘발성 메모리(140)는, raw flash memory를 구비할 수 있다.
한편, 비휘발성 메모리(140)는 하드웨어 특성에 맞는 관리 또는 변환이 요구된다. 이러한 관리 또는 변환은 FTL(Flash Translation Layer)에 의해 수행될 수 있다.
비휘발성 메모리(140) 중 eMMC/UFS 등은, 내부에 제어부를 구비하며, FTL에 의해, 하드웨어 특성에 맞는 관리 또는 변환이 수행될 수 있다.
그러나, 비휘발성 메모리(140) 중 raw flash memory 등은, 내부에 제어부를 구비하지 않으며, 따라서, 하드웨어 특성에 맞는 관리 또는 변환이, 비휘발성 메모리(140)의 외부인, 제어부(170)에서 수행될 수 있다.
즉, 제어부(170)는, 비휘발성 메모리(140)를 제어하는 메모리 제어부(172), 외부의 재생 공격(Replay attack)을 방어할 수 있는 방어 유닛(defense unit)(175)을 구비할 수 있다.
방어 유닛(defense unit)(175)은, 하드웨어 키로서, 메시지 인증 코드키인 HMAC key(hash-based message authentication code key)(176), 메시지 인증 코드 로직인 HMAC logic(177), 쓰기 카운터(write counter)(178), FTL(179)를 포함할 수 있다.
도 2a는 비휘발성 메모리로의 데이터 전송 준비를 나타내는 도면이다.
도면을 참조하면, 보호가 필요한 데이터(Data)를 비휘발성 메모리(140)에 저장할 때, 전자 기기(100)의 제어부(170)는, 보호가 필요한 데이터(Data)와 쓰기 카운터(write counter)(178)를 포함하는 데이터 패킷(DPka)을 생성한다.
그리고, 전자 기기(100)의 제어부(170)는, 데이터 패킷(DPka), 고유 하드웨어 키(HMAC Key)(176)와 HMAC 로직(177)을 이용하여, 전송할 데이터 패킷(DPkb)에 대한 메시지 인증 코드(MAC)를 만든다.
이러한 메시지 인증 코드에 따라, 이후 설명하는 재생 어택 여부를 판단하고, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 쓰기 카운터(write counter)는, 쓰기 타임(write time) 마다 계속 증가한다.
도 2b는 비휘발성 메모리로의 데이터 전송 및 저장을 나타내는 도면이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, 저장할 데이터, 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 함께 비휘발성 메모리(140)로 전송할 수 있다.
특히, 전자 기기(100)의 제어부(170)는, 저장할 데이터, 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 포함하는 데이터 패킷(INF1)을, 비휘발성 메모리(140)로 전송할 수 있다.
한편, 데이터 패킷(INF1)의 매핑(mapping) 위치는, 비휘발성 메모리(140)가 결정할 수 있다.
한편, 한편, 전자 기기(100)의 제어부(170)는 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
한편, 전자 기기(100)의 제어부(170)는제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다. 이에 따라, 재생 어택을 효율적으로 방어할 수 있게 된다.
도 2c는 비휘발성 메모리로부터의 데이터 읽기 및 인증을 나타내는 도면이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터, 읽어드릴 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 함께 수신할 수 있다.
특히, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터, 읽어드릴 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 포함하는 데이터 패킷(INFa)을, 수신할 수 있다.
한편, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터, 인증에 필요한 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 함께 수신할 수 있다.
특히, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터, 인증에 필요한 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 포함하는 데이터 패킷(INFb)을, 수신할 수 있다.
도 3a는 데이터 재생 공격 검출의 일예를 나타내는 도면이다.
도면을 참조하면, 전자 기기(100)의 제어부(170) 내의 쓰기 카운터(write counter)(178)는, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)를 찾는다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC) 중 쓰기 카운트(write count)(Wca)와, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(Wcb)을 비교하고, 일치하는 경우, 데이터 읽기(Data read)를 수행한다.
한편, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC) 중 쓰기 카운트(write count)(Wca)와, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(Wcb)을 비교하고, 일치하지 않는 경우, 데이터 읽기(Data read)를 중단한다.
도 3b는 데이터 재생 공격 검출의 다른 예를 나타내는 도면이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, 내의 쓰기 카운터(write counter)(178)는, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(WCb)를 찾는다.
그리고, 전자 기기(100)의 제어부(170) 내의 HMAC logic(177)은, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(WCb)과, 메시지 인증 코드키인 HMAC key(176)를 이용하여, MAC 값(MCb)을 연산한다.
특히, 전자 기기(100)의 제어부(170) 내의 HMAC logic(177)은, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(WCb)과, 메시지 인증 코드키인 HMAC key(176)와, 데이터(Db)를 이용하여, MAC 값(MCb)을 연산할 수 있다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)(MCa) 중 메시지 인증 코드(MAC)(MCa)와, 연산된 MAC 값(MCb)을 비교하고, 일치하는 경우, 데이터 읽기(Data read)를 수행한다.
한편, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)(MCa) 중 메시지 인증 코드(MAC)(MCa)와, 연산된 MAC 값(MCb)을 비교하고, 일치하지 않는 경우, 데이터 읽기(Data read)를 중단한다.
도 3c는 데이터 가비지 수거(Data Garbage Collection)를 설명하는 도면이다.
비휘발성 메모리(140)에 데이터 가비지 수거(Data Garbage Collection)이 발생 할 수 있다.
이에 따라, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 검증 데이터(validate Data)들을 읽은(read) 후, 재생 공격 체크를 수행한다(CHKa).
그리고, 전자 기기(100)의 제어부(170)는, 데이터 가비지 수거(Data Garbage Collection)를 위해, 검증 데이터(validate Data)들을 비휘발성 메모리(140)에 쓰(write)면서, 새로운 메시지 인증 코드(MAC)로 쓰기를 수행한다(CHKa).
도 4는 비휘발성 메모리로의 쓰기에 대한 동작 방법을 설명하는 순서도이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, FTL(179) 등으로부터 쓰기 정보를 획득한다(S405).
다음, 전자 기기(100)의 제어부(170)는, 쓰기 정보가 변경되었는 지 여부를 판단한다(S410).
그리고, 변경되지 않은 경우, 전자 기기(100)의 제어부(170)는, 쓰기 카운터(178)의 카운트를 증가시킨다(S430).
다음, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)에 저장할 데이터 패킷을 생성한다(S435).
그리고, 전자 기기(100)의 제어부(170)는, 저장할 데이터 패킷과 함께 전송된 메시지 인증 코드를 생성한다(S440).
다음, 전자 기기(100)의 제어부(170)는, 저장할 데이터, 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 포함하는 MAC/데이터 패킷을, 비휘발성 메모리(140)로 전송한다(S445).
한편, 제410 단계에서(S410), 쓰기 정보가 변경된 경우, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터, 저장할 데이터, 쓰기 카운트(write count), 메시지 인증 코드(MAC)를 포함하는 MAC/데이터 패킷의 읽기를 수행한다(S415).
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140) 내의 점검 영역(inspection area)에 대한 공격 체크를 수행한다(S420).
비휘발성 메모리(140) 내의 점검 영역에 대한 공격 체크는, MAC/데이터 패킷 내의 카운트 체크, 및 MAC 체크로 이루어질 수 있다.
먼저, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 카운트를, 도 3a와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 쓰기 카운터(write counter)(178)는, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)를 찾는다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC) 중 쓰기 카운트(write count)(Wca)와, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(Wcb)을 비교하고, 일치하는 지 여부를 판단한다.
다음, 카운트 체크 이후, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 메시지 인증 코드(MAC)를, 도 3b와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 HMAC logic(177)은, 읽어드릴 데이터(Data)가 가져야 할 쓰기 카운트 값(write count value)(WCb)과, 메시지 인증 코드키인 HMAC key(176)와, 데이터(Db)를 이용하여, MAC 값(MCb)을 연산할 수 있다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 쓰기 카운트(write count), 메시지 인증 코드(MAC)(MCa) 중 메시지 인증 코드(MAC)(MCa)와, 연산된 MAC 값(MCb)을 비교하고, 일치하는 지 여부를 판단한다.
전자 기기(100)의 제어부(170)는, 쓰기 카운트와, 메시지 인증 코드에 기초하여, 재생 어택이 있었는 지 여부를 판단한다(S425). 그리고, 재생 어택이 있는 경우, 재생 어택으로 판단한다(S427).
예를 들어, 전자 기기(100)의 제어부(170)는, 쓰기 카운트의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
다른 예로, 전자 기기(100)의 제어부(170)는, 쓰기 카운트는 일치하나, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
또 다른 예로, 전자 기기(100)의 제어부(170)는, 쓰기 카운트가 불일치하고, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
도 5는 비휘발성 메모리로의 읽기에 대한 동작 방법을 설명하는 순서도이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, FTL(179) 등으로부터 읽기 정보를 획득한다(S505).
다음, 전자 기기(100)의 제어부(170)는, 읽기 정보에 기초하여, 비휘발성 메모리(140)로부터, 읽을 데이터, 카운트(count), 메시지 인증 코드(MAC)를 포함하는 MAC/데이터 패킷의 읽기를 수행한다(S515).
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140) 내의 점검 영역(inspection area)에 대한 공격 체크를 수행한다(S520).
비휘발성 메모리(140) 내의 점검 영역에 대한 공격 체크는, MAC/데이터 패킷 내의 카운트 체크, 및 MAC 체크로 이루어질 수 있다.
먼저, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 카운트를, 도 3a와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 쓰기 카운터(write counter)(178)는, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)를 찾는다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 카운트(count), 메시지 인증 코드(MAC) 중 카운트(count)(Wca)와, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)(Wcb)을 비교하고, 일치하는 지 여부를 판단한다.
다음, 카운트 체크 이후, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 메시지 인증 코드(MAC)를, 도 3b와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 HMAC logic(177)은, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)(WCb)과, 메시지 인증 코드키인 HMAC key(176)와, 데이터(Db)를 이용하여, MAC 값(MCb)을 연산할 수 있다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 카운트(count), 메시지 인증 코드(MAC)(MCa) 중 메시지 인증 코드(MAC)(MCa)와, 연산된 MAC 값(MCb)을 비교하고, 일치하는 지 여부를 판단한다.
전자 기기(100)의 제어부(170)는, 카운트와, 메시지 인증 코드에 기초하여, 재생 어택이 있었는 지 여부를 판단한다(S525). 그리고, 재생 어택이 있는 경우, 재생 어택으로 판단한다(S527).
예를 들어, 전자 기기(100)의 제어부(170)는, 카운트의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
다른 예로, 전자 기기(100)의 제어부(170)는, 카운트는 일치하나, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
또 다른 예로, 전자 기기(100)의 제어부(170)는, 카운트가 불일치하고, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
도 6은 비휘발성 메모리로의 데이터 가비지 수거에 대한 동작 방법을 설명하는 순서도이다.
도면을 참조하면, 전자 기기(100)의 제어부(170)는, FTL(179) 등으로부터 읽기 정보를 획득한다(S605).
다음, 전자 기기(100)의 제어부(170)는, 읽기 정보에 기초하여, 비휘발성 메모리(140)로부터, 읽을 데이터, 카운트(count), 메시지 인증 코드(MAC)를 포함하는 MAC/데이터 패킷의 읽기를 수행한다(S615).
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140) 내의 점검 영역(inspection area)에 대한 공격 체크를 수행한다(S620).
비휘발성 메모리(140) 내의 점검 영역에 대한 공격 체크는, MAC/데이터 패킷 내의 카운트 체크, 및 MAC 체크로 이루어질 수 있다.
먼저, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 카운트를, 도 3a와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 쓰기 카운터(write counter)(178)는, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)를 찾는다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 카운트(count), 메시지 인증 코드(MAC) 중 카운트(count)(Wca)와, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)(Wcb)을 비교하고, 일치하는 지 여부를 판단한다.
다음, 카운트 체크 이후, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로 읽어들인, MAC/데이터 패킷 내의 메시지 인증 코드(MAC)를, 도 3b와 같이, 체크한다.
즉, 전자 기기(100)의 제어부(170) 내의 HMAC logic(177)은, 읽어드릴 데이터(Data)가 가져야 할 카운트 값(count value)(WCb)과, 메시지 인증 코드키인 HMAC key(176)와, 데이터(Db)를 이용하여, MAC 값(MCb)을 연산할 수 있다.
그리고, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)로부터 수신되는 데이터 패킷(INFm) 내의 데이터(Data), 카운트(count), 메시지 인증 코드(MAC)(MCa) 중 메시지 인증 코드(MAC)(MCa)와, 연산된 MAC 값(MCb)을 비교하고, 일치하는 지 여부를 판단한다.
전자 기기(100)의 제어부(170)는, 카운트와, 메시지 인증 코드에 기초하여, 재생 어택이 있었는 지 여부를 판단한다(S625). 그리고, 재생 어택이 있는 경우, 재생 어택으로 판단한다(S627).
예를 들어, 전자 기기(100)의 제어부(170)는, 카운트의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
다른 예로, 전자 기기(100)의 제어부(170)는, 카운트는 일치하나, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
또 다른 예로, 전자 기기(100)의 제어부(170)는, 카운트가 불일치하고, 메시지 인증 코드의 비교시 불일치하는 경우, 재생 어택인 것으로 판단할 수 있다.
다음, 제625 단계(S625)에서, 재생 어택이 없는 것으로 판단되는 경우, 전자 기기(100)의 제어부(170)는, 비휘발성 메모리(140)에 저장할 데이터 패킷을 생성한다(S635).
그리고, 전자 기기(100)의 제어부(170)는, 저장할 데이터 패킷과 함께 전송된 메시지 인증 코드를 생성한다(S640).
다음, 전자 기기(100)의 제어부(170)는, 저장할 데이터, 쓰기 카운트(write count), 생성된 메시지 인증 코드(MAC)를 포함하는 MAC/데이터 패킷을, 비휘발성 메모리(140)로 전송한다(S645).
도 7은 재생 어택의 설명에 참조되는 도면이다.
도면을 참조하면, 전자 기기(100x)가, 제어부(170x), 비휘발성 메모리(140x), 제2 메모리(140b)를 구비할 수 있다.
제어부(170x)는, 비휘발성 메모리(140x)를 제어하는 메모리 제어부(172)를 구비할 수 있다.
또한, 제어부(170x)는, 제2 메모리(140b)의 제어를 위한 제2 메모리 제어부(172b)를 구비할 수 있다.
한편, 비휘발성 메모리(140x)는, raw flash memory를 구비할 수 있다.
raw flash memory 등은, 내부에 제어부를 구비하지 않으며, 따라서, 하드웨어 특성에 맞는 관리 또는 변환이, 비휘발성 메모리(140x)의 외부인, 제어부(170x)에서 수행될 수 있다.
한편, 제2 메모리(140b)는, eMMC/UFS 등일 수 있다.
이에 따라, 제2 메모리(140b)는, 내부에 재생 어택 방어를 위한, HMAC key, HMAC logic, 쓰기 카운터(write counter)를 구비하는 방어 유닛(142b)과, 재생 보호 메모리 블럭(Replay Protection Memory Block)을 구비할 수 있다.
한편, 재생 어택 공격자(510)가, 비휘발성 메모리(140x)에 대한 재생 어택을 수행하는 경우, 비휘발성 메모리(140x)에 내부에 제어부가 구비되지 않으며, 전자 기기의 제어부(170x)에도 불구하고, 보호 유닛이 없으므로, 이전에 전송자가 전송한 데이터(Data)를 보관하고 있다가, 재사용하는 공격인, 재생 공격(Replay attack)에 취약한 단점이 있다.
그러나, 제2 메모리(140b)는, 내부에 재생 어택 방어를 위한, HMAC key, HMAC logic, 쓰기 카운터(write counter)를 구비하는 방어 유닛(142b)과, 재생 보호 메모리 블럭(Replay Protection Memory Block)을 구비하므로, 재생 어택 공격자(520)가, 제2 메모리(140b)에 대한 재생 어택을 수행하더라도, 이를 방어할 수 있게 된다.
도 8은 본 발명의 실시예에 따른 전자 기기에서의 재생 어택의 설명에 참조되는 도면이다.
도면을 참조하면, 본 발명의 실시예에 따른 전자 기기(100)는, 내부에 제어부가 구비되지 않은 비휘발성 메모리(140)와, 비휘발성 메모리(140)를 제어하는 제어부(170)를 포함할 수 있다.
제어부(170)는, 비휘발성 메모리(140)를 제어하는 메모리 제어부(172), 외부의 재생 공격(Replay attack)을 방어할 수 있는 방어 유닛(defense unit)(175)을 구비할 수 있다.
방어 유닛(defense unit)(175)은, 하드웨어 키로서, 메시지 인증 코드키인 HMAC key(hash-based message authentication code key)(176), 메시지 인증 코드 로직인 HMAC logic(177), 쓰기 카운터(write counter)(178), FTL(179)를 포함할 수 있다.
이에 따라, 재생 어택 공격자(510)가, 비휘발성 메모리(140)에 대한 재생 어택을 수행하는 경우, 비휘발성 메모리(140)에 내부에 제어부가 구비되지 않음에도 불구하고, 전자 기기의 제어부(170) 내의 방어 유닛(175)에 의해 보호가 가능하게 된다.
예를 들어, 전자 기기의 제어부(170)는, 비휘발성 메모리(140)에 데이터를 쓸때, 데이터, 쓰기 카운터, 그리고 메시지 인증 코드(MAC)를 함께 전송한다.
전자 기기의 제어부(170)는, 방어 유닛(175) 내의 고유 하드웨어 키(HMAC Key)(176)와 HMAC 로직(177)을 이용하여, 메시지 인증 코드(MAC)를 생성한다.
그리고, 전자 기기의 제어부(170) 내의 쓰기 카운터(write counter)는, 쓰기 타임(write time) 마다 계속 증가한다.
이에 따라, 비휘발성 메모리(140)에 저장되는 데이터 패킷 내의, 쓰기 카운터, 메시지 인증 코드(MAC)를 확인하면, 재생 어택이 있었는 지 여부를 판단할 수 있게 된다.
예를 들어, 제1 데이터와, 제1 카운트와, 제1 MAC를, 제1 시점에, 비휘발성 메모리(140)에 저장 한 이후, 재생 어택에 따라, 제1 데이터와 유사한 제2 데이터를, 제2 시점에, 저장하는 경우, 제2 데이터와, 제2 카운트와, 제2 MAC가, 별도로, 비휘발성 메모리(140)에 저장되게 된다.
따라서, 비휘발성 메모리(140)에, 제2 데이터로 제1 데이터를 덤어 쓰기는, 수행되지 않으며, 별도로 저장되게 된다.
한편, 전자 기기의 제어부(170)는, 제1 데이터와, 제1 카운트와, 제1 MAC를 포함하는 제1 데이터 패킷과, 제2 데이터와, 제2 카운트와, 제2 MAC를 포함하는 제2 데이터 패킷을 비교하여, 제2 카운트와, 제2 MAC가 다른 것을 확인하여, 재생 어택이 있었는 지 여부를 판단할 수 있게 된다.
도 9a 내지 도 9d는 재생 어택 설명을 위해 참조되는 비휘발성 메모리의 내부 구조를 도시하는 도면이다.
먼저, 도 9a는 비휘발성 메모리(140)의 내부 블럭을 도시한 도면이다.
도면을 참조하면, 비휘발성 메모리(140)는, 데이터 저장을 위해, 복수의 블럭을 구비할 수 있다.
그러고, 각 블럭은, 블럭 정보(block information), 블럭 할당 맵(block allocation map), 데이터(data)를 구비할 수 있다.
한편, 각 블럭은, 복수의 버퍼를 구비할 수 있으며, 각 버퍼 내에, 블럭 정보(block information), 블럭 할당 맵(block allocation map), 데이터(data)가 배치될 수 있다.
다음, 도 9b는, 비휘발성 메모리(140)가 점검 페이지 맵 테이블(inspected page map table)(920)과, 데이터 패킷(922,924,926)을 포함하는 것을 예시한다.
점검 페이지 맵 테이블(inspected page map table)(920)은, 각 데이터 패킷(922,924,926)에 대한 플래그(pba1,pba4,pba7)를 구비할 수 있다.
한편, 각 데이터 패킷(922,924,926)은, 매핑 플래그(mapping falg)인 점검 플래그(inspected flag), 데이터(data), 메시지 인증 코드(MAC)를 구비할 수 있다.
한편, 전자 기기(100)의 제어부(170)는제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다.
한편, 전자 기기(100)의 제어부(170)는 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다.
도면에서는, 제1 데이터 패킷(922) 내의 데이터와, 제2 데이터 패킷(924) 내의 데이터가 data A로 동일하나, 메시지 인증 코드(MAC)가, 각각 MAC1, MAC2로 구분되는 것을 예시한다. 이에 따라, 재생 공격에 대한 방어가 가능하게 된다.
다음, 도 9c는, 비휘발성 메모리(140)가 점검 블럭(inspected block), MAC 블럭(940)을 구비하는 것을 예시한다.
도면을 참조하면, 점검 블럭(inspected block)은, 복수의 데이터(932,934,936)를 구비하며, MAC 블럭(940)은, 복수의 데이터(932,934,936)에 대응하는 복수의 MAC(942,944,946)을 구비할 수 있다.
한편, 전자 기기(100)의 제어부(170)는제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다.
한편, 전자 기기(100)의 제어부(170)는 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다.
도면에서는, 제1 데이터(932)와, 제2 데이터(934)가 data A로 동일하나, 각각의 메시지 인증 코드(MAC)가, 각각 MAC1(942), MAC2(944)로 구분되는 것을 예시한다. 이에 따라, 재생 공격에 대한 방어가 가능하게 된다.
다음, 도 9d는, 비휘발성 메모리(140)가 점검 영역(inspected area)(950), MAC 블럭(960)을 구비하는 것을 예시한다.
도면을 참조하면, 점검 영역(inspected area)(950)은, 복수의 데이터(952,954,956)를 구비하며, MAC 블럭(960)은, 복수의 데이터(952,954,956)에 대응하는 복수의 섹터(962,964,966)를 구비할 수 있다.
한편, 복수의 섹터(962,964,966)는, 복수의 데이터(952,954,956)에 대응하는 복수의 MAC(962c,964c,966c)을 구비할 수 있다.
한편, 전자 기기(100)의 제어부(170)는제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어할 수 있다.
한편, 전자 기기(100)의 제어부(170)는 제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어할 수 있다.
도면에서는, 제1 데이터(952)와, 제2 데이터(954)가 data A로 동일하나, 각각의 메시지 인증 코드(MAC)가, 각각 MAC1(962c), MAC2(964c)로 구분되는 것을 예시한다. 이에 따라, 재생 공격에 대한 방어가 가능하게 된다.
한편, 본 발명의 전자 기기의 동작 방법은, 전자 기기에 구비된 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (16)

  1. 내부에 제어부 및 쓰기 카운터가 구비되지 않은 비휘발성 메모리;
    상기 비휘발성 메모리를 제어하는 제어부;를 포함하며,
    상기 제어부는,
    상기 비휘발성 메모리로 데이터 전송시, 전송할 데이터와 함께, 생성된 메시지 인증 코드를 전송하도록 제어하며,
    상기 제어부는,
    외부의 재생 공격 방어를 위한, 방어 유닛을 구비하고,
    상기 방어 유닛은,
    메시지 인증 코드키, 메시지 인증 코드 로직, 쓰기 카운터, 및 플래시 변환 레이어(Flash Translation Layer ;FTL)를 구비하고,
    상기 제어부는, 상기 플래시 변환 레이어로부터 읽기 정보를 획득하고, 상기 읽기 정보에 기초하여 수신되는 데이터 패킷의 읽기를 수행하는 것을 특징으로 하는 전자 기기.
  2. 제1항에 있어서,
    상기 제어부는,
    제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 상기 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어하는 것을 특징으로 하는 전자 기기.
  3. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로 데이터 전송시, 상기 전송할 데이터, 상기 메시지 인증 코드, 및 카운트를 함께 전송하도록 제어하는 것을 특징으로 하는 전자 기기.
  4. 제3항에 있어서,
    상기 제어부는,
    제1 시점에 제1 데이터 전송시와, 제2 시점에, 동일한 상기 제1 데이터 전송시, 함께 전송되는 카운트가 달라지도록 제어하는 것을 특징으로 하는 전자 기기.
  5. 제4항에 있어서,
    상기 제어부는,
    상기 제1 시점에 상기 제1 데이터 전송시와, 상기 제2 시점에, 동일한 상기 제1 데이터 전송시, 함께 전송되는 메시지 인증 코드가 달라지도록 제어하는 것을 특징으로 하는 전자 기기.
  6. 삭제
  7. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로의 데이터 전송시, 전송할 데이터, 상기 메시지 인증 코드키, 메시지 인증 코드 로직을 이용하여, 상기 메시지 인증 코드를 생성하는 것을 특징으로 하는 전자 기기.
  8. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로부터의 인증에 필요한 데이터 수신시, 읽어드릴 데이터, 쓰기 카운트, 및 메시지 인증 코드를 함께 수신하는 것을 특징으로 하는 전자 기기.
  9. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고,
    상기 비휘발성 메모리로부터 상기 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 쓰기 카운트와, 상기 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단하는 것을 특징으로 하는 전자 기기.
  10. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고,
    상기 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고,
    상기 비휘발성 메모리로부터 상기 수신되는 데이터 패킷 내의 데이터, 쓰기 카운트, 메시지 인증 코드 중 메시지 인증 코드와, 상기 연산된 제2 메시지 인증 코드를 비교하고, 일치하지 않는 경우, 데이터 읽기를 중단하는 것을 특징으로 하는 전자 기기.
  11. 제1항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리 내의 점검 영역에 대한 재생 공격 체크를 수행하며, 상기 재생 공격 체크는, 상기 비휘발성 메모리 내의 데이터 패킷 내의 카운트 체크 및 메시지 인증 코드를 포함하는 것을 특징으로 하는 전자 기기.
  12. 제11항에 있어서,
    상기 제어부는,
    상기 비휘발성 메모리로부터 읽어드릴 데이터가 가져야 할 쓰기 카운트 값을 연산하고,
    상기 연산된 쓰기 카운트 값과, 메시지 인증 코드키를 이용하여, 제2 메시지 인증 코드를 연산하고,
    상기 연산된 제2 메시지 인증 코드와, 상기 비휘발성 메모리 내의 데이터 패킷 내의 메시지 인증 코드가 불일치하는 경우, 재생 어택이 있는 것으로 판단하는 것을 특징으로 하는 전자 기기.
  13. 제11항에 있어서,
    상기 비휘발성 메모리 내의 점검 영역에 대한 재생 공격 체크는,
    상기 비휘발성 메모리로의 쓰기, 읽기 또는 데이터 가비지 수거 중 적어도 하나의 경우에 수행되는 것을 특징으로 하는 전자 기기.
  14. 제1항에 있어서,
    상기 비휘발성 메모리는,
    복수의 데이터 패킷과, 상기 복수의 데이터 패킷에 대한 정보를 구비하는 맵 테이블을 구비하며,
    상기 복수의 데이터 패킷, 각각은, 데이터 및 메시지 인증 코드를 구비하는 것을 특징으로 하는 전자 기기.
  15. 제1항에 있어서,
    상기 비휘발성 메모리는,
    복수의 데이터를 구비하는 점검 블럭과,
    상기 복수의 데이터에 대응하는 메시지 인증 코드를 구비하는 메시지 인증 코드 블럭을 구비하는 것을 특징으로 하는 전자 기기.
  16. 삭제
KR1020180090631A 2018-08-03 2018-08-03 비휘발성 메모리를 구비하는 전자 기기 KR102625275B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180090631A KR102625275B1 (ko) 2018-08-03 2018-08-03 비휘발성 메모리를 구비하는 전자 기기
US16/530,456 US11588811B2 (en) 2018-08-03 2019-08-02 Electronic apparatus including non-volatile memory
PCT/KR2019/009658 WO2020027618A1 (en) 2018-08-03 2019-08-02 Electronic apparatus including non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180090631A KR102625275B1 (ko) 2018-08-03 2018-08-03 비휘발성 메모리를 구비하는 전자 기기

Publications (2)

Publication Number Publication Date
KR20200015172A KR20200015172A (ko) 2020-02-12
KR102625275B1 true KR102625275B1 (ko) 2024-01-12

Family

ID=69229214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090631A KR102625275B1 (ko) 2018-08-03 2018-08-03 비휘발성 메모리를 구비하는 전자 기기

Country Status (3)

Country Link
US (1) US11588811B2 (ko)
KR (1) KR102625275B1 (ko)
WO (1) WO2020027618A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114301623A (zh) * 2021-11-24 2022-04-08 岚图汽车科技有限公司 一种报文加密方法及相关设备
US11886735B2 (en) * 2022-03-22 2024-01-30 Micron Technology, Inc. Data movement based on address table activity

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113117A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Re-flash protection for flash memory
US20100058070A1 (en) 2008-08-28 2010-03-04 Garay Juan A Message authentication code pre-computation with applications to secure memory
US20110066856A1 (en) * 2009-09-17 2011-03-17 Oki Electric Industry Co., Ltd. Communication data freshness confirmation system
US20140223197A1 (en) 2011-06-29 2014-08-07 Shay Gueron Method and apparatus for memory encryption with integrity check and protection against replay attacks

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030122B2 (en) * 2014-04-08 2021-06-08 Micron Technology, Inc. Apparatuses and methods for securing an access protection scheme
US9690922B2 (en) * 2014-07-28 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd. System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device
US10353638B2 (en) * 2014-11-18 2019-07-16 Microsemi SoC Corporation Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113117A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Re-flash protection for flash memory
US20100058070A1 (en) 2008-08-28 2010-03-04 Garay Juan A Message authentication code pre-computation with applications to secure memory
US20110066856A1 (en) * 2009-09-17 2011-03-17 Oki Electric Industry Co., Ltd. Communication data freshness confirmation system
US20140223197A1 (en) 2011-06-29 2014-08-07 Shay Gueron Method and apparatus for memory encryption with integrity check and protection against replay attacks

Also Published As

Publication number Publication date
KR20200015172A (ko) 2020-02-12
US11588811B2 (en) 2023-02-21
US20200045036A1 (en) 2020-02-06
WO2020027618A1 (en) 2020-02-06

Similar Documents

Publication Publication Date Title
CN100424657C (zh) 转换后备缓冲器的惰性转储清除
US8719489B2 (en) Hardware based wear leveling mechanism for flash memory using a free list
US20050022002A1 (en) Protected configuration space in a protected environment
JP5378452B2 (ja) パターンマッチング方法及びシステム
KR102625275B1 (ko) 비휘발성 메모리를 구비하는 전자 기기
CN111143247B (zh) 存储装置数据完整性保护方法及其控制器、片上系统
EP3271828B1 (en) Cache and data organization for memory protection
CN105939347B (zh) 防御域名攻击的方法及装置
EP3682332B1 (en) Method and apparatus for erasing or writing flash data
CN111159709A (zh) 一种文件类型识别方法、装置、设备及存储介质
CN101030897B (zh) 一种入侵检测中模式匹配的方法
US11042480B2 (en) System, method and apparatus for secure functions and cache line data
CN109214204B (zh) 数据处理方法和存储设备
CN108600259B (zh) 设备的认证和绑定方法及计算机存储介质、服务器
CN108055299A (zh) Portal页面推送方法、网络接入服务器及Portal认证系统
US10942856B2 (en) System, method and apparatus for secure functions and cache line data
CN112100686B (zh) 一种基于arm指针验证的内核代码指针完整性保护方法
KR101499666B1 (ko) 네트워크 스캔 탐지 방법 및 장치
Jakobsson et al. Assured detection of malware with applications to mobile platforms
WO2020217043A1 (en) System, method and apparatus for secure functions and cache line data
CN105653971A (zh) 一种基于中间层的文件保护方法及装置
CN111581660A (zh) 防止木马破坏共享文件的方法和装置,介质和电子设备
CN110166434A (zh) 存储网关及存储设备的数据写入、读取方法和装置
CN111125794B (zh) 访存控制方法、系统及存储装置控制器
CN113592639B (zh) 一种区块链交易删除方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant