KR101537973B1 - 보안 스토리지 하이잭킹 보호를 위한 기법들 - Google Patents

보안 스토리지 하이잭킹 보호를 위한 기법들 Download PDF

Info

Publication number
KR101537973B1
KR101537973B1 KR1020147005242A KR20147005242A KR101537973B1 KR 101537973 B1 KR101537973 B1 KR 101537973B1 KR 1020147005242 A KR1020147005242 A KR 1020147005242A KR 20147005242 A KR20147005242 A KR 20147005242A KR 101537973 B1 KR101537973 B1 KR 101537973B1
Authority
KR
South Korea
Prior art keywords
storage device
predetermined
storage
ppa
command
Prior art date
Application number
KR1020147005242A
Other languages
English (en)
Other versions
KR20140043490A (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 엘에스아이 코포레이션
Publication of KR20140043490A publication Critical patent/KR20140043490A/ko
Application granted granted Critical
Publication of KR101537973B1 publication Critical patent/KR101537973B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

하이잭킹-보호된 보안 스토리지 디바이스는 보호된 커맨드들이 실행되기 이전에 사용자가 디바이스에 대한 실제 물리적 액세스를 갖는다는 증명을 요구한다. 보호된 커맨드들의 예들은 디바이스의 스토리지 디바이스 보안 크리덴셜들을 변경하는 것을 시도하는 것, 디바이스의 보호된 부분들의 소거, 및 디바이스의 포맷, 파기, 및 트림을 시도하는 것을 포함한다. 실제 물리적 소유권을 증명하는 다양한 기법들은 디바이스내에 위치된 자기 리드 스위치를 제어하기 위해 자석을 조작하는 것, 디바이스내에 위치된 순간 스위치를 동작시키는 것, (예를 들어, 센서에 도달하는 주변광을 변경하기 위해 랩탑 커버를 개방하거나 셔팅함으로써) 디바이스내에 위치된 광 센서에 도달하는 광을 변경시키는 것, 및 디바이스내에 위치된 호환가능 무선 수신기에 의한 조작의 검출을 위해 스토리지 디바이스 근처의 (셀 폰과 같은) 무선 송신 디바이스를 조작하는 것을 포함한다.

Description

보안 스토리지 하이잭킹 보호를 위한 기법들{TECHNIQUES FOR SECURE STORAGE HIJACKING PROTECTION}
관련 출원들의 상호 참조
[0001] 본 출원에 대한 우선권 이익 청구들은 (임의의 경우, 적절한 것으로서) 첨부하는 출원 데이터 시트(Data Sheet), 리퀘스트(Request) 또는 트랜스미탈(Transmittal)에서 이루어진다. 본 출원(instant application)의 타입에 의해 허용되는 범위로, 본 출원은 모든 목적들을 위해 하기 출원들을 인용에 의해 통합하며, 이들 모두는 발명이 구성된 시점에 본 출원으로 공동으로 소유되었다:
2011년 7월 27일 출원되고, 제 1 발명자 이름이 Leonid BARYUDIN이며, TECHNIQUES FOR SECURE STORAGE HIJACKING PROTECTION이란 명칭의 미국 가출원 (대리인 사건 번호 SF-11-11 및 출원 번호 61/511,989).
[0002] 분야: 보안 스토리지 기술에서의 진보들이 성능, 효율성 및 사용의 유용성에서의 개선들을 제공하기 위해 요구된다.
[0003] 관련된 기술: 공개적으로 또는 잘 알려진 것으로 명시적으로 식별되지 않는 한, 맥락, 정의들 또는 비교 목적들에 대한 것을 비롯하여, 기술들 및 개념들에 대한 본원에서의 언급은, 그와 같은 기술들 및 개념들이 이전에 공개적으로 알려지거나 그렇지 않으면 종래 기술의 일부라는 것에 대한 승인으로서 해석되어서는 안 된다. 이로써, 특허들, 특허 출원들 및 공개공보들을 비롯하여 (임의의 경우) 본원에 인용된 모든 참조들은 구체적으로 통합되든지 아니든지 간에, 모든 목적들을 위해, 그 전체들이 인용에 의해 통합된다.
[0004] 본 발명은 예를 들어, 프로세스, 제조물품, 장치, 시스템, 물질의 조성물, 및 컴퓨터 판독가능 스토리지 매체(예를 들어, 디스크와 같은 광 및/또는 자기 대량 스토리지 디바이스, 또는 플래시 스토리지와 같은 비휘발성 스토리지를 갖는 집적 회로에서의 매체들)와 같은 컴퓨터 판독가능 매체, 또는 프로그램 명령들이 광 또는 전자 통신 링크들을 통해 전송되는 컴퓨터 네트워크와 같은 것을 포함하여, 다수의 방식들로 구현될 수도 있다. 본원에서, 이들 구현들, 또는 본 발명이 택할 수도 있는 임의의 다른 형태가 기법들로서 불릴 수도 있다. 상세한 설명은, 위에서 식별된 분야에서의 성능, 효율성 및 이용 활용성에서의 개선들을 가능하게 하는 본 발명의 하나 또는 그 초과의 실시예들의 설명을 제공한다. 상세한 설명은 나머지 상세한 설명의 더욱 빠른 이해를 용이하게 하기 위한 도입부를 포함한다. 도입부는 본원에 설명된 개념들에 따른 시스템들, 방법들, 제조 물건들 및 컴퓨터 판독가능한 매체 중 하나 또는 그 초과의 것의 예시적인 실시예들을 포함한다. 결론들에서 더 상세하게 논의되는 바와 같이, 본 발명은 발행된 청구항들의 범위 내에서 모든 가능한 변경들 및 변형들을 포괄한다.
[0005] 도 1a는 사용자 작동 물리적 액세스의 증명(Proof of Physical Access: PPA)로부터의 입력들을 갖는 고체 상태 디스크(SSD) 제어기를 포함하는 고체 상태 디스크/셀프-암호화 드라이브(SED/SSD)의 실시예의 선택된 상세사항들을 예시한다.
[0006] 도 1b는 도 1a의 SED/SSD를 포함하는 시스템의 실시예의 선택된 상세사항들을 예시하고 사용자 시스템 상호작용을 더 예시한다.
[0007] 도 1c는 도 1a의 SED/SSD를 포함하는 시스템의 실시예의 선택된 상세사항들을 예시하고 사용자 시스템 상호작용을 더 예시한다.
[0008] 도 2는 SED/SSD 보안을 인에이블하고 보안 드라이브를 언락(unlock)하는 호스트 BIOS와의 사용자 상호작용, 및 도 1b 및 도 1c의 시스템에 관한 PPA를 예시한다.
[0009] 도 3은 보안이 인에이블되는지 그리고 보안 드라이브가 언락되었는지에 관한 SED/SSD 행위를 예시하는 테이블이다.
[0010] 도 4는 수신된 커맨드들의 실행 동안, 도 1a 내지 도 1c의 SED/SSD와 같은 보안 스토리지 디바이스에 의해 사용된 판정 트리를 예시한다.
[0011] 도 5a는 도 1a 내지 도 1c의 SED/SSD내에 위치된 자기적으로 동작된 리드(reed) 스위치를 포함하는 사용자 작동 PPA를 예시한다.
[0012] 도 5b는 도 1a 내지 도 1c의 SED/SSD내에 위치된 수동으로 동작된 순간 스위치를 포함하는 사용자 작동 PPA를 예시한다.
[0013] 도 5c는 미리결정된 무선 신호의 존재를 검출하도록 인에이블된 수신기를 포함하는 사용자 작동 PPA를 예시하고, 이 수신기는 도 1a 내지 도 1c의 SED/SSD내에 위치된다.
[0014] 도 5d는 도 1a 내지 도 1c의 SED/SSD내에 위치되고 광원에서의 미리결정된 변화를 검출하도록 인에이블된 광 센서를 포함하는 사용자 작동 PPA를 예시한다.
[0015] 도 5e는 도 1a 내지 도 1c의 SED/SSD를 예시하고, PPA는 호스트 시스템과의 물리적 보안 접속에 의해 확립된다.
도면들에서 참조 부호들의 리스트
[0016]
Figure 112014071738218-pct00015

Figure 112014071738218-pct00002
[0017] 본 발명의 하나 또는 그 초과의 실시예들의 상세한 설명이 본 발명의 선택된 상세사항들을 예시하는 첨부한 도면들과 함께 아래에 제공된다. 본 발명은 실시예들과 관련하여 설명된다. 여기에서의 실시예들은 단지 예시적인 것으로 이해되고, 본 발명은 명백하게, 여기에서의 실시예들 중 임의의 실시예들 또는 이들 모두로 또는 이들에 의해 제한되지 않으며, 본 발명은 다수의 대안들, 변경, 및 등가물들을 포괄한다. 설명의 단조로움을 회피하기 위해, 다양한 단어 라벨(word label)들(제 1, 최종, 특정한, 다양한, 추가의, 다른, 특히, 선택, 일부, 및 주목할만한을 포함하지만 이로 제한되지 않음)이 실시예들의 개별 세트들에 적용될 수도 있고; 여기에서 사용되는 바와 같이, 이러한 라벨들은 명백하게 품질, 또는 임의의 형태의 우선순위 또는 편견을 전달하는 것으로 뜻하는 것이 아니라, 단지 개별 세트들 사이를 편리하게 구별하기 위한 것이다. 개시된 프로세스들의 일부 동작들의 순서는 본 발명의 범위내에서 변경가능하다. 다수의 실시예들이 프로세스, 방법 및/또는 프로그램 명령 특징들에서 변동들을 설명하는 역할을 하는 경우에, 다른 실시예들은, 사전결정되거나 동적으로 결정된 기준에 따라 복수의 다수의 실시예들에 각각 대응하는 복수의 동작의 모드들 중 하나의 정적 및/또는 동적 선택을 수행한다는 것이 고려된다. 다수의 특정한 상세사항들은 본 발명의 완전한 이해를 제공하기 위해 아래의 설명에 설명된다. 상세사항들은 예시를 목적으로 제공되고 본 발명은 상세사항들 중 일부 또는 모두 없이 청구항들에 따라 실시될 수도 있다. 명확성을 목적으로, 본 발명에 관련된 기술 분야에 공지된 기술적 자료는 본 발명이 필요없이 모호해지지 않도록 상세히 설명하지 않는다.
도입
[0018] 이러한 도입부는 단지 상세한 설명의 더욱 빠른 이해를 용이하게 하기 위해 포함되고; 임의의 도입부의 단락들이 반드시 전체 주제에 대한 축약된 관점이고 철저한 또는 제한적인 설명인 것을 뜻하지 않기 때문에, 본 발명은 (만약 있다면, 명백한 예들을 포함하는) 도입부에 제공되는 개념들로 제한되지 않는다. 예를 들어, 다음의 도입부는 특정한 실시예들에 대해서만 공간 및 구조화에 의해 제한된 개요 정보를 제공한다. 궁극적으로 청구항들을 유도할 것들을 비롯하여, 명세서의 나머지 부분 전반에 걸쳐 논의되는 다수의 다른 실시예들이 제공된다.
약어들
[0019] 여기에 정의된 다양한 축약된 약어들(예를 들어, 두문자어들)의 적어도 일부가 여기에 사용된 특정한 엘리먼트들을 지칭한다.
Figure 112014071738218-pct00016
[0020] HDD들, SSD들, 내부 스토리지를 갖는 네트워크 디바이스들, 인텔리전트 기기들 등과 같은 언락 보안 스토리지 디바이스들에 관하여 문제점이 존재한다. 새로운 보안 스토리지 디바이스는 일반적으로 언락된다 ― 보안 절차들이 아직 인에이블되지 않았거나, 디바이스가 공개적으로 공지된 디폴트 크리덴셜(credential)들을 사용한다. 중요한 데이터가 손실되거나 하이잭킹되는 것을 방지하기 위해, 사용자는 가능한 한 빨리 (예를 들어, 임의의 데이터를 보안 스토리지 디바이스에 저장하기 이전에) 보안 절차들을 인에이블하고 그리고/또는 공개적으로 공지된 디폴트 크리덴셜들을 사용자 공급 사설 크리덴셜들로 대체함으로써 보안 스토리지 디바이스의 소유권을 갖는다.
[0021] 소유권을 갖지 않으면 ― 보안 스토리지 디바이스가 네트워크에 접속되는 경우에, (예를 들어, 악성 소프트웨어를 이용하는) 일부 환경하에서 원격 칩입자가 (예를 들어, 종래의 소거 절차를 통해 또는 일부 환경들에서는 종래의 소거 절차 보다 빠른 파기(sanitizing) 또는 트림(trim) 절차를 통해) 데이터를 판독하고 그리고/또는 데이터를 소거할 수 있다. 원격 침입자는 또한 보안 절차들을 인에이블할 수 있고 그리고/또는 디폴트 크리덴셜들을 자신의 것으로 대체할 수 있다. 따라서, 원격 침입자는 보안 스토리지 디바이스의 소유권을 갖는다. 그 후, 사용자가 물리적 소유권을 보유하고 있더라도, 보안 스토리지 디바이스가 원격 침입자에 의해 "하이잭킹"되었기 때문에, 사용자는 보안 스토리지 디바이스에 액세스할 능력이 없다. 보안 스토리지 디바이스에 대한 소유권을 복구하기 위해서는(따라서 제어하기 위해서는), 사용자는 디바이스를 디폴트 상태로 리셋하고, 따라서, 모든 이전에 저장된 데이터를 손실하고, 일부 환경들에서는, 상당한 금융적 및/또는 다른 손실들이 발생한다.
[0022] 일부 시나리오들에서, 소비자 교육이 기술적 혁신의 진보에 뒤처지는 경우에, 보안 스토리지를 갖는 점점 더 많은 디바이스들이 시장에 나오기 때문에 이러한 공격들에 취약한 사람들과 비즈니스들의 수는 가까운 장래에 계속 증가할 것이다.
[0023] 이하, 용어들 "디바이스" 및 "스토리지 디바이스"는 "보안 스토리지 디바이스" 또는 보안 스토리지를 갖는 디바이스를 칭하는 것으로 이해되어야 한다. "보안 드라이브"가 보안 스토리지 디바이스의 일례이다.
[0024] 안티-하이잭킹(anti-hijacking) 기법은, 보안이 인에이블되면, 스토리지 디바이스 커맨드들의 보호된 클래스를 인식함으로써 문제를 극복한다. 보호된 커맨드들은 "기존 크리덴셜들의 변경(Change Existing Credentials), "드라이브 포맷", 드라이브의 특정 부분 소거", "파기 및 트림", 이들의 임의의 조합 등을 포함한다. 보호된 커맨드들의 실행은 사용자가 디바이스의 실제 물리적 소유권을 갖는다는 것을 증명하는 직접 사용자 개입을 조건으로 한다. 그 결과, 스토리지 디바이스의 물리적 소유권을 갖지 않아서 이러한 증명을 제공할 수 없는 원격 침입자가 보호된 커맨드들을 사용하는 것이 방지된다.
[0025] 이러한 증명의 다양한 형태들이 예상되고, 직접 사용자 개입이 일부 시나리오들에서 사용자 상호작용의 특정한 시퀀스들을 정의하는데 있어서 발생해야 하는 "증명" 윈도우를 정의하는 것을 포함한다. 예시적인 기법들은 스토리지 디바이스내에 자기적으로 동작된 리드 스위치를 배치하는 것과 사용자가 미리결정된 방식으로 스토리지 디바이스 근처의 자석을 조작함으로써 적절한 시간에 스위치를 동작시키는 것을 포함한다. 대안의 기법은 스토리지 디바이스 내부에 기본 무선 수신기를 배치하는 것과 사용자가 적절한 시간 동안 어떤 미리정의된 방식으로 디바이스 근처로 셀 폰을 이동시키는 것이다. 상술한 예들은 예를 들어, 사용자의 다양한 의도적 액션들에 의해 스토리지 디바이스에 대한 물리적 액세스가 어떻게 증명되는지에 대한 서론을 제공한다. 물리적 액세스를 증명하는 다른 기법들이 동일하게 적합하다.
[0026] 다양한 실시예들에서, SED/SSD 제어기는 컴퓨팅 호스트와 인터페이싱하기 위한 호스트 인터페이스, 플래시 메모리와 인터페이싱하기 위한 플래시 인터페이스, 및 인터페이스들을 제어하고 압축 및 압축해제뿐 아니라, 하위-레벨 에러 정정, 상위-레벨 에러 정정 및 독립적 실리콘 엘리먼트들을 통한 동적 상위-레벨 리던던시 모드 관리를 수행하기 위한 (그리고/또는 수행의 다양한 양상들을 제어하기 위한) 회로를 포함한다.
[0027] 다양한 실시예들에 따르면, 일부 호스트 인터페이스들은 USB 인터페이스 표준, CF 인터페이스 표준, MMC 인터페이스 표준, SD 인터페이스 표준, 메모리 스틱 인터페이스 표준, xD-픽처 카드 인터페이스 표준, IDE 인터페이스 표준, SATA 인터페이스 표준, SCSI 인터페이스 표준, SAS 인터페이스 표준, 및 PCIe 인터페이스 표준 중 하나 또는 그 초과의 것과 호환가능하다. 다양한 실시예들에 따르면, 컴퓨팅 호스트는, 컴퓨터, 워크스테이션 컴퓨터, 서버 컴퓨터, 스토리지 서버, PC, 랩탑 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, PDA, 미디어 플레이어, 미디어 리코더, 디지털 카메라, 셀룰러 핸드셋, 코드리스 전화 핸드셋, 및 전자 게임 중 모두 또는 임의의 부분들이다. 일부 실시예들에서, (SAS/SATA 브리지와 같은) 인터페이싱 호스트는 컴퓨팅 호스트 및/또는 컴퓨팅 호스트에 대한 브리지로서 동작한다.
[0028] 다양한 실시예들에 따르면, 일부 SED/SSD들은 HDD들, CD 드라이브들 및 DVD 드라이브들과 같은 자기 및/또는 광학 비휘발성 스토리지에 의해 이용되는 폼-팩터들, 전기적 인터페이스들 및/또는 프로토콜들과 호환가능하다. 다양한 실시예들에서, SED/SSD들은 제로 또는 그 초과의 패리티 코드들, 제로 또는 그 초과의 RS 코드들, 제로 또는 그 초과의 BCH 코드들, 제로 또는 그 초과의 비터비(Viterbi) 또는 다른 트렐리스(trellis) 코드들 및 제로 또는 그 초과의 LDPC 코드들의 다양한 조합들을 이용한다.
예시적인 실시예들
[0029] 상세한 설명에 대한 도입부를 끝내며, 후속하는 것은 본원에 설명된 개념들에 따른 다양한 실시예 타입들의 추가적인 설명을 제공하면서 "EC들"(예시적인 조합들)로서 명시적으로 열거된 적어도 일부를 포함하는 예시적인 실시예들의 집합이다; 이들 예들은 상호 배타적이거나, 완벽한 것(exhaustive)이거나 제한적인 것을 뜻하지 않는다; 그리고 본 발명은 이들 예시적인 실시예들로 제한되는 것이 아니라, 오히려 발행된 청구항들의 범위 내의 모든 가능한 수정들 및 변형들 그리고 이들의 등가물들을 포괄한다.
[0030] EC1) 방법으로서,
스토리지 디바이스에서, 호스트로부터 커맨드를 수신하는 단계;
복수의 타입들의 보호된 스토리지 커맨드들 중 하나에 응답하여, 스토리지 디바이스의 물리적 액세스의 증명(PPA)이 존재하는 경우에만 커맨드가 수행되고 그렇지 않으면 수행되지 않도록 커맨드를 조건적으로 수행하는 단계
를 포함하는, 방법.
[0031] EC2) EC1의 방법에 있어서, 복수의 타입들의 보호된 스토리지 커맨드들은:
보안 크리덴션들을 변경하는 것;
스토리지 디바이스를 포맷하는 것;
스토리지 디바이스를 파기하는 것;
스토리지 디바이스의 지정된 부분의 콘텐츠를 소거하는 것; 및
고체 상태 드라이브 트림 커맨드 중 적어도 하나를 포함하는, 방법.
[0032] EC3) EC1의 방법에 있어서, PPA는 스토리지 디바이스가 물리적 보안 접속을 통해 호스트 시스템에 접속된 것을 포함하는, 방법.
[0033] EC4) EC1의 방법에 있어서, PPA는 호스트 디바이스와 독립적이고 스토리지 디바이스 펌웨어와 독립적인, 방법.
[0034] EC5) EC4의 방법에 있어서, PPA는 스토리지 디바이스에서 미리결정된 물리적 개입을 포함하는, 방법.
[0035] EC6) EC5의 방법에 있어서, PPA 및 미리결정된 물리적 개입은:
스토리지 디바이스의 리드 스위치의 동작을 검출하고, 리드 스위치를 제어하기 위해 미리결정된 방식으로 자석을 조작하는 것;
스토리지 디바이스의 수동 동작된 스위치의 동작을 검출하고, 수동 동작된 스위치를 미리결정된 방식으로 수동으로 동작시키는 것;
스토리지 디바이스에서 미리결정된 무선 주파수 신호의 존재를 검출하고, 미리결정된 신호를 제공하는 것; 및
스토리지 디바이스에서 수용된 광원에서의 미리결정된 변화를 검출하고, 미리결정된 변화를 생성하는 것 중 적어도 하나를 각각 포함하는, 방법.
[0036] EC7) EC1의 방법에 있어서, 스토리지 디바이스는 TCG(Enterprise 및 Opal) 및 IEEE 1667과 같은 보안 프로토콜에 의해 보호되는, 방법.
[0037] EC8) EC1의 방법에 있어서, 스토리지 디바이스는 셀프-암호화 드라이브를 포함하는, 방법.
[0038] EC9) EC8의 방법에 있어서, 셀프-암호화 드라이브는 고체 상태 드라이브를 포함하는, 방법.
[0039] EC10) EC1의 방법에 있어서, 수신하는 단계는 스토리지 인터페이스 표준과 호환가능한 스토리지 인터페이스를 통해 이루어지는, 방법.
[0040] EC11) EC1의 방법에 있어서, PPA의 존재는 고체 상태 드라이브의 제어기를 통해 적어도 부분적으로 구현되는, 방법.
[0041] EC12) EC1의 방법에 있어서, 수신하는 단계 및 수행하는 단계는 고체 상태 드라이브의 제어기를 통해 적어도 부분적으로 구현되는, 방법.
[0042] EC13) 방법으로서,
셀프-암호화 스토리지 디바이스에서, 호스트로부터 커맨드를 수신하는 단계; 및
커맨드가 복수의 보호된 스토리지 커맨드들 중 하나인지 결정하고, 그러한 경우에, 스토리지 디바이스에서의 정의된 사용자 물리적 개입이 커맨드의 수신에 관한 시간의 정의된 윈도우 동안 발생하는 경우에만 커맨드를 실행하는 단계
를 포함하는, 방법.
[0043] EC14) EC13의 방법에 있어서, 정의된 사용자 물리적 개입은 스토리지 디바이스에 위치된 증명 센서를 미리결정된 방식으로 활성화시키는 것을 포함하는, 방법.
[0044] EC15) EC14의 방법에 있어서, 증명 센서를 활성화시키는 것은 스토리지 디바이스내에 위치된 리드 스위치를 미리결정된 방식으로 동작시키기 위해 자석을 조작하는 것을 포함하고, 리드 스위치의 동작은 커맨드의 실행을 제어하는, 방법.
[0045] EC16) EC14의 방법에 있어서, 증명 센서를 활성화시키는 것은 스토리지 디바이스내에 위치된 순간 스위치를 미리결정된 방식으로 동작시키는 것을 포함하고, 순간 스위치의 동작은 커맨드의 실행을 제어하는, 방법.
[0046] EC17) EC14의 방법에 있어서, 증명 센서를 활성화시키는 것은 스토리지 디바이스내에 위치된 광센서에 도달하는 광을 미리결정된 방식으로 조작하는 것을 포함하고, 광센서에 의한 광 조작 검출은 커맨드의 실행을 제어하는, 방법.
[0047] EC18) EC14의 방법에 있어서, 증명 센서를 활성화시키는 것은 스토리지 디바이스내에 위치된 무선 수신기 근처에서 무선 송신기를 미리결정된 방식으로 조작하는 것을 포함하고, 무선 수신기에 의한 무선 송신기 조작의 검출은 커맨드의 실행을 제어하는, 방법.
[0048] EC19) EC18의 방법에 있어서, 무선 송신기는 셀룰러 폰이고 무선 수신기는 셀룰러 폰의 셀룰러 폰 송신과 호환가능한, 방법.
[0049] EC20) 프로세싱 엘리먼트에 의해 실행될 때, 프로세싱 엘리먼트로 하여금, 하기의 동작들을 수행하게 하는 명령들의 세트가 저장된 컴퓨터 판독가능 매체로서, 동작들은,
스토리지 디바이스에 의한 스토리지 커맨드의 수신을 관리하는 것 ― 스토리지 커맨드는 호스트로부터 발생함 ―; 및
스토리지 커맨드가 복수의 타입들의 보호된 스토리지 커맨드들 중 하나인지 결정하는 것을 관리하고, 그러한 경우에, 스토리지 디바이스의 물리적 액세스의 증명(PPA)이 존재하는 경우에만 커맨드를 수행하는 것을 포함하는, 컴퓨터 판독가능 매체.
[0050] EC21) 프로세싱 엘리먼트에 의해 실행될 때, 프로세싱 엘리먼트로 하여금, 하기의 동작들을 수행하게 하는 명령들의 세트가 저장된 컴퓨터 판독가능 매체로서, 동작들은,
스토리지 디바이스에 의한 스토리지 커맨드의 수신을 관리하는 것 ― 스토리지 커맨드는 호스트로부터 발생함 ―; 및
커맨드가 복수의 타입들의 보호된 스토리지 커맨드들 중 하나인지 결정하고, 그러한 경우에, 스토리지 디바이스의 물리적 액세스의 증명(PPA)이 존재하는 경우에만 스토리지 커맨드를 수행하는 것
을 포함하는, 컴퓨터 판독가능 매체.
[0051] EC22) EC20 또는 EC21의 컴퓨터 판독가능 매체에 있어서, PPA는 스토리지 디바이스내에 미리결정된 사용자 생성 물리적 변화를 포함하는, 컴퓨터 판독가능 매체.
[0052] EC23) EC22의 컴퓨터 판독가능 매체에 있어서, 미리결정된 사용자 생성 물리적 변화는:
자석의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 리드 스위치의 상태에서의 변화;
전기 스위치의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 전기 스위치의 상태에서의 변화;
미리결정된 무선 신호를 무선 수신기에 제공하기 위해 무선 송신기의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 무선 수신기의 상태에서의 변화;
광원의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 광 센서의 상태에서의 변화; 및
랩탑 컴퓨터의 커버의 사용자 개방 및/또는 폐쇄로 인한 스토리지 디바이스내에 위치된 조명 센서의 상태에서의 변화 중 어느 하나 또는 그 초과를 포함하는, 컴퓨터 판독가능 매체.
[0053] EC24) 장치로서,
호스트로부터 하나 또는 그 초과의 스토리지 커맨드들을 수신하도록 인에이블된 호스트 인터페이스 회로; 및
물리적 액세스의 증명(PPA)의 존재를 결정하도록 인에이블된 PPA 제어 회로
를 포함하고,
수신된 커맨드들 중 각각의 보호된 커맨드들은 PPA가 존재한다는 것을 PPA 회가 결정하는 경우에만 수행되는, 장치.
[0054] EC25) EC24 장치에 있어서, 보호된 수신 커맨드들은:
보안 크리덴션들을 변경하는 스토리지 커맨드들;
스토리지 디바이스를 포맷하는 스토리지 커맨드들;
스토리지 디바이스를 파기하는 스토리지 커맨드들;
콘텐츠를 삭제하는 스토리지 커맨드들; 및
고체 상태 드라이브 트림 커맨드들 중 어느 하나 또는 그 초과 중 하나 또는 그 초과를 포함하는, 장치.
[0055] EC26) EC24의 장치에 있어서, PPA는 호스트 인터페이스 회로 및 PPA 제어 회로를 포함하는 스토리지 디바이스내에 미리결정된 사용자 생성 물리적 변화를 포함하는, 장치.
[0056] EC27) EC26의 장치에 있어서, 미리결정된 사용자 생성 물리적 변화는:
자석의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 리드 스위치의 상태에서의 변화;
전기 스위치의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 전기 스위치의 상태에서의 변화;
미리결정된 무선 신호를 무선 수신기에 제공하기 위해 무선 송신기의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 무선 수신기의 상태에서의 변화;
광원의 사용자 조작으로 인한 스토리지 디바이스내에 위치된 광 센서의 상태에서의 변화; 및
랩탑 컴퓨터의 커버의 사용자 개방 및/또는 폐쇄로 인한 스토리지 디바이스내에 위치된 조명 센서의 상태에서의 변화 중 어느 하나 또는 그 초과를 포함하는, 장치.
[0057] EC28) EC27의 장치에 있어서, 하나 또는 그 초과의 플래시 메모리들에 인터페이싱하고 수행된 커맨드들 중 적어도 하나에 관한 동작들을 실행하도록 인에이블된 플래시 인터페이스 회로를 더 포함하는, 장치.
[0058] EC29) EC28의 장치에 있어서, 장치는 고체 상태 드라이브의 제어기인, 장치.
[0059] EC30) EC28의 장치에 있어서, 플래시 메모리들을 더 포함하고, 장치는 하드 디스크 드라이브, 고체 상태 드라이브, 내부 스토리지를 갖는 네트워크 디바이스, 및 인텔리전트 기기 중 하나인, 장치.
[0060] EC31) EC27의 장치에 있어서, 장치는 하드 디스크 드라이브, 고체 상태 드라이브, 내부 스토리지를 갖는 네트워크 디바이스, 및 인텔리전트 기기 중 하나인, 장치.
[0061] EC32) 시스템으로서,
호스트로부터 커맨드를 수신하기 위한 스토리지 디바이스에서의 수단;
커맨드가 복수의 보호된 스토리지 커맨드들 중 하나인지 결정하기 위한 수단;
스토리지 디바이스의 물리적 액세스의 증명(PPA)이 존재하는지 결정하기 위한 수단; 및
스토리지 디바이스에 대한 PPA가 존재하는 경우에만 보호된 스토리지 커맨드를 조건적으로 실행하기 위한 수단
을 포함하는, 시스템.
[0062] EC33) EC32의 시스템에 있어서, 비보호 스토리지 커맨드들을 무조건적으로 실행하기 위한 수단을 더 포함하는, 시스템.
[0063] EC34) EC32의 시스템에 있어서, PPA 결정 수단은 스토리지 디바이스내에 미리결정된 사용자 생성 물리적 변화를 포함하는, 시스템.
[0064] EC35) EC34의 시스템에 있어서, 미리결정된 사용자 생성 물리적 변화는 스토리지 디바이스내에 위치된 리드 스위치를 동작시키는 자석을 사용자가 조작하는 것을 포함하는, 시스템.
[0065] EC36) EC34의 시스템에 있어서, 미리결정된 사용자 생성 물리적 변화는 스토리지 디바이스내에 위치된 전기 스위치를 사용자가 동작시키는 것을 포함하는, 시스템.
[0066] EC37) EC34의 시스템에 있어서, 미리결정된 사용자 생성 물리적 변화는 미리결정된 무선 신호를 스토리지 디바이스내에 위치된 무선 수신기에 제공하기 위해 사용자가 무선 송신기를 조작하는 것을 포함하는, 시스템.
[0067] EC38) EC37의 시스템에 있어서, 무선 송신기는 셀 폰에 포함되는, 시스템.
[0068] EC39) EC34의 시스템에 있어서, 미리결정된 사용자 생성 물리적 변화는 스토리지 디바이스내에 위치되고 사용자가 광원 수단을 제어하는 것으로 인한 광원으로부터의 광에서의 변화를 검출하는 광감지 수단을 조명하도록 인에이블된 광원 수단을 사용자 제어하는 것을 포함하는, 시스템.
[0069] EC40) EC34의 시스템에 있어서, 미리결정된 사용자 생성 물리적 변화는 수광된 광에서의 변화를 검출하기 위해 스토리지 디바이스내에 위치된 광 센서 수단을 조명하는 주변광량을 변화시키기 위해 랩탑 컴퓨터의 커버를 개방하거나 폐쇄하는 것을 포함하는, 시스템.
[0070] EC41) EC32의 시스템에 있어서, PPA 결정 수단은 스토리지 디바이스와 호스트 사이에 보안 물리적 접속을 포함하는, 시스템.
[0071] EC42) EC32의 시스템에 있어서, 수단은 고체 상태 디스크(SSD)의 제어기를 통해 적어도 부분적으로 구현되는, 시스템.
[0072] EC43) EC42의 시스템에 있어서, 제어기를 호스트와 인터페이싱하기 위한 수단을 더 포함하는, 시스템.
[0073] EC44) EC43의 시스템에 있어서, 인터페이싱하기 위한 수단은 스토리지 인터페이스 표준과 호환가능한, 시스템.
[0074] EC45) EC43의 시스템에 있어서, 호스트의 모두 또는 임의의 부분들을 더 포함하는, 시스템.
[0075] EC46) EC42의 시스템에 있어서, 비휘발성 메모리들과 인터페이싱하기 위한 수단을 더 포함하는, 시스템.
[0076] EC47) EC46의 시스템에 있어서, 인터페이싱하기 위한 수단은 플래시 메모리 인터페이스를 포함하는, 시스템.
[0077] EC48) EC42의 시스템에 있어서, 하나 또는 그 초과의 비휘발성 메모리들을 더 포함하는, 시스템.
[0078] EC49) EC42의 시스템에 있어서,
호스트로부터의 요청들을 인터페이싱하기 위한 수단 ― 요청들은 비휘발성 메모리들에 저장된 정보와 관련됨 ―; 및
비휘발성 메모리들에 인터페이싱하기 위한 수단을 더 포함하는, 시스템.
[0079] EC50) EC49의 시스템에 있어서, 수단은 단일 집적 회로(IC)에서 일괄적으로 구현되는, 시스템.
[0080] EC51) EC49의 시스템에 있어서, 수단은 SSD에 포함되는, 시스템.
[0081] EC52) EC42의 시스템에 있어서, SSD 제어기는 단일 집적 회로(IC)에서 구현되는, 시스템.
[0082] EC53) EC48의 시스템에 있어서, SSD 제어기 및 비휘발성 메모리들은 셀프-암호화 고체 상태 드라이브에 포함되는, 시스템.
[0083] EC54) EC48의 시스템에 있어서, 비휘발성 메모리들 중 적어도 하나는 하나 또는 그 초과의 플래시 메모리들을 포함하는, 시스템.
[0084] EC55) EC54의 시스템에 있어서, 플래시 메모리들 중 적어도 하나는,
NAND 플래시 기술 스토리지 셀들, 및
NOR 플래시 기술 스토리지 셀들 중 하나 또는 그 초과의 것을 포함하는, 시스템.
[0085] EC56) EC54의 시스템에 있어서, 플래시 메모리들 중 적어도 하나는,
단일 레벨 셀(SLC) 플래시 기술 스토리지 셀들, 및
멀티 레벨 셀(MLC) 플래시 기술 스토리지 셀들 중 하나 또는 그 초과의 것을 포함하는, 시스템.
[0086] EC57) EC47의 시스템에 있어서, 플래시 메모리 인터페이스는,
오픈 NAND 플래시 인터페이스(ONFI),
토글 모드 인터페이스,
듀얼 데이터 레이트(DDR) 동기 인터페이스,
동기 인터페이스, 및
비동기 인터페이스 중 하나 또는 그 초과의 것과 호환가능한, 시스템.
[0087] EC58) EC44의 시스템에 있어서, 스토리지 인터페이스 표준은,
범용 직렬 버스(USB) 인터페이스 표준,
콤팩트 플래시(CF) 인터페이스 표준,
멀티미디어카드(MMC) 인터페이스 표준,
보안 디지털(SD) 인터페이스 표준,
메모리 스틱 인터페이스 표준,
xD-픽처 카드 인터페이스 표준,
집적 드라이브 전자장치(IDE) 인터페이스 표준,
직렬 어드밴스드 기술 부착(SATA) 인터페이스 표준,
외부 SATA(eSATA) 인터페이스 표준,
소형 컴퓨터 시스템 인터페이스(SCSI) 인터페이스 표준,
직렬 부착 소형 컴퓨터 시스템 인터페이스(SAS) 인터페이스 표준,
섬유 채널 인터페이스 표준,
이더넷 인터페이스 표준, 및
주변 컴포넌트 상호접속 익스프레스(PCIe) 인터페이스 표준 중 하나 또는 그 초과의 것을 포함하는, 시스템.
[0088] EC59) EC45의 시스템에 있어서, 호스트는,
컴퓨터,
워크스테이션 컴퓨터,
서버 컴퓨터,
스토리지 서버,
개인 컴퓨터(PC),
랩탑 컴퓨터,
노트북 컴퓨터,
넷북 컴퓨터,
휴대 보조 단말기(PDA),
미디어 플레이어,
미디어 리코더,
디지털 카메라,
셀룰러 핸드셋,
코드리스 전화 핸드셋, 및
전자 게임
중 하나 또는 그 초과의 것을 포함하는, 시스템.
시스템
[0089] 도 1a는 사용자 작동 물리적 액세스의 증명(Proof of Physical Access: PPA)으로부터의 입력들을 갖는 고체 상태 디스크(SSD) 제어기를 포함하는 고체 상태 디스크/셀프-암호화 드라이브(SED/SSD)의 실시예의 선택된 상세사항들을 예시한다. SSD 제어기(100)는 하나 또는 그 초과의 외부 인터페이스들(110)을 통해 호스트(미도시)에 통신가능하게 커플링된다. 다양한 실시예들에 따르면, 외부 인터페이스들(110)은, SATA 인터페이스, SAS 인터페이스, PCIe 인터페이스, 섬유 채널 인터페이스, (10 Gigabit 이더넷과 같은) 이더넷 인터페이스, 선행 인터페이스들 중 임의의 것의 비표준 버전, 커스텀 인터페이스, 또는 스토리지 및/또는 통신 및/또는 컴퓨팅 디바이스들을 상호접속하기 위해 사용된 임의의 다른 타입의 인터페이스 중, 하나 또는 그 초과의 것이다. 예를 들어, 일부 실시예들에서, SSD 제어기(100)는 SATA 인터페이스 및 PCIe 인터페이스를 포함한다.
[0090] SSD 제어기(100)는 플래시 디바이스(192)의 인스턴스들과 같은, 하나 또는 그 초과의 스토리지 디바이스들을 포함하는 NVM(199)에 하나 또는 그 초과의 디바이스 인터페이스들(190)을 통해 통신가능하게 추가로 커플링된다. 다양한 실시예들에 따르면, 디바이스 인터페이스들(190)은, 비동기 인터페이스, 동기 인터페이스, DDR 동기 인터페이스, ONFI 2.2 또는 ONFI 3.0 호환가능 인터페이스와 같은 ONFI 호환가능 인터페이스, 토글 모드 호환가능 플래시 인터페이스, 선행 인터페이스들 중 임의의 것의 비표준 버전, 커스텀 인터페이스, 또는 스토리지 디바이스들에 접속하기 위해 사용된 임의의 다른 타입의 인터페이스 중 하나 또는 그 초과의 것이다.
[0091] 플래시 디바이스(192)의 각 인스턴스는 일부 실시예들에서, 하나 또는 그 초과의 개별 플래시 다이(194)를 갖는다. 플래시 디바이스(192)의 특정한 하나의 타입에 따르면, 특정한 플래시 디바이스(192)에서의 복수의 플래시 다이(194)는 옵션으로 그리고/또는 선택적으로 병렬로 액세스가능하다. 플래시 디바이스(192)는 단지, SSD 제어기(100)에 통신가능하게 커플링하도록 인에이블된, 일 타입의 스토리지 디바이스를 나타낸다. 다양한 실시예들에서, SLC NAND 플래시 메모리, MLC NAND 플래시 메모리, NOR 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리, 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 강자성 메모리, 위상 변화 메모리, 레이스트랙(racetrack) 메모리, 또는 임의의 다른 타입의 메모리 디바이스 또는 저장 매체와 같은 임의의 타입의 스토리지 디바이스가 사용가능하다.
[0092] 다양한 실시예들에 따르면, 디바이스 인터페이스들(190)은, 버스 당 플래시 디바이스(192)의 하나 또는 그 초과의 인스턴스들을 갖는 하나 또는 그 초과의 버스들; 버스 당 플래시 디바이스(192)의 하나 또는 그 초과의 인스턴스들을 갖는 버스들의 하나 또는 그 초과의 그룹들 ―그룹에서의 버스들은 일반적으로 병렬로 액세스됨 ―; 또는 디바이스 인터페이스들(190)상의 플래시 디바이스(192)의 하나 또는 그 초과의 인스턴스들의 임의의 다른 구성으로서 구성된다.
[0093] 도 1a에 계속하여, SSD 제어기(100)는 호스트 인터페이스들(111), 데이터 프로세싱(121), PPA 제어(129), 버퍼(131), 맵(141), 리사이클러(151), ECC(161), 디바이스 인터페이스 로직(191), 및 CPU(171)와 같은 하나 또는 그 초과의 모듈들을 갖는다. 일부 실시예들에서, SSD 제어기(100)는 PPA 제어(129)와 외부 입력(예를 들어, 센서) 사이의 통신을 가능하게 하기 위한 외부 커플링(예를 들어, 핀)을 포함한다. 외부 커플링은 PPA 접속(127)으로서 예시되어 있다. 도 1a에 예시된 특정한 모듈들 및 상호접속들은 단지 하나의 실시예를 나타내며, 예시되지 않은 추가의 모듈들 뿐만 아니라 모듈들 중 일부 또는 모두의 다수의 배열들 및 상호접속들이 구상된다. 제 1 예에서, 일부 실시예들에서, 듀얼-포팅(dual-porting)을 제공하기 위해 2개 또는 그 초과의 호스트 인터페이스들(111)이 존재한다. 제 2 예에서, 일부 실시예들에서, 데이터 프로세싱(121) 및/또는 ECC(161)는 버퍼(131)와 조합된다. 제 3 예에서, 일부 실시예들에서, 호스트 인터페이스들(111)은 버퍼(131)에 직접 커플링되고, 데이터 프로세싱부(121)는 버퍼(131)에 저장된 데이터에 대해 옵션으로 그리고/또는 선택적으로 동작한다. 제 4 예에서, 일부 실시예들에서, 디바이스 인터페이스 로직(191)은 버퍼(131)에 직접 커플링되고, ECC(161)는 버퍼(131)에 저장된 데이터에 대해 옵션으로 그리고/또는 선택적으로 동작한다. 제 5 예에서, 일부 실시예들에서, 커맨드 관리(173)가 PPA 제어(129)에 커플링된다. 예를 들어, 커맨드 관리(173)는 PPA 제어(129)에 응답하고, PPA에 기초하여 보호된 커맨드들에 대한 액세스를 거부/승인하는, 예를 들어, NVM(199)에 저장되고 CPU 코어(172)에 의해 실행되는 명령들을 나타낸다.
[0094] 호스트 인터페이스들(111)은 외부 인터페이스들(110)을 통해 커맨드들 및/또는 데이터를 송신하고 수신하며, 일부 실시예들에서, 태그 트래킹(113)을 통해 개별 커맨드들의 진행을 트래킹한다. 예를 들어, 커맨드들은 판독할 (다수의 LBA 양자들, 예를 들어, 섹터들과 같은) 데이터의 양 및 (LBA와 같은) 어드레스를 특정하는 판독 커맨드를 포함한다; 이에 응답하여, SSD는 판독 상태 및/또는 판독 데이터를 제공한다. 다른 예에서, 커맨드들은 기록할 (다수의 LBA 양자들, 예를 들어, 섹터들과 같은) 데이터의 양 및 (LBA와 같은) 어드레스를 특정하는 기록 커맨드를 포함한다; 이에 응답하여, SSD는 기록 상태를 제공하고 그리고/또는 기록 데이터를 요청하며 옵션으로 후속하여 기록 상태를 제공한다. 또 다른 예에서, 커맨드들은 더 이상 할당될 필요가 없는 (하나 또는 그 초과의 LBA들과 같은) 하나 또는 그 초과의 어드레스들을 특정하는 할당해제(de-allocation) 커맨드(예를 들어, 트림(trim) 커맨드)를 포함한다; 이에 응답하여, SSD는 그에 맞춰(accordingly) 맵을 수정하며 옵션으로 할당-해제 상태를 제공한다. 일부 문맥들에서, ATA 호환가능한 TRIM 커맨드는 예시적인 할당-해제 커맨드이다. 또 다른 예에서, 커맨드들은 수퍼 커패시터 테스트 커맨드 또는 데이터 경화 성공 질문(data hardening success query)을 포함한다; 이에 응답하여, SSD는 적절한 상태를 제공한다. 일부 실시예들에서, 호스트 인터페이스들(111)은 SATA 프로토콜과 호환가능하며, NCQ 커맨드들을 이용하여, 각각이 0 내지 31의 숫자로 표현된 고유한 태그를 갖는 최대 32개의 계류중인 커맨드들을 갖는 것이 가능해진다. 일부 실시예들에서, 태그 트래킹(113)은 SSD 제어기(100)에 의한 프로세싱 동안 커맨드를 트래킹하기 위해 이용된 내부 태그와, 외부 인터페이스들(110)을 통해 수신된 커맨드에 대한 외부 태그를 연관시키는 것이 가능하다.
[0095] 다양한 실시예들에 따르면, 하나 또는 그 초과의 것은 다음과 같다 : 데이터 프로세싱(121)은 옵션으로 그리고/또는 선택적으로 버퍼(131)와 외부 인터페이스들(110) 사이에 송신된 일부 또는 모든 데이터를 프로세싱한다; 그리고 데이터 프로세싱(121)은 옵션으로 그리고/또는 선택적으로, 버퍼(131)에 저장된 데이터를 프로세싱한다. 일부 실시예들에서, 데이터 프로세싱(121)은: 포맷팅; 리포맷팅; 트랜스코딩; 및 임의의 다른 데이터 프로세싱 및/또는 조작 태스크 중 하나 또는 그 초과의 것을 수행하기 위해 하나 또는 그 초과의 엔진들(123)을 이용한다.
[0096] 버퍼(131)는 디바이스 인터페이스들(190)로부터 외부 인터페이스들(110)로, 외부 인터페이스들(110)로부터 디바이스 인터페이스들(190)로 전송된 데이터를 저장한다. 일부 실시예들에서, 버퍼(131)는 플래시 디바이스(192)의 하나 또는 그 초과의 인스턴스들을 관리하기 위해 SSD 제어기(100)에 의해 사용된 맵 테이블들 중 일부 또는 모두와 같은 시스템 데이터를 추가로 저장한다. 다양한 실시예들에서, 버퍼(131)는 데이터의 임시 스토리지를 위해 사용된 메모리(137), 버퍼(131)로 및/또는 버퍼(131)로부터의 데이터의 이동을 제어하기 위해 사용된 DMA(133), 상위 레벨 에러 정정 및/또는 리던던시 기능들을 제공하기 위해 사용된 ECC-X(135), 및 다른 데이터 이동 및/또는 조작 기능들 중 하나 또는 그 초과의 것을 갖는다. 상위 레벨 리던던시 기능의 일례는 RAID형 능력이고, 여기서, 리던던시는 디스크 레벨 대신 플래시 디바이스(예를 들어, 플래시 디바이스(192)의 다수의 플래시 디바이스들) 레벨 및/또는 플래시 다이(예를 들어, 플래시 다이(194)) 레벨에 있다.
[0097] 다양한 실시예들에 따르면, 하나 또는 그 초과의 것은 다음과 같다: ECC(161)는 옵션으로 그리고/또는 선택적으로, 버퍼(131)와 디바이스 인터페이스들(190) 사이에 송신된 일부 또는 모든 데이터를 프로세싱하며; 그리고 ECC(161)는 옵션으로 그리고/또는 선택적으로, 버퍼(131)에 저장된 데이터를 프로세싱한다. 일부 실시예들에서, ECC(161)는, 예컨대 하나 또는 그 초과의 ECC 기술들에 따라, 하위-레벨 에러 정정 및/또는 리던던시 기능들을 제공하기 위해 이용된다. 일부 실시예들에서, ECC(161)는: CRC 코드; 해밍 코드; RS 코드; BCH 코드; LDPC 코드; 비터비 코드; 트렐리스 코드; 하드-결정(hard-decision) 코드; 소프트-결정(soft-decision) 코드; 소거-기반 코드; 임의의 에러 검출 및/또는 정정 코드; 및 전술한 것의 임의의 조합 중 하나 또는 그 초과의 것을 구현한다. 일부 실시예들에서, ECC(161)는 (LDPC 디코더들과 같은) 하나 또는 그 초과의 디코더들을 포함한다.
[0098] 디바이스 인터페이스 로직(191)은 디바이스 인터페이스들(190)을 통해 플래시 디바이스(192)의 인스턴스들을 제어한다. 디바이스 인터페이스 로직(191)은 플래시 디바이스(192)의 프로토콜에 따라 플래시 디바이스(192)의 인스턴스들에/인스턴스들로부터 데이터를 송신하는 것이 가능해진다. 디바이스 인터페이스 로직(191)은 디바이스 인터페이스들(190)을 통해 플래시 디바이스(192)의 인스턴스들의 제어를 선택적으로 시퀀싱하기 위한 스케줄링(193)을 포함한다. 예를 들어, 일부 실시예들에서, 스케줄링(193)은 플래시 디바이스(192)의 인스턴스들에 대한 동작들을 큐잉하고, 그리고 플래시 디바이스(192)(또는 플래시 다이(194))의 인스턴스들의 각각의 것들이 이용가능함에 따라 플래시 디바이스(192)(또는 플래시 다이(194))의 인스턴스들의 각각의 것들에 동작들을 선택적으로 송신하는 것이 가능해진다.
[0099] 맵(141)은, NVM(199)에서의 위치들로 외부 데이터 어드레스들을 매핑하기 위해 테이블(143)을 이용하여, 디바이스 인터페이스들(190) 상에 이용된 데이터 어드레싱과 외부 인터페이스들(110) 상에 이용된 데이터 어드레싱 사이에서 변환한다. 예를 들어, 일부 실시예들에서, 맵(141)은 외부 인터페이스들(110) 상에 이용된 LBA들을 테이블(143)에 의해 제공된 매핑을 통해, 하나 또는 그 초과의 플래시 다이(194)를 목표로 하는 블록 및/또는 페이지 어드레스들로 변환한다. 드라이브 제조 또는 할당해제 이후로는 전혀 기록되지 않은 LBA들에 대해, 맵은 LBA들이 판독되는 경우에 리턴하기 위한 디폴트 값을 지시한다(point to). 예를 들어, 할당 해제 커맨드를 프로세싱할 때, 할당 해제된 LBA들에 대응하는 엔트리들(entries)이 디폴트 값들 중 하나를 지시하도록 맵이 수정된다. 다양한 실시예들에서, 다양한 디폴트 값들이 존재하며, 이 각각은 대응하는 포인터를 갖는다. 복수의 디폴트 값들은 하나의 디폴트 값으로서 (예컨대 제 1 범위에서) 일부 할당해제된 LBA들을 판독하는 것을 가능하게 하는 한편, 다른 디폴트 값으로서 (예컨대 제 2 범위에서) 다른 할당해제된 LBA들을 판독하는 것을 가능하게 한다. 다양한 실시예들에서, 디폴트 값들은 플래시 메모리, 하드웨어, 펌웨어, 커맨드 및/또는 원시 인수들(primitive arguments) 및/또는 파라미터들, 프로그램가능한 레지스터들 또는 이들의 다양한 조합들에 의해 정의된다.
[0100] 일부 실시예들에서, 리사이클러(151)는 가비지(garbage) 수집을 수행한다. 예를 들어, 일부 실시예들에서, 플래시 디바이스(192)의 인스턴스들은 블록들이 재-기록가능하기 전에 소거되어야 하는 블록들을 포함한다. 리사이클러(151)는 예를 들어, 맵(141)에 의해 유지된 맵을 스캔함으로써 플래시 디바이스(192)의 인스턴스들 중 어느 부분들이 액티브하게 사용중인지 (예를 들어, 할당해제 대신에 할당되는지)를 결정하고, 그리고 비사용 부분들을 소거함으로써 플래시 디바이스(192)의 인스턴스들의 비사용(예를 들어, 할당해제되는) 부분들을 기록을 위해 이용가능하게 하는 것이 가능하다. 추가적인 실시예들에서, 리사이클러(151)는 플래시 디바이스(192)의 인스턴스들 내에 저장된 데이터를 이동시켜, 플래시 디바이스(192)의 인스턴스들의 더 큰 인접한 부분들이 기록을 위해 이용가능하게 하는 것이 가능하다.
[0101] CPU(171)는 SSD 제어기(100)의 다양한 부분들을 제어한다. CPU(171)는 CPU 코어(172)를 포함한다. 다양한 실시예들에 따라, CPU 코어(172)는 하나 또는 그 초과의 단일-코어 또는 멀티-코어 프로세서들이다. 일부 실시예들에서, CPU 코어(172)에서의 개별 프로세서 코어들은 멀티-쓰레드된다(multi-threaded). CPU 코어(172)는 명령 및/또는 데이터 캐시들 및/또는 메모리들을 포함한다. 예를 들어, 명령 메모리는 CPU 코어(172)로 하여금 SSD 제어기(100)를 제어하기 위해 소프트웨어(때때로 펌웨어로 칭함)를 실행할 수 있게 하기 위한 명령들을 포함한다. 일부 실시예들에서, CPU 코어(172)에 의해 실행된 펌웨어 중 일부 또는 모두는 플래시 디바이스(192)의 인스턴스들상에 저장된다.
[0102] 다양한 실시예들에서, CPU(171)는: 커맨드들이 진행중인 동안 외부 인터페이스들(110)을 통해 수신된 커맨드들을 트래킹하고 제어하기 위한 커맨드 관리(173); 버퍼(131)의 할당 및 이용을 제어하기 위한 버퍼 관리(175); 맵(141)을 제어하기 위한 변환 관리(177); 데이터 어드레싱의 일치성을 제어하고, 예컨대 외부 데이터 액세스들과 리사이클 데이터 액세스들 사이의 충돌들을 회피하기 위한 코히어런시 관리(179); 디바이스 인터페이스 로직(191)을 제어하기 위한 디바이스 관리(181); 및 옵션으로 다른 관리 유닛들을 더 포함한다. 다양한 실시예들에 따르면, CPU(171)에 의해 수행된 관리 기능들 중 그 어느 것도 하드웨어에 의해, (외부 인터페이스들(110)을 통해 접속된 호스트 상에 또는 CPU 코어(172) 상에 실행하는 펌웨어와 같은) 소프트웨어에 의해, 또는 이들의 임의의 조합에 의해 제어 및/또는 관리되지 않거나; 또는 CPU(171)에 의해 수행된 관리 기능들 중 임의의 것 또는 그 전부가, 하드웨어에 의해, (외부 인터페이스들(110)을 통해 접속된 호스트 상에 또는 CPU 코어(172) 상에 실행하는 펌웨어와 같은) 소프트웨어에 의해, 또는 이들의 임의의 조합에 의해 제어 및/또는 관리된다.
[0103] 일부 실시예들에서, CPU(171)는 다른 관리 태스크들, 예컨대, 성능 통계들을 수집하고 그리고/또는 보고하는 것; SMART를 구현하는 것; 전력 시퀀싱을 제어하는 것, 전력 소모를 제어하는 것 및/또는 모니터링하는 것 및/또는 조정하는 것; 전력 실패들에 응답하는 것; 클록 레이트들을 제어하는 것 및/또는 모니터링하는 것 및/또는 조정하는 것; 및 다른 관리 태스크들 중 하나 또는 그 초과의 것을 수행하는 것이 가능하다.
[0104] 다양한 실시예들은 SSD 제어기(100)와 유사하고 예를 들어, 호스트 인터페이스들(111) 및/또는 외부 인터페이스들(110)의 적응을 통해 다양한 컴퓨팅 호스트들과의 동작과 호환가능한 컴퓨팅 호스트 플래시 메모리 제어기를 포함한다. 다양한 컴퓨팅 호스트들은 컴퓨터, 워크스테이션 컴퓨터, 서버 컴퓨터, 스토리지 서버, PC, 랩탑 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, PDA, 미디어 플레이어, 미디어 리코더, 디지털 카메라, 셀룰러 핸드셋, 코드리스 전화 핸드셋, 및 전자 게임 중 하나 또는 이들의 임의의 조합을 포함한다.
[0105] 다양한 실시예들에서, SSD 제어기(또는 컴퓨팅-호스트 플래시 메모리 제어기)의 전부 또는 임의의 부분들은 단일 IC, 멀티-다이 IC의 단일 다이, 멀티-다이 IC의 복수의 다이들, 또는 복수의 IC들 상에 구현된다. 예를 들어, 버퍼(131)는 SSD 제어기(100)의 다른 엘리먼트들과 동일한 다이 상에 구현된다. 다른 예에서, 버퍼(131)는 SSD 제어기(100)의 다른 엘리먼트들과 서로 다른 다이 상에 구현된다.
[0106] 도 1b는 도 1a의 SED/SSD를 포함하는 시스템의 실시예의 선택된 상세사항들을 예시한다. SED/SSD(101)는 디바이스 인터페이스들(190)을 통해 NVM(199)에 커플링된 SSD 제어기(100)를 포함한다. SED/SSD는 외부 인터페이스들(110)을 통해 호스트(102)에 커플링된다. 일부 실시예들에서, SED/SSD(101)(또는 그것의 변형들)는 호스트(102)로서 동작하는 개시자(initiator)에 커플링되는 SAS 드라이브 또는 SATA 드라이브에 대응한다.
[0107] 도 1b는 사용자가 보안 스토리지 디바이스, SED/SSD(101)의 소유권을 갖는 일례를 또한 예시한다. 사용자(150)는 스토리지 디바이스 SED/SSD(101)의 보안을 인에이블하기 위해 호스트(102)와의 상호작용(153)을 갖는다. 사용자(150)는, SED/SSD(101)내에 위치되며 PPA 접속(127)을 통해 SSD 제어기(100)내에 위치된 PPA 제어(129)와 접속되는 PA 센서(125)에 대해 작동하는 미리결정된 증명 액션(159), 액추에이터(157)와의 상호작용(155)을 통해 PPA를 스토리지 디바이스에 제공한다. 이러한 사용자 물리적 상호작용의 일례가, PPA 센서(125)가 순간 스위치이고, 액추에이터(157)가 니들형 로드(needle-like rod)(예를 들어, 펴진(straightened) 페이퍼 클립)이고, 사용자가 스토리지 디바이스상의 액세스 홀을 통해 도달하여 (하나 또는 그 초과의 스위치 폐쇄들과 같은) 미리결정된 방식으로 순간 스위치를 동작시키기 위해 로드를 사용하는 것이다.
[0108] 도 1c는 도 1a의 SSD를 포함하는 시스템의 실시예의 선택된 상세사항들을 예시한다. 도 1b에서와 같이, SED/SSD(101)는 디바이스 인터페이스들(190)을 통해 NVM(199)에 커플링된 SSD 제어기(100)를 포함한다. SSD는 외부 인터페이스들(110)을 통해, 차례로, 중간 제어기(103)에 커플링되는 호스트(102)에 커플링되고 그 후, 중간 인터페이스들(104)을 통해 호스트(102)에 커플링된다. 다양한 실시예들에서, SSD 제어기(100)는 RAID 제어기와 같은 다른 제어기들의 하나 또는 그 초과의 중간 레벨들을 통해 호스트에 커플링된다. 일부 실시예들에서, SED/SSD(101)(또는 그것의 변형들)는 SAS 드라이브 또는 SATA 드라이브에 대응하고, 중간 제어기(103)는 개시자에 차례로 커플링되는 확장자에 대응하거나, 대안적으로, 중간 제어기(103)는 확장자를 통해 개시자에 간접적으로 커플링되는 브리지에 대응한다. 사용자가 스토리지 디바이스 보안을 인에이블하고 PPA를 제공하는 것에 관한 상세사항들은 도 1b에 관하여 예시한 바와 동일하고 여기에 반복하지 않는다.
[0109] 다양한 실시예들에서, 하나 또는 그 초과의 NVM들과 결합하는 SSD 제어기 및/또는 컴퓨팅-호스트 플래시 메모리 제어기는 USB 스토리지 컴포넌트, CF 스토리지 컴포넌트, MMC 스토리지 컴포넌트, SD 스토리지 컴포넌트, 메모리 스틱 스토리지 컴포넌트, 및 xD-픽처 카드 스토리지 컴포넌트와 같은 비휘발성 스토리지 컴포넌트로서 구현된다.
[0110] 다양한 실시예들에서, SSD 제어기(또는 컴퓨팅-호스트 플래시 메모리 제어기)의 모두 또는 임의의 부분들, 또는 그것의 기능들은 제어기가 커플링될 호스트(예를 들어, 도 1c의 호스트(102))에서 구현된다. 다양한 실시예들에서, SSD 제어기(또는 컴퓨팅-호스트 플래시 메모리 제어기)의 모두 또는 임의의 부분들, 또는 그것의 기능들은, 하드웨어(예를 들어, 로직 회로), 소프트웨어(예를 들어, 드라이버 프로그램), 또는 이들의 임의의 조합을 통해 구현된다. 예를 들어, (예를 들어, 도 1a의 ECC(161) 및/또는 ECC-X(135)와 유사한) ECC 유닛의 기능 또는 그와 연관된 기능은, 부분적으로는 호스트상의 소프트웨어를 통해 그리고 부분적으로는 SSD 제어기에서의 하드웨어를 통해 구현된다. 다른 예에 있어서, (예를 들어, 도 1a의 리사이클러(151)와 유사한) 리사이클러 유닛의 기능 또는 그와 연관된 기능은, 부분적으로는 호스트상의 소프트웨어를 통해 그리고 부분적으로는 컴퓨팅-호스트 플래시 메모리 제어기에서의 하드웨어를 통해 구현된다.
스토리지 디바이스에 대한 물리적 액세스의 증명의 실시예들
[0111] 도 2는 SED/SSD 보안을 인에이블하고 보안 드라이브를 언락하는 호스트 BIOS, 및 도 1b 및 도 1c의 시스템에 관한 PPA와의 사용자 상호작용을 예시한다.
[0112] 일부 시나리오들에서, 사용자(150)는 파워-온(power-ON) 시퀀스에 이어 호스트(102)와의 상호작용(153)을 갖는다. 파워-온시에, 참조 부호 200으로 일반적으로 도시된 일례에서, 사용자는 넌-블랭크 사용자 패스워드를 선택하여 BIOS 플래시 메모리에 입력함으로써 호스트 BIOS(202)를 변경하도록 허용된다. 호스트 BIOS 변경에 후속하여, 그리고 호스트 운영 시스템의 시동 이전에, 사전-부팅 인증 프로세스(204)가 넌-블랭크 패스워드를 호스트 BIOS로부터 SED/SSD(101)로 전송하고, 이는 점선 화살표(206)에 의해 개념적으로 표시되어 있다. 사전-부팅 인증 프로세스는 스토리지 디바이스 보안을 인에이블하고 예를 들어, 호스트 운영 시스템으로부터 이슈된 스토리지 커맨드들을 수신하도록 스토리지 디바이스를 언락한다. 보안이 인에이블되면, SED/SSD(101)는 데이터를 판독하고 기록하는 모든 스토리지 커맨드들을 수신하고 실행한다. 그러나, 다양한 실시예들에 따르면, 패스워드를 변경하는 것, 스토리지 디바이스의 일부를 소거하는 것, 스토리지 디바이스를 포맷하는 것, 파기 또는 트림 동작을 실행하는 것 등을 시도하는 커맨드들 중 어느 하나 또는 그 초과의 것은, 사용자가 미리결정된 방식으로 스토리지 센서(125)를 동작시킴으로써 스토리지 디바이스에 실제 물리적 액세스의 증명(208)을 제공하기 전까지는 실행되지 않는다.
[0113] 도 3은 보안이 인에이블되는지 그리고 보안 드라이브가 언락되었는지에 관한 스토리지 디바이스 행위를 예시하는 테이블이다. 이 테이블은 참조 부호 300으로 일반적으로 도시되고, 2개의 파라미터들: 보안 인에이블, 및 드라이브 언락의 허용가능한 조합들을 포함한다. 도 2의 예에 관하여 상술한 바와 같이, 일부 시나리오들에서, 스토리지 디바이스 보안은 넌-블랭크 패스워드의 사전-부팅 전송 동안 인에이블된다. 보안이 인에이블되지 않았을 때, 스토리지 디바이스는 락되지 않고 수신된 모든 커맨드들을 비선택적으로 실행한다(모든 CMD들 실행(301)). 그러나, 보안이 인에이블되면, 스토리지 디바이스는 정확한 패스워드가 호스트로부터 수신될 때까지 파워-온 시퀀스에 후속하여 일부 및/또는 모든 커맨드들을 옵션으로 그리고/또는 선택적으로 응답하지 않는 락 상태에 있다(언락을 위해 정확한 크리덴션들을 대기(303)). 그 후, 스토리지 디바이스는 언락되고, 스토리지 디바이스 커맨드들의 선택적 실행을 준비한다(모든 미보호 CMD들 실행; PPA가 존재할 때만 보호 CMD들을 실행(302)).
[0114] 도 4는 수신된 커맨드들의 실행 동안, 도 1a 내지 도 1c의 SED/SSD와 같은 보안 스토리지 디바이스에 의해 사용된 판정 트리를 예시한다. 판정 트리는 일반적으로 참조 부호 400에 의해 도시된다. (스토리지 디바이스) 커맨드가 수신될 때(402), 보안이 인에이블되었는지 결정하기 위한 테스트(404)가 이루어진다. 보안이 인에이블되지 않은 경우에, 수신된 커맨드가 실행되고(406), 상태가 호스트에 보고되며(408), 스토리지 디바이스가 수신된 커맨드의 프로세싱을 완료한다.
[0115] 보안이 인에이블되었다는 것이 결정되면, 수신된 커맨드가 복수의 보호된 커맨드들 중 하나인지 결정하기 위해 수신된 커맨드가 테스트된다(410). 보호된 커맨드들의 예들은 "기존 크리덴셜들을 변경하는 것", "드라이브의 정의된 부분을 소거하는 것", "드라이브를 포맷하는 것", "파기 및 트림 동작을 수행하는 것", 또는 이들의 임의의 조합이다. 다양한 실시예들에서, 보호된 커맨드들은 상술한 예들의 임의의 조합이다. 수신된 커맨드가 보호되지 않은 경우에, 커맨드가 실행되고(406), 상태가 호스트에 보고된다(408). 수신된 커맨드가 보호된 커맨드인 경우에, PPA가 존재하는지 결정하기 위한 테스트(412)가 이루어진다. 일부 시나리오들에서, 증명은 도 1b, 도 1c, 및 도 2에 예시된 바와 같은 스토리지 디바이스와의 직접 물리적 사용자 상호작용을 포함한다. 증명이 존재하는 경우에, 수신된 커맨드가 실행되고(406), 상태가 호스트에 보고된다(408). PPA가 즉시 존재하지 않을 때, 시간의 증명 윈도우가 발생할 증명에 대해 확립된다. 윈도우는 액추에이터(예를 들어, 도 1b 및 도 1c의 157)를 획득하거나 생성하고, 스토리지 디바이스와의 미리결정된 물리적 상호작용을 시작하기 위해 사용자 시간을 제공한다. 일부 실시예들 및/또는 사용자 시나리오들에서, 미리결정된 물리적 상호작용은 상대적으로 단순하여, 단지 단일 사용자 상호작용만을 갖지만, 다른 실시예들 및/또는 사용 시나리오들에서는, 미리결정된 물리적 상호작용은 상대적으로 복잡하여, 다중의 단계들 및 특정 사용자 상호작용들을 갖는다. 다양한 증명 윈도우들이 타임 아웃에 대한 테스트(414)로서 표현된다. 증명 윈도우가 타임 아웃되지 않으면, 저장 디바이스는 PPA가 존재하는 것(테스트(412))을 계속 대기한다. PPA가 존재하지 않고 증명 윈도우가 타임아웃되면, 에러가 호스트에 옵션으로 그리고/또는 선택적으로 보고된다(416).
[0116] 일부 실시예들 및/또는 사용 시나리오들에서, 도 1a의 CPU(171)는 도 4에 예시된 기능들 및/또는 도 1a의 PPA 제어(129)와 함께 수행된 기능들의 모두 또는 임의의 부분들을 관리하고, 제어하고, 그리고/또는 수행하는 (예를 들어, 도 1a의 플래시 디바이스(192)의 인스턴스들로부터 페치된) 명령들을 실행한다. 예를 들어, 테스트들(404, 410, 412, 및 414) 중 어느 하나 또는 그 초과의 것은 CPU(171)에 의해 전체적으로 또는 부분적으로 수행된다. 일부 실시예들에서, 도 1a의 커맨드 관리(173)는 도 4에 예시된 기능들 및/또는 도 1a의 PPA 제어(129)와 함께 수행된 기능들의 모두 또는 임의의 부분들을 관리하고, 제어하고, 그리고/또는 수행한다. 예를 들어, 테스트들(404, 410, 412, 및 414) 중 어느 하나 또는 그 초과의 것은, 옵션으로 플래시 디바이스(192)의 인스턴스들로부터 페치되고 CPU(171)에 의해 실행된 명령들과 함께, 커맨드 관리(173)에 의해 전체적으로 또는 부분적으로 수행된다. 다른 예에 있어서, 커맨드 관리(173)는 PPA 제어(129)에 의해 제공된 정보에 적어도 부분적으로 기초하여 PPA를 인식한다.
[0117] 도 5a 내지 도 5d는 도 1a 내지 도 1c의 SED/SSD(101)에 대한 물리적 액세스를 증명하는 다양한 PPA 센서들(125A-D), 대응하는 액티베이터(activator)들, 및 대응하는 미리결정된 사용자 상호작용들의 예들을 예시한다. PPA 센서들(125A-D) 각각은 도 1b, 도 1c, 및 도 2의 PPA 센서(125)의 각각의 예시적인 실시예이다. 도 5e는 도 1a 내지 도 1c의 SED/SSD(101)를 예시하고, PPA는 호스트 시스템과의 물리적 보안 접속에 의해 확립된다.
[0118] 도 5a에서, PPA 센서(125A)는 스토리지 디바이스(예를 들어, SED/SSD(101))내에 있고 사용자 조작된 외부 자석(504)에 의해 동작가능한 자기적으로 동작된 리드 스위치(502)를 포함한다. 시간의 증명 윈도우내에서, 사용자는 스토리지 디바이스의 PPA를 제공하기 위해 리드 스위치에 근접하게 자석을 가져온다. 스토리지 디바이스가 랩탑 컴퓨터에 설치되는 예에서, 사용자는 리드 스위치를 활성화시키기 위해 컴퓨터의 하면을 따라 자석을 통과시킨다. 일부 실시예들 및/또는 사용 시나리오들에서, (시간에 관한) 스위치 개방들 및 폐쇄들의 상대적으로 더욱 복잡한 시퀀스를 포함하는 미리결정된 사용자 상호작용이 PPA를 제공한다.
[0119] 도 5b에서, PPA 센서(125B)는 스토리지 디바이스(예를 들어, SED/SSD(101))내에 있고 스토리지 디바이스의 인클로저에서의 개구를 통해 사용자 조작된 니들형 로드(508)(예를 들어, 펴진 페이퍼 클립)에 의해 동작가능한 순간 스위치(506)를 포함한다. 순간 스위치(506)를 동작시키는 다른 모드들이 예상된다. 시간의 증명 윈도우내에서, 사용자는 로드를 개구에 삽입한 후, 스위치를 동작시켜 스토리지 디바이스의 PPA를 제공하기 위해 로드를 누른다. 일부 실시예들 및/또는 사용 시나리오들에서, (시간에 관한) 스위치 개방들 및 폐쇄들의 상대적으로 더욱 복잡한 시퀀스를 포함하는 미리결정된 사용자 상호작용이 PPA를 제공한다.
[0120] 도 5c에서, PPA 센서(125C)는 스토리지 디바이스(예를 들어, SED/SSD(101))내에 있고 외부 사용자 조작된 무선 주파수 송신기(512)와 호환가능한 호환가능 무선 주파수 수신기/검출기(510)를 포함한다. 시간의 증명 윈도우내에서, 사용자는 스토리지 디바이스의 PPA를 제공하기 위해 수신기에 관하여 송신기를 조작한다. 일부 실시예들 및/또는 사용 시나리오들에서, (시간 및/또는 위치에 관한) 이동들의 상대적으로 더욱 복잡한 시퀀스를 포함하는 미리결정된 사용자 상호작용이 PPA를 제공한다. 특정한 예에서, 사용자는 무선 송신기로서 셀 폰을 이용하고, 이것을 SED/SSD(101)에 관하여 정해진 패턴에서 이동시킨다.
[0121] 도 5d에서, PPA 센서(125D)는 스토리지 디바이스(예를 들어, SED/SSD(101))내에 있고 광원(516)을 검출하도록 인에이블된 광 센서(514)를 포함한다. 사용자-조작된 광원 인터럽터(518)(예를 들어, 셔터)가 센서로의 광원을 선택적으로 허용하고 광원이 센서에 도달하는 것을 선택적으로 인터럽트하도록 구성된다. 센서에서 검출된 광에서의 변화들은 인터럽터의 이동들에 대응한다. 시간의 증명 윈도우내에서, 사용자는 스토리지 디바이스의 PPA를 제공하기 위해 인터럽터를 이동시키고 그리고/또는 조작한다. 일부 실시예들 및/또는 사용 시나리오들에서, (시간에 관한) 이동들의 상대적으로 더욱 복잡한 시퀀스를 포함하는 미리결정된 사용자 상호작용이 PPA를 제공한다. 특정한 예로서, 광 섬유가 커버가 개방될 때 랩탑의 상면에서 주변광을 수광하고, 광은 커버가 폐쇄될 때 센서에 대해 컷 오프된다. 사용자 상호작용은 증명 윈도우 동안 랩탑 커버를 개방하고 셔팅(shutting)하는 미리결정된 시퀀스를 포함한다.
[0122] 도 5e에서, PPA는 호스트 시스템과의 물리적 보안 접속에 의해 확립된다. 특정한 실시예에서, 증명은 접속이 존재하는 동안 연속적으로 존재한다. 다른 실시예에서, 증명은 정해진 간격들 동안 존재한다. 호스트(102)가 호스트 - 물리적 보안 접속 커플링(521)을 통해 물리적 보안 접속(520)에 커플링된다. 호스트 - 물리적 보안 접속 커플링(521)은 물리적 보안 접속 - SED/SSD 커플링(523)을 통해 SED/SSD(101)에 커플링된다. 다양한 실시예들에서, 호스트 - 물리적 보안 접속 커플링(521)은 중간 인터페이스들(104), 중간 인터페이스들과 별개인 인터페이스, 또는 관리 접속의 모두 또는 임의의 부분이다. 관리 접속의 예들은 12C 인터페이스 접속, UART 인터페이스 접속, 및 (GigE와 같은) 이더넷 인터페이스 접속을 포함한다. 일부 실시예들에서, 물리적 보안 접속 - SED/SSD 커플링(523)은 호스트 - 물리적 보안 접속 커플링(521)과 호환가능하다. 예를 들어, 커플링들(521 및 523)은 호스트 및 SED/SSD의 각각의 12C(또는 UART) 인터페이스들에 커플링되고, 물리적 보안 접속(520)은 물리적 보안인 것으로 사용자에게 공지된 하나 또는 그 초과의 와이어들이다. 다른 예에 있어서, 커플링들(521 및 523)은 호스트 및 SED/SSD의 각각의 이더넷 인터페이스들에 커플링되고, 물리적 보안 접속(520)은 물리적 보안인 것으로 사용자에게 공지된 하나 또는 그 초과의 이더넷 케이블들, 이더넷 호환가능 라우터, 및 이더넷 호환가능 스위치 중 하나 또는 그 초과의 것이다. 일부 실시예들에서, 물리적 보안 접속 - SED/SSD 커플링(523)은 외부 인터페이스들(110)의 모두 또는 임의의 부분이다.
[0123] 안티-하이잭킹 기법들의 설명은 도 1a 내지 도 1c의 SED/SSD와 같은 셀프-암호화, 고체 상태 드라이브들과 관련한 사용에 대부분 집중되었다. 그러나, 이 기법들이 하드 디스크 드라이브들, 고체 상태 드라이브들, 내부 스토리지를 갖는 네트워크 디바이스들, 인텔리전트 기기들 등과 같은 광범위한 보안 스토리지 디바이스들과 유용한 애플리케이션을 갖는다는 것이 예상된다.
예시적인 구현 기법들
[0124] 일부 실시예들에서, 예를 들어, 플래시 메모리들, 컴퓨팅-호스트 플래시 메모리 제어기, 및/또는 (도 1a의 SSD 제어기(100)와 같은) SSD 제어기와 함께 SED/SSD에 의해 수행된 동작들의 모두 또는 일부들, 및 프로세서, 마이크로프로세서, 시스템-온-칩, 응용 주문형 집적 회로, 하드웨어 가속기, 또는 상기 언급한 동작들의 모두 또는 일부들 제공하는 다른 회로의 일부분에 대한 다양한 조합들이, 컴퓨터 시스템에 의한 프로세싱과 호환가능한 사양에 의해 특정된다. 그 사양은 하드웨어 디스크립션(description) 언어, 회로 디스크립션들, 네트리스트(netlist) 디스크립션들, 마스크 디스크립션들 또는 레이아웃 디스크립션들과 같은 다양한 디스크립션들에 따른다. 예시적인 디스크립션들은: 베릴로그(Verilog), VHDL, SPICE, PSpice와 같은 SPICE 변형들, IBIS, LEF, DEF, GDS-II, OASIS 또는 다른 디스크립션들을 포함한다. 다양한 실시예들에서, 프로세싱은 하나 또는 그 초과의 집적 회로들에 대한 포함을 위해 적합한 로직 및/또는 회로를 생성하고, 검증하거나 특정하기 위해 해석(interpretation), 컴필레이션, 시뮬레이션 및 합성의 임의의 조합을 포함한다. 다양한 실시예들에 따른 각각의 집적 회로는 다양한 기술들에 따라 설계가능 및/또는 제조가능하다. 기술들은 (필드 또는 마스크 프로그램가능한 게이트 어레이 집적 회로와 같은) 프로그램가능 기술, (전적 또는 부분적 셀-기반 집적 회로와 같은) 세미-커스텀(semi-custom) 기술 및 (실질적으로 특화되는 집적 회로와 같은) 풀-커스텀(full-custom) 기술 및 이들의 임의의 조합 또는 집적 회로들의 설계 및/또는 제조와 호환가능한 임의의 다른 기술을 포함한다.
[0125] 일부 실시예들에서, 한 세트의 명령들이 저장되어 있는 컴퓨터 판독가능한 매체에 의해 설명된 바와 같은 동작들의 전부 또는 일부들의 다양한 조합들은, 하나 또는 둘 이상의 프로그램 명령들의 실행 및/또는 해석에 의해, 하나 또는 둘 이상의 소스 및/또는 스크립트 언어 구문들의 해석 및/또는 컴파일링에 의해, 또는 프로그래밍 및/또는 스크립팅 언어 구문들에 표현된 정보를 컴파일링, 변환, 및/또는 해석함으로써 생성되는 이진 명령들의 실행에 의해 수행된다. 구문들은 (C, C++, 포트란, 파스칼, Ada, Java, VBscript 및 쉘(Shell)과 같은) 임의의 표준 프로그래밍 또는 스크립팅 언어와 호환가능하다. 프로그램 명령들, 언어 구문들 또는 이진 명령들 중 하나 또는 둘 이상은 하나 또는 둘 이상의 컴퓨터 판독가능한 스토리지 매체 엘리먼트들 상에 임의선택적으로 저장된다. 다양한 실시예들에서, 프로그램 명령어들 중 일부, 모두, 또는 다양한 부분들은 하나 또는 그 초과의 기능들, 루틴들, 서브-루틴들, 인-라인 루틴들, 절차들, 매크로들, 또는 이들의 부분들로서 실현된다.
결론
[0126] 단지 텍스트 및 도면들을 준비하는데 편의를 위해 특정 선택들이 설명에서 구성되었으며 반대의 표시가 존재하지 않는 한 그 선택들은 그 자체가, 설명된 실시예들의 구조 또는 동작에 관한 추가적인 정보를 전달하는 것으로서 해석되어서는 안된다. 선택들의 예들은: 실시예들의 특징들 및 엘리먼트들을 식별하고 참조하기 위해 이용되는 엘리먼트 식별자들(예를 들어, 콜아웃들(callouts) 또는 수치적 지시자들)의 특정 구조 또는 할당 그리고 도면 넘버링을 위해 이용되는 지시들의 특정 구조 또는 할당을 포함한다.
[0127] 용어들 "포함하다(includes)" 또는 "포함하는(including)"은 구체적으로, 허용범위가 넓은(open-ended) 범위의 논리적 세트들을 설명하는 추상적 개념들(abstractions)로서 해석되도록 의도되며 용어 "~내의(within)"가 명시적으로 후속하지 않는 한 물리적 제한(physical containment)을 전달하는 것을 의미하지 않는다.
[0128] 전술한 실시예들이 설명 및 이해의 명확화를 목적으로 다소 상세히 설명되었지만, 본 발명은 제공된 상세사항들로 제한되지 않는다. 본 발명의 많은 실시예들이 존재한다. 개시된 실시예들은 예시적이며 제한적이지 않는다.
[0129] 설명에 일치하는 구성, 배열 및 이용에서의 많은 변형들이 가능하며, 이러한 많은 변형들은 발행 특허의 청구항들의 범위 내에 속함이 이해될 것이다. 예를 들어, 상호접속 및 기능-유닛(function-unit) 비트-폭들, 클록 속도들 및 사용되는 기술의 타입은 각 컴포넌트 블록에서의 다양한 실시예들에 따라 가변적이다. 상호접속 및 로직에 정해지는 명칭들은 단지 예시적이며, 설명된 개념들을 제한하는 것으로 해석되어서는 안 된다. 순서도 및 흐름도 프로세스, 동작 및 기능 엘리먼트들의 순서 및 배열은 다양한 실시예들에 따라 가변적이다. 또한, 구체적으로 반대로 서술되지 않는 한, 특정된 값 범위들, 이용된 최대 및 최소 값들 또는 (플래시 메모리 기술 타입들; 및 레지스터들 및 버퍼들에서의 엔트리들 또는 스테이지들의 수와 같은) 다른 특정 사양들은 단지 설명된 실시예들에 대한 것이며, 구현 기술에서의 개선들 및 변경들을 따를(track)것이 예상되며, 제한들로서 해석되어서는 안 된다.
[0130] 기술분야에 알려진 기능적으로 동등한 기술들이, 다양한 컴포넌트들, 서브-시스템들, 동작들, 기능들, 루틴들, 서브-루틴들, 인-라인 루틴들, 절차들, 매크로들 또는 이들의 일부들을 구현하도록, 설명된 것들 대신에 사용가능하다. 실시예의 기능이 (하드웨어에서의 이전의 기능들의 소프트웨어로의 이동을 용이하게 하는) 더 빠른 프로세싱 및 (소프트웨어에서의 이전의 기능들의 하드웨어로의 이동을 용이하게 하는) 더 높은 집적 밀도의 설계 제약들 및 기술 트렌드들에 의존하기 때문에, 실시예들의 다수의 기능적 양상들이 하드웨어(예를 들어, 일반적으로 전용 회로) 또는 소프트웨어(예를 들어, 프로그램된 제어기 또는 프로세서의 일부 방식을 통하여)에서 선택적으로 실현가능하다는 것이 또한 이해된다. 다양한 실시예들에서의 특정한 변형들은, 파티셔닝하는데 있어서의 차이들; 상이한 폼 팩터들 및 구성들; 상이한 운영 시스템들 및 다른 시스템 소프트웨어의 사용; 상이한 인터페이스 표준들, 네트워크 프로토콜들, 또는 통신 링크들의 사용; 및 특정한 애플리케이션의 고유 엔지니어링 및 비즈니스 제약들에 따라 본원에 설명된 개념들을 구현할 때 기대되는 다른 변형들을 포함하지만, 이에 제한되지 않는다.
[0131] 실시예들은 설명된 실시예들의 많은 양상들의 최소 구현을 위해 요구되는 것을 훨씬 넘어선 상세 및 환경적 맥락으로 설명되었다. 기술분야의 당업자는 일부 실시예들이 나머지 엘리먼트들 사이의 기본적 협력을 변경하지 않고서 개시된 컴포넌트들 또는 특징들을 생략함을 인식할 것이다. 따라서 개시된 상세사항들 중 다수는 설명된 실시예들의 다양한 양상들을 구현하는데 요구되지 않음이 이해된다. 나머지 엘리먼트들이 종래 기술과 구별가능한 범위까지, 생략되는 컴포넌트들 및 특징들은 본원에 설명된 개념들에 대해 제한하지 않는다.
[0132] 설계에 있어서 이러한 모든 변형들은 설명된 실시예들에 의해 전달되는 교시들에 대한 사소한(insubstantial) 변경들이다. 본원에 설명된 실시예들은 다른 컴퓨팅 및 네트워킹 애플리케이션들로의 광범위한 적용가능성을 가지며, 설명된 실시예들의 특정 애플리케이션 또는 산업으로 제한되지 않음이 또한 이해된다. 본 발명은 따라서, 발행 특허의 청구항들의 범위 내에 포괄되는 모든 가능한 수정들 및 변형들을 포함하는 것으로 해석된다.

Claims (23)

  1. 방법으로서,
    스토리지 디바이스에서, 호스트로부터 스토리지 커맨드를 수신하는 단계; 및
    복수의 타입들의 보호된 스토리지 커맨드들 중 하나인 상기 스토리지 커맨드에 응답하여, 미리결정된 시간의 윈도우 동안 상기 스토리지 디바이스의 미리결정된 물리적 액세스의 증명(Proof of Physical Access; PPA)이 존재하는 것에만 응답하여 상기 스토리지 커맨드가 수행되고 그렇지 않으면 수행되지 않도록, 상기 스토리지 커맨드를 조건적으로 수행하는 단계
    를 포함하고,
    상기 복수의 타입들의 보호된 스토리지 커맨드들은:
    보안 크리덴션들을 변경하는 것;
    상기 스토리지 디바이스를 포맷하는 것;
    상기 스토리지 디바이스를 파기하는 것;
    상기 스토리지 디바이스의 지정된 부분의 콘텐츠들을 소거하는 것; 및
    고체 상태 드라이브 트림(TRIM) 커맨드
    중 적어도 2개를 포함하는,
    방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 미리결정된 PPA는 상기 스토리지 디바이스가 물리적 보안 접속을 통해 상기 호스트에 접속되는 것을 포함하는,
    방법.
  5. 제 1 항에 있어서,
    상기 미리결정된 PPA는 상기 미리결정된 시간의 윈도우 동안 상기 스토리지 디바이스에서의 미리결정된 물리적 개입을 포함하는,
    방법.
  6. 제 5 항에 있어서,
    상기 미리결정된 PPA 및 상기 미리결정된 물리적 개입은 각각:
    상기 스토리지 디바이스의 리드(reed) 스위치의 동작을 검출하고, 상기 리드 스위치를 미리결정된 방식으로 제어하기 위해 자석을 조작하는 것;
    상기 스토리지 디바이스의 수동 동작된 스위치의 동작을 검출하고, 상기 수동 동작된 스위치를 미리결정된 방식으로 수동으로 동작시키는 것;
    상기 스토리지 디바이스에서 미리결정된 무선 주파수 신호의 존재를 검출하고, 상기 미리결정된 무선 주파수 신호를 제공하는 것; 및
    상기 스토리지 디바이스에 수용된 광원에서의 미리결정된 변화를 검출하고, 상기 미리결정된 변화를 생성하는 것
    중 적어도 하나를 포함하는,
    방법.
  7. 삭제
  8. 삭제
  9. 시스템으로서,
    호스트로부터 스토리지 커맨드를 수신하기 위한 수단 ― 상기 수신하기 위한 수단은 스토리지 디바이스에 포함됨 ―; 및
    복수의 타입들의 보호된 스토리지 커맨드들 중 하나인 상기 스토리지 커맨드에 응답하여, 미리결정된 시간의 윈도우 동안 상기 스토리지 디바이스의 미리결정된 물리적 액세스의 증명(PPA)이 존재하는 것에만 응답하여 상기 스토리지 커맨드가 수행되고 그렇지 않으면 수행되지 않도록, 상기 스토리지 커맨드를 조건적으로 수행하기 위한 수단
    을 포함하고,
    상기 복수의 타입들의 보호된 스토리지 커맨드들은:
    보안 크리덴션들을 변경하는 것;
    상기 스토리지 디바이스를 포맷하는 것;
    상기 스토리지 디바이스를 파기하는 것;
    상기 스토리지 디바이스의 지정된 부분의 콘텐츠들을 소거하는 것; 및
    고체 상태 드라이브 트림(TRIM) 커맨드
    중 적어도 2개를 포함하는,
    시스템.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 미리결정된 PPA는 상기 스토리지 디바이스가 물리적 보안 접속을 통해 상기 호스트에 접속되는 것을 포함하는,
    시스템.
  12. 제 9 항에 있어서,
    상기 미리결정된 PPA는 상기 미리결정된 시간의 윈도우 동안 상기 스토리지 디바이스에서의 미리결정된 물리적 개입을 포함하는,
    시스템.
  13. 제 12 항에 있어서,
    상기 미리결정된 PPA 및 상기 미리결정된 물리적 개입은 각각:
    상기 스토리지 디바이스의 리드 스위치의 동작을 검출하고, 상기 리드 스위치를 미리결정된 방식으로 제어하기 위해 자석을 조작하는 것;
    상기 스토리지 디바이스의 수동 동작된 스위치의 동작을 검출하고, 상기 수동 동작된 스위치를 미리결정된 방식으로 수동으로 동작시키는 것;
    상기 스토리지 디바이스에서 미리결정된 무선 주파수 신호의 존재를 검출하고, 상기 미리결정된 무선 주파수 신호를 제공하는 것; 및
    상기 스토리지 디바이스에 수용된 광원에서의 미리결정된 변화를 검출하고, 상기 미리결정된 변화를 생성하는 것
    중 적어도 하나를 포함하는,
    시스템.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
KR1020147005242A 2011-07-27 2012-07-26 보안 스토리지 하이잭킹 보호를 위한 기법들 KR101537973B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161511989P 2011-07-27 2011-07-27
US61/511,989 2011-07-27
PCT/US2012/048265 WO2013016496A1 (en) 2011-07-27 2012-07-26 Techniques for secure storage hijacking protection

Publications (2)

Publication Number Publication Date
KR20140043490A KR20140043490A (ko) 2014-04-09
KR101537973B1 true KR101537973B1 (ko) 2015-07-20

Family

ID=47601529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147005242A KR101537973B1 (ko) 2011-07-27 2012-07-26 보안 스토리지 하이잭킹 보호를 위한 기법들

Country Status (6)

Country Link
US (2) US9087210B2 (ko)
EP (1) EP2737428A4 (ko)
JP (1) JP6049716B2 (ko)
KR (1) KR101537973B1 (ko)
CN (1) CN103797492B (ko)
WO (1) WO2013016496A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779245B2 (en) * 2013-03-20 2017-10-03 Becrypt Limited System, method, and device having an encrypted operating system
US9514310B2 (en) * 2013-05-09 2016-12-06 Telecommunication Systems, Inc. Gap services router (GSR)
US9396359B2 (en) 2013-09-09 2016-07-19 Whitecanyon Software, Inc. System and method for encrypted disk drive sanitizing
US20160034217A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Memory controller configured to control data sanitization and memory system including the same
US9626531B2 (en) * 2014-11-18 2017-04-18 Intel Corporation Secure control of self-encrypting storage devices
US9875357B2 (en) * 2015-02-06 2018-01-23 Qualcomm Incorporated Methods and systems for detecting fake user interactions with a mobile device for improved malware protection
US9553056B1 (en) 2015-10-27 2017-01-24 International Business Machines Corporation Semiconductor chip having tampering feature
US10255201B2 (en) * 2016-05-18 2019-04-09 Dell Products, L.P. Local key management for storage devices
US11188270B2 (en) * 2016-05-25 2021-11-30 International Business Machines Corporation Targeted secure data overwrite
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
CN106843747A (zh) * 2016-11-24 2017-06-13 天津津航计算技术研究所 双接口数据实时共享固态硬盘
US10417733B2 (en) * 2017-05-24 2019-09-17 Samsung Electronics Co., Ltd. System and method for machine learning with NVMe-of ethernet SSD chassis with embedded GPU in SSD form factor
JP6789906B2 (ja) * 2017-09-20 2020-11-25 キオクシア株式会社 データ蓄積装置
US11258772B2 (en) * 2018-06-19 2022-02-22 Cypress Semiconductor Corporation Secured communication from within non-volatile memory device
US10977381B2 (en) * 2018-06-28 2021-04-13 Mohammad Mannan Protection system and method against unauthorized data alteration
US10706948B2 (en) * 2018-07-12 2020-07-07 Allegro Microsystems, Llc Multi-level memory safety of a sensor integrated circuit
JP2020030527A (ja) 2018-08-21 2020-02-27 キオクシア株式会社 記憶装置及びプログラム
US11429541B2 (en) * 2019-01-07 2022-08-30 Dell Products L.P. Unlocking of computer storage devices
JP2020154540A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム及び制御システム
US11200189B2 (en) 2019-11-21 2021-12-14 Hewlett Packard Enterprise Development Lp Baseboard management controller-based security operations for hot plug capable devices
US11611589B2 (en) * 2020-06-05 2023-03-21 Seagate Technology Llc Data storage system with powered move attack protection
US11726672B2 (en) 2020-12-24 2023-08-15 Samsung Electronics Co., Ltd. Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device
US20230229777A1 (en) * 2022-01-18 2023-07-20 Dell Products L.P. Cloud based boot integrity

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307452A1 (en) * 2008-06-06 2009-12-10 Sandisk Il Ltd. Storage device having an anti-malware protection
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051904A (ja) * 1999-08-11 2001-02-23 Hitachi Ltd 不揮発性半導体メモリを用いた外部記憶装置
JP2001117823A (ja) 1999-10-15 2001-04-27 Fuji Xerox Co Ltd アクセス資格認証機能付きデータ記憶装置
US7690030B1 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Electronic data flash card with fingerprint verification capability
CN1260642C (zh) * 2002-11-18 2006-06-21 深圳市朗科科技有限公司 一种向移动存储装置发送命令和数据的方法
JP2005157542A (ja) * 2003-11-21 2005-06-16 Matsushita Electric Ind Co Ltd 記録媒体及び記録媒体アクセス制限方法
US7171511B2 (en) * 2004-03-24 2007-01-30 Hitachi, Ltd. WORM proving storage system
CN101010677A (zh) * 2004-09-06 2007-08-01 皇家飞利浦电子股份有限公司 用于交换数据的便携式存储设备和方法
US8127147B2 (en) * 2005-05-10 2012-02-28 Seagate Technology Llc Method and apparatus for securing data storage while insuring control by logical roles
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
JP2007220038A (ja) * 2006-02-20 2007-08-30 Sony Corp データ記憶装置及びデータ伝送システム
TWI318369B (en) * 2006-10-02 2009-12-11 Egis Technology Inc Multi-functional storage apparatus and control method thereof
JP4424392B2 (ja) * 2007-08-30 2010-03-03 ブラザー工業株式会社 デバイス、およびファイル伝送システム
KR20090031102A (ko) * 2007-09-21 2009-03-25 삼성전자주식회사 이동식 저장 장치의 포맷 방법 및 장치
US8166220B2 (en) * 2008-08-04 2012-04-24 Sandisk Il Ltd. Device for connection with a storage device and a host
US8375151B1 (en) * 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
JP2010092301A (ja) * 2008-10-08 2010-04-22 Sony Corp 記憶装置、制御方法及び制御システム
US8688940B2 (en) * 2008-12-18 2014-04-01 Sandisk Technologies Inc. Method for using a CAPTCHA challenge to protect a removable mobile flash memory storage device
JP5458568B2 (ja) * 2008-12-25 2014-04-02 ソニー株式会社 不揮発性記憶装置、情報記録システム、及び情報記録方法
JP2010224643A (ja) * 2009-03-19 2010-10-07 Toshiba Storage Device Corp 磁気記憶装置、磁気記憶装置の処理条件設定方法および磁気記憶装置の処理条件設定プログラム
TWI428918B (zh) * 2009-09-29 2014-03-01 Silicon Motion Inc 記憶裝置以及記憶裝置之資料存取方法
KR101833464B1 (ko) * 2010-02-02 2018-02-28 시게이트 테크놀로지 인터내셔날 디스크 장치와 외부 저장 매체 사이의 데이터 전송 방법 및 그 방법을 이용하는 시스템
US8442235B2 (en) * 2010-04-14 2013-05-14 Microsoft Corporation Extensible management of self-encrypting storage devices
US8566603B2 (en) * 2010-06-14 2013-10-22 Seagate Technology Llc Managing security operating modes
US8688926B2 (en) * 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
WO2012148812A2 (en) * 2011-04-29 2012-11-01 Lsi Corporation Encrypted transport solid-state disk controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
US20090307452A1 (en) * 2008-06-06 2009-12-10 Sandisk Il Ltd. Storage device having an anti-malware protection

Also Published As

Publication number Publication date
US9087210B2 (en) 2015-07-21
US9753869B2 (en) 2017-09-05
EP2737428A4 (en) 2015-05-27
KR20140043490A (ko) 2014-04-09
US20140130188A1 (en) 2014-05-08
JP2014522041A (ja) 2014-08-28
CN103797492A (zh) 2014-05-14
JP6049716B2 (ja) 2016-12-21
CN103797492B (zh) 2016-09-21
EP2737428A1 (en) 2014-06-04
US20150324304A1 (en) 2015-11-12
WO2013016496A1 (en) 2013-01-31

Similar Documents

Publication Publication Date Title
KR101537973B1 (ko) 보안 스토리지 하이잭킹 보호를 위한 기법들
KR101466560B1 (ko) 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
US9454319B2 (en) Storage system data hardening
US9461904B2 (en) Selective enablement of operating modes or features via host transfer rate detection
KR101798036B1 (ko) I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US9128715B2 (en) Storage system data hardening
JP5806792B2 (ja) フラッシュメモリ用のldpc消失復号化
US9430680B2 (en) Tamper sensor
KR20150002069A (ko) 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180705

Year of fee payment: 4