KR20200123487A - 저장 디바이스의 인증 변경 - Google Patents
저장 디바이스의 인증 변경 Download PDFInfo
- Publication number
- KR20200123487A KR20200123487A KR1020207030160A KR20207030160A KR20200123487A KR 20200123487 A KR20200123487 A KR 20200123487A KR 1020207030160 A KR1020207030160 A KR 1020207030160A KR 20207030160 A KR20207030160 A KR 20207030160A KR 20200123487 A KR20200123487 A KR 20200123487A
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- interface
- signature
- input
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
여기에서는 저장 디바이스의 인증 변경을 위한 디바이스들 및 기술들이 설명된다. 상기 저장 디바이스의 인터페이스에 수신되는 데이터 전송은 명령, 입력 ID 세트, 및 상기 입력 ID들에 의해 식별되는 데이터에 대응하는 제1 시그니처를 획득하도록 디코딩될 수 있다. 상기 입력 ID 세트의 요소들이 마셜링(marshalling)되어 입력 세트가 생성될 수 있다. 상기 저장 디바이스의 암호화 엔진은 상기 입력 세트상에서 상기 입력 세트로부터 제2 시그니처를 생성하도록 인보크될 수 있다. 상기 제1 시그니처 및 상기 제2 시그니처는 비교되어 일치가 결정된다. 상기 일치에 응답하여, 상기 입력 세트가 상기 저장 디바이스의 보안 부분에 기록될 수 있다.
Description
우선권 출원
본 출원은 2018년 3월 23일자로 출원된 미국 출원 제62/647,390호의 우선권 이익을 주장하며, 이는 그 전체가 참조로 여기에 통합된다.
기술분야
여기에 설명되는 실시 예들은 개괄적으로 컴퓨터 저장 디바이스들에 관한 것이고,보다 구체적으로는 저장 디바이스의 인증 변경에 관한 것이다.
저장 디바이스는 데이터를 저장하도록 설계된 컴퓨터 하드웨어이다. 저장 디바이스들은 메모리, 대용량 저장 장치 등으로 알려져 있다. 저장 디바이스들은 일반적으로 데이터(예를 들어, 비트, 바이트, 블록 등) 제어기 하드웨어 및 인터페이스를 홀딩하여 데이터 쿼리를 가능하게 하고 기록 가능 저장 디바이스들에, 데이터를 기록하기 위한 매체를 포함한다.
도면들은 반드시 축척으로 그려진 것은 아니고, 상이한 도면들에서 같은 부호들은 유사한 구성요소들을 기술할 수 있다. 접미사들이 상이한 같은 부호들은 유사한 구성요소들의 상이한 인스턴스들을 나타낼 수 있다. 도면들은 일반적으로 제한이 아닌 예로서, 본 문서에서 논의되는 다양한 실시 예를 도시한다.
도 1은 일 실시 예에 따른, 저장 디바이스에서의 변경 동작 인증을 위한 시스템을 포함하는 환경의 일례의 블록도이다.
도 2는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스에 대한 메시지의 일례를 도시한다.
도 3은 일 실시 예에 따른, 저장 디바이스에 의한 해시의 생성을 인보크하기 위한 저장 디바이스에 대한 메시지의 일례를 도시한다.
도 4는 일 실시 예에 따른, 성공적인 인증 변경 동작에 응답하여 블록들이 비보안 비휘발성 버퍼로부터 저장 디바이스상의 보안 비휘발성 위치로 이동하는 것을 도시한다.
도 5는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스 내 구성 메시징의 일례를 도시하는 수직으로 정리된 도해이다.
도 6은 일 실시 예에 따른, 해시를 생성하기 위한 저장 디바이스 내 구성 메시징의 일례를 도시하는 수직으로 정리된 도해이다.
도 7은 일 실시 예에 따른, 다요인 지능형 에이전트 제어를 위한 방법의 일례의 흐름도를 도시한다.
도 8은 하나 이상의 실시 예가 구현될 수 있는 기계의 일례를 도시한 블록도이다.
도 1은 일 실시 예에 따른, 저장 디바이스에서의 변경 동작 인증을 위한 시스템을 포함하는 환경의 일례의 블록도이다.
도 2는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스에 대한 메시지의 일례를 도시한다.
도 3은 일 실시 예에 따른, 저장 디바이스에 의한 해시의 생성을 인보크하기 위한 저장 디바이스에 대한 메시지의 일례를 도시한다.
도 4는 일 실시 예에 따른, 성공적인 인증 변경 동작에 응답하여 블록들이 비보안 비휘발성 버퍼로부터 저장 디바이스상의 보안 비휘발성 위치로 이동하는 것을 도시한다.
도 5는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스 내 구성 메시징의 일례를 도시하는 수직으로 정리된 도해이다.
도 6은 일 실시 예에 따른, 해시를 생성하기 위한 저장 디바이스 내 구성 메시징의 일례를 도시하는 수직으로 정리된 도해이다.
도 7은 일 실시 예에 따른, 다요인 지능형 에이전트 제어를 위한 방법의 일례의 흐름도를 도시한다.
도 8은 하나 이상의 실시 예가 구현될 수 있는 기계의 일례를 도시한 블록도이다.
많은 제조 제품의 컴퓨터화가 증가함에 따라―이를테면 특히 차량들의 컴퓨터화된 제어 시스템들, 컴퓨터화된(예를 들어, 스마트) 가전 제품들 또는 센서들(예를 들어, 사물 인터넷(IoT) 디바이스들)―현재 저장 디바이스들은 전통적으로 컴퓨터들로 생각되지 않는 많은 제품에서 발견된다. 이러한 제품들의 컴퓨터화는 시간이 지남에 따라 이루어질 수 있고 변경하기 어려울 수 있다. 예를 들어, 자동차 CAN(controller area network) 버스는 다양한 제어기를 연결할 수 있게 하는 차량 통신 표준이다. 그러나, 차량들이 수명이 길 수 있기 때문에, 이러한 시스템들은 표준화 시점에 알려지지 않은 취약성 또는 약점을 가질 수 있으며 수정하기 어렵거나 비용이 많이 들 수 있다. 또한, 하나의 표준을 구현하기 위해 많은 값 비싼 제조 프로세스가 만들어질 수 있으며, 예를 들어 다양한 공급 업체의 제어기들과의 호환성을 유지하기 위해 새 차량들도 오래되거나 안전하지 않은 표준을 포함할 수 있다.
사용자들, 데이터 또는 실행 가능한 프로그램들에 관한 보안 문제는 일반적으로 모든 컴퓨팅 플랫폼에서 만연하다. 상술된 제조 제품들에 포함된 것들과 같은 임베디드 시스템들의 일반적인 비유연성으로 인해, 임베디드 시스템 보안은 보통 더 일반적인 컴퓨팅 디바이스들의 보안보다 뒤쳐진다. 그러나, 일반 컴퓨팅 디바이스들에서도, 추가 보안 하드웨어를 포함하도록 새로운 호스트 보드들(예를 들어, 마더 보드들)을 설계하는 것은 비용이 많이 들 수 있다. 다른 하드웨어 구성요소들을 수정하지 않고 일반적인 컴퓨팅 구성요소들 또는 임베디드 컴퓨터 시스템들과 인터페이싱할 수 있는 향상된 보안 하드웨어가 필요하다.
전술된 이슈들을 해결하기 위해, 저장 디바이스는 암호화 엔진(예를 들어, 해시 엔진)과 같은 암호화 구성요소들을 포함하도록 수정된다. 저장 디바이스는 또한 암호화 엔진에 의해 수행되는 다수의 암호화 동작을 인보크하기 위한 외부 개체(예를 들어, 프로세서, 디바이스 등)로부터의 추가 명령들을 받아들이도록 향상된다. 추가 명령은 데이터 판독 또는 기록과 같이 외부 개체들에 의해 스토리지 디바이스에 제공되는 다른 명령들과 유사한 방식으로 작동한다. 따라서, 시스템에 대한 저장 디바이스의 하드웨어 인터페이스는 동일하게 유지되어 저장 디바이스가 수정 없이 기존 시스템들에 포함될 수 있게 한다. 그러나, 기존 시스템들의 소프트웨어는 암호화 동작 명령들을 인보크하도록 수정됨에 따라 저장 디바이스의 암호화 구성요소들의 이점을 얻을 수 있다. 이러한 배열은 이러한 시스템들의 제조 프로세스들을 재설계하지 않고도, 임베디드 시스템들을 포함한 시스템들의 암호화 향상을 가능하게 한다.
하나의 그러한 암호화 명령은 블록(또는 페이지와 같은 다른 저장 수단) 잠금 해제를 포함한다. 예를 들어, 스토리지 디바이스의 전원이 켜지거나 다시 시작되거나 명령에 응답하여 스토리지의 블록은 잠금될 수 있다. 블록을 잠금 해제하기 위해 호스트(또는 다른 개체)는 잠금 해제 명령과 함께 암호화 해시를 포함한다. 암호화 해시는 저장 디바이스로부터의 비밀―저장 디바이스에 대한 호출자의 이전 인증 동안 또는 호출자의 구성을 통해 이루어지는―을 포함하여, 호출자에 대한 인증을 제공할 수 있다 그 다음 호출자는 잠금 해제된 블록에 기록할 수 있다. 이러한 절차는 일반적으로 무단 기록으로부터 블록을 보호함에 따라 작동 파라미터들과 같은 중요한 정보를 저장하는 데 사용될 수 있다. 그러나, 블록이 잠금 해제되고 권한 없는 기록자가 블록이 잠금 해제되는 동안 기록을 수행하는 경쟁 상황이 존재할 수 있다.
보안 기록들에 대한 경쟁 상황을 해결하기 위해, 작성되는 데이터는 블록 잠금을 해제하기 위해 명령 시그니처에 의존하는 대신, 또는 그에 더하여 자체적으로 서명될 수 있다.. 여기서, 호출자(예를 들어, 기록을 수행하는 개체)는 저장 디바이스의 비보안 부분상에 데이터를 버퍼링할 수 있다. 저장 디바이스에 충분한 휘발성 메모리 캐시가 있으면, 데이터가 거기에 버퍼링될 수 있지만, NOR 플래시 디바이스들과 같은 많은 저장 디바이스는 제한된 휘발성 메모리 캐시를 갖는다. 그에 따라, 데이터는 저장 디바이스의 비휘발성 저장소의 비보안 부분에 버퍼링된다. 그 다음 호출자는 데이터를 저장 디바이스의 보안 부분에 저장하기 위해, auth_modify으로 불리울 수 있는 명령을 개시한다. 이 명령에는 데이터의 ID(identification)(예를 들어, 데이터가 버퍼링되는 비보안 저장소의 어드레스 범위) 및 호출자에 의해 컴퓨팅되는 데이터의 시그니처가 포함된다. 저장 디바이스는 그것의 암호화 엔진을 사용하여 데이터의 그 자체의 시그니처를 컴퓨팅하고 두 시그니처를 비교한다. 그것들이 일치할 때, 데이터는 보안 부분으로 이동된다. 시그니처가 일치하지 않으면, auth_modify 명령은 불이행된다. 보안 부분은 저장 디바이스에 구성된다. 이러한 구성의 부분에는 보안 부분으로 향할 때 표준 프로그래밍(예를 들어, 기록 또는 업데이트) 명령들이 불이행되게 하는 것이 포함된다. 일례에서, 판독 명령들은 정상적으로 작동한다. 그에 따라, 모든 개체는 보안 부분의 데이터를 판독할 수 있다. 일례에서, 저장 디바이스는 판독과 함께 또는 쌍을 이뤄 보안 부분에 있는 데이터의 시그니처를 제공할 수 있다. 그에 따라, 판독 개체는 저장 디바이스와 판독 개체 사이에 중요한 데이터를 수정하는 다른 개체(예를 들어, "중간자")가 없음을 검증할 수 있다. 추가 예들 및 세부 사항들은 후술된다.
도 1은 일 실시 예에 따른, 저장 디바이스에서의 변경 동작 인증을 위한 시스템(저장 디바이스(105) 또는 그 내부의 구성요소들)을 포함하는 환경(100)의 일례의 블록도이다. 환경(100)은 제조 제품(145)에 임베디드된 시스템(140)을 포함한다. 제조 제품(145)은 무인 차량을 포함하는 차량(도시됨), 가전 제품, 가구, 구조물, 센서, 의류 또는 시스템(140)이 포함(예를 들어, 임베디드)될 수 있는 다른 아이템들과 같은 다양한 것을 포함할 수 있다. “스마트”아이템들을 만들거나 많은 가전 제품(예를 들어, 냉장고, 세탁기 등) 또는 센서와 같이 이전에 그러한 기능 없이 작동했던 제품들에 통신 기능들을 추가하는 최근 트렌드는 IoT를 만드는 것이라고 할 수 있으며, 참여 제품들이 IoT 디바이스들로 변환된다.
시스템(140)은 시스템(140) 외부에 있는 제조 제품(145)의 하나 이상의 구성요소와 통신하기 위한 인터페이스를 포함할 수 있다. 예를 들어, 시스템(140)이 차량 내 엔터테인먼트 시스템인 경우, 인터페이스는 시스템(140)이 스피커들을 제어할 수 있게 하고, 사용자의 디바이스(예를 들어, 전화, 개인용 음악 플레이어, 태블릿 등)로부터 콘텐츠를 수신할 수 있게 한다. 시스템(140)은 또한 하나 이상의 프로세서(예를 들어, 중앙 처리 장치, 저전력 프로세서, 디지털 신호 프로세서, 그래픽 처리 장치 등)를 포함하고 하나 이상의 저장 디바이스(예를 들어, 대용량 저장소, 메모리, 정적 메모리 등)는 저장 디바이스(105)를 포함할 수 있다.
저장 디바이스(105)는 인터페이스(110), 디코더(115), 제어기(120), 암호화 엔진(125) 및 저장소 부분(130)을 포함한다. 일례에서, 저장 디바이스(105) 및 그 내부의 구성요소들은 단일 칩상에 제조된다. 일례에서, 저장 디바이스(105)는 레지스터 뱅크(135)(예를 들어, 하나 이상의 레지스터를 포함함)를 포함한다. 저장 디바이스(105)의 이러한 모든 구성요소는 컴퓨터 하드웨어(예를 들어, 처리 회로)에 구현된다.
인터페이스(110)는 저장 디바이스(105)와 시스템(140)의 다른 구성요소들 사이에 하드웨어 통신 매체를 제공한다. 일례에서, 인터페이스(110)는 인터페이스는 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스이다. 일례에서, 저장 디바이스(105)는 랜덤 액세스 메모리(RAM) 디바이스이다. 일례에서, 인터페이스(110)는 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC(embedded MultiMedia Card) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따른다. 일례에서, 저장 디바이스(105)는 플래시 메모리 디바이스이다. 일례에서, 저장 디바이스(105)는 NOR 플래시 또는 NAND 플래시 중 적어도 하나이다(예를 들어, 저장소 부분(130)이 NOR 또는 NAND 플래시이다). 일례에서, 저장 디바이스(105)는 하드 디스크 드라이브(HDD, hard disk drive)이다.
디코더(115)는 인터페이스(110)에 수신되는 데이터 전송으로부터의 명령, 입력 ID 세트 및 시그니처를 파싱(parsing)하도록 배열된다.. 여기서, 명령은 Auth_Modify 또는 auth_modify으로도 알려져 있는 인증 변경 명령이다. 일례에서, 디코더(115)는 저장 디바이스(105)에 대한 판독 또는 기록 명령과 같은 다른 명령들을 디코딩하도록 배열된다. 일례에서, 디코더(115)는 제어기(120)의 부분이다(예를 들어, 제어기에 통합된다).
일례에서, 명령은 해시 동작과 같은 암호화 동작에 대응한다. 해시 동작은 입력 데이터를 받아들이고 입력 데이터의 해시를 출력으로 생성한다. 통상적으로 해시는 임의 크기의 데이터를 고정 크기로 매핑한다. 필수는 아니지만, 일반적으로 상이한 입력 데이터가 해시로부터 상이한 출력을 생성하는 것이 바람직하다. 두 개의 상이한 입력 데이터가 동일한 출력을 생성할 때 이를 충돌이라고 한다. 암호화 해시는 단방향이라는 점에서 다른 해시들과 상이할 수 있다. 즉, 해시의 출력만으로 입력 데이터를 생성하기는 어렵다.
일례에서, 해시 동작은 키(keyed)-해시 메시지 인증 코드(HMAC, hash message authentication code)이다. HMAC는 키가 다른 데이터와 조합되어 해시를 생성하는 메시지 인증 코드(MAC)이다. HMAC들은 데이터 무결성과 메시지(예를 들어, 다른 데이터)의 정확성 중 하나 또는 양자를 검증하는 데 사용될 수 있다. 일례에서, 데이터 전송에는 비밀이 포함된다. 여기서, 비밀은 HMAC에 대한 키로서 사용된다. 일례에서, 데이터 전송에는 저장 디바이스(105)의 현재 세션 키가 포함된다. 이러한 예에서, 저장 디바이스(105)는 이전에 외부 개체와 암호화된 통신에 입력된 것일 수 있다. 이러한 통신을 확립하는 부분으로서, 저장 디바이스(105)와 외부 개체 사이에 세션 키가 확립될 수 있다. 저장 디바이스(105)는 다수의 통신 동안 또는 설정된 시간 기간 동안 세션 키와 동일하거나 파생된 것을 유지할 수 있다. 일례에서, 저장 디바이스(105)는 전원을 껐다가 다시 켤 때마다(예를 들어, 재시작, 켜짐 등) 새로운 세션 키를 사용할 수 있다. 저장 디바이스(105)는 내부에, 이를테면 레지스터 뱅크(135)(또는 다른 내부 메모리) 또는 저장 부분(130)의 보호된 부분에 세션 키를 유지할 수 있다.
일례에서, 입력 ID 세트의 요소는 저장소 부분(130) 또는 레지스터 뱅크(135)와 같은 저장 디바이스(105)의 비보안 부분의 어드레스이다. 일례에서, 저장 디바이스(105)의 비보안 부분에는 저장 디바이스(105)에 대한 인터페이스(110)를 통해 외부 개체가 액세스 가능하다. 그에 따라, 예를 들어, 플래시 디바이스의 통상적인 동작에서, 저장소 부분(130)은 외부 개체들이 인터페이스(110)를 통해 이루어지는 저장 디바이스(105)에 대한 명령들을 통해 판독되고 기록되는 데이터를 홀딩하는 데 사용된다. 그에 반해, 레지스터 뱅크(135)는 인터페이스(110)를 통해 이러한 외부 개체들에 일반적으로 액세스할 수 없고 제어기(120)(또는 저장 디바이스(105)의 다른 부분)에 의해 내부용으로 사용될 수 있다. 일례에서, 저장 디바이스의 비보안 부분 은 어드레싱 가능한 블록이다, 이를테면 NAND 플래시 디바이스 또는 하드 디스크 드라이브.
일례에서, 저장 디바이스(105)의 비보안 부분은 어드레싱 가능한 바이트이다. 배타적이지는 않지만, 일반적으로 바이트 어드레싱 가능한 저장소는 프로세서에 의해 사용하기 직전에 데이터를 저장하는 데 사용된다. 그에 따라, 데이터는 프로세서에 의해 작동되기 전에 논-바이트 어드레싱 가능한 저장소(예를 들어, 블록 어드레싱 가능한 저장소)로부터 바이트 어드레싱 가능한 가능한 저장소로 검색될 수 있다. 예시적인 바이트 어드레싱 가능한 매체는 레지스터들, RAM 변형(예를 들어, 정적 RAM(SRAM), 동적 RAM(DRAM) 등), 코어 메모리, NOR 플래시 등을 포함할 수 있다. 일례에서, 저장 디바이스(105)의 비보안 부분은 레지스터(예를 들어, 레지스터 뱅크(135)의)이다. 일례에서, 저장 디바이스(105)의 비보안 부분은 비휘발성 저장 매체, 이를테면 NOR 플래시이다. 일례에서, 저장 디바이스(105)의 비보안 부분에는 저장 디바이스(105), 이를테면 레지스터 뱅크(135)에 대한 인터페이스(110)를 통해 외부 개체가 액세스 불가능하다.
일례에서, 입력 ID 세트는 저장 디바이스(105)의 비보안 부분의 어드레스 범위를 정의한다. 예를 들어, 입력 ID 세트는 예를 들어, 플래시 디바이스 또는 하드 디스크의 저장 부(130)의 저장 블록 목록일 수 있다. 입력 ID 세트는 RAM인 저장소 부분(130)의 바이트 어드레싱 가능한 어드레스 세트일 수 있다. 일례에서, 입력 ID 세트의 두 요소가 어드레스 범위를 정의한다. 이러한 예는 예를 들어, 시그널링 오버 헤드를 감소시키기 위해, 저장소 부분(130)의 연속적인 부분의 식별을 가능하게 한다. 일례에서, 두 요소 중 제1 요소가 범위의 시작을 정의하고 두 요소 중 제2 요소가 범위의 종료를 정의한다. 일례에서, 두 요소 중 제1 요소가 범위의 시작을 정의하고 두 요소 중 제2 요소가 범위에 포함할 유닛 수를 정의한다.
일례에서, 입력 ID 세트의 요소는 데이터 전송의 일 부분을 식별한다. 위에서, 입력 ID들은 저장 디바이스(105)에 의해 이미 관리되는 데이터를 언급하는 반면, 여기서 명령은 저장 디바이스(105)에 의해 아직 관리되지 않는 추가 데이터를 수반할 수 있다. 일례에서, 데이터 전송의 부분은 필드에 의해 식별된다. 일례에서, 데이터 전송의 부분은 오프셋에 의해 식별된다. 일례에서, 데이터 전송의 부분은 또한 길이에 의해 식별된다. 그에 따라, 이러한 마지막 몇몇 예를 고려하여, 새로운 데이터 전송은 다양한 기술을 사용하여 추가 데이터를 지정할 수 있다.
제어기(120)는 입력 ID 세트의 요소들을 수집하여 입력 세트를 생성하도록 배열된다. 수집은 입력 ID 세트의 어드레스들에 대응하는 데이터를 검색하거나 입력 세트에 포함할 전송으로부터 데이터(예를 들어, 비밀)를 획득(예를 들어, 검색 또는 수신)하는 것을 포함할 수 있다. 수집은 저장 디바이스(105)에서 이전에 관리된(예를 들어, 저장된) 데이터의 사용이 인증 변경 또는 다른 암호화 동작에 사용될 수 있게 한다. 그에 따라, 입력 세트는 데이터에 대한 참조가 아닌 데이터가 포함된다.
제어기(120)는 암호화 엔진(125)에 입력 세트의 시그니처를 생성할 것을 지시하도록 배열된다. 일례에서, 시그니처는 적어도 입력 세트의 암호화 해시이다. 일례에서, 암호화 해시는 또한 시그니처가 HMAC가 되도록, 저장 디바이스 세션 키와 같은 비밀이다.
제어기(120)는 디코더(115)에 의해 인터페이스(110)에서 데이터 전송으로부터 디코딩된 시그니처를 입력 데이터 세트로부터 암호화 엔진(125)에 의해 생성된 시그니처과 비교하도록 배열된다. 시그니처들은 데이터로부터 쉽게 컴퓨팅할 수 있지만, 상이한 데이터로부터 동일한 시그니처를 생성하기가 매우 어렵기 때문에, 데이터 전송시 저장 디바이스의 비보안 부분(130)에 데이터를 기록한 개체에 의해 제공되는 시그니처는 그것이 변경되지 않는 한 입력 데이터 세트(예를 들어, 비보안 부분(130)에 기록된 데이터)의 시그니처와 일치해야 한다. 그에 따라, 제어기(120)는 시그니처들이 일치하는지 여부를 결정하기 위해 두 개의 시그니처를 비교하도록 배열된다. 시그니처들이 일치하지 않으면, 입력 세트의 데이터는 외부 개체가 예상한 데이터가 아니므로, 악의적으로 또는 잘못 변경될 수 있다. 예를 들어, 인증 변경 명령은 시그니처가 일치하지 않을 때 불이행된다. 일례에서, 제어기(120)는 시그니처들의 불일치에 응답하여 비보안 저장 부분으로부터 입력 데이터 세트를 소거한다.
시그니처들이 일치할 때, 입력 세트의 데이터는 저장 디바이스(105)의 보안 부분으로 이동된다. 일례에서, 보안 부분은 저장 세그먼트들(예를 들어, 페이지들, 블록들 등)의 비트 맵, 또는 보안 저장소 부분들을 마킹하는 다른 데이터 구조를 통해 관리 된다. 일례에서, 레거시 기록 명령들은 그것들이 보안 부분을 포함할 때 불이행되어, 인증 변경 명령만이 제어기(120)에 의해 보안 부분을 변경하도록 지원된다. 일례에서, 레거시 소거 명령들은 보안 부분에서 지원되지 않으므로, 인증 변경 명령의 소거 변형만 보안 부분을 소거하도록 지원된다. 일례에서, 보안 부분을 소거하기 위한 인증 변경 명령 변형은 데이터 전송에 시그니처를 포함하지 않는다. 더 정확히 말하면, 이러한 명령의 변형은 HMAC 또는 데이터 전송시 전송된 다른 비밀을 사용하여 보안 부분을 소거한다.
권한을 부여받은 변경 명령은 권한을 부여받은 기록만이 저장 디바이스(105)의 보안 부분에 발생하는 것을 보장하지만, 보안 부분의 판독에는 영향을 미치지 않는다. 예를 들어, 비보안 버스(이를테면 자동차에서 흔히 볼 수 있는 CAN(controller area network) 버스)상에서 발생할 수 있는 중간자 공격을 처리하기 위해, 제어기(120)는 데이터가 판독될 때 그것에 더하여 데이터의 시그니처 또는 해시를 제공할 수 있다. 여기서, 수신기(예를 들어, 시스템(140))는 그것이 저장 디바이스(105)로부터 수신한 데이터로부터 파생되는 시그니처를 저장 디바이스(150)에 의해 제공된 시그니처와 비교할 수 있다. 다시, 시그니처들이 일치하면, 데이터는 손상되지 않는다. 이러한 활동을 지원하기 위해, 일례에서, 제어기(120)는 또한 암호화 엔진(125)에 입력 세트로부터 해시 곱을 생성할 것을 지시하도록 배열된다. 해시 곱은 최소한 입력 세트 데이터의 해시이다. 위에서 언급했듯이, 해시 곱은 HMAC일 수 있다. 이러한 예에서, 암호화 엔진(125)은 암호화 해시를 구현하도록 배열된다. 일례에서, 암호 해시는 보안 해시 알고리즘(SHA, secure hash algorithm)이다. 일례에서, 암호화 엔진(125)은 256 비트 해시를 생성하도록 배열된다.
일례에서, 제어기(120)는 또한 출력 ID에 대응하는 저장 디바이스(105)의 일 부분(예를 들어, 저장 부분(130))에 해시 곱을 기록하도록 배열된다. 이로써 저장 디바이스가 이미 관리하고 있는 데이터를 사용하고, 해시 곱을 생성하며, 그 해시 곱 자체를 저장할 수 있는 기능이 완료된다. 그에 따라, 외부 개체는 그렇지 않으면 데이터를 저장할 때 통상적으로 하듯이 저장 디바이스(105)에 해시될 데이터를 기록할 수 있다. 그 다음 외부 개체는 명령을 통해 해시 동작을 인보크하고 결과에 대해 저장 디바이스(105) 내부의 응답을 지정할 수 있다. 그 다음 외부 개체는 그 외 판독 명령과 같이 저장 디바이스로부터 데이터를 검색하는 것과 동일한 방식으로 해시 곱을 검색할 수 있다.
이러한 배열은 몇 가지 이점을 제공한다. 예를 들어, 인터페이스(110)가 저장 디바이스의 유형에 대한 다른 인터페이스 표준들 또는 유형들을 따르기 때문에, 저장 디바이스(105)가 동일한 유형의 저장 디바이스를 수용하도록 구성된 임의의 시스템(140)에 추가될 수 있다. 또한, 인증 변경 명령 구조―예를 들어, 비보안 데이터 기록, 인증 변경 요청에 기록된 데이터의 시그니처 제공, 및 비보안 데이터의 원자적 비교 및 보안 위치에 복사―는 프로그래머들에게 보안 기록을 구현하기 위한 명쾌하고 간단한 방법을 제공한다. 또한, 기록, 해시, 판독 명령 사이클은 데이터 기록 및 해시 곱 판독이 다른 저장 디바이스들에 익숙한 방식으로 발생하기 때문에 프로그래머들에게 친숙하고 유연한 해시 기능을 제공한다. 이러한 방식으로, HMAC 메시징 또는 다른 업그레이드들과 같은 보안 기능들을 원래 장비 제조업체들에 대한 추가 제조 비용 없이 기존 시스템들에 추가할 수 있으므로, 시스템들이 제조 제품들에 더 많이 녹아 들어갈 수 있다.
도 2 내지 도 3은 저장 디바이스에 대한 메시지(300)의 일례를 도시한다. 여기에서 논의되는 메시지 포맷들은 비제한적인 예들이다. 메시지들의 부분들은 필드들(예를 들어, XML(eXtensible Markup Language) 등과 같은 마크업 언어의 태그들) 또는 관례(예를 들어, 처음 8 비트는 명령을 지정하고, 두 번째 8 비트는 입력 헤더를 지정하는 등)에 의해 표기될 수 있다. 또한, 메시지들은 특정 순서의 부분들(예를 들어, 명령, 입력 헤더, 입력 어드레스들 및 출력 어드레스)로 설명되지만, 변형에는 이러한 구성요소들의 재배열이 포함될 수 있다(예를 들어, 입력 헤더 없음, 출력 어드레스, 입력 어드레스들, 다음 명령).
도 2는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스에 대한 메시지(200)의 일례를 도시한다. 메시지(200)는 명령 부분(205), 입력 헤더(210), 입력 어드레스 부분(215) 및 시그니처 부분(220)을 포함한다. 시그니처 부분 이외의 다양한 부분은 메시지(300)에 대해 후술하는 바와 같이 작동한다.
시그니처 부분은 명령 부분(205)에 지정된 인증 변경 명령에 대응하는 데이터의 시그니처를 홀딩한다. 일례에서, 시그니처 부분은 저장 디바이스의 시그니처에 대한 참조(예를 들어, 어드레스)이다. 일례에서, 시그니처 부분에는 데이터의 HMAC가 포함된다.
도 3은 일 실시 예에 따른, 해시 동작을 인보크하기 위한 저장 디바이스에 대한 메시지(300)의 일례를 도시한다. 메시지(300)는 네 개의 부분, 즉 명령 부분(305), 입력 헤더(310), 입력 어드레스 부분(315) 및 출력 어드레스(320)를 포함한다. 일례에서, 명령 부분(305)은 저장 디바이스에 대한 표준 인터페이스에 따라 배치되고 크기가 조정된다. 예를 들어, 저장 디바이스의 인터페이스가 SCSI인 경우, 첫 번째 8 비트 바이트는 명령 부분(305)이다. 입력 헤더(310)는 선택 사항이고 입력 어드레스 부분(315)의 데이터 유형을 기술하는 데 사용될 수 있다. 예를 들어 , 입력 어드레스 부분(315)이 두 개의 어드레스 크기인 경우, 입력 헤더(310)는 입력 어드레스 부분(315)이 두 개의 별개 어드레스로 취급될 것인지 또는 범위(예를 들어, 시작 및 종료 어드레스 또는 시작 어드레스 및 범위)로 취급될 것인지를 지정할 수 있다. 출력 어드레스(320)는 상술된 바와 같이, 암호화 엔진이 명령 부분(305)으로부터 명령의 해시 동작을 수행할 때 생성되는 해시 곱의 목적지를 지정한다.
일례에서, 메시지(300)는 비밀 부분을 포함한다. 비밀 부분은 HMAC에 대한 키로서 사용될 수 있는 비밀을 홀딩한다. 여기서, 비밀은 키의 실제 값이다. 일례에서, 메시지(300)는 또한 비밀 어드레스 부분을 포함한다. 비밀 어드레스 부분은 내부 NAND 또는 NOR 플래시 블록들, 레지스터, 메모리 등과 같은 저장 디바이스 내의 어드레싱 가능한 위치에 대한 어드레스를 홀딩한다. 비밀 어드레스 부분을 사용하면 특정 스토리지 인터페이스 표준의 주어진 제약 조건들에서 가능할 수 있는 것보다 더 큰 비밀을 사용할 수 있다. 외부 개체는 이전 동작에서 저장 디바이스의 하나 이상의 블록에 비밀을 기록한 다음 비밀 어드레스 부분을 통해 비밀을 참조할 수 있다. 일례에서, 메시지(300)는 또한 비밀 명령 부분을 포함한다. 비밀 명령 부분에는 비밀을 얻는 방법을 지정하는 저장 디바이스에 대한 지시문이 포함된다. 예시적인 지시문에는 저장 디바이스의 현재 세션 키를 검색하거나 진단 구성요소를 사용하여 저장 디바이스의 품질을 측정하는 것이 포함될 수 있다. 비밀 명령은 훨신 더 정교한 저장 디바이스 하드웨어를 활용할 수 있는 추가적인 유연성을 제공한다. 비밀 홀딩 영역(예를 들어, 비밀 부분, 비밀 어드레스 또는 비밀 명령 부분)은 입력 어드레스 부분(예를 들어, 315)과 별개일 수 있지만, 비밀 홀딩 영역은 입력 어드레스 부분에 포함되어 예를 들어, 입력 헤더에 지정될 수 있다.
도 4는 일 실시 예에 따른, 성공적인 인증 변경 동작에 응답하여 블록들이 비보안 비휘발성 버퍼로부터 저장 디바이스상의 보안 비휘발성 위치로 이동하는 것을 도시한다.
위에서 언급했듯이, 인증 변경 명령은 블록 잠금 보안 기록 기술들에 존재하는 특정 취약점들을 방지한다. 재생 보호 메모리 블록(RPMB, protect memory block)라고 알려져 있는 일부 메모리 디바이스에 사용되는 또 다른 기술은 모든 판독 및 기록에 대해 인증을 사용하고 또한 보안 기록을 촉진한다. 그러나, RPMB는 저장 디바이스에 대한 데이터 기록와 함께 인증을 수행하기 위해 기록 부분 전체를 버퍼링할 수 없는 디바이스들에는 적합하지 않다. 그러나, 여기에 설명된 인증 변경은 비보안 기록에 이어 비보안 데이터의 원자적 검증을 가능하게 하고 비보안 영역으로부터 보안 영역으로 기록(예를 들어, 복사)을 가능하게 함으로써 RPMB 문제를 해결한다.
저장 디바이스의 보안 영역 또는 부분은 저장 디바이스의 메타 데이터 또는 제어 레지스터들에 정의된다. 이는 사용자(예를 들어, 고객)가 예를 들어 비트 맵, 파티션 등을 통해 지정하고 하나 이상의 소거 블록이 인증 변경(예를 들어, Auth_Modify) 명령에 의해서만 변경될 수 있는지 결정하는 신뢰할 수 있는 방법을 정의한다. 예를 들어, 인증 변경 명령의 시그니처는 HMAC 레거시 프로그램/소거가 더 이상 기존 플래시 콘텐츠의 이러한 블록 시그니처상에 작동하지 않을 것이고 그 다음 플래시의 보호된 위치로 이동될 수 있게 한다. 성공적으로 실행될 때, 새로운 콘텐츠가 하나의 플래시 명령 내에 원자적으로 기록된다.
예를 들어, 사용자 제어는 0 내지 256개의 블록(예를 들어, 블록 없음부터 모든 어레이 64-KB 블록까지)을 각각 "인증 변경"(AM, Authenticated Modify)되도록 구성한다. 블록 구성 및 상태는 CRTM_Register_Write 및 CRTM_Register_Read 명령들과 같은 HMAC-서명 명령들로만 제한될 수 있다. 레거시 프로그램 및 소거 동작들은 AM 블록들에 대해 불이행될 것이다. 그에 따라, AM 블록들을 변경하는 유일한 방법은 어레이 위치(예를 들어, "플래시 버퍼")로부터 임의의 AM 블록으로 플래시 콘텐츠를 복사하는 것과 같은 Auth_Modify 명령을 통해서이다.
일례에서, 인증 변경 명령에는 여러 옵션이 있을 수 있다. 예를 들어, 명령 옵션 제로에는 소거할 AM 블록의 기본 어드레스를 지정하는 보안 소거 명령이 포함될 수 있다. 일례에서, 소거 일시 중지/재개 기능은 이러한 명령이나 AM 블록에 대해 지원되지 않는다. 예를 들어, 이러한 명령 옵션은 호스트가 AM 블록 풀을 이용하여 저장소 공간을 안전하게 확보할 수 있게 한다.
다른 예시적인 명령 옵션은 하나의 어레이 위치로부터 AM 블록으로 기존 플래시 콘텐츠를 복사하는 것을 포함한다. 일례에서, 복사는 256-바이트의 최소 단위를 갖는다. 일례에서, 명령은 어드레스 정렬을 필요로 한다. 예를 들어, 명령의 최대 세분화는 64-KB이다. 일례에서, 소거 일시 중지/재개 기능은 이러한 명령이나 AM 블록에 대해 지원되지 않는다.
호스트 또는 저장 디바이스 인터페이스에 대한 액세스 권한을 가진 다른 개체는 여러 방식으로 인증 변경을 사용할 수 있다. 예를 들어, 호스트는 CRTM_Register_Write를 사용하여 AM 보호(AM 블록 풀)를 위한 블록들을 할당하거나, CRTM_Register_Read를 사용하여 AM 보호 블록들의 인증된 보호 상태를 판독할 수 있다. AM 공간이 요구되는 경우, 호스트는 Auth_Modify 명령 옵션 제로를 인보크하여 AM 블록을 소거할 수 있다. 일례에서, 호스트는 Auth_Modify 중 하나의 명령을 사용하여 AM 블록에 콘텐츠를 추가할 수 있다. 일례에서, 데이터 복사는 비보안(예를 들어, 비-AM) 또는 보안(예를 들어, AM) 블록으로부터 보안 블록으로 이루어질 수 있다. 일례에서, 재생 방지 보호는 저장 디바이스의 단조 카운터에 의해 제공된다. 예를 들어, 저장 디바이스의 키 연관은 교체 가능한 루트 키와 저장 디바이스 전원 사이클마다의 세션 키이다.
동작시, 도 4에 도시된 바와 같이, 저장 디바이스(405)는 저장 디바이스(405)의 비보안 부분들(예를 들어, 플래시 버퍼)에 있는 데이터(410 및 415)로 시작한다. 인증 변경 명령 이후에, 데이터는 저장 디바이스의 보안 부분들(예를 들어, AM) 부분들로 이동된다. 그것은 선택적으로 비보안 부분의 데이터가 복사본의 부분으로서 소거되는지 여부라는 것을 유의한다. 예를 들어, 데이터(410)는 데이터(415)가 있는 동안 비보안 부분에서 소거되지 않는다.
도 5는 일 실시 예에 따른, 인증 변경을 수행하기 위한 저장 디바이스 내 구성 메시징(500)의 일례를 도시하는 수직으로 정리된 도해이다. 저장 디바이스가 데이터 전송을 수신한 후, 디코더에 의해 디코딩되어 제어기로 전송된다(메시지 505). 이러한 컨텍스트에서, 디코딩된 명령은 명령이 적용되는 데이터에 대한 시그니처가 포함되어 있다는 점에서 레거시, 또는 표준, 기록 또는 프로그램 명령과 구별되는 인증 변경 명령이다. RPMB 등과는 달리, 시그니처가 생성된 데이터는 저장 디바이스로의 데이터 전송의 부분이 아니다. 더 정확히 말하면, 데이터는 이전에 레거시 기록을 통해 스토리지 디바이스상에 배치되었다.
디코딩된 전송은 또한 명령의 개시자(예를 들어, 호스트)에 의해 이전에 저장된 데이터의 ID를 포함했다. 제어기는 이러한 ID를 사용하여 저장 디바이스의 저장소로부터 입력 세트를 요청(메시지 510) 및 수신(메시지 515)한다. 그 다음 제어기는 저장 디바이스의 암호화 엔진이 입력 세트의 시그니처를 생성하도록 요청한다(메시지 520). 일례에서, 제어기는 실제로 저장 부분으로부터 입력 세트를 수신하지 않고 암호화 엔진에 입력 세트의 데이터를 보내며, 암호화 엔진은 데이터 자체를 판독하고 시그니처를 생성한다. 완료되면, 암호화 엔진은 입력 세트의 시그니처를 제어기에 다시 제공한다(메시지 525).
그 다음 제어기는 데이터 전송에서 수신된 시그니처를 암호화 엔진에 의해 제공되는 시그니처와 비교한다(동작 530). 시그니처들이 일치하면, 요청자에 의해 처음 기록된 데이터는 변경되지 않았고, 그것은 저장 디바이스의 저장소 부분의 보안 부분(예를 들어, AM 구성 블록 또는 파티션)에 기록된다(메시지 535). 그렇지 않고, 시그니처들이 일치하지 않으면, 입력 세트에 지정된 데이터가 요청자가 기대하는 것과 일치하지 않고(예를 들어, 그것이 악의적으로 또는 잘못 변경되었기 때문에), 인증 변경 동작이 불이행된다.
일례에서, 데이터 전송 자체는 상술된 메시지(300)에 의해 지원되는 것과 같은 해시 동작을 통해 보안될 수 있다. 일례에서, 보안 부분으로부터 판독되는 데이터는 구성요소 메시징(600)을 이용하여 후술될 바와 같이, 판독에 대한 응답으로 데이터의 해시 시그니처를 제공하여 저장 부분과 판독 개체 사이의 데이터 변경에 대한 보험으로 검증될 수 있다.
도 6은 일 실시 예에 따른, 해시를 생성하기 위한 저장 디바이스 내 구성 메시징(6000)의 일례를 도시하는 수직으로 정리된 도해이다. 저장 디바이스에 대한 인터페이스에서 전송이 수신된 후, 디코더는 메시지의 명령을 디코딩한다(동작 605). 그 다음 제어기는 입력 ID 세트에 대응하는 데이터를 저장소 부분으로부터 요청함으로써(동작 610) 입력 ID 세트로부터 데이터를 마셜링(marshalling)하고 저장소 부분에 의해 제공되는 입력 세트 데이터를 수신할 수 있다(동작 615).
입력 세트가 마셜링되면, 제어기는 입력 세트상의 명령의 해시 동작을 인보크한다(동작 620). 선택 사항으로, 제어기는 해시 동작 인보크의 부분으로서 암호화 엔진에 키를 제공할 수 있다(동작 625). 그 다음 암호화 엔진은 해시 결과(예를 들어, 해시 곱)를 제어기에 다시 제공한다(동작 630). 그 다음 제어기는 입력 메시지(예를 들어, 출력 어드레스)에 지정된 대로 저장소 부분에 해시 결과를 저장한다(동작 635).
도 7은 일 실시 예에 따른, 다요인 지능형 에이전트 제어를 위한 방법(700)의 일례의 흐름도를 도시한다. 방법(700)의 동작들은 도 1과 관련하여 상술된 또는 도 8과 관련하여 후술될 것(예를 들어, 회로)과 같은 컴퓨터 하드웨어상에서 수행된다.
동작 705에서, 저장 디바이스의 인터페이스에 수신되는 데이터 전송이 디코딩된다. 여기서, 데이터 전송은 명령, 입력 ID 세트, 및 입력 ID들에서의 데이터에 대응하는 시그니처를 포함한다. 그 명령은 인증 변경 또는 auth_modify 동작에 대응한다.
일례에서, 입력 ID 세트는 저장 디바이스의 비보안 부분의 어드레스 범위를 정의한다. 일례에서, 입력 ID 세트의 두 요소가 어드레스 범위를 정의한다. 일례에서, 두 요소 중 제1 요소가 범위의 시작을 정의하고 두 요소 중 제2 요소가 범위의 종료를 정의한다. 일례에서, 두 요소 중 제1 요소가 범위의 시작을 정의하고 두 요소 중 제2 요소가 범위에 포함할 유닛 수를 정의한다.
일례에서, 입력 ID 세트의 요소는 데이터 전송의 일 부분을 식별한다. 일례에서, 데이터 전송의 부분은 필드에 의해 식별된다. 일례에서, 데이터 전송의 부분은 오프셋에 의해 식별된다. 일례에서, 데이터 전송의 부분은 또한 길이에 의해 식별된다.
일례에서, 데이터 전송은 보안 부분의 ID를 포함한다. 일례에서, 보안 부분은 외부 개체(예를 들어, 저장 디바이스 또는 그 구성요소가 아닌 저장 디바이스 인터페이스를 사용하는 호스트 또는 다른 개체)가 판독 가능하다. 일례에서, 데이터 전송은 저장 디바이스의 비밀을 식별한다. 일례에서, 비밀은 저장 디바이스의 현재 세션 키이다.
일례에서, 저장 디바이스의 인터페이스는 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스이다. 일례에서, 저장 디바이스는 랜덤 액세스 메모리(RAM) 디바이스이다.
일례에서, 저장 디바이스의 인터페이스는 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따른다. 일례에서, 저장 디바이스는 플래시 메모리 디바이스이다. 일례에서, 플래시 메모리 디바이스는 NOR 플래시 또는 NAND 플래시 중 적어도 하나이다. 일례에서, 저장 디바이스는 하드 디스크 드라이브(HDD, hard disk drive )이다.
동작 710에서, 입력 ID 세트의 요소들이 마셜링되어 입력 세트가 생성된다. 마셜링에는 입력 알림들에서 식별된 데이터를 수집하고 데이터를 입력 세트에 배치하는 것이 수반된다. 일례에서, 입력 ID 세트의 요소들을 마셜링하는 것은 입력 세트에 포함할 입력 ID 세트의 어드레스에 대응하는 데이터를 검색하는 것을 포함한다.
동작 715에서, 저장 디바이스의 암호화 엔진은 입력 세트상에서 입력 세트로부터 제2 시그니처를 생성하도록 인보크될 수 있다. 일례에서, 암호화 엔진은 암호화 해시를 구현한다. 일례에서, 암호 해시는 보안 해시 알고리즘(SHA, secure hash algorithm)이다. 일례에서, 암호화 엔진은 256 비트 해시 또는 512 비트 해시를 생성한다.
동작 720에서, 데이터 전송의 부분으로 수신되었던 제1 시그니처와 암호화 엔진에 의해 입력 세트로부터 생성되었던 제2 시그니처가 비교된다. 그것들이 일치하면(결정 725), 동작 730에서, 입력 세트가 저장 디바이스의 보안 부분에 기록된다. 기록은 기저 저장 디바이스 제어기에 비보안 부분으로부터 보안 부분으로 입력 세트의 데이터를 복사할 것을 지시하는 것을 포함할 수 있거나, 데이터를 제어기로 판독하고 그것을 보안 부분에 기록하는 것을 포함할 수 있다. 시그니처들이 일치하지 않으면(결정 725), 동작 735에서, 명령이 불이행된다. 일례에서, 명령 불이행 알림이 요청자에게 다시 전송된다.
일례에서, 방법(700)은 데이터가 리턴되었던 판독 요청에 응답하여 보안 부분에 데이터의 제3 시그니처를 생성하는 것을 포함하도록 확장될 수 있다. 일례에서, 시그니처는 판독 요청과 관련된 두 번째 명령에 대한 응답이다.
도 8은 여기서 논의된 기술들(예를 들어, 방법론들)의 임의의 하나 이상을 수행할 수 있는 예시적인 기계(800)의 블록도를 도시한다. 여기서 설명된 바와 같은 예들은 기계(800)에 로직, 다수의 구성요소, 또는 메커니즘을 포함할 수 있거나, 이에 의해 작동할 수 있다. 회로망(예를 들어, 처리 회로망)은 하드웨어(예를 들어, 단순 회로들, 게이트들, 로직 등)를 포함하는 기계(800)의 유형의 개체들에 구현되는 회로들의 집합이다. 회로망 요소수는 시간이 지남에 따라 유연할 수 있다. 회로망들은 작동시 단독으로 또는 조합하여 지정된 동작들을 수행할 수 있는 요소들을 포함한다. 일례로, 회로망의 하드웨어는 특정 동작을 수행하도록 불변적으로 설계될 수 있다(예를 들어, 하드웨어에 내장됨). 일례에서, 회로망의 하드웨어는 특정 동작의 명령들을 인코딩하기 위해 물리적으로 변경되는(예를 들어, 자기적으로, 전기적으로, 불변의 밀집한 입자들의 이동 가능한 배치 등) 기계 판독 가능 매체를 포함하여 물리적 구성요소들(예를 들어, 실행 유닛들, 트랜지스터들, 단순 회로들 등)에 가변적으로 연결되는 것을 포함할 수 있다.. 물리적 구성요소들을 연결시, 하드웨어 구성의 기저 전기적 속성들은 예를 들어, 절연체에서 도체로 또는 그 반대로 변경된다. 명령들은 임베디드 하드웨어(예를 들어, 실행 유닛들 또는 로딩 메커니즘)가 작동 중에 특정 동작의 부분들을 수행하기 위해 가변 연결들을 통해 하드웨어에 회로망의 요소들을 생성할 수 있게 한다.. 따라서, 일례에서, 기계 판독 가능한 매체 요소들은 회로망의 부분이거나 디바이스가 작동할 때 회로망의 다른 구성요소들에 통신 가능하게 연결된다.. 일례에서, 임의의 물리적 구성요소들은 하나보다 많은 회로망의 하나보다 많은 요소에 사용될 수 있다. 예를 들어, 작동 중, 실행 유닛들은 한 시점에 제1 회로망의 제1 회로에 사용될 수 있고, 상이한 시간에 제1 회로망의 제2 회로에 의해, 또는 제2 회로망의 제3 회로에 의해 재사용될 수 있다. 기계(800)에 대한 이러한 구성요소들의 추가 예들은 다음과 같다.
대안적인 실시 예들에서, 기계(800)는 독립형 디바이스로서 작동할 수 있거나 다른 기계들에 연결(예를 들어, 네트워킹)될 수 있다. 네트워킹된 배치에서, 기계(800)는 서버-클라이언트 네트워크 환경들에서 서버 기계, 클라이언트 기계 또는 양자로서 작동할 수 있다. 일례에서, 기계(800)는 피어-투-피어(P2P)(또는 다른 분산) 네트워크 환경에서 피어 기계으로서의 역할을 할 수 있다. 기계(800)는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 모바일 전화, 웹 기기, 네트워크 라우터, 스위치 또는 브릿지 또는 해당 기계에 의해 취해질 동작들을 지정하는 명령들을 실행할 수 있는(순차적 또는 다른 방식으로) 임의의 기계일 수 있다. 나아가, 하나의 기계만 도시되어 있지만, "기계"라는 용어는 또한 클라우드 컴퓨팅, SaaS(Software as a Service), 다른 컴퓨터 클러스터 구성들과 같이, 여기서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위한 명령들의 세트(또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 임의의 기계 집합을 포함하는 것으로 간주되어야 한다.
기계(예를 들어, 컴퓨터 시스템)(800)은 하드웨어 프로세서(802)(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 하드웨어 프로세서 코어 또는 이들의 임의의 조합), 메인 메모리(804), 정적 메모리(예를 들어, 펌웨어, 마이크로 코드, 기본 입출력(BIOS, basic-input-output), UEFI(Unified Extensible Firmware Interface)를 위한 메모리 또는 저장소)(806) 및 대용량 저장소(821)(예를 들어, 하드 드라이브, 테이프 드라이브, 플래시 저장소, 또는 다른 블록 디바이스들)를 포함할 수 있으며, 이들 중 일부 또는 전부는 인터링크(예를 들어, 버스)(808)를 통해 서로 통신할 수 있다. 메인 메모리(804)는 일반적으로 어드레싱 가능한 바이트 대 어드레싱 가능한 블록이므로 프로세서(802)에 의한 그것의 데이터의 직접 사용을 가능하게 함으로써 대용량 저장소(821)와 구별 가능하다. 또한, 메인 메모리(804)는 파워-온 및 파워-오프 사이클들 사이에 유지되는 정보보다는 현재(예를 들어, 라이브) 상태 정보를 저장하기 위해 프로세서(802)에 의해 사용된다. 정적 메모리(806)는 일반적으로 전원을 켤 때 발생하는 것과 같이 하드웨어를 직접 변경 또는 구성하거나 기계 명령들을 변경하기 위해(예를 들어, 마이크로 코드를 통해) 사용된다.
기계(800)는 디스플레이 장치(810), 영숫자 입력 디바이스(812)(예를 들어, 키보드) 및 사용자 인터페이스(UI) 내비게이션 디바이스(814)(예를 들어, 마우스)를 더 포함할 수 있다. 일례에서, 디스플레이 유닛(810), 입력 디바이스(812) 및 UI 내비게이션 디바이스(814)는 터치 스크린 디스플레이일 수 있다. 기계(800)는 저장 디바이스(예를 들어, 구동 유닛)(816), 신호 생성 디바이스(818)(예를 들어, 스피커), 네트워크 인터페이스 디바이스(820), 및 하나 이상의 센서(821), 이를테면 GPS(global positioning system) 센서, 나침반, 가속도계 또는 다른 센서를 추가로 포함할 수 있다. 기계(800)는 하나 이상의 주변 디바이스(예를 들어, 프린터, 카드 리더기 등)와 통신 또는 제어하기 위해 직렬(예를 들어, USB(universal serial bus), 병렬 또는 다른 유선 또는 무선(예를 들어, 적외선(IR), 근거리 통신(NFC) 등) 연결과 같은 출력 제어기(828)를 포함할 수 있다.
프로세서(802), 메인 메모리(804), 정적 메모리(806) 또는 대용량 저장소(816)의 레지스터들은 여기서 설명된 기술들 또는 기능들 중 임의의 하나 이상을 채용하거나 그에 의해 이용되는 하나 이상의 데이터 구조 또는 명령 세트(824)(예를 들어, 소프트웨어)가 저장되는 기계 판독 가능한 매체(822)일 수 있거나, 또는 그것을 포함할 수 있다. 명령들(824)은 또한 기계(800)에 의해 이의 실행 동안 프로세서(802), 메인 메모리(804), 정적 메모리(806) 또는 대용량 저장소(816)의 임의의 레지스터들 내에 완전히 또는 적어도 부분적으로 존재할 수 있다. 일례에서, 하드웨어 프로세서(802), 메인 메모리(804), 정적 메모리(806) 또는 대용량 저장소(816) 중 하나 또는 임의의 조합은 기계 판독 가능한 매체(802)를 구성할 수 있다. 기계 판독 가능한 매체(822)는 하나의 매체로서 도시되지만, "기계 판독 가능한 매체"라는 용어는 하나 이상의 명령(824)을 저장하도록 구성된 하나의 매체 또는 다수의 매체(예를 들어, 중앙 집중식 또는 분산 데이터베이스, 및/또는 관련 캐시들 및 서버들)를 포함할 수 있다.
"기계 판독 가능한 매체"라는 용어는 기계(800)에 의한 실행을 위한 명령들을 저장, 인코딩 또는 전달할 수 있고 기계(800)가 본 개시 내용의 기술들 중 임의의 하나 이상을 수행하게 하거나, 또는 그러한 명령들에 의해 사용되거나 그것들과 연관된 데이터 구조들을 저장, 인코딩 또는 전달할 수 있는 임의의 매체를 포함할 수 있다. 비제한적인 기계 판독 가능한 매체의 예들은 고체 상태 메모리들, 광 매체들, 자기 매체들, 및 신호들(예를 들어, 라디오 주파수 신호들, 다른 광자 기반 신호들, 사운드 신호들 등)을 포함할 수 있다. 일례에서, 비일시적 기계 판독 가능한 매체는 불변(예를 들어, 움직이지 않는) 밀집체를 갖는 복수의 입자를 갖고, 그에 따라 물질의 구성들인 기계 판독 가능한 매체를 포함한다. 따라서, 비일시적 기계 판독 가능한 매체는 일시적 전파 신호들을 포함하지 않는 기계 판독 가능한 매체이다. 비일시적 기계 판독 가능한 매체의 구체적인 예들은: 비휘발성 메모리, 이를테면 반도체 메모리 디바이스들(예를 들어, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스들; 자기 디스크들, 이를테면 내부 하드 디스크들 및 이동식 디스크들; 자기-광 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함할 수 있다.
명령들(824)은 또한 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 하이퍼텍스트 전송 프로토콜(HTTP) 등) 중 어느 하나를 이용하여 네트워크 인터페이스 디바이스(820)를 통해 전송 매체를 사용하여 통신 네트워크(826)을 통해 송신 또는 수신될 수 있다. 예시적인 통신 네트워크들은 특히, 근거리 통신망(LAN), 광역 통신망(WAN), 패킷 데이터 네트워크(예를 들어, 인터넷), 모바일 전화 네트워크들(예를 들어, 셀룰러 네트워크), POTS(Plain Old Telephone) 네트워크들, 및 무선 데이터 네트워크들(예를 들어, Wi-Fi®로 알려져 있는 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준 계열, WiMax®로 알려져 있는 IEEE 802.16 표준 계열), IEEE 802.15.4 표준 계열, 피어-투-피어(P2P) 네트워크들을 포함할 수 있다. 일례에서, 네트워크 인터페이스 디바이스(820)는 통신 네트워크(826)에 연결하기 위한 하나 이상의 물리적 잭(예를 들어, 이더넷, 동축 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수 있다. 일례에서, 네트워크 인터페이스 디바이스(820)는 단일-입력 다중-출력(SIMO), 다중-입력 다중-출력(MIMO), 또는 다중-입력 단일-출력(MISO) 기술들 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함한다. "전송 매체"라는 용어는 기계(800)에 의한 실행을 위한 명령들을 저장, 인코딩 또는 전달할 수 있는 임의의 무형의 매체를 포함하는 것으로 간주되어야 하고, 그러한 소프트웨어의 통신을 가능하게 하기 위한 디지털 또는 아날로그 통신 신호들 또는 다른 무형의 매체를 포함한다. 전송 매체는 기계 판독 가능한 매체이다.
추가 비고 & 예들
예 1은 인증 변경을 구현하는 저장 디바이스로서, 암호화 엔진; 인터페이스; 상기 인터페이스에 수신되는 데이터 전송으로부터의 명령, 입력 ID(identification) 세트 및 제1 시그니처를 파싱(parsing)하는 디코더; 및 제어기로서: 상기 입력 ID 세트의 요소들을 수집하여 입력 세트를 생성하고; 상기 암호화 엔진에 상기 입력 세트로부터 제2 시그니처를 생성할 것을 지시하고; 상기 제1 시그니처 및 상기 제2 시그니처를 비교하여 일치를 결정하며; 상기 일치에 응답하여 상기 입력 세트를 상기 저장 디바이스의 보안 부분에 기록하는, 상기 제어기를 포함하는 저장 디바이스이다.
예 2에서, 예 1의 대상은 상기 입력 ID 세트가 상기 저장 디바이스의 비보안 부분의 어드레스 범위를 정의하는 것을 포함한다.
예 3에서, 예 2의 대상은 상기 입력 ID 세트의 두 요소가 상기 어드레스 범위를 정의하는 것을 포함한다.
예 4에서, 예 3의 대상은 상기 두 요소 중 제1 요소가 상기 범위의 시작을 정의하고 상기 두 요소 중 제2 요소가 상기 범위의 종료를 정의하는 것을 포함한다.
예 5에서, 예 3-4의 대상은 상기 두 요소 중 제1 요소가 상기 범위의 시작을 정의하고 상기 두 요소 중 제2 요소가 상기 범위에 포함할 유닛 수를 정의하는 것을 포함한다.
예 6에서, 예 1-5의 대상은 상기 데이터 전송이 상기 보안 부분의 ID를 포함하는 것을 포함한다.
예 7에서, 예 1-6의 대상은 상기 저장 디바이스의 상기 보안 부분이 상기 저장 디바이스에 대한 상기 인터페이스를 통해 외부 개체가 판독 가능한 것을 포함한다.
예 8에서, 예 7의 대상은 상기 제어기가 판독 동작에 응답하여 상기 보안 부분의 제3 시그니처를 생성하는 것을 포함한다.
예 9에서, 예 8의 대상은 상기 제어기가 상기 판독 동작에 대한 참조를 포함하는 검증 명령에 응답하여 상기 외부 개체에 상기 제3 시그니처를 제공하는 것을 포함한다.
예 10에서, 예 1-9의 대상은 상기 데이터 전송이 상기 저장 디바이스의 비밀을 식별하는 것을 포함한다.
예 11에서, 예 10의 대상은 상기 비밀이 상기 저장 디바이스의 현재 세션 키인 것을 포함한다.
예 12에서, 예 1-11의 대상은 상기 제1 시그니처 및 상기 제2 시그니처가 키(keyed)-해시 메시지 인증 코드(HMAC, hash message authentication code)인 것을 포함한다.
예 13에서, 예 12의 대상은 상기 저장 디바이스의 비밀이 상기 HMAC에 대한 키로서 사용되는 것을 포함한다.
예 14에서, 예 1-13의 대상은 상기 암호화 엔진이 암호 해시를 구현하는 것을 포함한다.
예 15에서, 예 14의 대상은 상기 암호 해시가 보안 해시 알고리즘(SHA, secure hash algorithm)인 것을 포함한다.
예 16에서, 예 15의 대상은 상기 암호화 엔진이 256 비트 해시를 생성하는 것을 포함한다.
예 17에서, 예 1-16의 대상은 상기 저장 디바이스의 상기 인터페이스가 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스인 것을 포함한다.
예 18에서, 예 17의 대상은 상기 저장 디바이스가 랜덤 액세스 메모리(RAM) 디바이스인 것을 포함한다.
예 19에서, 예 1-18의 대상은 상기 저장 디바이스의 상기 인터페이스가 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC(embedded MultiMedia Card) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따르는 것을 포함한다.
예 20에서, 예 19의 대상은 상기 저장 디바이스가 플래시 메모리 디바이스인 것을 포함한다.
예 21에서, 예 20의 대상은 상기 플래시 메모리 디바이스가 NOR 플래시 또는 NAND 플래시 중 적어도 하나인 것을 포함한다.
예 22는 저장 디바이스에서의 인증 변경을 위한 기계 구현 방법으로서, 상기 저장 디바이스의 인터페이스에 수신되는 데이터 전송을 디코딩하는 단계로서, 상기 데이터 전송은 명령, 입력 ID 세트, 및 상기 입력 ID들에 의해 식별되는 데이터에 대응하는 제1 시그니처를 포함하고, 상기 명령는 상기 저장 디바이스의 보안 부분에 대응하는, 상기 데이터 전송을 디코딩하는 단계; 상기 입력 ID 세트의 요소들을 마셜링(marshalling)하여 입력 세트를 생성하는 단계; 상기 입력 세트상에서 상기 저장 디바이스의 암호화 엔진을 인보크하여 상기 입력 세트로부터 제2 시그니처를 생성하는 단계; 상기 제1 시그니처 및 상기 제2 시그니처를 비교하여 일치를 결정하는 단계; 및 상기 일치에 응답하여, 상기 입력 세트를 상기 저장 디바이스의 보안 부분에 기록하는 단계를 포함하는 방법이다.
예 23에서, 예 22의 대상은 상기 입력 ID 세트가 상기 저장 디바이스의 비보안 부분의 어드레스 범위를 정의하는 것을 포함한다.
예 24에서, 예 23의 대상은 상기 입력 ID 세트의 두 요소가 상기 어드레스 범위를 정의하는 것을 포함한다.
예 25에서, 예 24의 대상은 상기 두 요소 중 제1 요소가 상기 범위의 시작을 정의하고 상기 두 요소 중 제2 요소가 상기 범위의 종료를 정의하는 것을 포함한다.
예 26에서, 예 24-25의 대상은 상기 두 요소 중 제1 요소가 상기 범위의 시작을 정의하고 상기 두 요소 중 제2 요소가 상기 범위에 포함할 유닛 수를 정의하는 것을 포함한다.
예 27에서, 예 22-26의 대상은 상기 데이터 전송이 상기 보안 부분의 ID를 포함하는 것을 포함한다.
예 28에서, 예 22-27의 대상은 상기 저장 디바이스의 상기 보안 부분이 상기 저장 디바이스에 대한 상기 인터페이스를 통해 외부 개체가 판독 가능한 것을 포함한다.
예 29에서, 예 28의 대상은 판독 동작에 응답하여 상기 보안 부분의 제3 시그니처를 생성하는 단계를 포함한다.
예 30에서, 예 28-29의 대상은 상기 판독 동작에 대한 참조를 포함하는 검증 명령에 응답하여 상기 외부 개체에 상기 제3 시그니처를 생성하는 단계를 포함한다.
예 31에서, 예 22-30의 대상은 상기 데이터 전송이 상기 저장 디바이스의 비밀을 식별하는 것을 포함한다.
예 32에서, 예 31의 대상은 상기 비밀이 상기 저장 디바이스의 현재 세션 키인 것을 포함한다.
예 33에서, 예 22-32의 대상은 상기 제1 시그니처 및 상기 제2 시그니처가 키(keyed)-해시 메시지 인증 코드(HMAC, hash message authentication code)인 것을 포함한다.
예 34에서, 예 33의 대상은 상기 저장 디바이스의 비밀이 상기 HMAC에 대한 키로서 사용되는 것을 포함한다.
예 35에서, 예 22-34의 대상은 상기 암호화 엔진이 암호 해시를 구현하는 것을 포함한다.
예 36에서, 예 35의 대상은 상기 암호 해시가 보안 해시 알고리즘(SHA, secure hash algorithm)인 것을 포함한다.
예 37에서, 예 36의 대상은 상기 암호화 엔진이 256 비트 해시를 생성하는 것을 포함한다.
예 38에서, 예 22-37의 대상은 상기 저장 디바이스의 상기 인터페이스가 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스인 것을 포함한다.
예 39에서, 예 38의 대상은 상기 저장 디바이스가 랜덤 액세스 메모리(RAM) 디바이스인 것을 포함한다.
예 40에서, 예 22-39의 대상은 상기 저장 디바이스의 상기 인터페이스가 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC(embedded MultiMedia Card) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따르는 것을 포함한다.
예 41에서, 예 40의 대상은 상기 저장 디바이스가 플래시 메모리 디바이스인 것을 포함한다.
예 42에서, 예 41의 대상은 상기 플래시 메모리 디바이스가 NOR 플래시 또는 NAND 플래시 중 적어도 하나인 것을 포함한다.
예 43은 처리 회로에 의해 실행될 때, 상기 처리 회로가 예 22-42의 임의의 방법을 수행하게 하는 명령들을 포함하는 적어도 하나의 비일시적 기계 판독 가능한 매체이다.
예 44은 예 22-42의 임의의 방법을 수행하기 위한 수단들을 포함하는 시스템이다.
예 45는 처리 회로에 의해 실행될 때, 상기 처리 회로가 예 1 내지 44 중 임의의 예의 구현을 위한 동작들을 수행하게 하는 명령들을 포함하는 적어도 하나의 기계 판독 가능한 매체이다.
예 46은 예 1-44 중 임의의 예의 구현을 위한 수단들을 포함하는 장치이다.
예 47은 예 1-44 중 임의의 예의 구현을 위한 시스템이다.
예 48은 예 1-44 중 임의의 예의 구현을 위한 방법이다.
상기한 상세한 설명은 상세한 설명의 부분을 형성하는 첨부 도면들에 대한 참조를 포함한다. 도면들은 예로서, 실시될 수 있는 구체적인 실시 예들을 도시한다. 이러한 실시 예들을 여기서 "예들"이라고도 한다. 그러한 예들은 도시되거나 설명된 것들 이외의 요소들을 포함할 수 있다. 그러나, 본 발명자들은 또한 도시되거나 설명된 요소들만이 제공되는 예들도 고려한다. 또한, 본 발명자들은 또한 여기서 도시 또는 설명된 특정 예(또는 이의 하나 이상의 양태) 또는 다른 예들(또는 이의 하나 이상의 양태)에 대하여, 도시되거나 설명된 요소들(또는 이의 하나 이상의 양태)의 임의의 조합 또는 치환을 사용하는 예들도 고려한다.
본 문서에서 참조되는 모든 공보, 특허, 및 특허 문서는 개별적으로 참조로서 통합되는 것과 같이, 그 전체가 여기에 참조로서 통합된다. 이 문서와 참조로 통합된 문서들 간에 일관되지 않은 사용이 있는 경우, 통합된 참조(들)의 사용은 이러한 문서의 사용을 보완하는 것으로 간주되어야 한다; 조정 불가능한 불일치의 경우에는, 이 문서의 사용이 우선한다.
본 문서에서, "한" 또는 "하나의"라는 용어들은 특허 문서에서 통상적인 바와 같이, "적어도 하나" 또는 "하나 이상"의 임의의 다른 경우 또는 용법과 별도로, 하나 또는 하나보다 많은을 포함하는 것으로 사용된다. 본 문서에서, "또는"이라는 용어는 달리 표기되지 않는 한, 비배타적인 것을 지칭하기 위해 또는 "A 또는 B"가 "A이지만 B는 아닌", "B이지만 A는 아닌" 그리고 "A 및 B"를 포함하도록 사용된다. 첨부된 청구범위에서, "포함하는" 및 "여기서"라는 용어들은 "포함한" 및 "이때"라는 각각의 용어들의 쉬운 대역어들로 사용된다. 또한, 다음의 청구항들에서, "포함하는" 및 "포함한"이라는 용어들은 개방형이다, 즉 청구항에서 그러한 용어 뒤에 나열되는 것들 이외의 요소들을 포함하는 시스템, 디바이스, 물품 또는 방법이 여전히 그 청구항의 범위 내에 속하는 것으로 간주된다. 또한, 다음의 청구항들에서, "제1", "제2" 및 "제3" 등의 용어들은 단지 라벨들로서 사용되고, 그 대상들에 수와 관련된 요건들을 부과하려는 의도가 아니다.
상기한 설명은 제한적이 아니라 예시적인 것으로 의도된다. 예를 들어, 상술된 예들(또는 이의 하나 이상의 양태)은 서로 조합하여 사용될 수 있다. 상기한 설명을 검토하면 이를테면 해당 기술분야의 통상의 기술자에 의해 다른 실시 예들이 사용될 수 있다. 요약은 독자가 기술 개시 내용의 성격을 빠르게 확인할 수 있게 하는 것이고 청구항들의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않을 것이라는 이해하에 제출된다 또한, 상기한 상세한 설명에서, 다양한 특징은 본 개시를 간소화하기 위해 함께 그룹화될 수 있다. 이는 청구되지 않은 개시된 특징이 임의의 청구항에 필수적인 것임을 의도하는 것으로 해석되어서는 안 된다. 그보다, 본 발명의 대상은 개시된 특정 실시 예의 모든 특징보다 적을 수 있다. 그에 따라, 다음의 청구항들은 이에 의해 상세한 설명으로 통합되며, 각 청구항은 별개의 실시 예로서 독립된다. 본 실시 예들의 범위는 첨부된 청구항들을 참조하여, 그러한 청구항들의 권리가 주어지는 균등물들의 전체 범위와 함께 결정되어야 한다.
Claims (22)
- 인증 변경을 구현하는 저장 디바이스로서,
암호화 엔진;
인터페이스;
상기 인터페이스에 수신되는 데이터 전송으로부터의 명령, 입력 ID(identification) 세트 및 제1 시그니처를 파싱(parsing)하는 디코더; 및
제어기로서:
상기 입력 ID 세트의 요소들을 수집하여 입력 세트를 생성하고;
상기 암호화 엔진에 상기 입력 세트로부터 제2 시그니처를 생성할 것을 지시하고;
상기 제1 시그니처 및 상기 제2 시그니처를 비교하여 일치를 결정하며;
상기 일치에 응답하여 상기 입력 세트를 상기 저장 디바이스의 보안 부분에 기록하는, 상기 제어기를 포함하는 저장 디바이스. - 청구항 1에 있어서, 상기 입력 ID 세트는 상기 저장 디바이스의 비보안 부분의 어드레스 범위를 정의하는 저장 디바이스.
- 청구항 1에 있어서, 상기 데이터 전송은 상기 보안 부분의 ID를 포함하는 저장 디바이스.
- 청구항 1에 있어서, 상기 저장 디바이스의 상기 보안 부분은 상기 저장 디바이스에 대한 상기 인터페이스를 통해 외부 개체가 판독 가능한 저장 디바이스.
- 청구항 4에 있어서, 상기 제어기는 판독 동작에 응답하여 상기 보안 부분의 제3 시그니처를 생성하는 저장 디바이스.
- 청구항 5에 있어서, 상기 제어기는 상기 판독 동작에 대한 참조를 포함하는 검증 명령에 응답하여 상기 외부 개체에 상기 제3 시그니처를 제공하는 저장 디바이스.
- 청구항 1에 있어서, 상기 데이터 전송은 상기 저장 디바이스의 비밀을 식별하는 저장 디바이스.
- 청구항 1에 있어서, 상기 제1 시그니처 및 상기 제2 시그니처는 키(keyed)-해시 메시지 인증 코드(HMAC, hash message authentication code)인 저장 디바이스.
- 청구항 1에 있어서, 상기 저장 디바이스의 상기 인터페이스는 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스인 저장 디바이스.
- 청구항 1에 있어서, 상기 저장 디바이스의 상기 인터페이스는 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC(embedded MultiMedia Card) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따르는 저장 디바이스.
- 청구항 10에 있어서, 상기 저장 디바이스는 플래시 메모리 디바이스인 저장 디바이스.
- 저장 디바이스에서의 인증 변경을 위한 기계 구현 방법으로서,
상기 저장 디바이스의 인터페이스에 수신되는 데이터 전송을 디코딩하는 단계로서, 상기 데이터 전송은 명령, 입력 ID 세트, 및 상기 입력 ID들에 의해 식별되는 데이터에 대응하는 제1 시그니처를 포함하고, 상기 명령는 상기 저장 디바이스의 보안 부분에 대응하는, 상기 데이터 전송을 디코딩하는 단계;
상기 입력 ID 세트의 요소들을 마셜링(marshalling)하여 입력 세트를 생성하는 단계;
상기 입력 세트상에서 상기 저장 디바이스의 암호화 엔진을 인보크하여 상기 입력 세트로부터 제2 시그니처를 생성하는 단계;
상기 제1 시그니처 및 상기 제2 시그니처를 비교하여 일치를 결정하는 단계; 및
상기 일치에 응답하여, 상기 입력 세트를 상기 저장 디바이스의 보안 부분에 기록하는 단계를 포함하는 방법. - 청구항 12에 있어서, 상기 입력 ID 세트는 상기 저장 디바이스의 비보안 부분의 어드레스 범위를 정의하는 방법.
- 청구항 12에 있어서, 상기 데이터 전송은 상기 보안 부분의 ID를 포함하는 방법.
- 청구항 12에 있어서, 상기 저장 디바이스의 상기 보안 부분은 상기 저장 디바이스에 대한 상기 인터페이스를 통해 외부 개체가 판독 가능한 방법.
- 청구항 15에 있어서, 판독 동작에 응답하여 상기 보안 부분의 제3 시그니처를 생성하는 단계를 포함하는 방법.
- 청구항 15에 있어서, 상기 판독 동작에 대한 참조를 포함하는 검증 명령에 응답하여 상기 외부 개체에 상기 제3 시그니처를 생성하는 단계를 포함하는 방법.
- 청구항 12에 있어서, 상기 데이터 전송은 상기 저장 디바이스의 비밀을 식별하는 방법.
- 청구항 12에 있어서, 상기 제1 시그니처 및 상기 제2 시그니처는 키(keyed)-해시 메시지 인증 코드(HMAC, hash message authentication code)인 방법.
- 청구항 12에 있어서, 상기 저장 디바이스의 상기 인터페이스는 JEDEC(Joint Electron Device Engineering Council, 합동 전자 디바이스 엔지니어링 협의회) 메모리 표준 인터페이스인 방법.
- 청구항 12에 있어서, 상기 저장 디바이스의 상기 인터페이스는 IDE(Integrated Device Electronics) ATA(AT Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, SCSI(Small Computer System Interface) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC(embedded MultiMedia Card) 인터페이스, 또는 NVMHCI(Non-Volatile Memory Host Controller Interface Specification) 인터페이스 중 적어도 하나에 따르는 방법.
- 청구항 21에 있어서, 상기 저장 디바이스는 플래시 메모리 디바이스인 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227023450A KR20220101018A (ko) | 2018-03-23 | 2019-03-22 | 저장 디바이스의 인증 변경 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862647390P | 2018-03-23 | 2018-03-23 | |
US62/647,390 | 2018-03-23 | ||
PCT/US2019/023551 WO2019183459A1 (en) | 2018-03-23 | 2019-03-22 | Storage device authenticated modification |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227023450A Division KR20220101018A (ko) | 2018-03-23 | 2019-03-22 | 저장 디바이스의 인증 변경 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200123487A true KR20200123487A (ko) | 2020-10-29 |
KR102420035B1 KR102420035B1 (ko) | 2022-07-13 |
Family
ID=67987558
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227023450A KR20220101018A (ko) | 2018-03-23 | 2019-03-22 | 저장 디바이스의 인증 변경 |
KR1020207030160A KR102420035B1 (ko) | 2018-03-23 | 2019-03-22 | 저장 디바이스의 인증 변경 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227023450A KR20220101018A (ko) | 2018-03-23 | 2019-03-22 | 저장 디바이스의 인증 변경 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11902449B2 (ko) |
EP (1) | EP3769253A4 (ko) |
JP (1) | JP2021517409A (ko) |
KR (2) | KR20220101018A (ko) |
CN (1) | CN112074837A (ko) |
WO (1) | WO2019183459A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220101018A (ko) | 2018-03-23 | 2022-07-18 | 마이크론 테크놀로지, 인크. | 저장 디바이스의 인증 변경 |
US11294582B2 (en) * | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120923A1 (en) * | 2001-12-21 | 2003-06-26 | Avaya Technology Corp. | Secure data authentication apparatus |
US20170124332A1 (en) * | 2014-11-20 | 2017-05-04 | Micron Technology, Inc. | Self-measuring nonvolatile memory device systems and methods |
US20170124358A1 (en) * | 2015-10-30 | 2017-05-04 | Ramamurthy Krithivas | Asset protection of integrated circuits during transport |
WO2017163204A1 (en) * | 2016-03-23 | 2017-09-28 | Craig Michael Horn | A memory management system and method |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757832B1 (en) * | 2000-02-15 | 2004-06-29 | Silverbrook Research Pty Ltd | Unauthorized modification of values in flash memory |
TW519651B (en) * | 2000-06-27 | 2003-02-01 | Intel Corp | Embedded security device within a nonvolatile memory device |
US20020112163A1 (en) * | 2001-02-13 | 2002-08-15 | Mark Ireton | Ensuring legitimacy of digital media |
JP4794269B2 (ja) | 2004-11-08 | 2011-10-19 | パナソニック株式会社 | セキュアデバイスおよび中継端末 |
CN100586065C (zh) * | 2006-04-24 | 2010-01-27 | 北京易恒信认证科技有限公司 | Cpk可信认证*** |
US8332660B2 (en) | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
US20110055471A1 (en) * | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
US8613074B2 (en) * | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US20120110343A1 (en) | 2010-10-29 | 2012-05-03 | Bandic Zvonimir Z | Trustworthy timestamps on data storage devices |
US8862882B2 (en) * | 2012-06-29 | 2014-10-14 | Intel Corporation | Systems and methods for authenticating devices by adding secure features to Wi-Fi tags |
US8793506B2 (en) * | 2012-08-31 | 2014-07-29 | Intel Corporation | Mechanism for facilitating encryption-free integrity protection of storage data at computing systems |
HUP1200524A2 (hu) * | 2012-09-12 | 2014-05-28 | Cellum Global Innovacios Es Szolgaltato Zrt | Mobil fizetõeszköz alkalmazói rendszer, valamint eljárás mobil fizetõeszköz létrehozására és használatára |
CN104904179A (zh) * | 2012-10-16 | 2015-09-09 | 真实数据***股份有限公司 | 安全通信架构 |
KR102017828B1 (ko) | 2012-10-19 | 2019-09-03 | 삼성전자 주식회사 | 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들 |
JP6067449B2 (ja) | 2013-03-26 | 2017-01-25 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
US20150161399A1 (en) * | 2013-12-10 | 2015-06-11 | Memory Technologies Llc | Storage module with authenticated storage access |
US9984007B2 (en) * | 2014-03-28 | 2018-05-29 | Samsung Electronics Co., Ltd. | Storage system and method for performing and authenticating write-protection thereof |
US9729524B1 (en) * | 2014-12-12 | 2017-08-08 | Amazon Technologies, Inc. | Authenticated device-based storage operations |
CN104601579A (zh) * | 2015-01-20 | 2015-05-06 | 成都市酷岳科技有限公司 | 一种保障信息安全的计算机***及其方法 |
CN104580487A (zh) * | 2015-01-20 | 2015-04-29 | 成都信升斯科技有限公司 | 一种海量数据存储***及处理方法 |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
US10637648B2 (en) * | 2017-03-24 | 2020-04-28 | Micron Technology, Inc. | Storage device hash production |
CN107547251B (zh) * | 2017-06-28 | 2021-04-27 | 新华三技术有限公司 | 一种设备管理方法、装置及*** |
KR20220101018A (ko) | 2018-03-23 | 2022-07-18 | 마이크론 테크놀로지, 인크. | 저장 디바이스의 인증 변경 |
US11088845B2 (en) * | 2018-07-03 | 2021-08-10 | Western Digital Technologies, Inc. | Non-volatile memory with replay protected memory block having dual key |
US10853273B2 (en) * | 2018-08-01 | 2020-12-01 | Micron Technology, Inc. | Secure memory system programming |
US11693732B2 (en) * | 2019-12-31 | 2023-07-04 | Micron Technology, Inc. | Cryptographic data integrity protection |
KR20210113906A (ko) * | 2020-03-09 | 2021-09-17 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그 동작 방법 |
-
2019
- 2019-03-22 KR KR1020227023450A patent/KR20220101018A/ko not_active Application Discontinuation
- 2019-03-22 WO PCT/US2019/023551 patent/WO2019183459A1/en unknown
- 2019-03-22 EP EP19772422.2A patent/EP3769253A4/en active Pending
- 2019-03-22 US US17/040,454 patent/US11902449B2/en active Active
- 2019-03-22 CN CN201980029656.7A patent/CN112074837A/zh active Pending
- 2019-03-22 JP JP2020551413A patent/JP2021517409A/ja not_active Ceased
- 2019-03-22 KR KR1020207030160A patent/KR102420035B1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120923A1 (en) * | 2001-12-21 | 2003-06-26 | Avaya Technology Corp. | Secure data authentication apparatus |
US20170124332A1 (en) * | 2014-11-20 | 2017-05-04 | Micron Technology, Inc. | Self-measuring nonvolatile memory device systems and methods |
US20170124358A1 (en) * | 2015-10-30 | 2017-05-04 | Ramamurthy Krithivas | Asset protection of integrated circuits during transport |
WO2017163204A1 (en) * | 2016-03-23 | 2017-09-28 | Craig Michael Horn | A memory management system and method |
Also Published As
Publication number | Publication date |
---|---|
EP3769253A1 (en) | 2021-01-27 |
WO2019183459A1 (en) | 2019-09-26 |
KR20220101018A (ko) | 2022-07-18 |
CN112074837A (zh) | 2020-12-11 |
EP3769253A4 (en) | 2021-12-01 |
US11902449B2 (en) | 2024-02-13 |
US20210028942A1 (en) | 2021-01-28 |
JP2021517409A (ja) | 2021-07-15 |
KR102420035B1 (ko) | 2022-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3284000B1 (en) | Secure software authentication and verification | |
US11334502B2 (en) | Memory protection based on system state | |
US10992656B2 (en) | Distributed profile and key management | |
US10725861B2 (en) | Error correction code memory security | |
KR102420035B1 (ko) | 저장 디바이스의 인증 변경 | |
US11443023B2 (en) | Distributed profile and key management | |
CN113946881A (zh) | 安全串行***接口(spi)闪存 | |
JP2018523930A (ja) | セキュア計算環境 | |
US10461926B2 (en) | Cryptographic evidence of persisted capabilities | |
US20160171218A1 (en) | Memory device and script-execution control method | |
CN110574002B (zh) | 存储装置哈希生成 | |
WO2022019910A1 (en) | Read protection for uefi variables | |
KR20200114074A (ko) | 전자 디바이스를 인증하기 위한 방법 및 그에 따른 장치 | |
WO2022068693A1 (zh) | 预处理方法、处理方法、解密及读取方法、设备、介质 | |
JP6069120B2 (ja) | 情報処理システム | |
JP5494389B2 (ja) | 電子制御装置 | |
US10353623B2 (en) | Storage device, storage control method, computer program product, and storage system | |
KR101776845B1 (ko) | 키 조작에 대한 보호 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent |