KR102192483B1 - 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수 - Google Patents

배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수 Download PDF

Info

Publication number
KR102192483B1
KR102192483B1 KR1020207021735A KR20207021735A KR102192483B1 KR 102192483 B1 KR102192483 B1 KR 102192483B1 KR 1020207021735 A KR1020207021735 A KR 1020207021735A KR 20207021735 A KR20207021735 A KR 20207021735A KR 102192483 B1 KR102192483 B1 KR 102192483B1
Authority
KR
South Korea
Prior art keywords
data
storage device
service provider
deliverable
encrypted
Prior art date
Application number
KR1020207021735A
Other languages
English (en)
Other versions
KR20200091965A (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
Priority claimed from US14/975,363 external-priority patent/US9934389B2/en
Priority claimed from US14/975,371 external-priority patent/US10482413B2/en
Priority claimed from US14/975,368 external-priority patent/US9887998B2/en
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20200091965A publication Critical patent/KR20200091965A/ko
Application granted granted Critical
Publication of KR102192483B1 publication Critical patent/KR102192483B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

클라이언트가 데이터 유입 작업을 요청한 때, 원격 스토리지 서비스 제공자가 클라이언트로부터 서비스 제공자로 유입을 위한 클라이언트 데이터를 전송하는데 사용될 배송가능한 스토리지 디바이스를 프로비저닝한다. 서비스 제공자는 데이터 유입 작업을 위한 보안 정보를 생성하고, 보안 정보로 배송가능한 스토리지 디바이스를 프로비저닝하고, 배송가능한 스토리지 디바이스를 클라이언트에 발송한다. 서비스 제공자는 배송가능한 스토리지 디바이스 (예를 들어, 네트워크를 통하여)와 별개로 클라이언트-키들을 클라이언트에 또한 발송한다. 클라이언트는 디바이스를 수신하고, 클라이언트 데이터 및 키들을 암호화하고, 암호화된 데이터 및 키들을 디바이스상에 전송하고, 그것을 다시 서비스 제공자에 배송한다. 원격 스토리지 서비스 제공자는 스토리지 디바이스를 인증하고, 스토리지 서비스 제공자에 저장된 클라이언트-키들을 이용하여 클라이언트-생성 키들을 복호화하고, 복호화된 클라이언트-측 생성 키들을 이용하여 데이터를 복호화하고, 복호화된 데이터를 유입한다.

Description

배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수{PROVISIONING OF A SHIPPABLE STORAGE DEVICE AND INGESTING DATA FROM THE SHIPPABLE STORAGE DEVICE}
컴퓨터 시스템들을 위한 데이터 스토리지 용량의 성장은 컴퓨터 시스템들 사이의 네트워크들을 통하여 데이터를 전송하기 위한 송신 속도에서의 성장보다 훨씬 앞선다. 차이가 너무 커서 하나의 스토리지 설비로부터 다른 스토리지 설비로 큰 데이터의 양을 송신하는 것은 엄두도 못 낼 정도로 비용이 많이 들고 (예를 들어, 비용이 많이 드는 시스템 업그레이드들을 필요로 하고) 또는 시간이 오래 (예를 들어, 몇 달 또는 더 오래 걸리는 송신) 걸릴 수 있다. 스토리지 매체를 물리적으로 움직이는 것은 레거시 하드웨어(legacy hardware)상에 데이터를 남겨둘 수 있거나 또는 이용 가능한 옵션이 아닐 수 있다 (예를 들어, 데이터가 고객을 위하여 스토리지 서비스에 의해 저장된 때). 일부 해결책들은 휴대용 스토리지 디바이스 (예를 들어, 네트워크 부착된 스토리지 디바이스들)로 데이터를 전송하는 것 및 휴대용 스토리지 디바이스를 데이터가 다른 스토리지 시스템으로 전송되는 다른 스토리지 설비로 배송(배송)하는 것을 포함한다.
예를 들어, 스토리지 서비스 제공자의 고객이 고객 사이트로부터 스토리지 서비스 제공자에 위치로 큰 양의 데이터를 이동시키기를 원할 때, 고객은 데이터를 디바이스 상에 저장할 수 있고 스토리지 서비스 제공자로 디바이스를 배송할 수 있다. 그러나, 다양한 이유들로 데이터의 기밀은 위태롭게 될 수 있다. 예를 들어, 배송 동안에, 스토리지 디바이스가 올바른 목적지로 배송되는 것을 막는 실수가 발생할 수 있다. 게다가, 디바이스는 제 3 자에 의해 인터셉트(intercept)될 수 있다. 따라서, 악의적인 제 3 자가 디바이스상의 기밀 데이터를 액세스할 수 있다. 일부 경우들에서, 디바이스는 인가받지 않은 액세스가 발생하였다는 어떤 표시 없이 스토리지 서비스 제공자에 도달될 수 있다.
더구나, 상이한 고객들은 데이터를 스토리지 서비스 제공자로 전송하기 위해 상이한 유형들의 스토리지 디바이스들을 사용할 수 있다. 새로운 스토리지 디바이스들 및 기술들이 꾸준히 개발되고 있고 고객들에 의해 채용된다. 따라서, 고객들로부터 전송되는 데이터의 양이 증가할 수록, 스토리지 서비스 제공자가 안전하고 효율적인 방식으로 다수의 서로 전혀 다른 스토리지 디바이스들로부터 데이터를 전송하는 것이 점점 더 어려워질 수 있다.
도 1은 일부 실시예들에 따른 배송가능한(shippable) 스토리지 디바이스를 이용하여 데이터를 안전하게 전송하기 위한 시스템 및 프로세스를 예시한다.
도 2는 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 예시한다.
도 3은 일부 실시예들에 따른 배송가능한 스토리지 디바이스의 로직 블럭 다이어그램이다.
도 4는 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 이용하여 데이터를 안전하게 전송하기 위한 프로세스의 흐름도이다.
도 5는 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 이용하는 보안 데이터 전송 기법을 예시하는 로직 블럭 다이어그램이다.
도 6은 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 이용하여 안전하게 데이터를 전송하기 위해 새로운 데이터 유입 작업(import job)에 대한 정보를 수집하기 위한 프로세스의 흐름도이다.
도 7 은 일부 실시예들에 따른 데이터 유입 작업에 대하여 안전하게 데이터를 전송하기 위해 배송가능한 스토리지 디바이스를 프로비저닝(provisioning)하기 위한 프로세스의 흐름도이다.
도 8은 일부 실시예들에 따른 배송가능한 스토리지 디바이스 및 매니페스트(manifest)를 고객에게 발송하기 위한 프로세스의 흐름도이다.
도 9는 일부 실시예들에 따른 고객에 배송을 준비하는 배송가능한 스토리지 디바이스의 로직 블럭 다이어그램이다.
도 10은 일부 실시예들에 따른 데이터 유입 작업에 대한 정보 및 배송가능한 스토리지 디바이스를 수신하기 위한 프로세스의 흐름도이다.
도 11는 일부 실시예들에 따른 고객 네트워크에 연결된 배송가능한 스토리지 디바이스의 로직 블럭 다이어그램이다.
도 12는 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 인증하고 매니페스트를 복호화하기 위한 프로세스의 흐름도이다.
도 13은 일부 실시예들에 따른 데이터 유입 작업과 관련된 매니페스트의 로직 블럭 다이어그램이다.
도 14는 일부 실시예들에 따른 배송가능한 스토리지 디바이스 상에 암호화된 데이터를 저장하기 위한 프로세스의 흐름도이다.
도 15는 일부 실시예들에 따른 데이터 및 키들을 암호화하고 암호화된 데이터 및 암호화된 키들을 배송가능한 스토리지 디바이스 상에 저장하기 위한 프로세스의 흐름도이다.
도 16은 일부 실시예들에 따른 암호화된 샤드(shard)들을 상이한 배송가능한 스토리지 디바이스들 상에 저장하기 위한 프로세스의 흐름도이다.
도 17은 일부 실시예들에 따른 청크(chunk) 키들을 이용하여 청크들을 암호화하기 위한 프로세스를 예시한다.
도 18은 일부 실시예들에 따른 파일 키(file key)를 이용하여 청크 키들을 암호화하기 위한 프로세스를 예시한다.
도 19는 일부 실시예들에 따른 버킷 키(bucket key)를 이용하여 파일 키들을 암호화하기 위한 프로세스를 예시한다.
도 20은 일부 실시예들에 따른 데이터 유입 작업과 관련된 암호화 키들간의 관계의 로직 블럭 다이어그램이다.
도 21는 일부 실시예들에 따른 스토리지 서비스 제공자에 배송을 준비하는 배송가능한 스토리지 디바이스의 로직 블럭 다이어그램이다.
도 22는 일부 실시예들에 따른 스토리지 서비스 제공자에서 배송가능한 스토리지 디바이스를 수신하고 배송가능한 스토리지 디바이스로부터 보안 데이터를 입수하기 위한 프로세스의 흐름도이다.
도 23은 일부 실시예들에 따른 스토리지 서비스 제공자에서 배송가능한 스토리지 디바이스로부터 데이터를 복호화하고 유입하기 위한 프로세스의 흐름도이다.
도 24는 일부 실시예들에 따른 스토리지 서비스 제공자에서 배송가능한 스토리지 디바이스를 와이핑(wipe)하기 위한 프로세스의 흐름도이다.
도 25는 일부 실시예들에 따른 본 출원에서 설명된 기술들의 일부 또는 전부를 구현하는 예제 컴퓨터 시스템을 예시하는 블럭 다이어그램이다.
실시예들이 여러 개의 실시예들 및 예시적인 도면들에 대한 예제의 방식으로 본 출원에 설명되지만, 당해 기술분야의 숙련자들은 실시예들이 설명된 실시예들 또는 도면들에 제한되지 않는다는 것을 인식할 것이다. 도면들 및 그것에 대한 상세한 설명은 개시된 특정한 형태로 실시예들을 제한하도록 의도되지 않지만, 그와는 반대로, 의도는 첨부된 청구항들에 의해 정의된 바와 같이 사상 및 범위 내에 속하는 모든 수정들, 등가물들 및 대안들을 커버하는 것임이 이해되어야 한다. 본 출원에 사용된 제목들은 단지 구조적 목적을 위한 것이며 설명 또는 청구항들의 범위를 제한하기 위해 사용되도록 의도되지 않는다. 본 출원 전체에 걸쳐 사용된, 단어 “일 수 있다(may)”는 의무적 의미(즉, 해야 한다는 의미하는)보다는 허용적 의미(즉, 하기 위한 가능성을 가짐을 의미하는)로 사용된다. 유사하게, 단어들 “포함하다(include)”, “포함하는(including)”, 및 “포함하다(includes)”은 포함하는 것을 의미하지만, 이에 제한되지 않는다.
본 출원에서 설명된 시스템들 및 방법들은 배송가능한 스토리지 디바이스를 이용하여 한 위치에서 다른 위치로의 보안 데이터 전송을 구현한다. 네트워크들상에 제한된 송신 속도 때문에, 네트워크 송신을 이용하는 것 대신에 배송가능한 스토리지 디바이스를 이용함으로써 훨씬 더 짧은 시간 양으로 한 위치에서 다른 위치로 큰 데이터의 양이 전송될 수 있다. 배송가능한 스토리지 디바이스 상에 저장되는 데이터를 안전하게 하기 위한 기술들은 만약 한 위치로부터 다른 위치로 배송 동안에 배송가능한 스토리지 디바이스가 잘못 놓여지거나 또는 인터셉트되면 데이터가 제 3 자에게 노출되지 않는 것을 보장하도록 구현될 수 있다.
도 1은 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)를 이용하여 데이터를 안전하게 전송하기 위한 시스템 및 프로세스를 예시한다. 예시된 실시예는 스토리지 서비스 제공자 (102)의 위치로부터 고객 네트워크 (104)의 위치로 그리고 스토리지 서비스 제공자 (102)로 다시 배송가능한 스토리지 디바이스 (100)의 이동 뿐만 아니라 다양한 엔티티(entity)들에 의한 길을 따라서 수행되는 다양한 프로세스들 A-G을 도시한다. 도 1에 도시된 배송가능한 스토리지 디바이스 (100)는 실시예들에서 도면들 2, 3, 5, 9, 11, 및 22에 도시된 배송가능한 스토리지 디바이스 (100)과 동일할 수 있다.
일부 실시예들에서, 고객은 네트워크들을 갖는 다른 위치를 가질 수 있고 배송가능한 스토리지 디바이스 (100)는 도시된 배송(shipment) C 대신, 그것에 추가하여, 그 전에 또는 그 후에 다른 위치들로 배송될 수 있다. 일부 실시예들에서, 다수의 상이한 배송가능한 스토리지 디바이스들이 도시된 배송과 동시에 다양한 위치들로 배송될 수 있다. 배송가능한 스토리지 디바이스들 (100)은 고객들 외에 네트워크들을 가진 엔티티들, 예를 들어 한정되는 것은 아니지만, 다양한 다른 기업들, 정부 엔티티들, 다른 서비스 제공자들 또는 유사한 것로 배송될 수 있다. 고객 네트워크 (104)의 위치에 컴퓨터들, 예컨대 서버 또는 데스크탑 컴퓨터들은 실시예들에서 도면들 4, 10, 12, 14-19, 21, 및 18에 예시된 프로세스들의 일부 또는 전부를 수행할 수 있다. 스토리지 서비스 제공자 (102)의 위치에 컴퓨터들, 예컨대 서버 또는 데스크탑 컴퓨터들은 실시예들에서 도면들 4, 6-8, 및 23-25에 예시된 프로세스들의 일부 또는 전부를 수행할 수 있다.
도시된 실시예에서, (A) 고객은 데이터 유입 작업이 수행되는 것을 생성, 발생 또는 요청한다. 데이터 유입 작업 생성 또는 요청은 고객이 하나 이상의 네트워크들 (예를 들어, 네트워크 (106))상에 컴퓨팅 디바이스를 통하여 액세스하는 스토리지 서비스 제공자 (102)에 의해 제공된 콘솔 인터페이스(console interface) 예컨대 네트워크기반의 페이지 또는 사이트를 통하여 수행될 수 있다. (B)에서 스토리지 서비스 제공자 (102)는 특정 배송가능한 스토리지 디바이스 (100)를 프로비저닝하고, 고객과 관련된 어드레스 (예를 들어, 작업 생성 (A) 동안에 획득된)를 디스플레이하도록 배송가능한 스토리지 디바이스 (100)에 지시하고 데이터 유입 작업 정보 (예를 들어, 작업 정보는 일부 실시예들에서 요청 시간에 작업의 생성 동안에 결정될 수 있다)에 따라 요청 고객 네트워크 (104)로 배송가능한 스토리지 디바이스 (100)를 배송한다.
(C)에서, 배송가능한 스토리지 디바이스 (100)의 디스플레이 (108)는 고객 네트워크 (104)의 어드레스를 디스플레이 하기 위해 업데이트되고 배송가능한 스토리지 디바이스 (100)가 고객 네트워크 (104)의 위치로 배송된다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 디스플레이 (108)를 갖지 않거나 또는 디스플레이 (108)를 사용하지 않는다. 이러한 경우들에서, 어드레스는 배송가능한 스토리지 디바이스상에 기록되거나, 스탬트(stamp)되거나 또는 다른 식으로 부착될 수 있다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 인클로저의 바깥쪽 부분상에 가시적인 어드레스를 갖는 인클로저(enclosure) 내에 배송된다.
(D)에서, 고객 네트워크 (104)는 고객 데이터를 암호화하고 암호화된 데이터를 배송가능한 스토리지 디바이스 (100) 상에 저장하도록 구성된 네트워크 (106)를 통하여 데이터 전송 툴을 다운로드한다. 고객 네트워크 (104)는 네트워크 (106)를 통하여 데이터 유입 작업에 대한 매니페스트를 또한 다운로드하고, 이는 데이터 유입 작업과 관련된 암호화 키들 및 다른 메타데이터(metadata)를 포함할 수 있다. 일부 실시예들에서, 데이터 전송 툴이 매니페스트를 다운로드한다. (E)에서 데이터 전송 툴은 고객 데이터를 암호화하고 암호화된 고객 데이터를 배송가능한 스토리지 디바이스 (100)상에 저장한다. (F)에서, 배송가능한 스토리지 디바이스 (100)의 디스플레이 (108)는 스토리지 서비스 제공자 (102)의 어드레스로 업데이트되고 디바이스는 스토리지 서비스 제공자 (102)로 다시 배송된다. 예를 들어, 스토리지 서비스 제공자 (102)는 매니페스트를 통하여 업데이트된 어드레스를 발송할 수 있거나, 또는 디바이스는 그것이 고객 위치에 있고 프로비저닝 단계 (B) 동안에 다음 목적지로 프로그래밍된 메모리 저장소(memory store)로부터 디스플레이된 목적지 어드레스를 자동으로 업데이트하는 것을 인식할 수 있다.
일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 스토리지 서비스 제공자 (102)로 다시 발송되기 전에 배송가능한 스토리지 디바이스 (100)상에 저장된 추가 데이터를 갖도록 하나 이상의 다른 고객 사이트로 발송될 수 있다. (G)에서, 배송가능한 스토리지 디바이스 (100)는 스토리지 서비스 제공자 (102)에서 다시 수신되고 스토리지 서비스 제공자 (102)의 네트워크에 다시 연결된다. 스토리지 서비스 제공자 (102)는 그런 다음 배송가능한 스토리지 디바이스 (100)가 템퍼링(tamper)되지 않았다는 것을 확인할 수 있다. 예를 들어, 스토리지 서비스 제공자 (102)는 고객 데이터가 배송가능한 스토리지 디바이스 (100)상에 저장된 이후에 배송가능한 스토리지 디바이스 (100)의 구성이 변화되지 않았다는 것을 확인할 수 있다. 고객 데이터는 그런 다음 배송가능한 스토리지 디바이스 (100)로부터 스토리지 서비스 제공자 (102) 시스템으로 입수된다(ingest). 배송가능한 스토리지 디바이스 (100)는 그런 다음 와이핑되어 그것이 다른 작업을 위해 프로비저닝되도록 준비될 때까지 저장된다.
일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)가 스토리지 서비스 제공자 (102)로 다시 발송되기 전에 배송가능한 스토리지 디바이스 (100)는 추가 데이터를 저장하기 위해 고객과 별개인 다른 고객들 또는 다른 고객 위치들로 발송될 수 있다. 일부 경우들에서, 배송가능한 스토리지 디바이스 (100)는 실시예들에서 스토리지 서비스 제공자 (102)로부터 동일한 고객의 하나 이상의 상이한 사이트들로 데이터를 분배하기 위해 사용될 수 있다. 배송가능한 스토리지 디바이스 (100)는 다양한 시간들에 다양한 어드레스들을 디스플레이 하도록 지시될 수 있어서, 배송가능한 스토리지 디바이스 (100)는 예를 들어 유출(export) 또는 유입(import) 실시예들에서 데이터를 멀티-캐스트(multi-cast)하기 위해 사용된다. 다양한 어드레스들이 한번에, 예를 들어 예컨대 배송가능한 스토리지 디바이스 (100)가 프로비저닝될 때, 배송가능한 스토리지 디바이스 (100)상에 저장될 수 있거나, 또는 다양한 어드레스들이 네트워크, 예컨대 셀룰러 네트워크 상에 또는 고객 또는 제공자 네트워크 또는 그것의 조합을 통하여 배송가능한 스토리지 디바이스 (100)로 발송될 수 있다는 것을 고려한다. 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 배송가능한 스토리지 디바이스 (100)의 지리적 위치 또는 위치를 센싱하여 배송가능한 스토리지 디바이스 (100)에 기반된 디스플레이된 어드레스를 업데이트하도록 구성된 로직을 포함할 수 있다. 예를 들어, 배송가능한 스토리지 디바이스가 한 위치에 도달하였는 지를 결정하는 (예를 들어, GPS 센서 또는 셀룰러 삼각측량에 기초하여) 배송가능한 스토리지 디바이스 (100)는 디바이스의 메모리에 저장된 다음 어드레스를 디스플레이 하도록 구성될 수 있다.
이전 설명들은 한정하도록 의도되지 않고, 단지 배송가능한 스토리지 디바이스를 이용하여 안전하게 데이터를 전송하는 예제를 제공한다는 것에 유의한다. 예를 들어, 하나 이상의 단계들이 제거될 수 있거나 및/또는 배송가능한 스토리지 디바이스를 이용하여 안전하게 데이터를 전송하기 위해 하나 이상의 단계들이 추가될 수 있다. 게다가, 다양한 실시예들에서, 단계들은 상이한 시퀀스들로 수행될 수 있다.
이 명세서는 다음에 한 위치로부터 다른 위치로, 예컨대 고객으로부터 스토리지 서비스 제공자로 (또는 반대로) 데이터를 안전하게 전송하기 위해 사용될 수 있는 배송가능한 스토리지 디바이스의 설명을 포함한다. 그런다음, 배송가능한 스토리지 디바이스를 이용하여 안전하게 데이터를 전송하는 프로세스의 개요가 제공된다. 다음으로, 보안 데이터 전송 기법을 예시하는 다이어그램이 제공되고 보안 데이터 전송 기법을 구현하는 부품으로 사용될 수 있는 상이한 컴포넌트들을 포함한다. 그런 다음 보안 데이터 전송을 수행하기 위한 많은 상이한 기술들이 논의되고, 이들 중 일부가 첨부 다이어그램들 및 플로우 차트들에 예시된다. 마지막으로, 다양한 컴포넌트들, 모듈들, 시스템들, 디바이스들, 및/또는 노드들이 구현될 수 있는 예제 컴퓨팅 시스템의 설명이 제공된다. 다양한 예들이 명세서 전체에 걸쳐 제공된다.
도 2는 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)를 예시한다. 도시된 배송가능한 스토리지 디바이스 (100)은 예를 들어, 다른 형태들의 전송 (예를 들어, 브로드밴드 데이터 송신)이 이용할 수 없거나 또는 비용 또는 시간이 엄두도 못낼 정도일 때 고객 스토리지 네트워크들 또는 서버들에서 다른 스토리지 네트워크들 또는 서버들로 큰 양의 고객 데이터를 이용시키는데 사용될 수 있다. 배송가능한 스토리지 디바이스 (100)의 실시예들은 실시예들에서 도시된 것들 보다 더 많거나, 더 적거나 또는 상이한 특징부들 또는 컴포넌트들을 포함할 수 있다.
도시된 실시예에서, 배송가능한 스토리지 디바이스 (100)는 영구 스토리지(persistent storage)(290)를 둘러싸는 인클로저 (215)를 포함한다. 영구 스토리지는 임의의 유형의 스토리지 예컨대, 한정되는 것은 아니지만 하드 디스크 드라이브들, 광 매체, 자기 테이프들, 멤리스터 스토리지(memrister storage), 영구 RAM 또는 고체 상태 스토리지 디바이스들을 포함할 수 있다. 인클로저는 내구성이 높혀질(ruggedized) 수 있고 (예를 들어, 다양한 표준들, 예컨대 군대 표준들 또는 전자 기기들 산업 표준들에 따라) 바깥쪽을-마주하는 전자 디스플레이 (214)로 구성될 수 있어서 인클로저에 의해 봉입(enclose)된 때, 영구 스토리지, 인클로저, 및 전자 디스플레이는 임의의 추가 패키징, 라벨링 또는 유사한 것 없이 배송에 적절한 자체로서 완비된 배송 컨테이너를 형성하고 전자 디스플레이 (214)는 목적지 위치 (예를 들어, 배송 라벨 대신에)를 디스플레이 하도록 동작한다. 실시예들에서, 인클로저 (215) 및 디스플레이 (214)는 카드보드 박스들 및 배송 라벨들 대신에 재사용 가능한 배송 컴포넌트들로서 동작 한다. 인클로저는 배송가능한 스토리지 디바이스 (100)의 이동을 용이하게 하기 위한 다양한 메커니즘들, 예컨대 롤러들, 핸들들 또는 유사한 것을 포함할 수 있다.
제대로 기능하기 위해 파워를 필요로 하는 배송가능한 스토리지 디바이스 (100)의 컴포넌트들의 일부 또는 전부를 파워를 공급하기 위해 배터리 (260) 및 파워 연결부 (250)를 갖는 배송가능한 스토리지 디바이스 (100)가 예시된다. 파워 연결부 (250)는 실시예들에서 배송가능한 스토리지 디바이스 (100)를 외부 전원에 연결하도록 구성될 수 있다. 파워 커넥터는 일부 실시예들에서 영구 스토리지에 파워를 공급할 수 있다. 파워의 다른 소스들은 예컨대 배송가능한 스토리지 디바이스 (100)에 파워를 공급하기 위해 배송 동안에 모션(motion)에 의존하는 운동 에너지원들, 솔라 에너지원들, 또는 유사한 것을 고려한다. 임의의 다양한 전원들이 배송가능한 스토리지 디바이스 (100)의 전자 기기들 (예를 들어, 디스플레이 또는 스토리지)에 파워를 공급할 수 있다.
디스플레이 (214)를 갖는 배송가능한 스토리지 디바이스 (100)가 도시된다. 디스플레이 (214)는 임의의 다양한 디스플레이 기술들, 비 제한적인 예들로서 예컨대 저-파워 전자-잉크(E-잉크), 유기 발광 다이오드들 (OLED), 활성-매트릭스 유기 발광 다이오드 (AMOLED), 가요성 디스플레이들 또는 터치-감응(touch-sensitive) 디스플레이들을 통합할 수 있다. 저-파워 e-잉크 디스플레이들은 작은 배터리들 (예를 들어, 배송하는데 비용이 더 적게드는 배터리들은, 덜 값이 비싸거나 또는 더 적은 배송 공간을 차지한다)이 선호되는 배송 환경에 대하여 축소된 파워 소모의 장점을 제공할 수 있다. 배송가능한 스토리지 디바이스 (100)는 일부 실시예들에서 다수의 디스플레이들 (214)로 구성될 수 있다. 예를 들어, 일부 캐리어들 또는 고객의 주문 처리(고객의 주문 처리) 센터들은 배송 컨테이너의 세개의 측면들에 라벨링하여 컨테이너의 목적지는 컨테이너의 방위(orientation)에 관계없이 스캔 또는 판독될 수 있다. 유사하게, 다수의 디스플레이들이 디바이스의 인클로저 (215)의 다수의 측면들에 통합될 수 있다. 예를 들어, 인클로저는 일부 실시예들에서 1-6 또는 그 이상의 디스플레이들로 구성될 수 있다. 다양한 디스플레이들은 디스플레이들이 컴퓨터 판독가능하도록 (예를 들어, 스캐너를 통하여) 구성될 수 있다.
네트워크 인터페이스 (240)를 갖는 배송가능한 스토리지 디바이스 (100)가 도시된다. 네트워크 인터페이스 (240)는 배송가능한 스토리지 디바이스 (100)와 다양한 네트워크들, 예컨대 LANS, WANS 또는 유사한 것 사이에 인터페이스로서 (예를 들어, 다양한 프로토콜들, 예컨대 iSCSI 또는 이더넷을 통하여) 역할을 한다. 일부 실시예들에서, 네트워크 연결부 (240)는 다른 디바이스 (예를 들어, SCSI를 통하여)에 직접 인터페이스로서 역할을 할 수 있다. 일부 경우들에서, 네트워크 인터페이스 (240)는 두개 이상의 상이한 유형들의 인터페이스들 (예를 들어, RJ45, SFP, 광)을 포함할 수 있다.
스위치 (230)를 갖는 배송가능한 스토리지 디바이스 (100)가 예시된다. 스위치 (230)는 일부 실시예들에서 온-오프 파워 스위치 또는 디스플레이를 활성화하기 위한 스위치로서 역할을 할 수 있다. 안테나 (220)를 갖는 디바이스 (100)가 또한 예시된다. 안테나는 서비스 제공자 또는 고객과 디바이스 간에 무선 통신을 가능하게 하도록 구성될 수 있다. 예를 들어, 무선 통신은 다양한 셀룰러 네트워크들, Wi-Fi, 또는 유사한 것 (예를 들어, 네트워크 (106))상에 있을 수 있다. 예를 들어, 서비스 제공자는 스토리지 디바이스 (100)가 일부 위치로의 도중에 있는 동안에 셀룰러 네트워크들을 통하여 배송가능한 스토리지 디바이스 (100)로 업데이트된 어드레스 정보를 발송할 수 있다. 업데이트된 어드레스 정보는 디스플레이 (214)를 통하여 디스플레이될 수 있어서 배송가능한 스토리지 디바이스 (100)는 예를 들어 그때그때 봐 가며 재라우팅(reroute)된다. 다른 실시예들에서, 무선 통신 채널은 디바이스가 고객 사이트에 위치된 동안 디스플레이를 위해 업데이트된 배송 정보를 발송하는데 사용될 수 있다. 실시예들에서, 셀룰러 네트워크들은 디바이스를 추적(track)하는데 사용될 수 있다.
RFID(radio frequency identification)(280)를 갖는 배송가능한 스토리지 디바이스 (100)가 예시된다. RFID는 일부 경우들에서 디바이스를 추적하는 것에 도움을 줄 수 있다. 예를 들어, 디바이스들은 개별 RFID를 통하여 프로비저닝 프로세스 동안에 식별될 수 있거나 또는 디바이스들은 개별 RFID에 의해 고객에 수신시에 또는 서비스 제공자로 리턴시에 식별될 수 있다. RFID는 디바이스가 설비를 통하여, 예컨대 서비스 제공자들 고객 주문 처리 설비 (예를 들어, 컨베이어 시스템상에 라우팅되는 동안)를 통하여 라우팅 되는 때 배송가능한 스토리지 디바이스 (100)를 추적하는데 사용될 수 있다.
다양한 센서들 (222,224)를 갖는 배송가능한 스토리지 디바이스 (100)가 예시된다. 디바이스는 전부 비 제한적인 예들인 GPS(global positioning sensor), 온도 센서, 습도 센서 또는 가속도계를 포함하는 임의의 다양한 센서들이 갖추어 질 수 있다. 데이터는 센서들로부터 수집될 수 있고 used in 다양한 방식들에서, 예컨대 디바이스의 환경을 (예를 들어, 뜨거운, 차가운, 중간, 습기 있는(moist)) 기록하기 위해 또는 배송가능한 스토리지 디바이스 (100)와 관련된 다양한 이벤트들, 예컨대 배송가능한 스토리지 디바이스 (100)의 하강, 빠른 움직임, 방위 또는 위치를 기록하기 위해 사용될 수 있다. 센서 데이터는 로컬에 저장될 수 있고, 네트워크(130)를 통하여 발송될 수 있거나 또는 디스플레이 (214)를 통하여 디스플레이될 수 있다.
배송가능한 스토리지 디바이스 (100)는 다수의 보안 층들로 구성될 수 있다. 예를 들어, 디바이스상에 저장된 데이터는 한번 또는 그 이상의, 하나 이상의 키들로 암호화될 수 있다. 키들은 여러 당사자(party)에 의해 결정, 저장, 제어되거나 또는 보유될 수 있고 예시된 프로세스들의 다양한 단계들에서 적용될 수 있다. 예를 들어, 디바이스상에 저장된 데이터를 암호화하기 위해 사용되는 일부 키들은 디바이스와 별개로 저장될 수 있지만, 디바이스상의 데이터를 암호화하기 위해 사용되는 다른 키들은 디바이스와 함께 저장될 수 있다. 암호화 키들은 실시예들에서 다수의 층들에 적용될 수 있다.
배송가능한 스토리지 디바이스 (100)는 하나 이상의 다른 유형들의 네트워크기반의 디바이스 또는 다른 전자 디바이스들, 예를 들어 예컨대 일시적인 로컬 하드웨어로 구성될 수 있다. 일 예, 비-망라된 리스트에서, 디바이스 (100)는 암호 하드웨어 및 소프트웨어의 다양한 조합들로서 (예를 들어, 유형 1 암호 디바이스로서), 스토리지 게이트웨이로서, 웹 서비스, 방화벽, 고-보증 가드(guard), 서버, 가상 기계 이미지, 하나 이상의 동글(dongle)들, 데이터 웨어하우징 솔루션 또는 데이터베이스 서비스 박스, 또는 유사한 것으로 구성될 수 있다.
도 3은 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)의 로직 블럭 다이어그램이다. 도 3 은 배송가능한 스토리지 디바이스 (100)의 다양한 컴포넌트들 및 모듈들을 예시한다. 디바이스는 더 적은 또는 추가의 컴포넌트들 또는 모듈들로 구성될 수 있다. 일부 컴포넌트 또는 모듈은 다른 컴포넌트 또는 모듈들로 대체될 수 있다. 예를 들어, 프로세서 (310) 및 메모리 (312)는 펌웨어, 실시예들에서 펌웨어로 대체될 수 있다. 다양한 컴포넌트들 또는 모듈들은 실시예들에서 도면들에 예시된 프로세스들의 일부 또는 전부를 수행할 수 있다.
도 3에서, 디스플레이 (214), 네트워크 인터페이스 (306) 및 영구 스토리지(350)를 갖는 디바이스 (100)가 예시된다. 예시된 실시예에서, 디스플레이 드라이버 (302)는 프로세서 (310)와 디스플레이 (214) 간에 인터페이스 기능을 제공한다. 예를 들어, 어드레스를 디스플레이 하도록 디스플레이에 지시하기 위해, 프로세서 (310)는 디스플레이 드라이버가 디스플레이 (214)상에 어드레스를 디스플레이 하게 하고 디스플레이 드라이버에 의해 해석되는 메시지들을 디스플레이 드라이버 (302)로 발송하는 컴퓨터 지시들을 메모리 (312)로부터 실행시킨다.
네트워크 인터페이스 (306)는 외부 네트워크 (예를 들어, 고객 네트워크 또는 서비스 제공자 네트워크 또는 네트워크 (106))와 디바이스 사이에서 인터페이스로서 동작한다. 실시예들에서, 네트워크 인터페이스는 디바이스로 지시들을 송신하거나 또는 암호화된 데이터를 영구 스토리지(350)로 송신하도록 구성된다. 무선 인터페이스 (308)는 서비스 제공자로부터 지시들을 수신하도록 (예를 들어, 셀룰러 또는 Wi-Fi 네트워크를 통하여) 구성될 수 있다. 예를 들어, 서비스 제공자 (120)는 셀룰러 네트워크를 통하여 업데이트된 어드레스 정보를 배송가능한 스토리지 디바이스 (100)로 발송할 수 있어서 디바이스의 디스플레이되는 어드레스는 도중에 업데이트될 수 있어서 디바이스에 대한 목적지를 플라이트 중에(in-flight) 바꾸어 디바이스는 이전 어드레스 대신 업데이트된 어드레스로 배송된다.
입력/출력 (I/O) 인터페이스 (304)는 프로세서 (310), 메모리 (312), 디스플레이 드라이버, 네트워크 인터페이스 (306), 무선 인터페이스 (308), 센서 인터페이스(들) (320) 및 영구 스토리지(350) 또는 주변기기 인터페이스 간에 I/O 트래픽을 조정하도록 구성될 수 있다. 몇몇 실시예들에서, I/O 인터페이스(304)는 하나의 컴포넌트(예로서, 시스템 메모리(312))에서 다른 컴포넌트(예로서, 프로세서(310))에 의한 사용에 적합한 포맷으로 데이터 신호들을 변환하기 위해 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환들을 수행할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(304)는 예를 들면, PCI(Peripheral Component Interconnect) 버스 표준 또는 USB(Universal Serial Bus) 표준의 변형과 같은, 다양한 유형들의 주변 버스들을 통해 접속된 디바이스들에 대한 지원을 포함할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(340)의 기능은 예를 들면, 노스 브리지 및 사우스 브리지와 같은, 둘 이상의 별개의 컴포넌트들로 분리될 수 있다. 또한, 몇몇 실시예들에서 시스템 메모리(312)에 대한 인터페이스와 같은, I/O 인터페이스(304)의 기능 중 일부 또는 모두는 프로세서(310)로 직접 통합될 수 있다.
영구 데이터 스토리지(350)를 갖는 배송가능한 스토리지 디바이스 (100)가 도시된다. 영구 데이터 스토리지 (350)는 비-휘발성 스토리지 예컨대 하드 드라이브들 또는 플래시 메모리의 임의의 조합을 포함할 수 있다. 영구 스토리지(350)는 고객 위치로부터 데이터가 서비스 제공자 스토리지 시스템으로 전송되는 서비스 제공자 위치로의 배송 동안에 큰 양의 암호화된 데이터 (예를 들어, 큰 데이터 저장소 예컨대 고객 스토리지 시스템으로부터)를 저장하도록 구성될 수 있다(예를 들어, 프로비저닝 프로세스 동안에).
배송가능한 스토리지 디바이스 (100) 의 다양한 전자 컴포넌트들에 파워를 제공할 수 있는 전원(330)과 센서(들) (340) 및 센서 인터페이스(들) (320)을 갖는 배송가능한 스토리지 디바이스 (100)가 도시된다. 상기에서 설명된 것 처럼, 임의의 다양한 센서(들)은 디바이스 (100)에 통합될 수 있다. 디바이스 (100)는 센서(들) (340)과 I/O 인터페이스 (304) 간에 인터페이스로서 역할을 하는 다양한 센서 인터페이스(들) (320)을 또한 포함할 수 있다. 센서 인터페이스들은 실시예들에서 전용 인터페이스들일 수 있고, 특정 센서에 대해 맞춤화될 수 있다. 센서 인터페이스들은 다양한 기능들 예컨대 데이터의 변환들, 센서 출력의 분석 및 분석 또는 유사한 것에 기초한 정보의 출력을 수행할 수 있다.
TPM(trusted platform module)(360)을 갖는 배송가능한 스토리지 디바이스 (100)가 또한 도시된다. TPM (360)은 배송가능한 스토리지 디바이스 (100)에 추가 보안 특징들을 제공할 수 있다. 예를 들어, 스토리지 서비스 제공자 (102)가 고객으로부터 TPM (360)을 수신한 후에, 스토리지 서비스 제공자 (102)는 변화가 배송가능한 스토리지 디바이스 (100)의 구성에 이루어졌는지 여부를 결정하기 위해 TPM (360)과 통신할 수 있다. 배송가능한 스토리지 디바이스 (100) 구성에 대한 변화들은 배송가능한 스토리지 디바이스 (100)가 템퍼링되었는지, 제 3 자가 배송가능한 스토리지 디바이스 (100) 상에 데이터를 액세스하였는지를 표시할 수 있다.
데이터 전송 디바이스 라이프사이클(lifecycle)
도 4는 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)를 이용하여 데이터를 안전하게 전송하기 위한 프로세스의 흐름도이다. 예시된 프로세스는 배송가능한 스토리지 디바이스 (100), 스토리지 서비스 제공자 (102) 및 고객의 상황하에서 수행될 수 있다. 프로세스는 배송가능한 스토리지 디바이스 (100)에 대한 데이터 전송 라이프사이클로서 도시된다.
(402)에서, 고객은 스토리지 서비스 제공자 (102)로 데이터를 유입하기 위한 데이터 유입 작업을 생성한다. 고객은 네트워크 (106)를 통하여 스토리지 서비스 제공자 (102)에 통신을 제공하는 컴퓨팅 디바이스의 콘솔 인터페이스를 통하여 작업을 생성할 수 있다. 스토리지 서비스 제공자 (102)는 그런 다음 배송가능한 스토리지 디바이스 (100)를 프로비저닝할 수 있고 배송가능한 스토리지 디바이스 (100)의 전자 디스플레이 (108)를 셋팅 할 수 있다. 예를 들어, 스토리지 서비스 제공자 (102)는 고객 목적지 어드레스를 디스플레이 하기 위해 전자 디스플레이 (108) (예를 들어, 디스플레이 (108) 유저 인터페이스를 통하여 또는 네트워크 인터페이스를 통한 외부 연결을 통하여)를 셋팅할 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (100)는 배송가능한 스토리지 디바이스 (100)의 메모리에 리턴 어드레스 또는 다른 고객 설비의 어드레스를 또한 저장할 수 있어서 디스플레이 (108)는 데이터 전송 디바이스 라이프사이클내 나중에 동일한 지점에서 저장된 어드레스로 업데이트될 수 있다.
스토리지 서비스 제공자 (102)는 그런 다음 배송가능한 스토리지 디바이스 (100)를 고객에게 배송한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 디바이스의 전자 디스플레이 (108)에 의해 표시된 목적지로 자체로서 완비된 배송 컨테이너로서 배송될 수 있다. 예를 들어, 스토리지 서비스 제공자는 임의의 추가 패키징 또는 라벨링 없이 운송 업자(common carrier)에 인클로저, 디스플레이 (108), 영구 스토리지 및 네트워크 인터페이스를 갖는 배송가능한 스토리지 디바이스 (100)를 제공할 수 있다. 운송 업자는 실시예들에서 인클로저 및 전자 디스플레이에 추가하여 임의의 패키징 또는 라벨링 없이 목적지로 캐리어 네트워크를 통하여 디바이스를 배송할 수 있다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 디스플레이(108)이 없어서 목적지 어드레스를 디스플레이 하기 위해 라벨 및/또는 패키징이 요구된다.
(404)에서, 고객은 고객 데이터를 암호화 및 배송가능한 스토리지 디바이스 (100)로 전송하도록 구성된 데이터 전송 툴을 획득 및 인스톨한다. 예를 들어, 고객은 데이터 전송 툴을 다운로드 할 수 있다. 일부 실시예들에서, 데이터 전송 툴은 하드웨어 스토리지 디바이스, 예컨대 CD 또는 다른 영구 스토리지매체상에 저장되고, 고객에 의해 수신된다. 일부 경우들에서, 고객은 인스톨된 데이터 전송 툴을 이미 가질 수 있다. 예를 들어, 고객은 과거에 하나 이상의 유입 작업들을 위해 데이터 전송 툴을 사용하였을 수 있다.
(406)에서, 고객은 배송가능한 스토리지 디바이스 (100)를 수신한다. 디바이스는 고객 사이트에서 네트워크상에 인스톨된다. 인스톨은 이하에서 보다 상세하게 설명되는 몇개의 단계들을 포함할 수 있다. 고객은 또한 작업 매니페스트(job manifest)를 다운로드한다. 일부 실시예들에서, 작업 매니페스트는 데이터 전송 툴과 별개로 획득된다. 그것들은 상이한 통신 세션들에서 및/또는 상이한 통신 경로들을 통하여 다운로드될 수 있다. 예를 들어, 작업 매니페스트는 USB 키와 같은 별개의 디바이스상에 또는 이메일을 통하여 발송될 수 있다. 작업 매니페스트는 작업과 관련된 암호화 키들 및 메타데이터를 포함한다. 암호화 키들은 고객 데이터가 배송가능한 스토리지 디바이스 (100)상에 저장되기 전에 고객 데이터를 암호화하는데 사용될 수 있다. 메타데이터 데이터 유입 작업, 배송가능한 스토리지 디바이스 (100), 및 암호화 키들에 대한 식별 정보를 포함할 수 있다. 작업 매니페스트 그 자체가 또한 암호화될 수 있다. 작업 매니페스트를 복호화하기 위한 암호화 키가 작업 매니페스트 그 자체가 행해졌던 동일한 또는 대안 통신 경로에 전달될 수 있다.
(408)에서 데이터 전송 툴은 고객 데이터를 암호화하고 암호화된 고객 데이터를 배송가능한 스토리지 디바이스 (100)로 전송한다. 데이터 전송 툴은 고객 데이터를 암호화하기 위한 암호화 키들을 생성할 수 있다. 데이터 전송은 고객 데이터를 암호화하기 위해 작업 매니페스트로부터 획득된 암호화 키들을 또한 사용할 수 있다.
전자적으로 디스플레이된 목적지는 그러 다음 업데이트될 수 있고, 배송가능한 스토리지 디바이스 (100)는 디바이스의 전자 디스플레이에 의해 표시된 업데이트된 목적지로 자체로서 완비된(self-contained) 배송 컨테이너로서 배송된다. 디스플레이는 도중에 또는 고객 위치에서 네트워크 (네트워크 (106)) 를 통하여 수신되거나 또는 프로비저닝에서 배송가능한 스토리지 디바이스 (100)의 메모리에 저장되었던 코드 또는 목적지 어드레스로 업데이트될 수 있다. 업데이트된 어드레스는 디바이스를 스토리지 서비스 제공자 (102)로 리턴하기 위한 리턴 어드레스 또는 동일하거나 상이한 고객에 대한 다른 위치의 어드레스 일 수 있다 (예를 들어, 보안 프로비전(security provision)들이 구현될 수 있어서 다수의 고객들로부터 데이터가 디바이스상에 저장될 수 있고, 디바이스는 최종적으로 스토리지 서비스 제공자 (102)로 다시 배송되기 전에 다른 위치들로 배송된다). 배송가능한 스토리지 디바이스 (100)는 스토리지 서비스 제공자 (102)로 배송된다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)가 스토리지 서비스 제공자 (102) 어드레스로 업데이트되기 전까지 배송가능한 스토리지 디바이스 (100)는 하나 이상의 다른 고객 위치들로 배송될 수 있고 스토리지 서비스 제공자 (102)로 다시 배송하기 위해 캐리어에 제공될 수 있다.
(410)에서, 배송가능한 스토리지 디바이스 (100)로부터 암호화된 데이터가 스토리지 서비스 제공자 (102)에서 입수된다(ingest). 예를 들어, 배송가능한 스토리지 디바이스 (100)는 서비스 제공자 네트워크에 연결된 서비스 제공자 (102)에 의해 수신되고, 배송가능한 스토리지 디바이스 (100)로부터 데이터가 복호화되고, 복호화된 데이터는 스토리지 서비스 제공자 (102)의 하나 이상의 스토리지 위치들에 저장된다. (412)에서, 배송가능한 스토리지 디바이스 (100)는 데이터가 와이핑되고 (예를 들어, 고객 데이터 및 보안 정보가 삭제되거나 또는 오버라이트(overwrite)된다) 재사용을 위해 준비된다. 프로세스는 (402)에서 다시 시작할 수 있다.
보안 데이터 전송 기법(secure data transfer scheme)
도 5는 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)를 이용하는 보안 데이터 전송 기법을 예시하는 로직 블럭 다이어그램이다. 스토리지 서비스 제공자 (102)는 인터넷 및/또는 다른 네트워크들을 통하여 고객에게 액세스 가능한 하나 이상의 서비스들 (예컨대 다양한 유형들의 클라우드기반의 스토리지 및 컴퓨팅)을 제공하는 엔티티 예컨대 회사 또는 공공 섹터 조직에 의해 셋 업될 수 있다. 스토리지 서비스 제공자(102)는 스토리지 서비스 제공자(102)에 의해 공급되는 인프라스트럭처(infrastructure) 및 서비스들을 구현하고 분배하기 위해 요구되는 다양한 자원 풀들 예컨대 물리적 및/또는 가상화된 컴퓨터 서버들, 스토리지 디바이스들, 네트워킹 장비 및 유사한 것의 무리들을 호스팅하는 많은 데이터센터들을 포함할 수 있다. 실시예들에서, 스토리지 서비스 제공자 (102)는 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)내 고객을 위해 데이터 (500)의 적어도 일부를 저장 또는 전송하는 것과 같은 다양한 스토리지 서비스들을 제공할 수 있다. 일부 실시예들에서, 스토리지 디바이스 (502)에 전송되는 고객 데이터 (500)는 스토리지 디바이스 (502)내 하나 이상의 상이한 로직 또는 물리적 위치들 (예를 들어, 버킷(bucket)들)로 구조화될 수 있고, 여기서 각각의 버킷은 하나의 또는 다수의 데이터 오브젝트들 또는 파일들을 저장한다.
고객은 적어도 일부의 데이터 (500)를 스토리지 서비스 제공자 (120)로 유입하기 위한 데이터 유입 작업을 생성하기 위해 스토리지 서비스 제공자 (102)에 고객 디바이스 (504)의 콘솔 인터페이스 및/또는 프로그램 애플리케이션을 통하여 요청을 제출할 수 있다. 고객 디바이스 (504)는 고객이 스토리지 서비스 제공자 (102) (예를 들어, 네트워크 (106)를 통하여)에 작업 요청을 제출하는 것을 허용하는 유저 인터페이스 및/또는 애플리케이션을 제공하는 컴퓨팅 디바이스일 수 있다. 일부 실시예들에서, 고객은 데이터 유입 작업을 위한 정보, 예컨대 고객 데이터 (500)를 저장하기 위해 스토리지 서비스 제공자 (102)에서의 하나 이상의 위치들 (예를 들어, 스토리지 디바이스 (502)내 하나 이상의 버킷들)을 제공한다. 고객은 또한 스토리지 서비스 제공자 (102)에 할당하는 역할을 (예를 들어, 데이터 (500)를 유입하는 것과 연관된 판독/기록 및 다른 허가들) 표시할 수 있다. 일부 경우들에서, 고객은 유입 작업을 위한 데이터를 암호화하기 위해 사용할 하나 이상의 암호화 키들을 또한 선택할 수 있다. 예를 들어, 고객에 할당되거나 또는 고객에 속하는 스토리지 서비스 제공자 (102)에 저장된 하나 이상의 암호화 키들을 고객은 선택할 수 있다. 일 실시예에서, 암호화 키들은 스토리지 서비스 제공자 (102)의 데이터 스토리지에, 예컨대 키 데이터 (506) 또는 메타데이터 (508)에 저장된다. 일부 실시예들에서, 고객은 하나 이상의 새로운 암호화 키들이 데이터 유입 작업을 위해 스토리지 서비스 제공자 (102)에 의해 생성되는 것을 대신 또는 추가적으로 요청할 수 있다.
대표적 실시예에서, 고객 디바이스 (504)는 스토리지 서비스 제공자 (102)의 콘솔 백 엔드(console back end) (510)와 통신한다. 콘솔 백 엔드 (510)는 고객 디바이스 (504) 뿐만 아니라 스토리지 서비스 제공자 (102)의 다른 서비스들, 예컨대 메타데이터 서비스 (512)와 통신하는 것이 가능한 서비스 일 수 있다. 일부 경우들에서, 콘솔 백 엔드 (510)는 상기에서 설명된 데이터 유입 작업 정보를 수신하고 프로세싱을 위해 적어도 일부의 작업 정보를 메타데이터 서비스 (512)로 발송한다.
메타데이터 서비스 (512)는 작업 오케스트레이터(job orchestrator) (514)에 적어도 일부의 작업 정보를 공급할 수 있고, 이는 차례로 새로운 유입 작업 위해 배송가능한 스토리지 디바이스 (100) 프로비저닝의 프로세스를 시작할 수 있다. 예를 들어, 작업 오케스트레이터 (514)는 배송가능한 스토리지 디바이스 (516a)에 정보를 기록할 수 있거나 또는 다른 서비스들이 보안 데이터 전송을 위해 배송가능한 스토리지 디바이스 (516a)를 준비하는 배송가능한 스토리지 디바이스 (516a)에 정보를 기록하게 할 수 있다. 일부 실시예들에서, 프로비전 및 입수 서비스(provision and ingestion service) (520) 또는 다른 서비스는 보안 데이터 전송을 위해 배송가능한 스토리지 디바이스 (516a)를 준비하도록 배송가능한 스토리지 디바이스 (516a)에 정보를 기록한다. 프로비전 및 입수 서비스 (520)는 작업 오케스트레이터 (514) 및/또는 메타데이터 서비스 (512)로부터 정보를 획득할 수 있다.
다양한 실시예들에서, 프로비전 및 입수 서비스 (520)는 상이한 서비스들을 각각 제공하는 두개 이상의 별개의 서비스들을 나타낸다. 예를 들어, 프로비전 및 입수 서비스 (520)는 배송 배송가능한 스토리지 디바이스 (100)를 고객에 배송하기 전에 프로비저닝 서비스들을 제공하는 제 1 서비스 및 고객으로부터 배송가능한 스토리지 디바이스 (100)를 수신한 후에 데이터 입수 서비스를 제공하는 제 2 서비스를 포함할 수 있다.
일부 실시예들에서, 배송가능한 스토리지 디바이스 (516a)에 기록된 정보는 보안 정보 예컨대 하나 이상의 암호화 키들 또는 인증서들, 어드레스 정보, 및/또는 다른 디바이스-관련된 정보를 포함할 수 있다. 배송가능한 스토리지 디바이스 (516a)가 정보로 프로비저닝된 후에, 디스플레이 (108)는 데이터 유입 작업을 요청했던 고객의 어드레스를 디스플레이 하기 위해 업데이트될 수 있다. 스토리지 서비스 제공자 (102)는 그런 다음 배송가능한 스토리지 디바이스 (516a)를 고객에게 배송할 수 있다.
일부 경우들에서, 고객은 데이터 전송 툴 (522)을 고객 네트워크 (104) 상에 인스톨한다. 데이터 전송 툴 (522)은 고객 데이터 (500)를 암호화하고 암호화된 고객 데이터를 배송가능한 스토리지 디바이스 (516b)에 전송하는 애플리케이션이다. 데이터 전송 툴은 출력을 제공하기 위해 그리고 유저로부터 입력을 수신하기 위해 고객 네트워크 (104)의 컴퓨팅 디바이스의 디스플레이상에 유저 인터페이스 (예를 들어, 그래픽 유저 인터페이스 및/또는 명령 라인 인터페이스)를 제공할 수 있다. 배송가능한 스토리지 디바이스 (516b)는 고객 네트워크 (104)에 도달한 후에 배송가능한 스토리지 디바이스 (516a)를 나타낼 수 있다.
다양한 실시예들에서, 데이터 전송 툴 (522)은 고객 데이터 (500)의 암호화의 적어도 일부를 수행하기 위한 암호화 서버 (524)를 포함한다. 고객은 네트워크 (106)를 통하여 스토리지 서비스 제공자 (102)로부터 데이터 전송 툴 (522)을 다운로드할 수 있다. 일부 실시예들에서, 고객은 고객 네트워크 (104)의 컴퓨팅 디바이스, 예컨대 데이터 전송 툴 (522)를 포함하는 컴퓨팅 디바이스를 통하여 데이터 전송 툴 (522)을 다운로드한다.
일부 실시예들에서, 데이터 전송 툴 (522)은 네트워크 (106)를 통하여 스토리지 서비스 제공자 (102)의 데이터 전송 툴 백 엔드(data transfer tool back end) (526)로부터 데이터 유입 작업과 관련된 매니페스트 및 매니페스트 암호화 키를 다운로드한다. 다른 실시예들에서 데이터 전송 툴 (522)은 데이터 유입 작업과 관련된 미리 다운로드된 매니페스트 및 매니페스트 암호화 키를 사용한다. 매니페스트는 고객 디바이스 (504)를 이용하여 고객이 요청하였던 특정 데이터 유입 작업과 관련된 정보를 포함할 수 있다. 더구나, 특정 유입 작업은 배송가능한 스토리지 디바이스 (516b)와 관련될 수 있다. 예를 들어, 배송가능한 스토리지 디바이스 (516b)는 고객이 고객 디바이스 (504)를 통하여 데이터 유입 작업 요청을 제출한 것에 응답하여 프로비저닝되고 배송될 수 있다. 일부 경우들에서, 매니페스트(manifest)는 데이터 유입 작업과 관련된 메타디이터 예컨대 작업 ID, 디바이스 ID, 보안 정보, 암호화 키들, 및 스토리지 디바이스 (502)에 데이터를 저장하기 위한 위치들(예를 들어, 버킷 ID들)을 포함할 수 있다. 일부 실시예들에서, 데이터 전송 툴 (522)은 고객 데이터 (500)를 배송가능한 스토리지 디바이스 (516b)에 전송 및 프로세스하기 위한 매니페스트로부터의 적어도 일부의 정보를 사용한다.
일부 실시예들에서, 데이터 전송 툴 백 엔드 (526)는 데이터 전송 툴 (522)로부터 정보를 또한 수신할 수 있다. 예를 들어, 데이터 전송 툴 백 엔드 (526) (또는 다른 서비스)는 고객 네트워크 (104)에 연결된 하나 이상의 배송가능한 스토리지 디바이스들 (100)을 위한 데이터 전송 계획을 구현하기 위해 데이터 전송 툴 (522)에 지시들을 제공할 수 있다. 예를 들어, 지시들은 고객 네트워크 또는 데이터 (500)의 하나 이상의 특성들에 의존하여 대응하는 배송가능한 스토리지 디바이스들 (100)로 고객 데이터(500)의 어떤 부분들이 복사되는지를 조정할 수 있다 (예를 들어, 각각의 배송가능한 스토리지 디바이스 (100)와 각각의 연결에 대한 전송 속도, 데이터 (500)의 포맷, 데이터 (500)의 스토리지 목적지의 특성들). 실시예들에서, 데이터 전송 툴 백 엔드 (526)는 데이터 (500)에 대한 중복 데이터 인코딩(redundant data encoding) (예를 들어, 삭제 인코딩, 데이터 스트라이핑(striping), 등)에 기초하여 샤드들의 생성을 관리할 수 있다. 따라서, 데이터 전송 툴 (522)과 관련된 임의의 프로세스들은 대신 데이터 전송 툴 백 엔드 (526)에 의해, 또는 데이터 전송 툴 (522)과 협력하여 원격에서 제어될 수 있다. 일부 실시예들에서, 데이터 전송 툴 백 엔드 (526)은 고객 네트워크 (104)에 부착된 배송가능한 스토리지 디바이스 (100)에 의해 수집된 데이터를 모니터링한다 (예를 들어, 하나 이상의 클라이언트 시스템들의 성능/헬스(health) 및 하나 이상의 배송가능한 스토리지 디바이스들에 데이터를 전송하는 효율을 모니터링하기 위해).
일부 실시예들에서, 데이터 전송 툴 (522)은 고객 네트워크 (104)에 연결된 하나 이상의 배송가능한 스토리지 디바이스들 (100)상에 데이터 배치를 위한 패턴들 및 계획들을 전개하는 알리리즘들을 또한 실행할 수 있다. 예를 들어, 계획들 및 패턴들은 고객 네트워크 또는 데이터 (500)의 하나 이상의 특성들에 의존하여 대응하는 배송가능한 스토리지 디바이스들 (100)로 고객 데이터(500)의 어떤 부분들이 복사되는지를 조정할 수 있다 (예를 들어, 각각의 배송가능한 스토리지 디바이스 (100)와 각각의 연결에 대한 전송 속도, 데이터 (500)의 포맷, 데이터 (500)의 스토리지 목적지의 특성들). 실시예들에서, 데이터 전송 툴 (522)는 데이터 (500)에 대한 중복 데이터 인코딩 (예를 들어, 삭제 인코딩, 데이터 스트라이핑, 등)에 기초하여 샤드들의 생성을 관리할 수 있다. 따라서, 데이터 전송 툴 (522)과 관련된 임의의 프로세스들은 자율적으로 동작할 수 있고 임의의 다른 프로세스들, 서비스들, 또는 툴들과 통신 또는 조정을 필요로 하지 않을 수 있다.
스토리지 서비스 제공자 (102)는 데이터 테크 콘솔(data tech console) (528)을 또한 포함할 수 있다. 데이터 테크 콘솔 (528)은 하나 이상의 다른 서비스들, 예컨대 메타데이터 서비스 (512)와 통신하는 서비스일 수 있다. 일부 실시예들에서, 데이터 테크 콘솔은 데이터 테크니션 (technician)이 스토리지 서비스 제공자 (102)와 관련된 정보를 보고 바꾸는 것을 허용하는 인터페이스, 예컨대 디스플레이의 그래픽 유저 인터페이스 또는 명령 라인 인터페이스에 정보를 제공한다. 예를 들어, 데이터 테크 콘솔은 스토리지 서비스 제공자 (102)에 의해 프로세스되는 다양한 데이터 유입 작업들의 상태에 관한 정보를 제공할 수 있거나 또는 스토리지 디바이스 (502), 키 데이터 (506), 및 메타데이터 (508)상에 저장된 데이터를 제공할 수 있다.
도면들 6-26은 배송가능한 스토리지 디바이스 (100)와 관련된 시스템들 및 다양한 프로세스들을 예시한다. 예시된 프로세스들의 하나 이상의 부분들은 실시예들에서 스토리지 서비스 제공자 (102) 및/또는 고객 네트워크 (104) 상에서 실행하는 하나 이상의 프로세스들에 의해 수행될 수 있다 (예를 들어, 도 5에 설명된 하나 이상의 서비스들). 일부 실시예들에서, 예시된 프로세스의 하나 이상의 부분들은 고객 네트워크 (104)로부터 스토리지 서비스 제공자 (102)로 데이터(500)를 유입하기 위한 특정 데이터 유입 작업과 연관시킬 수 있다. 일부 경우들에서, 동일 또는 유사한 프로세스들 및 시스템들이 스토리지 서비스 제공자 (102)로부터 고객 네트워크 (104)로 데이터 전송/유출하기 위해 스토리지 서비스 제공자 (102) 및/또는 고객 네트워크 (104)에 대하여 구현될 수 있다. 더구나, 생성되거나 또는 프로세스된 임의의 작업-관련 정보는 스토리지 서비스 제공자 (102)의 하나 이상의 위치들, 예컨대 키 데이터 (506), 메타데이터 (508), 및 스토리지 디바이스 (502)에 저장될 수 있다.
도 6은 일부 실시예들에 따른 배송가능한 스토리지 디바이스(100)를 이용하여 안전하게 데이터를 전송하기 위해 새로운 데이터 유입 작업에 대한 정보를 수집하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자 (102)의 하나 이상의 서비스를 통하여, 예컨대 콘솔 백 엔드 (510)에 의해 수행될 수 있다.
블럭 (602)에서, 스토리지 서비스 제공자 (102)는 고객 디바이스 (504)로부터 로그인(login) 자격들 (예를 들어, 유저이름, 패스워드, 및/또는 하나 이상의 다른 보안 코드들)을 수신한다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 로그인 자격들을 수신하도록 구성될 수 있고 자격들 확인시에, 고객을 인증하고 고객 디바이스 (504)의 콘솔 인터페이스를 통하여 데이터 유입 및/또는 유출 작업들의 관리 및 액세스를 제공한다. 콘솔 인터페이스는 고객의 하나 이상의 데이터 유입 작업들의 상태의 표시를 제공할 수 있다. 따라서, 콘솔 백 엔드 (510)는 고객 네트워크 (104)로부터 정보를 수신할 수 있고 고객 네트워크 (104)에 정보를 제공할 수 있다. 스토리지 서비스 제공자 (102)는 보안 데이터 전송을 위해 배송가능한 스토리지 디바이스 (100)를 프로비저닝하기 위해 수신된 정보의 적어도 일부를 사용할 수 있다.
블럭 (604)에서, 콘솔 백 엔드 (510)는 새로운 데이터 유입 작업에 대한 요청을 수신할 수 있다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 새로운 작업과 관련된 정보, 예컨대 작업 ID를 생성하는 메타데이터 서비스 (512)로 요청을 포워딩한다. 콘솔 백 엔드 (510)는 그런 다음 생성된 정보를 수신할 수 있고 콘솔을 통하여 생성된 정보의 적어도 일부를 고객에게 제공할 수 있다 (예를 들어, 새로운 데이터 유입 작업에 대한 작업 ID를 디스플레이).
블럭 (606)에서, 콘솔 백 엔드 (510)는 배송가능한 스토리지 디바이스 (100)의 배송을 위해 고객 배송 어드레스를 결정할 수 있다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 고객과 관련되고 스토리지 서비스 제공자 (102)상에 저장된 고객 어드레스를 판독함으로써 고객 어드레스를 결정한다. 일부 경우들에서, 고객은 고객 디바이스 (504)를 통하여, 예컨대 유저 인터페이스를 통하여 고객 어드레스를 제공한다.
블럭 (608)에서, 콘솔 백 엔드 (510)는 유입 작업에 대한 허가를 결정할 수 있다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 스토리지 서비스 제공자 (102)상에 저장된 고객과 관련된 허가들을 판독함으로써 고객 어드레스를 결정한다. 일부 경우들에서, 고객은 고객 디바이스 (504)를 통하여, 예컨대 유저 인터페이스를 통하여 허가들을 제공한다. 허가들은 유입 데이터를 액세스하거나 또는 핸들링하기 위한 하나 이상의 특정 역할들과 관련시키기 위해 적절한 판독, 기록, 또는 다른 허가들을 특정할 수 있다. 따라서, 실시예들에서, 역할(role)은 데이터 유입 작업에 대하여 결정되고, 여기서 역할은 스토리지 서비스 제공자 (102) 및/또는 다른 엔티티에 주어진 하나 이상의 허가들의 세트이다.
블럭 (610)에서, 콘솔 백 엔드 (510)는 유입 작업에 대한 선호도(preference)를 결정할 수 있다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 스토리지 서비스 제공자 (102)상에 저장된 고객과 관련된 선호도를 판독함으로써 적어도 일부 선호도를 결정한다. 일부 경우들에서, 고객은 고객 디바이스 (504)를 통하여, 예컨대 유저 인터페이스를 통하여 선호도를 제공한다. 선호도들은 고객이 데이터 유입 작업과 관련된 하나 이상의 대응하는 활동들의 상태의 통지를 수신하였는지 여부 (예를 들어, 데이터 유입 진전상태(progress), 데이터 유입 완료, 등) 및 어떻게 고객이 통지들을 수신하는지 (이메일, SMS 문자 메시지, 전화 호출, 등)를 특정할 수 있다.
블럭 (612)에서, 콘솔 백 엔드 (510)는 스토리지 서비스 제공자 (102)에서 데이터 유입된 데이터를 저장하기 위한 위치를 결정한다. 예를 들어, 콘솔 백 엔드 (510)는 스토리지 서비스 제공자 (102)에서 데이터를 저장하기 위한 위치의 표시를 (예를 들어, 스토리지 서비스 제공자 (102)의 위치 또는 서비스의 특정 유형) 고객 디바이스 (504)로부터 수신한다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 스토리지 서비스 제공자 (102)에서 고객 데이터 (500)를 저장하기 위한 다수의 이용 가능한 위치들의 표시를 수신한다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 데이터를 저장하기 위한 하나 이상의 이용 가능한 위치들에 대응하는 하나 이상의 위치 ID들(예를 들어, 버킷 ID들)을 메타데이터 서비스 (512)로부터 수신한다. 콘솔 백 엔드 (510)는 그런 다음 위치 ID들을 수신할 수 있고 디스플레이를 위해서 그것들을 고객 디바이스 (504)에 제공할 수 있다. 콘솔 백 엔드 (510)는 그런 다음 고객으로부터 하나 이상의 위치 ID들의 표시를 수신할 수 있다.
블럭 (614)에서, 콘솔 백 엔드 (510)는 데이터 유입 작업을 위한 하나 이상의 암호화 키들을 결정한다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 키 데이터 (506)에 저장된 하나 이상의 이용 가능한 암호화 키들을 선택할 수 있다. 일부 경우들에서, 콘솔 백 엔드 (510)는 키 데이터 (506)에 저장된 하나 이상의 이용 가능한 암호화 키들의 선택을 고객 디바이스 (504)로부터 수신할 수 있다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 하나 이상의 암호화 키들을 생성할 수 있다. 다양한 실시예들에서, 선택된 키들 및 생성된 키들의 조합이 사용될 수 있다.
블럭 (616)에서, 스토리지 서비스 제공자 (102)는 블럭들 (602)-(614)에서 결정되거나 또는 수신된 임의의 정보를 포함하여 데이터 유입 작업에 대한 정보를 저장한다. 일부 실시예들에서, 콘솔 백 엔드 (510)는 키 데이터 (506) 및/또는 메타데이터 (508)에 정보를 저장한다.
도 7 은 일부 실시예들에 따른 데이터 유입 작업에 대하여 안전하게 데이터를 전송하기 위해 배송가능한 스토리지 디바이스(100)를 프로비저닝 하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자 (102)를 통하여, 예컨대 프로비전 및 입수 서비스 (520) 및/또는 다른 서비스들에 의해 수행될 수 있다.
블럭 (702)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)에 동작 소프트웨어를 기록한다. 예를 들어, 프로비저닝 서비스는 운영 체제 및 서버들을 배송가능한 스토리지 디바이스 (100)에 기록할 수 있다. 서버들 중 하나는 고객 네트워크 (104)의 디바이스가 명령 라인 또는 그래픽 유저 인터페이스를 통하여 배송가능한 스토리지 디바이스 (100)와 통신하는 것을 (예를 들어, 데이터 전송 툴 (522)과 통신하기 위해) 허용할 수 있다. 일부 실시예들에서, 프로비저닝 서비스는 디스플레이 (108)에 정보를 발송하는 (예를 들어, 배송 어드레스를 디스플레이 하기 위해) 디스플레이 서버를 배송가능한 스토리지 디바이스 (100)에 또한 기록할 수 있다.
블럭 (704)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)에 보안 정보를 기록한다. 예를 들어, 프로비저닝 서비스는 배송가능한 스토리지 디바이스 (100)로부터 보안 정보 수신 및 수신된 보안 정보 프로세싱에 기초하여 고객 네트워크 (104)의 디바이스가 배송가능한 스토리지 디바이스 (100)를 인증하는 것을 허용하는 보안 인증서 또는 루트(root) 인증서를 배송가능한 스토리지 디바이스 (100)에 기록할 수 있다. 보안 정보(security information)는 고객 네트워크 (104)의 디바이스로부터 보안 정보 수신 및 수신된 보안 정보 프로세싱에 기초하여 배송가능한 스토리지 디바이스 (100)가 고객 네트워크 (104)의 디바이스를 인증하는 것을 또한 허용할 수 있다. 따라서, 배송가능한 스토리지 디바이스 (100)에 기록된 보안 정보는 배송가능한 스토리지 디바이스 (100)와 고객 네트워크 (104)의 디바이스 간에 상호 인증 프로세스들에 사용될 수 있다.
블럭 (706)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)에 배송 정보(shipping information)를 기록한다. 예를 들어, 프로비저닝 서비스는 고객의 배송 어드레스 및 스토리지 서비스 제공자 (102)의 배송 어드레스를 배송가능한 스토리지 디바이스 (100)에 기록할 수 있다. 배송가능한 스토리지 디바이스 (100)이 온 상태에 있는 데이터 전송 사이클의 어떤 부분에 의존하여 배송가능한 스토리지 디바이스 (100)에 대한 상이한 목적지 배송 어드레스들을 배송가능한 스토리지 디바이스 (100)가 디스플레이 할 수 있다. 일부 실시예들에서, 하나 이상의 배송 어드레스들은 스토리지 서비스 제공자 (102) 또는 고객이 해당 배송 어드레스가 바뀌었다고 결정하면 어느 하나에 의해 업데이트될 수 있다.
블럭 (708)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)가 프로비저닝되고 고객에 배송 준비가 된 것을 표시한다. 예를 들어, 프로비저닝 서비스는 배송가능한 스토리지 디바이스 (100)가 프로비저닝되고 배송 준비가 된 것을 표시하는 정보를 메타데이터 (508)에 저장 또는 업데이트할 수 있다. 일부 실시예들에서, 프로비저닝 서비스는 배송가능한 스토리지 디바이스 (100)가 프로비저닝되고 배송 준비가 된 것을 표시하기 위해 메시지를 생성 및 스토리지 서비스 제공자 (102)의 다른 서비스 또는 디바이스에 메시지를 발송할 수 있다.
도 8은 일부 실시예들에 따른 배송가능한 스토리지 디바이스 (100) 및 매니페스트(manifest)를 고객에게 발송하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자 (102)를 통하여, 예컨대 작업 오케스트레이터 (514), 프로비전 및 입수 서비스 (520) 및/또는 다른 서비스들에 의해 수행될 수 있다.
블럭 (802)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 고객에게 발송한다. 예를 들어, 배송가능한 스토리지 디바이스 (100)는 고객 네트워크 (104)의 위치로 발송된다. 배송가능한 스토리지 디바이스 (100)는 하나 이상의 적절한 형태들의 전송을 통해 발송될 수 있다.
블럭 (804)에서, 스토리지 서비스 제공자 (102)는 데이터 전송 툴 (522)을 고객에게 발송한다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 네트워크 (106)를 통하여 고객 네트워크 (104)의 디바이스로 데이터 전송 툴 (522)을 발송한다. 예를 들어, 데이터 전송 툴 (522)은 네트워크 (106)를 통해 발송하기 위한 이메일 첨부파일(attachment)을 통하여, 인터넷 세션, 또는 임의의 다른 적절한 수단들을 통하여 발송될 수 있다. 일부 경우들에서, 데이터 전송 툴 (522)은 스토리지 디바이스상에 저장될 수 있고 고객에게 배송될 수 있다. 고객이 데이터 전송 툴 (522)을 획득한 후에, 고객은 데이터 전송 툴 (522)을 고객 네트워크 (104)상에 인스톨할 수 있다.
블럭 (806)에서, 스토리지 서비스 제공자 (102)는 데이터 유입 작업에 대한 정보에 기초하여 매니페스트를 생성한다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 보안 정보, 하나 이상의 암호화 키들, 및 데이터 유입 작업과 관련된 메타데이터를 포함하는 하나 이상의 파일들을 생성한다. 보안 정보는 배송가능한 스토리지 디바이스 (100)를 인증하고 및/또는 배송가능한 스토리지 디바이스 (100)가 고객 네트워크 (104)의 디바이스를 인증하는 것을 허용하기 위한 정보를 포함할 수 있다. 메타데이터는 스토리지 디바이스 (502)내 하나 이상의 데이터 저장 위치들을 식별하는 정보를 포함할 수 있다. 일부 실시예들에서, 메타데이터는 하나 이상의 암호화 키들과 하나 이상의 데이터 저장 위치들을 연관시킬 수 있다.
블럭 (808)에서, 스토리지 서비스 제공자 (102)는 매니페스트를 고객에게 발송한다. 일부 경우들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)가 고객 네트워크에 부착된지 여부 결정에 응답하여 매니페스트를 고객 네트워크 (104)에 발송한다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 매니페스트를 고객 네트워크 (104)에 발송하기 전에 매니페스트를 암호화 키로 암호화한다. 예를 들어, 스토리지 서비스 제공자 (102)는 매니페스트를 암호화하기 위해 암호화 키를 생성하거나 또는 고객에게 할당된 키 데이터 (506)로부터 암호화 키를 사용할 수 있다. 일부 실시예들에서, 매니페스트는 네트워크 (106)를 통해 발송하기 위한 이메일 첨부파일을 통하여, 인터넷 통신 세션, 또는 임의의 다른 적절한 수단들을 통하여 발송될 수 있다. 일부 경우들에서, 매니페스트는 스토리지 디바이스상에 저장될 수 있고 고객에게 배송될 수 있다. 고객이 매니페스트를 획득한 후에, 고객은 만약 매니페스트가 암호화되면 데이터 전송 툴 (522)을 통하여 매니페스트를 복호화할 수 있다. 일부 실시예들에서, 고객는 코드 (예를 들어, 번호들, 문자들, 및/또는 심벌들)를 입력하고 만약 코드가 맞다면, 데이터 전송 툴 (522)은 매니페스트를 복호화한다. 일부 경우들에서, 고객은 매니페스트를 복호화하기 위해 고객 네트워크 (104)내에 저장될 수 있는 암호화 키를 사용한다.
블럭 (810)에서, 스토리지 서비스 제공자 (102)는 매니페스트를 액세스하게 하기 위한 매니페스트 코드를 고객에게 발송한다. 일부 실시예들에서, 매니페스트 코드는 네트워크 (106)를 통해 발송하기 위한 이메일 첨부파일을 통하여, 인터넷 세션, 또는 임의의 다른 적절한 수단들을 통하여 발송될 수 있다. 일부 경우들에서, 매니페스트 코드는 스토리지 디바이스상에 저장될 수 있고 고객에게 배송될 수 있다. 고객이 매니페스트 코드를 획득한 후에, 고객은 매니페스트 코드를 데이터 전송 툴 (522)에 입력함으로써 매니페스트를 액세스할 수 있다. 일부 실시예들에서, 데이터 전송 툴, 매니페스트, 및 매니페스트 코드 중 적어도 두개가 따로따로 발송된다.
도 9는 일부 실시예들에 따른 고객에 배송을 준비하는 배송가능한 스토리지 디바이스(100)의 로직 블럭 다이어그램이다. 배송가능한 스토리지 디바이스 (100)는 영구 데이터 스토리지 (902)를 포함할 수 있다. 영구 데이터 스토리지 (902)는 데이터 유입 작업과 관련된 정보를 포함할 수 있다. 일부 실시예들에서, 정보는 어드레스 정보 (904), 예컨대 스토리지 서비스 제공자 (102)의 배송 어드레스 및/또는 고객 네트워크 (104)와 관련된 배송 어드레스를 포함할 수 있다. 어드레스 정보는 배송가능한 스토리지 디바이스 (100)에 대한 고객 어드레스 및/또는 하나 이상의 다른 중간 목적지 어드레스들 후에 다음 배송 어드레스를 저장할 수 있다. 일부 실시예들에서, 어드레스 정보 (904)는 하나 이상의 배송 라벨들을 포함하고, 각각의 배송 라벨은 특정 목적지 어드레스에 대응한다. 배송 라벨(shipping label)은 통상의 프린팅 라벨이 제공하는 적어도 임의의 정보를 포함하여 디스플레이 (108)상에 배송 라벨을 디스플레이 하기 위한 필요한 임의의 정보를 포함할 수 있다. 더구나, 정보는 보안 정보 (906), 예컨대 보안 인증서(certificate)들 및/또는 암호화 키들을 포함할 수 있다. 일부 경우들에서, 정보는 배송가능한 스토리지 디바이스 (100)를 고유하게 식별하는 디바이스 ID (704) 및/또는 배송가능한 스토리지 디바이스 (100)와 관련된 데이터 유입 작업을 식별하기 위한 유입 ID를 포함할 수 있다.
다양한 실시예들에서, 디스플레이 (108)는 고객의 고객 어드레스 (908)를 디스플레이 할 수 있다. 예를 들어, 고객 어드레스 (908)는 배송가능한 스토리지 디바이스 (100)가 고객에게 발송되는 때 고객 네트워크 (104)와 관련된 배송 어드레스일 수 있다. 반대로, 배송가능한 스토리지 디바이스 (100)가 고객으로부터 스토리지 서비스 제공자 (102)로 다시 배송되는 때, 스토리지 서비스 제공자 (102)의 배송 어드레스가 디스플레이 (108)에 의해 디스플레이될 수 있다. 일부 경우들에서, 영구 데이터 스토리지 (702)에 저장된 어드레스 정보 (904) 및 보안 정보 (906) 중 적어도 일부가 배송가능한 스토리지 디바이스 (100)가 프로비저닝될 때 스토리지 서비스 제공자 (102)에 의해 제공될 수 있다.
도 10은 일부 실시예들에 따른 데이터 유입 작업에 대한 정보 및 배송가능한 스토리지 디바이스(100)를 수신하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들은 고객을 통하여, 예컨대 데이터 전송 툴 (522)을 이용함으로써 수행될 수 있다.
블럭 (1002)에서, 고객은 스토리지 서비스 제공자 (102)로부터 데이터 전송 툴 (522)을 다운로드하고 고객 네트워크 (104)에서의 컴퓨터 시스템상에 데이터 전송 툴 (522)을 인스톨한다. 일부 실시예들에서, 고객은 스토리지 서비스 제공자 (102)로부터 데이터 전송 툴 (522)을 다운로드 하기 위해 고객 디바이스 (504) 또는 다른 컴퓨팅 디바이스를 사용할 수 있다. 데이터 전송 툴 (522)을 다운로드 하기 전에, 고객은 스토리지 서비스 제공자 (102)에 의해 확인되는 자격들을 입력할 것이 요구될 수 있다. 일부 경우들에서, 데이터 전송 툴 (522)은 고객 위치에 이미 인스톨 되었을 수 있다. 예를 들어, 데이터 전송 툴 (522)은 이전 데이터 유입 작업을 위해 사용되었을 수 있다.
블럭 (1004)에서, 고객은 배송가능한 스토리지 디바이스 (100)를 수신하고 배송가능한 스토리지 디바이스 (100)를 고객 네트워크 (104)에 연결한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)을 고객 네트워크에 연결하기 전에 배송가능한 스토리지 디바이스 (100)을 인증하기 위해 하나 이상의 보안 단계들이 수행될 수 있다. 예를 들어, 하나 이상의 바코드들이 스캔될 수 있고 RFID 칩들이 판독될 수 있다. 다양한 실시예들에서, 배송가능한 스토리지 디바이스 (100)을 고객 네트워크(104)에 연결하기 전에 배송가능한 스토리지 디바이스 (100)을 인증하기 위해 임의의 다른 적절한 확인 기술들이 사용될 수 있다. 고객은 그런 다음 디바이스의 네트워크 인터페이스 (240)를 통하여 배송가능한 스토리지 디바이스 (100)를 고객 네트워크에 연결한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 각각의 상이한 유형의 네트워크 인터페이스인 다수의 네트워크 인터페이스들을 가진다. 일부 경우들에서, 특정 유형의 두개 이상의 네트워크 인터페이스들이 있다. 고객은 배송가능한 스토리지 디바이스 (100)를 고객 네트워크 (104)에 연결하기 위해 네트워크 인터페이스를 선택할 수 있다.
블럭 (1006)에서, 고객 네트워크 (104)에 연결된 것에 응답하여, 배송가능한 스토리지 디바이스 (100) 및/또는 데이터 전송 툴 (522)은 유저 구성이 배송가능한 스토리지 디바이스 (100)에 대하여 필요한 지 여부를 결정한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100) 및/또는 데이터 전송 툴 (522)은 하나 이상의 네트워크-관련 구성, 예컨대 IP 어드레스, 사용되는 네트워크 인터페이스의 유형 (예를 들어, 광, SPF), 넷마스크, 및 게이트웨이를 선택하기 위해 유저 구성이 요구되는지를 결정한다. 일부 실시예들에서, 유저 구성이 배송가능한 스토리지 디바이스 (100)에 대하여 필요하다는 결정에 응답하여, 프로세스는 블럭 (1008)로 이어진다. 일부 실시예들에서, 만약 유저가 배송가능한 스토리지 디바이스 (100) 및/또는 고객 네트워크 (104)에 관련된 네트워크 파라미터들 또는 다른 파라미터들에 대한 하나 이상의 디폴트 설정들을 무효로 할 것(override)을 결심하면 유저 구성(user configuration)이 요구될 것이다.
블럭 (1008)에서, 배송가능한 스토리지 디바이스 (100)의 디스플레이 (108)는 유저가 배송가능한 스토리지 디바이스 (100)에 대한 하나 이상의 구성 파라미터들, 예컨대 IP 어드레스, 사용되는 네트워크 인터페이스의 유형(예를 들어, 광, SPF), 넷마스크, 및 게이트웨이를 입력하는 것을 허용하는 유저 인터페이스를 제공할 수 있다. 디스플레이 (108)는 유저가 하나 이상의 파라미터들을 입력하는 것을 허용하는 다수의 터치-인에이블(enabled) 키들을 제공할 수 있다. 다양한 실시예들에서, 유저가 배송가능한 스토리지 디바이스 (100)에 대한 파라미터들을 입력하는 것을 허용하기 위해 다른 적절한 기술들이 구현될 수 있다. 프로세스는 그런 다음 블럭 (1010)로 이어진다.
블럭 (1006)에서, 만약 배송가능한 스토리지 디바이스 (100)가 유저 구성이 배송가능한 스토리지 디바이스 (100)에 대하여 필요하지 않다고 결정하면, 프로세스는 블럭 (1010)으로 이어진다. 블럭 (1010)에서, 고객은 스토리지 서비스 제공자 (102)로부터 매니페스트 및 매니페스트 코드를 다운로드한다. 일부 실시예들에서, 고객은 스토리지 서비스 제공자 (102)의 데이터 전송 툴 백 엔드 (526)로부터 매니페스트 및 매니페스트 코드를 다운로드한다.
일부 경우들에서, 고객은 상이한 경로 또는 애플리케이션을 이용하여, 예컨대 고객 네트워크 (104)의 고객 디바이스 (504) 또는 다른 컴퓨팅 시스템을 통하여 매니페스트 및/또는 매니페스트 코드를 다운로드할 수 있다. 예를 들어, 매니페스트는 매니페스트 코드의 것과 상이한 경로 또는 애플리케이션을 이용하여 다운로드될 수 있다. 일부 실시예들에서, 매니페스트는 동일한 경로를 이용하여, 그러나 상이한 시간 지점에서 또는 별개의 세션 또는 거래를 통하여 다운로드될 수 있다. 더구나, 일부 경우들에서, 매니페스트 코드는 코드를 통신하기 위한 이메일, 문자 메시지, 물리적 메일, 또는 임의의 다른 적절한 형태를 통하여 전달될 수 있다. 다양한 실시예들에서, 매니페스트 코드는 하나 이상의 숫자들, 문자들, 및/또는 심벌들로 구성될 수 있다.
블럭 (1012)에서, 고객은 데이터 전송 툴 (522)에 배송가능한 스토리지 디바이스 (100)의 IP어드레스 및 매니페스트 파일 위치를 제공한다. 예를 들어, 고객은 데이터 전송 툴 (522)에 매니페스트 파일의 파일 이름 및 디렉토리 경로를 제공할 수 있다. 다양한 실시예들에서, 매니페스트 파일의 위치에 대한 다른 적절한 식별자들이 데이터 전송 툴 (522)에 제공될 수 있다. 더구나, 일부 경우들에서, 배송가능한 스토리지 디바이스 (100)의 IP 어드레스 및/또는 매니페스트 파일 위치는 데이터 전송 툴 (522)에 자동으로 감지되거나 또는 저장될 수 있고, 어느 하나 또는 둘모두를 입력할 필요를 배제한다.
블럭 (1014)에서, 고객은 매니페스트 코드를 데이터 전송 툴 (522)에 제공한다. 일부 실시예들에서, 고객은 실질적으로 동일한 시간 (예를 들어, 유저 인터페이스 또는 일련의 관련 유저 인터페이스들의 동일한 스크린을 이용하여)에 배송가능한 스토리지 디바이스 (100)의 IP 어드레스 및/또는 매니페스트 파일 위치, 매니페스트 코드를 제공할 수 있다. 일부 경우들에서, 매니페스트 코드를 데이터 전송 툴 (522)에 제공한 것에 응답하여, 데이터 전송 툴 (522)은 매니페스트 코드 및/또는 고객-할당 키를 이용하여 매니페스트를 복호화하고 암호화 키들를 포함하는 매니페스트내 정보에 대한 액세스를 제공한다. 데이터 전송 툴은 고객 데이터 (500)를 식별, 식별된 고객 데이터 (500)를 암호화 및/또는 암호화된 고객 데이터 (500)를 배송가능한 스토리지 디바이스 (100)에 전송하는 프로세스를 개시할 수 있다. 일부 경우들에서, 매니페스트 코드를 제공한 것에 응답하여, 데이터 전송 툴 (522)은 매니페스트 코드가 올바른지 여부를 결정할 수 있다. 만약 그것이 올바르지 않으면, 데이터 전송 툴 (522)은 부정확한 코드가 제공되었다는 것을 나타내는 메시지 및 유저가 다른 매니페스트 코드를 입력하기 위한 프롬프트(prompt)를 제공할 수 있다. 다양한 실시예들에서, 매니페스트 코드를 확인한 것에 응답하여, 데이터 전송 툴 (522)은 매니페스트의 하나 이상의 암호화 키들을 액세스 및/또는 획득한다.
도 11는 일부 실시예들에 따른 고객 네트워크(104)에 연결된 배송가능한 스토리지 디바이스들(100)의 로직 블럭 다이어그램이다. 일부 실시예들에서, 다수의 배송가능한 스토리지 디바이스들 (100a-100n)은 고객 네트워크 (104)에 연결될 수 있다. 예를 들어, 각각의 배송가능한 스토리지 디바이스들 (100)은 데이터 전송 툴 (522) 및 암호화 서버 (524)를 더 포함하는 메모리 (1104)를 포함하는 대응하는 컴퓨팅 디바이스 (1102)와 통신할 수 있다. 더구나, 각각의 컴퓨팅 디바이스 (1102)는 고객으로부터 대응하는 데이터 스토리지 서비스 (102)로 유입될 고객 데이터 (500)를 포함하는 하나 이상의 데이터 스토리지 디바이스들과 통신할 수 있다. 일부 실시예들에서, 다수의 데이터 유입 작업들은 고객에 의해 요청되고, 각각의 유입 작업은 배송가능한 스토리지 디바이스들 (100)의 상이한 것과 연관된다. 다수의 데이터 유입 작업들과 연관된 배송 디바이스들(100)은 고객 네트워크 (104)에 동시에 연결될 수 있고 암호화된 데이터를 동시에 다운로드할 수 있다.
다양한 실시예들에서, 컴퓨팅 디바이스 (1102)의 특정 메모리 (1104)는 데이터 전송 툴 (522)의 다수의 인스턴스들을 구현할 수 있다. 더욱이, 다수의 인스턴스들 중 두개 이상은 하나의 특정 배송가능한 스토리지 디바이스와 통신할 수 있다. 일부 실시예들에서, 데이터 전송 툴 (522)의 특정 인스턴스는 다수의 배송가능한 스토리지 디바이스들과 통신할 수 있다. 따라서, 데이터 전송 툴들 (522)과 배송가능한 스토리지 디바이스들 (100) 사이의 상호작용간의 관계는 일-대-일, 다-대-일, 일-대-다, 또는 다-대-다일 수 있다. 상기의 관계는 또한 데이터 전송 툴들 (522)이 하나의 컴퓨팅 디바이스 (1102) 상에 또는 다수의 컴퓨팅 디바이스들 (1102)에 걸쳐 구현된지 여부를 적용할 수 있다.
일부 경우들에서, 다수의 배송가능한 스토리지 디바이스들 (100)이 특정 데이터 유입 작업 요청에 대한 데이터 양에 대하여 요구될 것이라고 스토리지 서비스 제공자 (102)가 결정에 응답하여, 스토리지 서비스 제공자 (102)는 두개 이상의 새로운 데이터 유입 작업들을 생성할 것이고, 각각의 새로운 데이터 유입 작업들은 유입될 고객 데이터 (500)의 상이한 부분에 대응한다. 더구나, 각각의 새로운 데이터 유입 작업들은 상이한 배송가능한 스토리지 디바이스 (100)에 대응할 수 있다.
일부 실시예들에서, 디스플레이 (108)는 터치를 통하여 입력을 수신하는 것이 가능할 수 있다. 디스플레이 (108)는 유저가 배송가능한 스토리지 디바이스 (100)와 관련된 정보를 입력하기 위한 하나 이상의 대응하는 옵션들과 관련된 하나 이상의 그래픽 엘리먼트들을 디스플레이 할 수 있다. 예를 들어, 제 1 버튼 (1106)은 배송가능한 스토리지 디바이스 (100)에 대한 인터넷 프로토콜 (IP) 어드레스를 입력하기 위해 유저에 의해 선택가능할 수 있다. 터치를 통하여 제 1 버튼 (1102)를 선택한 후에, 유저는 유저가 IP 어드레스를 입력하는 것을 허용하는 다수의 터치-인에이블 키들을 제공받을 수 있다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)가 고객의 네트워크에 연결된 후에 (예를 들어, DHCP를 통하여) IP 어드레스는 배송가능한 스토리지 디바이스 (100)에 자동으로 할당된다. 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100) 와 통신을 수립하기 위해 배송가능한 스토리지 디바이스 (100)의 IP 어드레스를 사용할 수 있다.
일부 실시예들에서, 디스플레이 (108)는 배송가능한 스토리지 디바이스 (100)에 대한 네트워크 인터페이스의 유형을 입력하기 위해 유저에 의해 선택 가능한 제 2 버튼 (1108)을 디스플레이 할 수 있다. 예를 들어, 터치를 통하여 제 2 버튼 (1108)을 선택한 후에, 유저는 두개 이상의 터치 인에이블 버튼들을 제공받을 수 있고, 각각의 버튼은 상이한 유형의 네트워크 인터페이스 (예를 들어, RJ45, SPF, 광)를 나타낸다. 네트워크 인터페이스 유형에 대한 임의의 다른 적절한 옵션들이 실시예들에서 유저에 의한 선택을 위해 이용 가능할 수 있다.
도 12는 일부 실시예들에 따른 배송가능한 스토리지 디바이스를 인증하고 매니페스트를 복호화하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들은 고객을 통하여, 예컨대 데이터 전송 툴 (522)을 이용함으로써 수행될 수 있다.
블럭 (1202)에서, 데이터 전송 툴 (522)은 매니페스트 코드를 이용하여 매니페스트를 복호화한다. 일부 실시예들에서, 매니페스트는 데이터 전송 툴 (522)에 고객에 의해 제공된 키로 복호화된다. 일부 경우들에서, 키는 매니페스트와 별개로 스토리지 서비스 제공자 (102)로부터 다운로드된다 (예를 들어, 고객 네트워크 (104)의 상이한 컴퓨팅 디바이스에 다운로드되거나 또는 별개의 통신 세션). 유저가 데이터 전송 툴 (522)에 키를 제공할 때 (예를 들어, 유저 인터페이스를 통하여) 데이터 전송 툴 (522)은 매니페스트 및 액세스 암호화 키들, 보안 정보, 및/또는 데이터 유입 작업과 관련된 다른 데이터를 복호화할 수 있다.
블럭 (1204)에서, 데이터 전송 툴 (522)은 고객 네트워크 (104)상에서 배송가능한 스토리지 디바이스 (100)를 발견한다. 데이터 전송 툴 (522)은 적어도 배송가능한 스토리지 디바이스 (100)의 IP어드레스에 기초하여 배송가능한 스토리지 디바이스 (100)를 발견할 수 있다. IP 어드레스는 다양한 방식들, 예컨대 도 10에 설명된 것들로 할당될 수 있다.
블럭 (1206)에서, 데이터 전송 툴 (522)은 매니페스트로부터 획득된 보안 정보로 배송가능한 스토리지 디바이스 (100)를 인증한다. 예를 들어, 데이터 전송 툴 (522)은 디바이스를 인증하기 위해 배송가능한 스토리지 디바이스 (100)로부터 루트 인증서 또는 암호화 키를 판독할 수 있고 매니페스트로부터의 보안 정보로 인증서 또는 암호화 키를 프로세스 할 수 있다 (예를 들어, 배송가능한 스토리지 디바이스 (100)가 스토리지 서비스 제공자 (102)로부터 배송된 동일한 디바이스인지를 확인). 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 또한 고객 네트워크 (104)의 데이터 전송 툴 (522) 및/또는 컴퓨팅 디바이스 (1102)을 인증하기 위해 데이터 전송 툴 (522)로부터의 루트 인증서 또는 암호화 키 판독 및 배송가능한 스토리지 디바이스 (100) 상에 보안 정보로 인증서 또는 암호화 키 프로세싱에 기초하여 데이터 전송 툴 (522) 및 고객 네트워크 (104)를 인증한다. 따라서, 데이터 전송 툴 (522) 및 배송가능한 스토리지 디바이스 (100)는 서로 상호간에 인증할 수 있다.
블럭 (1208)에서, 데이터 전송 툴 (522)은 데이터를 프로세스하기 위해 데이터 전송 툴에 대한 고객 네트워크상에 가상 파일 시스템을 생성한다. 일부 실시예들에서, 가상 파일 시스템은 고객 데이터 (500)의 적어도 일부의 복사본을 저장 및 고객 데이터의 프로세싱 결과들을 저장하도록 구성된 휘발성 및/또는 비 휘발성 메모리를 포함한다. 예를 들어, 데이터 전송 툴 (522)은 가상 파일 시스템에 저장된 데이터를 암호화할 수 있고 암호화된 데이터를 가상 파일 시스템에 저장할 수 있다. 일부 실시예들에서, 암호화된 데이터는 그런 다음 가상 파일 시스템으로부터 배송가능한 스토리지 디바이스 (100)로 복사된다.
도 13은 일부 실시예들에 따른 데이터 유입 작업과 관련된 매니페스트(1300)의 로직 블럭 다이어그램이다. 일부 실시예들에서, 매니페스트 (1300)은 데이터 전송 툴 (522)을 이용하여 고객에 의해 다운로드된다. 만약 고객이 데이터 전송 툴 (522)에 아직 인스톨되지 않았다면, 그러면 고객은 매니페스트 (1300)를 다운로드하기 전에 그것을 인스톨하는 것을 필요로 할 수 있다.
일부 실시예들에서, 데이터 전송 툴 (522)은 매니페스트 (1300)를 다운로드하기 위해 데이터 스토리지 제공자 (102)의 서비스, 예컨대 데이터 전송 툴 백 엔드 (526)와 통신한다. 고객은 데이터 전송 툴 (522)이 매니페스트 (902)를 다운로드 하기 위해 자격들 및/또는 작업 ID를 입력하는 것이 요구될 수 있다. 일부 경우들에서, 데이터 유입 작업과 관련된 배송가능한 스토리지 디바이스 (100)는 매니페스트 (1300)가 다운로드될 수 있기 전에 먼저 고객 (100)의 네트워크에 연결되고 데이터 전송 툴 (522) 및/또는 스토리지 서비스 제공자 (102)에 의해 검출될 것이 요구될 수 있다. 따라서, 스토리지 서비스 제공자 (102)는 고객 네트워크 (104)에 부착된 배송가능한 스토리지 디바이스 (100)가 특정 데이터 유입 작업과 관련된 지를 결정한 것에 응답하여 (예를 들어, 디바이스로부터 보안 정보를 획득/확인함으로써, 예컨대 루트 인증서를 통하여) 특정 데이터 유입 작업에 대한 매니페스트(130)를 데이터 전송 툴 (522)에 발송할 수 있다.
매니페스트 (1300)는 유입 작업과 관련된 다양한 유형들의 정보를 포함할 수 있고, 이들 중 적어도 일부는 데이터를 암호화하고 및/또는 데이터를 배송가능한 스토리지 디바이스 (100)에 전송하기 위해 사용된다. 일부 실시예들에서, 매니페스트 (1300)는 고객이 배송가능한 스토리지 디바이스 (100)를 인증하기 위해 사용하는 보안 정보 (1302)를 포함한다. 예를 들어, 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100)로부터의 보안 정보를 획득한 것에 기초하여 배송가능한 스토리지 디바이스 (100)를 인증하기 위해 매니페스트 (1300)로부터 인증서 또는 키를 사용할 수 있다.
일부 실시예들에서, 매니페스트 (1300)는 암호화된 키들 및/또는 데이터가 네트워크 (106)를 통하여 배송가능한 스토리지 디바이스 (100)에 전송되거나 또는 스토리지 서비스 제공자에 발송되기 전에 키들 및/또는 데이터를 암호화하기 위해 사용되는 하나 이상의 암호화 키들 (1304)을 포함한다. 암호화 키들 (1304)은 고객과 관련될 수 있고 및 스토리지 서비스 제공자 (102), 예컨대 키 데이터 (506) 또는 메타데이터 (508)의 하나 이상의 안전한 위치들에 저장될 수 있다. 유입 작업이 생성되기 전에 하나 이상의 암호화 키들 (1304)이 존재할 수 있다. 예를 들어, 암호화 키들 (1304)은 키 데이터 (506)에 저장될 수 있고 고객과 연관될 수 있다. 일부 경우들에서, 하나 이상의 암호화 키들 (1304) 은 유입 작업에 대한 요청에 응답하여 생성될 수 있고 고객과 연관될 수 있다.
하나 이상의 암호화 키들 (1304)은 배송가능한 스토리지 디바이스 (100)상에 저장되기 전에 데이터 전송 툴 (522)에 의해 생성된 하나 이상의 다른 암호화 키들을 암호화하기 위해 사용될 수 있다. 상이한 암호화 키들 (1304)이 배송가능한 스토리지 디바이스 (100)에 전송되기 전에 상이한 서브셋들의 암호화 키들을 암호화하기 위해 사용될 수 있다. 예를 들어, 각각의 암호화 키들 (1304a-n)은 데이터 전송 툴 (522)에 의해 생성된 상이한 서브셋의 암호화 키들을 암호화할 수 있다.
일부 실시예들에서, 각각의 암호화 키들 (1304)은 스토리지 서비스 제공자 (102)의 상이한 스토리지 위치에 대응할 수 있다. 예를 들어, 암호화 키 (1304a)는 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)의 제 1 버킷에 대응할 수 있고 암호화 키 (1304n)는 스토리지 디바이스 (502)의 제 2 버킷에 대응할 수 있다. 따라서, 암호화 키 (1304a)에 의해 암호화된 키와 관련된 임의의 서브셋의 데이터 (500)는 결국에는 제 1 버킷(복호화된 또는 암호화된 형태로)에 저장될 것이고 암호화 키 (1304n)에 의해 암호화된 키와 관련된 임의의 서브셋의 데이터 (500)은 결국에는 제 2 버킷에 저장될 것이다(복호화된 또는 암호화된 형태로). 게다가, 일부 경우들에서, 두개 이상의 암호화 키들 (1304)은 스토리지 디바이스 (502)의 동일한 위치와 관련될 수 있다. 일부 실시예들에서, 암호화 키들 (1304)은 암호화 키들을 대신하여 또는 그것에 추가하여 고객 데이터 (500)의 적어도 일부를 암호화하기 위해 사용된다.
다양한 실시예들에서, 매니페스트 (1300)는 데이터 유입 작업을 위해 사용되는 데이터 유입 작업 및/또는 배송가능한 스토리지 디바이스 (100)과 관련된 정보를 포함하는 작업 메타데이터 (1306)를 포함한다. 작업 메타데이터 (1306)는 고객 데이터 (500)의 상이한 부분들이 저장될 스토리지 서비스 제공자 (102)에 하나 이상의 위치들을 식별하는 정보, 예컨대 버킷 ID (1308) 및 버킷 ID (1310)를 포함할 수 있다. 더욱이, 각각의 위치 식별자는 하나 이상의 암호화 키들 (1304)과 관련될 수 있다. 예를 들어, 버킷 ID (1308)은 하나 이상의 암호화 키들 (1304)과 관련될 수 있고 버킷 ID (1310)은 하나 이상의 다른 암호화 키들 (1304)과 관련될 수 있다.
따라서, 일부 실시예들에서, 암호화 키 (1304a)와 관련된 고객 데이터 (500)의 부분들은 버킷 ID (1308)에 대응하는 스토리지 디바이스 (502)의 버킷에 저장될 것이고 키 (1304n)와 관련되는 고객 데이터 (500)의 부분들은 버킷 ID (1310)에 대응하는 스토리지 디바이스 (502) 의 버킷에 저장될 것이다. 비록 대표적 실시예가 두개의 버킷 ID들 및 두개의 대응하는 버킷들을 구현하지만, 임의의 다른 수의 버킷 ID들 및 버킷들이 구현될 수 있다. 더구나, 하나 이상의 암호화 키들 (1304)를 스토리지 서비스 제공자의 스토리지 디바이스 (502) 내 대응하는 하나 이상의 스토리지 위치들에 연관시키기 위해 임의의 다른 적절한 매핑 기법이 구현될 수 있다.
다양한 실시예들에서, 작업 메타데이터 (1306)는 특정 데이터 유입 작업과 관련된 추가 정보를 포함할 수 있다. 예를 들어, 작업 메타데이터 (1306)는 배송가능한 스토리지 디바이스 (100)를 이용하여 고객 데이터 (500)를 유입하는 것과 관련된 특정 데이터 유입 작업을 식별하는 디바이스 ID 또는 작업 ID를 포함할 수 있다.
도 14는 일부 실시예들에 따른 배송가능한 스토리지 디바이스 상에 암호화된 데이터를 저장하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들은 데이터 전송 툴 (522)에 의해 수행될 수 있다.
블럭 (1402)에서, 데이터 전송 툴 (522)은 스토리지 서비스 제공자 (102)로 유입될 고객 네트워크 (104) 상의 데이터 (500)를 식별한다. 일부 실시예들에서, 데이터 전송 툴 (522)은 예컨대 데이터 전송 툴 (522)과 관련된 유저 인터페이스에 의해 유입될 데이터(500)의 표시를 수신할 수 있다. 일부 경우들에서, 데이터 전송 툴 (522)은 작업 매니페스트 (1300)내 정보에 기초하여 유입될 데이터 (500)의 적어도 일부를 결정한다.
블럭 (1404)에서, 데이터 전송 툴 (522)은 프로세싱을 위해 식별된 데이터(500)을 획득한다. 예를 들어, 데이터 전송 툴 (522)은 식별된 데이터 (500)를 데이터 전송 툴 (522)과 관련된 메모리의 하나 이상의 부분들로 복사할 수 있다. 일부 실시예들에서, 데이터 전송 툴 (522)은 고객 네트워크 (104)와 관련된 파일 시스템 또는 가상 파일 시스템에 식별된 데이터를 복사한다. 다양한 실시예들에서, 데이터 전송 툴 (522)은 식별된 데이터 (500)를 식별된 데이터 (500) 저장, 암호화 및 프로세싱을 위해 적절한 임의의 유형의 스토리지 위치 또는 파일 시스템에 복사할 수 있다. 데이터 (500)의 적어도 일부는 컴퓨팅 디바이스 (1102)와 관련된 메모리 (1104) 및/또는 다른 스토리지 디바이스들에 저장될 수 있다. 따라서, 데이터 전송 툴 (522)은 데이터 전송 툴의 프로세싱 결과들 저장, 데이터 (500) 복사본의 수신, 및 암호화된 데이터 및 키들을 배송가능한 스토리지 디바이스 (100)로 전송하는 것이 가능한 휘발성 및/또는 비 휘발성 메모리의 임의의 조합을 사용할 수 있다.
블럭 (1406)에서, 데이터 전송 툴 (522)은 식별된 데이터(500)을 암호화한다. 일부 실시예들에서, 데이터 전송 툴 (522)은 식별된 데이터 (500) 및/또는 생성된 암호화 키들을 암호화하기 위한 암호화 키들을 생성한다. 일부 경우들에서, 데이터 전송 툴 (522)은 암호화 키들로부터 획득된 매니페스트 (1300)로부터 획득된 암호화 키들을 이용하여 식별된 데이터 (500) 및/또는 암호화 키들의 적어도 일부를 암호화한다. 블럭 (1408)에서, 데이터 전송 툴 (522)은 암호화된 데이터 및 암호화된 키들을 배송가능한 스토리지 디바이스 (100)에 저장한다(예를 들어, 전송한다).
일부 실시예들에서, 데이터 전송 툴 (522)은 암호화된 데이터를 배송가능한 스토리지 디바이스로 전송하고 다른 기능들을 수행하기 위해 배송가능한 스토리지 디바이스 (100) 상에 API (애플리케이션 프로그래밍 인터페이스) 를 통하여 통신한다. 따라서, 데이터는 데이터 전송 툴 (522)로부터 풀(pull)될 수 있거나 또는 툴로 푸시(push)될 수 있다. 일부 경우들에서, 가상 파일 시스템은 데이터 전송 툴 (522)을 호스트하는 컴퓨팅 디바이스 (1102)상에 마운트된다. 표준 시스템 복사 명령들이 그런 다음 파일들을 가상 파일 시스템에 그리고 배송가능한 스토리지 디바이스 (100) 상에 전송하기 위해 사용될 수 있다 (따라서, 데이터를 툴로 푸시하는). 다양한 실시예들에서, 데이터 전송 툴 (522)은 그것 자체의 API를 제공할 수 있어서 API 호출이 데이터 전송 툴 (522)에 이루어질 수 있다 (예를 들어, 데이터를 툴로 푸시하는 풋 명령(put command)).
도 15는 일부 실시예들에 따른 데이터 및 키들을 암호화하고 암호화된 데이터 및 암호화된 키들을 배송가능한 스토리지 디바이스(100) 상에 저장하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들은 데이터 전송 툴 (522)을 통하여 수행될 수 있다. 다양한 실시예들에서, 데이터 전송 툴 (522)은 데이터를 암호화하기 위한 키들을 생성하기 위해 임의의 적절한 기술을 이용하여 암호화 키들을 생성한다.
블럭 (1502)에서, 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100)으로 전송될 데이터 (500)의 각각의 파일에 대한 파일 키를 생성한다. 실시예들에서, 특정 파일에 대하여 생성된 파일 키는 특정 파일의 실제 데이터를 암호화하는 다른 암호화 키들 (예를 들어, 청크 키(chunk key)들)을 암호화하기 위해 사용될 수 있다. 다른 실시예들에서, 특정 파일에 대하여 생성된 파일 키는 파일의 데이터를 암호화하기 위해 사용된다. 일부 경우들에서, 데이터 (500)의 각각의 파일은 데이터의 두개 이상의 청크들로 분할되는 것이 가능한 데이터 전송 툴 (522)에 의해 식별된 데이터 (500)의 부분이다. 일부 실시예들에서, 데이터 (500)의 파일은 데이터의 파일 및 파일과 관련된 하나 이상의 특성들 (예를 들어, 파일과 관련된 경로, 파일 사이즈, 파일 유형)을 설명하는 추가 메타데이터를 포함하는 오브젝트일 수 있다.
일부 실시예들에서, 각각의 파일 키는 가상 파일 시스템내 파일들에 대하여 생성된 파일 키들에 대하여 유일할 수 있다. 일부 경우들에서, 동일한 파일 키는 두개 이상의 파일들에 대한 데이터 및/또는 청크 키들을 암호화하기 위해 사용될 수 있다. 예를 들어, 제 1 파일 키는 제 1 그룹의 파일들과의 사용을 위해 생성될 수 있고, 제 2 파일 키는 제 2 그룹의 파일들과 사용을 위해 생성될 수 있다, 등등. 이런 식으로, 프로세싱 시간은 축소될 수 있고 키들을 생성하기 위해 더 적은 프로세싱 자원들이 요구될 수 있다.
블럭 (1504)에서, 데이터 전송 툴 (522)은 각각의 파일을 다수의 데이터 청크들로 파티션한다(partition). 따라서, 일부 실시예들에서, 각각의 파일은 데이터의 두개 이상의 청크들로 분리될 수 있다. 일부 경우들에서, 특정 파일에 대한 데이터의 각각의 청크는 동일한 사이즈 또는 대략 동일한 사이즈일 수 있다. 일부 실시예들에서, 메타데이터가 각각의 청크에 추가될 수 있다 (예를 들어, 청크가 만들어진 파일, 청크와 관련된 청크 키 또는 청크 키 ID, 청크와 관련된 파일 키 또는 파일 키 ID, 청크 순서, 및/또는 나중에 파일로 다시 어셈블리 하기 위한 시퀀스 번호).
블럭 (1506)에서, 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100)으로 전송될 데이터의 각각의 청크에 대한 청크 키를 생성한다. 실시예들에서, 각각의 청크 키는 청크가 배송가능한 스토리지 디바이스 (100)으로 전송되기 전에 대응하는 청크를 암호화한다.
일부 실시예들에서, 각각의 청크 키는 가상 파일 시스템내 파일들에 대하여 생성된 청크 키들에 대하여 유일할 수 있다. 일부 경우들에서, 동일한 청크 키가 특정 파일로부터의 두개 이상의 청크들에 대하여 사용될 수 있다. 예를 들어, 제 1 청크 키는 특정 파일로부터의 제 1 그룹의 청크들을 위해 생성될 수 있고, 제 2 청크 키는 특정 파일로부터의 제 2 그룹의 청크들을 위해 생성될 수 있다, 등등. 일부 실시예들에서, 제 1 파일에 대하여 생성된 하나 이상의 청크 키들은 하나 이상의 다른 파일들을 위하여 또한 사용될 수 있다. 상기의 기술들의 일부를 이용하여, 프로세싱 시간은 축소될 수 있고 더 적은 청크 키들이 생성되기 때문에 더 적은 프로세싱 자원들이 요구될 수 있다.
블럭 (1508)에서, 데이터 전송 툴 (522)은 청크 키들을 이용하여 청크들을 암호화한다. 일부 실시예들에서, 각각의 청크 키가 대응하는 청크에 할당되고 대응하는 청크를 암호화한다. 일부 실시예들에서, 특정한 청크 키는 두개 이상의 청크들을 암호화할 수 있다.
블럭 (1510)에서, 데이터 전송 툴 (522)은 파일 키들을 이용하여 청크 키들을 암호화한다. 따라서, 각각의 파일 키는 대응하는 파일과 관련된 다수의 청크 키들을 암호화할 수 있다. 일부 실시예들에서, 만약 데이터 전송 툴 (522)이 특정 파일의 사이즈가 임계값 사이즈 아래이다라고 결정하면, 그러면 데이터 전송 툴 (522)은 특정 파일 키와 관련된 암호화된 청크들을 암호화한다. 이런 경우들에서, 데이터 전송 툴 (522)은 관련된 파일 키를 이용하여 특정 파일과 관련된 청크 키들을 암호화할 수 있거나 또는 암호화하지 않을 수 있다.
블럭 (1512)에서, 데이터 전송 툴 (522)은 매니페스트 (1300)로부터 획득된 버킷 들을 이용하여 파일 키들을 암호화한다. 일부 실시예들에서, 각각의 파일은 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)상에 대응하는 버킷내 스토리지에 대하여 할당되고 따라서 각각의 파일 키는 대응하는 파일이 저장될 버킷과 관련된 버킷 키에 할당된다. 예를 들어, 제 1 파일은 하나 이상의 버킷 키들과 관련된 제 1 버킷에 저장되도록 할당될 수 있다. 따라서, 제 1 파일에 대응하는 파일 키는 하나 이상의 버킷 키들 중 하나에 의해 암호화될 수 있다.
다양한 실시예들에서, 암호화의 임의 개수의 추가 레벨들이 데이터 전송 툴 (522)에 의해 생성된 키들 및/또는 매니페스트 (1300)로부터 획득된 키들을 암호화하기 위해 사용될 수 있다. 예를 들어, 데이터 전송 툴 (522)은 파일 키들을 암호화하기 위해 사용되는 제 1 추가 레벨 하나 이상의 키들을 생성할 수 있다. 그런다음, 버킷 키들은 파일 키들을 암호화하는 대신에 하나 이상의 키들의 제 1 추가 레벨을 암호화하기 위해 사용된다. 다른 예로서, 데이터 전송 툴 (522)은 제 1 추가 레벨의 하나 이상의 대응하는 키들을 암호화하기 위해 하나 이상의 키들의 제 2 추가 레벨을 생성할 수 있고, 제 1 추가의 레벨의 키들은 파일 키들을 암호화한다.
일부 실시예들에서, 버킷 키들은 스토리지 서비스 제공자 (102)에 의해 안전하게 저장되고 매니페스트 (1300)로부터 획득된 파일 키들을 암호화함으로써 데이터 전송 툴 (522)에 일시적으로 이용가능하게 된다. 따라서, 실시예들에서, 버킷 키들은 버킷 키들이 암호화를 위해 사용된 후에 짧은 시간 기간 내에 데이터 전송 툴 및 컴퓨팅 디바이스 (1102)와 관련된 메모리로부터 삭제된다. 일부 실시예들에서, 버킷 키는 데이터 및/또는 키들의 하나 이상의 다른 부분들을 암호화하기 위해 또한 사용된다. 예를 들어, 버킷 키들은 다른 데이터, 키들, 암호화된 키들, 및/또는 암호화된 청크들을 암호화하기 위해 사용될 수 있다.
블럭 (1514)에서, 데이터 전송 툴 (522)은 암호화된 청크들, 암호화된 청크 키들, 및 암호화된 파일 키들을 배송가능한 스토리지 디바이스 (100)에 전송한다. 전송이 완료되었다는 결정에 응답하여, 데이터 전송 툴 (522)은 그런 다음 배송가능한 스토리지 디바이스 (100)가 스토리지 서비스 제공자 (102)로 배송을 위해 준비가 된 표시를 제공할 수 있다. 예를 들어, 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100)가 고객 네트워크 (104)의 하나 이상의 서비스들 또는 디바이스들에 통지를 발송할 있거나 또는 배송을 위해 준비가 되었다는 메시지를 유저 인터페이스가 디스플레이 하게끔 할 수 있다. 다양한 실시예들에서, 파일 키들은 생성되지 않는다. 이런 경우들에서, 하나 이상의 버킷 키들이 청크 키들을 암호화하기 위해 사용될 수 있고 그런 다음 데이터 전송 툴 (522)은 암호화된 청크들을 배송가능한 스토리지 디바이스 (100)로 전송하고 또한 전송 암호화된 청크 키들을 배송가능한 스토리지 디바이스 (100)로 전송할 수 있다.
일부 실시예들에서, 데이터 전송 툴 (522)은 임의의 데이터 (500) 또는 키들을 암호화되지 않은 형태로 배송가능한 스토리지 디바이스 (100) 상으로 전송하지 않는다. 예를 들어, 데이터 전송 툴 (522)은 청크들, 청크 키들, 및 파일 키들을 암호화되지 않은 형태로 저장하지 않고 암호화된 청크들, 암호화된 청크 키들, 및 암호화된 파일 키들을 저장할 수 있다.
다양한 실시예들에서, 데이터 전송 툴 (522)은 암호화된 청크 키들 및 암호화된 파일 키들을 배송가능한 스토리지 디바이스 (100)로 전송하지 않고 암호화된 청크들을 배송가능한 스토리지 디바이스 (100)로 전송할 수 있다. 데이터 전송 툴 (522)은 그런 다음 배송가능한 스토리지 디바이스 (100)로부터 분리된 네트워크 (106)를 통하여 암호화된 청크 키들 및 암호화된 파일 키들을 데이터 스토리지 서비스 제공자 (102)로 발송할 수 있다. 다양한 실시예들에서, 데이터 전송 툴 (522)은 암호되지 않은 형태로 (그러나 보안 연결 내에서) 또는 스토리지 서비스 제공자 (102)상에 저장된 하나 이상의 고객-할당 키들에 의해 암호화된 형태로 네트워크 (106)를 통하여 파일 키들 및/또는 청크 키들을 데이터 스토리지 서비스 제공자 (102)에 발송할 수 있다.
일부 실시예들에서, 데이터 전송 툴 (522)은 고객 네트워크 (104)에 부착된 다수의 배송가능한 스토리지 디바이스 (100)를 발견한다. 데이터 전송 툴 (522)은 그런 다음 암호화된 청크들, 암호화된 청크 키들, 및/또는 암호화된 파일 키들을 복수의 배송가능한 스토리지 디바이스들로 전송하기 위한 데이터 전송 계획을 결정할 수 있다. 데이터 전송 계획에 기초하여, 데이터 전송 툴 (522)은 암호화된 청크들, 암호화된 청크 키들, 및/또는 암호화된 파일 키들의 상이한 부분을 다수의 배송가능한 스토리지 디바이스들(100) 각각으로 전송할 수 있다. 더욱이, 두개 이상의 배송가능한 스토리지 디바이스들 (100)로의 전송이 병렬로 (예를 들어, 동시에) 일어날 수 있다. 데이터 전송 계획은 하나 이상의 배송가능한 스토리지 디바이스들 (100)와 관련된 전송 속도, 하나 이상의 배송가능한 스토리지 디바이스들 (100)의 이용 가능한 스토리지 용량, 및 식별된 데이터 (500)의 적어도 일부의 소스의 하나 이상의 특성들 (예를 들어, 데이터 (500)가 저장된 스토리지 디바이스의 유형, 데이터 (500)의 포맷), 및 식별된 데이터 (500)의 적어도 일부의 목적지의 하나 이상의 특성들 (예를 들어, 원격 스토리지 서비스 제공자 (102)에서 데이터 (500)가 저장될 스토리지 디바이스의 유형, 원격 스토리지 서비스 제공자 (102)에서 그것이 저장될 때 데이터(500)의 포맷)을 포함하여 하나 이상의 요인들에 기반될 수 있다.
도 16은 일부 실시예들에 따른 암호화된 샤드(shard)들을 상이한 배송가능한 스토리지 디바이스들(100) 상에 저장하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들은 데이터 전송 툴 (522)을 통하여 수행될 수 있다.
블럭 (1602)에서, 데이터 전송 툴 (522)은 스토리지 서비스 제공자 (102)로 유입될 고객 네트워크 (104) 상의 데이터 (500)를 식별한다. 일부 실시예들에서, 데이터 전송 툴 (522)은 예컨대 데이터 전송 툴 (522)과 관련된 유저 인터페이스에 의해 유입될 데이터(500)의 표시를 수신할 수 있다. 일부 경우들에서, 데이터 전송 툴 (522)은 작업 매니페스트 (1300)내 정보에 기초하여 유입될 데이터 (500)를 결정한다.
블럭 (1604)에서, 데이터 전송 툴 (522)은 프로세싱을 위해 식별된 데이터(500)을 획득한다. 예를 들어, 데이터 전송 툴 (522)은 식별된 데이터 (500)를 데이터 전송 툴 (522)과 관련된 메모리의 하나 이상의 부분들로 복사할 수 있다.
블럭 (1606)에서, 데이터 전송 툴 (522)은 이중화 인코딩 기법(redundancy encoding scheme)에 기초하여 획득된 데이터에 대한 샤드들 (예를 들어, 식별된 데이터 (500)의 단편들)을 생성한다. 일부 실시예들에서, 데이터 전송 툴 (522)은 두개 이상의 샤드들을 생성할 수 있고, 암호화된 후에, 두개 이상의 샤드들의 각각은 고객 네트워크 (104)에 부착된 두개 이상의 대응하는 배송가능한 스토리지 디바이스들 (100)에 저장될 것이다. 실시예들에서, 데이터 전송 툴 (522)은 이중화 인코딩 기술 (예를 들어, 삭제 코딩)을 식별된 데이터 (500)에 두개 이상의 샤드들을 생성한다. 일부 실시예들에서, 식별된 데이터는 두개 이상의 샤드들로 쪼개질 수 있고 중복 데이터의 부분들로 인코딩될 수 있다. 두개 이상의 샤드들이 스토리지 서비스 제공자 (102)에 의해 수신되고 복호화된 때, 식별된 데이터 (500)는 두개 이상의 샤드들로부터 복원될 수 있고 스토리지 서비스 제공자 (102)에 유입될 수 있다.
블럭 (1608)에서, 데이터 전송 툴 (522)은 각각의 생성된 샤드들을 암호화한다. 일부 실시예들에서, 생성된 샤드들의 각각의 암호화는 도 15에 대하여 설명된 암호화와 동일 또는 유사한 방식으로 수행된다. 일부 실시예들에서, 각각의 샤드는 암호화되기 전에 하나의 파일로 처리된다. 일부 경우들에서, 각각의 샤드는 암호화되기 전에 두개 이상의 파일들로 분열된다.
블럭 (1610)에서, 데이터 전송 툴 (522)은 샤드들 중에 저장된 데이터를 재구성할 것이 요구되는 샤드들의 최소 수에 기초하여 스토리지 서비스 제공자 (102)로 유입할 암호화된 샤드들의 서브셋을 결정한다. 예를 들어, 만약 열개 샤드들 중 여섯개의 최소수가 요구되면, 그러면 데이터 전송 툴 (522)은 스토리지 서비스 제공자로 유입될 10개 전체 샤드들 중 적어도 여섯개를 결정할 수 있다. 실시예들에서, 하나 이상의 샤드들이 배송 동안에 손실되거나 또는 인터셉트된 경우에 하나 이상의 샤드들이 고객에 의해 저장되어 있다 (예를 들어, 고객 네트워크와 관련된 하나 이상의 스토리지 디바이스들).
블럭 (1612)에서, 데이터 전송 툴 (522)은 암호화된 샤드들의 서브셋의 각각의 암호화된 샤드를 대응하는 배송가능한 스토리지 디바이스 (100)에 할당한다. 블럭 (1614)에서, 데이터 전송 툴 (522)은 각각의 할당된 암호화된 샤드들을 대응하는 배송가능한 스토리지 디바이스 (100)에 저장한다. 데이터 전송 툴 (522)은 암호화된 샤드들 중 두개 이상을 두개 이상의 대응하는 배송가능한 스토리지 디바이스들 (100)로 병렬로 전송할 수 있다. 병렬로 전송하는 것은 전송을 위해 요구된 시간의 양을 줄일 수 있다. 일부 실시예들에서, 만약 대응하는 배송가능한 스토리지 디바이스 (100) 중 하나 이상이 고객 네트워크 (104)에 부착되지 않으면, 그러면 데이터 전송 툴 (522)은 대응하는 배송가능한 스토리지 디바이스들 (100) 중 하나 이상이 수신되어 고객 네트워크 (104)에 부착될 때까지 고객 네트워크 (104)에서 가상 파일 시스템 또는 다른 스토리지 위치에 대응하는 암호화된 샤드들을 저장된 채로 유지한다.
도 17은 일부 실시예들에 따른 청크 키들(1702)을 이용하여 청크들(1700)을 암호화하기 위한 프로세스를 예시한다. 예시된 프로세스의 하나 이상의 부분들은 데이터 전송 툴 (522)을 통하여 수행될 수 있다. 데이터 전송 툴 (522)은 암호화되어 배송가능한 스토리지 디바이스 (100)로 복사될 고객 데이터 (500)을 식별할 수 있다. 식별된 고객 데이터 (500)은 적어도 하나의 파일 (1704)을 포함할 수 있다. 일부 실시예들에서, 데이터 전송 툴 (522)은 고객 데이터 (500)의 임의의 프로세싱 또는 암호화가 수행되기 전에 식별된 고객 데이터 (500)를 가상 파일 시스템에 복사한다.
일부 실시예들에서, 데이터 전송 툴 (522)은 소정의 파일 (1704)을 두개 이상의 상이한 청크들 (1700)로 분할한다. 예를 들어, 데이터 전송 툴 (522)은 파일 (1704)을 n 청크들 (1700)로 분할 할 수 있다. 일부 실시예들에서, 각각의 청크 (1700)는 동등한 사이즈 또는 대략 동등한 사이즈 (예를 들어, 1 메가바이트, 1 기가바이트, 등)를 가질 수 있다. 각각의 청크 (1700)는 청크 (1700)가 속하는 파일 (1704)를 식별하는 추가 정보를 포함할 수 있다. 추가 정보는 또한 청크 (1700)가 다른 청크들에 관하여 어떤 순서인지를 표시할 수 있고 (예를 들어, 시퀀스 번호), 이는 나중에 청크들 (1700)을 파일 (1704)로 다시 어셈블링할 때 사용될 수 있다.
다양한 실시예들에서, 데이터 전송 툴 (522)은 각각의 청크에 대하여 청크 키 (1702)를 생성하고 각각의 청크 (1700)는 대응하는 청크 키 (1702)롤 암호화되어 암호화된 청크 (1706)를 생성한다. 예를 들어, 청크 (1700a)는 청크 키 (1702a)로 암호화될 수 있다 암호화된 청크 (1706a)를 생성한다. 일부 실시예들에서, 청크 키들 (1702)의 각각은 다른 청크 키들 (1702)과 다르다. 예를 들어, 청크 키 (1702a)는 청크 키 (1702b)와 상이할 수 있다. 다른 실시예들에서, 청크 키들 (1702)의 각각은 동일한 키일 수 있다. 더구나, 일부 실시예들에서, 청크 키들 (1702) 중 적어도 두개가 동일하다. 예를 들어, 청크 키 (1702a)는 청크 키 (1702b)와 동일할 수 있다. 따라서, 일부 실시예들에서, 다수의 청크들 (1700)은 특정 청크 키 (1702)에 의해 암호화될 수 있다.
일부 실시예들에서, 파일 (1704)의 청크들 (1700)을 암호화하기 위해 사용되는 고유의 청크 키들 (1702)의 수는 파일 (1704)의 사이즈에 의존한다. 예를 들어, 만약 파일 (1704)이 임계값 사이즈 (예를 들어, 일 기가바이트) 보다 작으면, 그러면 각각의 청크 (1700)는 상이한 청크 키 (1702)에 의해 암호화될 수 있다. 만약 파일 (1704)이 임계값 사이즈 (예를 들어, 일 기가바이트) 와 같거나 또는 더 크면, 그러면 특정 수의 청크들 (1700)은 각각의 고유의 청크 키 (1702)에 의해 암호화될 수 있다. 예를 들어, 사이즈가 일 기가바이트보다 더 큰 파일 (1704)에 대하여, 각각의 고유의 청크 키 (1702)는 두개의 청크들 (1700)을 암호화하기 위해 사용될 수 있다 (홀수의 청크들이 있는 경우 외에는, 하나의 청크는 특정 키에 의해 암호화될 수 있다).
더욱이, 일부 실시예들에서, 임의 개수의 청크들은 각각의 고유의 청크 키에 할당될 수 있다. 일부 경우들에서, 만약 파일 (1704)이 임계값 사이즈 (예를 들어, 일 기가바이트)와 같거나 또는 더 크면, 그러면 하나의 고유 청크 키 (1702)는 파일 (1704)의 특정 부분내에 모든 청크들 (1700)을 암호화하기 위해 사용될 수 있다. 예를 들어, 제 1 청크 키 (1206)는 파일 (1704)의 제 1 기가바이트내 모든 청크들을 암호화하기 위해 사용될 수 있고, 제 2 청크 키 (1206)는 파일 (1704)의 제 2 기가바이트내에 모든 청크들을 암호화하기 위해 사용될 수 있고, 제 3 청크 키 (1206)는 파일 (1704)의 제 3 기가바이트내 모든 청크들을 암호화하기 위해 사용될 수 있다 (또는 파일 (1704)의 나머지, 만약 일 기가바이트보다 작게 남으면).
일부 실시예들에서, 각각의 청크 키 (1702)가 대응하는 청크 (1700)를 암호한 후에, 청크 키 (1702)는 다른 키로 암호화되고 그런 다음 저장되거나 또는 다른식으로, 암호화된 청크 (1700)와 관련된다. 예를 들어, 암호화된 청크 키는 암호화된 청크 (1700)에 인접하여 또는 암호화된 청크 (1700)의 특정 오프셋내에 저장될 수 있다. 일부 실시예들에서, 암호화된 청크 (1700) 및 청크 키 (1702) 와 관련된 ID가 청크 키 (1702)를 암호화된 청크 (1700)와 연관시키기 위해 사용될 수 있고, 이는 나중 시간에 암호화된 청크들 (1208)을 복호화하기 위해 유용할 수 있다. 청크 키를 복호화하는 파일 키 (예를, 파일 키 ID)에 대한 식별자가 암호화된 청크 및/또는 암호화된 청크 키와 관련하여 또한 저장될 수 있다. 따라서, 실시예들에서, 프로비전 및 입수 서비스 (520)는 각각의 암호화된 청크에 대하여, 청크를 복호화하기 위한 대응하는 청크 키 뿐만 아니라 청크 키를 복호화하기 위한 대응하는 파일 키를 결정할 수 있다.
더욱이, 실시예들에서, 암호화된 청크들 (1706)은 청크들의 서브셋들로 구조화되고, 여기서 각각의 서브셋은 특정한 파일 (1704)에 대응한다. 일부 실시예들에서, 파일 레코드가 각각의 파일 (1704)에 대하여 생성된다. 파일 레코드는 파일 (1704)과 관련된 데이터 및 메타데이터를 포함할 수 있다. 예를 들어, 메타데이터는 파일 (1704)이 유입되기 위해 할당된 스토리지 서비스 제공자 (102) 상에 특정 버킷에 대응하는 파일 키 ID 및 버킷 키 ID를 포함할 수 있다. 따라서, 스토리지 서비스 제공자에서 복호화하는 동안에, 프로비전 및 입수 서비스 (520)는 각각의 파일 레코드에 대하여, 파일을 형성하기 위해 어셈블리될 수 있는 대응하는 청크들을 결정할 수 있다 (예를 들어, 파일 레코드의 파일 키 ID에 일치하는 파일 키 ID들을 갖는 청크들을 발견함으로써).
일부 실시예들에서, 임의의 복호화가 일어나기 전에, 각각의 암호화된 청크는 암호화된 청크를 복호화하기 위해 사용되는 암호화된 청크 키(복호화된 형태로)와 연관되어 저장된다(예를 들어, 특정 오프셋내에 인접하여, 또는 다른 식으로, 관련된). 청크 키를 복호화하는 파일 키에 대한 식별자가 암호화된 청크 및/또는 암호화된 청크 키와 관련하여 또한 저장될 수 있다. 따라서, 실시예들에서, 프로비전 및 입수 서비스 (520)는 각각의 암호화된 청크에 대하여, 청크를 복호화하기 위한 대응하는 청크 키 뿐만 아니라 청크 키를 복호화하기 위한 대응하는 파일 키를 결정할 수 있다.
도 18은 일부 실시예들에 따른 파일 키들(1800)을 이용하여 청크 키들(1702)을 암호화하기 위한 프로세스를 예시한다. 예시된 프로세스의 하나 이상의 부분들은 데이터 전송 툴 (522)을 통하여 수행될 수 있다. 실시예들에서, 데이터 전송 툴 (522)은 각각의 파일 (1704)에 대하여 파일 키 (1800)를 생성한다. 따라서, 파일 키 (1800)는 파일 (1704)과 관련될 수 있다. 파일 키 (1800)는 암호화된 청크 키들 (1802a 내지 1802n)을 생성하기 위해 청크 키들 (1702a 내지 1702n)을 암호화하기 위해 사용될 수 있다. 더구나, 일부 실시예들에서, 만약 파일 (1704)이 임계값 사이즈 (예를 들어, 일 기가바이트)보다 작으면, 그러면 파일 키 (1800)는 암호화된 청크들 (1706)을 암호화하기 위해 사용될 수 있다.
도 19는 일부 실시예들에 따른 버킷 키들(1900)을 이용하여 파일 키들(1800)을 암호화하기 위한 프로세스를 예시한다. 파일 키들 (1800a 내지 1800n)은 가상 파일 시스템내 고객 데이터 (500)의 대응하는 파일과 각각 관련될 수 있다. 버킷 키 (1900)는 매니페스트 (1300)로부터 획득될 수 있고 파일 키들 (1800a 내지 1800n)을 암호화하기 위해 사용되고 암호화된 파일 키들 (1902a 내지 1902n)을 생성한다.
일부 실시예들에서, 파일 키들 (1800a 내지 1800n)와 관련된 파일들은 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)의 특정 스토리지 위치에 할당된다. 예를 들어, 파일 키들 (1800a 내지 1800n)와 관련된 파일들은 스토리지 디바이스 (502)의 특정 벗킷에 할당될 수 있다. 더구나, 버킷 키 (1900)는 특정 버킷에 또한 할당될 수 있다. 파일 키들 (1800) 및 버킷 키 (1900)가 동일한 버킷에 둘다 할당되기 때문에, 버킷 키 (1900)는 파일 키들 (1800a 내지 1800n)을 암호화하기 위해 사용될 수 있다. 유사하게, 스토리지 디바이스 (502)의 상이한 버킷에 저장될 고객 데이터 (500)의 다른 파일들은 상이한 버킷에 대응하는 다른 버킷 키들로 암호화될 수 있다.
일부 실시예들에서, 다수의 버킷 키들이 각각의 버킷에 할당된다. 따라서, 특정 버킷에서 스토리지에 예정된 일부 파일들은 특정 버킷과 관련된 제 1 버킷 키로 암호화될 수 있지만 동일한 버킷에서 스토리지에 예정된 다른 파일들은 특정 버킷과 관련된 제 2 버킷 키로 암호화될 수 있다. 다양한 실시예들에서, 임의 개수의 버킷 키들이 각각의 버킷에 할당될 수 있다 (예를 들어, 2, 10, 등).
도 20은 일부 실시예들에 따른 데이터 유입 작업과 관련된 암호화 키들간의 관계의 로직 블럭 다이어그램이다. 일부 실시예들에서, 하나 이상의 위치 키들이 매니페스트 (1300)로부터 획득되고, 각각의 위치 키는 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)상에 데이터를 저장하기 위한 위치에 대응한다. 예를 들어, 버킷 키들 (1900a-n)은 매니페스트 (1300)로부터 획득될 수 있다. 버킷 키들 (1900a-n)은 데이터 (506)와 같은 데이터 스토리지 제공자 (102)의 보안 위치에 또한 저장될 수 있다.
일부 실시예들에서, 각각의 버킷 키 (1900)는 하나 이상의 파일 키들 (1800a-n)을 암호화하기 위해 사용된다. 일부 경우들에서, 하나 이상의 파일 키들 (1800a-n)은 고객 네트워크 (104)에서, 예컨대 데이터 전송 툴 (522)에 의해 생성된다. 일부 실시예들에서, 하나 이상의 파일 키들 (1800a-n)의 적어도 일부는 스토리지 서비스 제공자 (102)로부터, 예컨대 매니페스트 (1300)를 통하여 획득된다.
일부 경우들에서, 각각의 파일 키 (1800)는 하나 이상의 청크 키들 (1700a-n)을 암호화하기 위해 사용된다. 상기에서 논의된 바와 같이, 일부 실시예들에서, 하나 이상의 추가 중간 레벨들의 파일 키들 (1800)이 버킷 키들 (1900)과 청크 키들 (1702) 간에 암호화의 잉여 레벨(extra level)들을 추가하기 위해 사용될 수 있다. 일부 경우들에서, 하나 이상의 청크 키들 (1700a-n)은 고객 네트워크 (104)에서, 예컨대 데이터 전송 툴 (522)에 의해 생성된다. 일부 실시예들에서, 하나 이상의 청크 키들 (1700a-n)의 적어도 일부는 스토리지 서비스 제공자 (102)로부터, 예컨대 매니페스트 (1300)를 통하여 획득된다.
도 21는 일부 실시예들에 따른 스토리지 서비스 제공자(102)에 배송을 준비하는 배송가능한 스토리지 디바이스(100)의 로직 블럭 다이어그램이다. 데이터 전송 툴 (522)이 고객 데이터 (500) 및 암호화 키들의 암호화를 완료한 후에, 데이터 전송 툴 (522)은 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104)을 가상 파일 시스템으로부터 배송가능한 스토리지 디바이스 (100)의 영구 데이터 스토리지 (902)로 전송할 수 있다.
다양한 실시예들에서, 영구 데이터 스토리지 (902)는 도 9에 대하여 상기에서 설명된 추가의 데이터 예컨대 어드레스 정보 (904) 및 보안 정보 (906)를 또한 포함할 수 있다. 디스플레이 (108)는 어드레스 정보 (904)로부터 획득된 스토리지 서버 제공자 어드레스 (2200)를 또한 디스플레이할 수 있다. 예를 들어, 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104) 수신에 응답하여, 배송가능한 스토리지 디바이스 (100)는 디스플레이 (108) 상에 스토리지 서비스 제공자 (102)의 어드레스를 디스플레이 할 수 있다. 일부 경우들에서, 데이터 전송 툴 (522)은 디스플레이 (108)를 위해 배송가능한 스토리지 디바이스 (100)에 스토리지 서버 제공자 어드레스 (2200)를 발송할 수 있다.
암호화된 청크들 (1902) 또는 암호화된 키들을 복호화하기 위해 배송가능한 스토리지 디바이스 (100) 상에 저장된 어떠한 키도 없기 때문에, 영구 데이터 스토리지 (902) 수송 및 액세스들 동안에 어떻게든 디바이스를 획득한 제 3 자는 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104)을 복호화할 수 없다. 일부 실시예들에서, 영구 데이터 스토리지 (902)내 다른 데이터의 일부 또는 전부가 또한 암호화된다. 예를 들어, 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스 (100)로부터 어드레스 정보 (706), 보안 정보 (708), 또는 다른 정보를 포함하여 임의의 다른 데이터를 복사/제거할 수 있고, 데이터를 암호화할 수 있고 (예를 들어, 버킷 키 (1900) 또는 다른 키로), 그런 다음 암호화된 데이터를 스토리지 디바이스 (100) 상에 저장할 수 있다. 일부 경우들에서, 어드레스 정보 및/또는 보안 정보의 적어도 일부 부분들은 명백한 텍스트 형태로 있을 수 있다. 예를 들어, 어드레스 정보는 목적지 어드레스가 디스플레이 (108) 상에 디스플레이되도록 하기 위해 명백한 텍스트 형태로 저장될 수 있다.
도 22는 일부 실시예들에 따른 스토리지 서비스 제공자(102)에서 배송가능한 스토리지 디바이스(100)를 수신하고 배송가능한 스토리지 디바이스(100)로부터 보안 데이터를 입수하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자 (102)에 의해, 예컨대 프로비전 및 입수 서비스 (520) 및/또는 다른 서비스들에 의해 수행될 수 있다.
더욱이, 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 두개 이상의 배송가능한 스토리지 디바이스들 (100)로부터 암호화된 데이터 및 키들을 검색한다. 예를 들어, 도면들 22, 23, 및/또는 24의 프로세스들은 직렬로 또는 동시에 병렬로 두개 이상의 배송가능한 스토리지 디바이스들에 대하여 수행될 수 있다. 두개 이상의 배송가능한 스토리지 디바이스들 (100)에 대하여 병렬로 임의의 프로세스들을 수행할 때, 스토리지 서비스 제공자 (102)로 데이터를 유입하기 위해 요구되는 시간의 양이 동일한 데이터를 직렬로 유입하거나 또는 단지 하나의 배송가능한 스토리지 디바이스 (100)를 이용하는 것에 비해 축소될 수 있다.
일부 실시예들에서, 두개 이상의 샤드들이 도 16에 대하여 설명된 두개 이상의 대응하는 배송가능한 스토리지 디바이스들 (100)상에 스토리지 서비스 제공자 (102)로 배송될 수 있다. 프로비전 및 입수 서비스 (520)가 각각의 두개 이상의 대응하는 배송가능한 스토리지 디바이스들 (100)로부터 모든 샤드들을 수신하고 복호화한 후에, 프로비전 및 입수 서비스 (520)는 그런 다음 스토리지 서비스 제공자 (102)로 유입될 데이터 (500)을 복원할 수 있다.
블럭 (2202)에서, 배송가능한 스토리지 디바이스 (100)를 수신 및 검사한 후에, 스토리지 서비스 제공자에서 유저는 배송가능한 스토리지 디바이스 (100)를 스토리지 서비스 제공자 (102)의 네트워크에 연결한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 배송가능한 스토리지 디바이스 (100)가 템퍼링(tamper)되지 않았는지 또는 손상되지 않았는지를 결정하기 위해 시각적으로 검사된다. 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 또한 디바이스와 물리적 컨택을 요구하지 않을 수 있는 하나 이상의 기술들을 이용하여 스캔될 수 있거나 또는 다른 식으로 검사될 수 있다.
배송가능한 스토리지 디바이스 (100)가 시각적 및/또는 물리적 검사를 통과한 후에, 디바이스는 네트워크에 연결될 수 있다. 일부 경우들에서, 스토리지 서비스 제공자 (102)의 가드 서비스(guard service)가 연결 후에 디바이스와 통신한다. 가드 서비스는 네트워크 공격 또는 소프트웨어 공격, 예컨대 소프트웨어 바이러스로부터 방지하기 위해 스토리지 서비스 제공자 (102)의 하나 이상의 다른 네트워크들로부터 논리적으로 및/또는 물리적으로 분리된 네트워크 상에서 운용될 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)로부터 디바이스 ID 또는 다른 정보를 획득한 것에 기초하여 배송가능한 스토리지 디바이스 (100)를 식별할 수 있다.
블럭 (2204)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 확인한다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)이 구성되고, 프로비저닝되고, 및 스토리지 서비스 제공자 (102)로부터 배송된 이후에 구성이 변경되었는지 여부를 결정한다. 일부 경우들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)이 구성되고, 고객으로부터 스토리지 서비스 제공자 (102)로 배송된 이후에 구성이 변경되었는지 여부를 결정한다. 배송가능한 스토리지 디바이스 (100)의 구성은 하나 이상의 컴포넌트들의 물리적 구성, 펌웨어 구성, 운영 체제 구성, 및 다른 소프트웨어 구성 중 하나 이상을 포함할 수 있다.
일부 실시예들에서, 스토리지 서비스 제공자 (102)는 TPM (360)와 통신하고 TPM (360)로부터 획득된 데이터를 분석함으로써 배송가능한 스토리지 디바이스 (100)의 구성이 적어도 부분적으로 변경되었는지 여부를 결정한다. TPM (360)으로부터 획득된 데이터는 분석에 기초하여 배송가능한 스토리지 디바이스 (100)가 템퍼링되었는지, 및/또는 제 3 자가 배송가능한 스토리지 디바이스 (100) 상에 데이터를 액세스하였는지를 표시할 수 있다.
만약 스토리지 서비스 제공자 (102)가 배송가능한 스토리지 디바이스 (100)의 구성이 변경되었다고 결정하면, 그러면 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 와이핑할 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)의 프로세싱이 보류될지 및 검사를 대기할 지를 표시한다.
블럭 (2206)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)와 관련된 데이터 유입 작업을 결정한다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)로부터 디바이스 ID (예를 들어, 배송가능한 스토리지 디바이스 (100)에 특정된 맥 어드레스)를 획득한 것에 기초하여 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)에 대한 유입 작업 ID (또는 다른 유입 작업 식별자)를 결정할 수 있다. 스토리지 서비스 제공자 (102)는 특정 유입 작업 (예를 들어, 작업 ID를 통하여)을 맥 어드레스와 연관시키는 데이터베이스 또는 다른 스토리지 레코드들을 가질 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 보안 정보(906)에 기초하여 배송가능한 스토리지 디바이스 (100)와 관련된 데이터 유입 작업을 결정한다.
블럭 (2208)에서, 배송가능한 스토리지 디바이스 (100)와 관련된 데이터 유입 작업을 결정한 것에 응답하여, 스토리지 서비스 제공자 (102)는 스토리지 서비스 제공자 (102)의 하나 이상의 스토리지 위치로부터의 식벽된 데이터 유입 작업과 관련된 보안 정보 및 암호화 키들 (예를 들어, 고객에 할당된 버킷 키들), 예컨대 키 데이터 (506) 및 메타데이터 (508)를 검색한다. 일부 경우들에서, 추가 스토리지 서비스 제공자 (102)가 데이터 유입 작업과 관련된 추가 데이터를 검색할 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 인증하기 위해 유입 작업 ID 및/또는 디바이스 ID를 보안 정보 (708)와 연관시키는 데이터베이스 또는 다른 스토리지 레코드들 뿐만 아니라 배송가능한 스토리지 디바이스 (100)상에 데이터를 암호화하기 위해 사용되었던 암호화 키들, 예컨대 버킷 키들 (1900)을 가질 수 있다. 일부 실시예들에서, 스토리지 서비스 제공자 (102)로부터 검색된 보안 정보는 배송가능한 스토리지 디바이스 (100)를 인증하기 위해 사용될 수 있는 루트 인증서 또는 키를 포함한다.
일부 실시예들에서, 스토리지 서비스 제공자 (102)는 스토리지 서비스 제공자 (102)의 스토리지 위치로부터 데이터 전송 툴 (522)에 의해 생성되었던 파일 키들 (1502) 중 적어도 일부 및/또는 청크 키들 (1206) 중 적어도 일부를 검색할 수 있다. 예를 들어, 일부 실시예들에서, 데이터 전송 툴 (522)은 그것들을 암호화하고 그것들을 배송가능한 스토리지 디바이스 상에 저장하는 대신에 생성된 파일 키들 (1502) 및/또는 생성된 청크 키들 (1206)의 적어도 일부를 스토리지 서비스 제공자 (102)에 송신할 수 있다.
블럭 (2210)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 인증하기 위해 검색된 보안 정보를 사용한다. 예를 들어, 스토리지 서비스 제공자 (102)는 보안 정보에서 발견된 루트 인증서 또는 키 및 배송가능한 스토리지 디바이스 (100)상에 저장된 대응하는 루트 인증서 또는 키에 기초하여 배송가능한 스토리지 디바이스 (100)를 인증할 수 있다. 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 유사한 인증을 수행할 수 있어서, 스토리지 서비스 제공자 (102) 및 배송가능한 스토리지 디바이스 (100)는 상호간에 인증한다.
실시예들에서, 배송가능한 스토리지 디바이스 (100)상에 보안 정보 (906)는 비대칭 키의 일 부분을 포함하는 인증서를 포함하고, 매니페스트 (1300)의 보안 정보(1302)는 비대칭 키의 다른 부분을 포함한다. 따라서, 인증은 공개-개인 키 쌍에 기반될 수 있다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)상에 보안 정보 (906)는 공개 및 개인 키둘 모두를 포함하고, 매니페스트 (1300)의 보안 정보(1302)는 상호 인증을 허용하는 대응하는 개인 및 대응하는 공개 키를 포함한다. 실시예들에서, 인증을 위해 사용되는 인증서는 배송가능한 스토리지 디바이스 (100)가 사용되고 있는 특정 데이터 유입 작업에 특정된다. 실시예들에서, 만약 데이터 전송 툴 (522)이 인증서에 기초하여 배송가능한 스토리지 디바이스 (100)를 인증할 수 없다면, 그러면 데이터 전송 툴 (522)은 배송가능한 스토리지 디바이스로 임의의 암호화되거나 또는 암호화되지 않은 데이터를 전송할 수 없다.
일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)를 인증하고 배송가능한 스토리지 디바이스 (100)가 임의의 악성 코드를 가지지 않는 것을 확인한 것에 응답하여, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)와 통신하기 위해 가드 서비스를 이용하는 것으로부터 프로비전 및 입수 서비스 (520)를 이용하는 것으로 스위치 할 수 있다.
블럭 (2212)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스(100)로부터 암호화된 데이터 및 키들을 검색한다. 예를 들어,스토리지 서비스 제공자(102)는 배송가능한 스토리지 디바이스 (100)로부터 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104)을 검색할 수 있다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 데이터를 수신하여 배송가능한 스토리지 디바이스 (100)로 통신한다. 프로비전 및 입수 서비스 (520)는 배송가능한 스토리지 디바이스 (100)로부터 데이터를 검색 및 데이터를 조직화 하기 위한 정보를 획득하기 위해 작업 오케스트레이터 (514) 및 메타데이터 서비스 (512)와 또한 통신할 수 있다.
일부 실시예들에서, 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104)은 복호화/유입되기 전에 스토리지 서비스 제공자 (102)의 메모리, 예컨대 프로비전 및 입수 서비스 (520)와 관련된 휘발성 및/또는 비 휘발성 메모리에 복사된다. 다양한 실시예들에서, 프로비전 및 입수 서비스 (520)는 배송가능한 스토리지 디바이스 (100)로부터 한번에 암호화된 데이터 및 키들의 부분들을 검색하고, 여기서 각각의 부분은 다음 부분을 검색하기 전에 따로 따로 복호화되고 유입된다. 예를 들어, 프로비전 및 입수 서비스 (520)는 개별 청크들내 데이터, 청크들의 그룹들, 키들, 키들의 그룹들, 또는 임의의 다른 적절한 부분 및/또는 카테고리를 검색할 수 있다.
블럭 (2214)에서, 스토리지 서비스 제공자 (102)는 암호하된 키들 및 데이터를 복호화한다. 예를 들어, 프로비전 및 입수 서비스 (520)는 암호화된 청크들 (1706), 암호화된 청크 키들 (2102), 및 암호화된 파일 키들 (2104)을 복호화할 수 있다. 복호화 프로세스는 도 24에 보다 상세하게 설명된다.
블럭 (2216)에서, 스토리지 서비스 제공자 (102)는 복호화된 청크들을 파일들로 어셈블리한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 청크들을 파일들로 어셈블리하기 위해 복호화된 청크들로부터의 메타데이터를 사용할 수 있다. 예를 들어, 메타데이터는 서브셋의 청크들이 특정 파일에 속한다는 것을 표시할 수 있다. 메타데이터는 또한 특정 파일로 다시 어셈블리 하기 위한 청크들의 순차적인 순서를 표시할 수 있다.
블럭 (2218)에서, 스토리지 서비스 제공자 (102)는 파일의 파일 무결성을 확인한다. 예를 들어, 프로비전 및 입수 서비스 (520)는 메타데이터 서비스 (512)로부터 특정 파일에 대한 체크섬(checksum)을 검색할 수 있고 (데이터 전송 툴 (522)에 의해 미리 계산되어지고 스토리지 서비스 제공자 (102)로 송신된), 어셈블리된 특정 파일에 대한 체크섬을 계산하고, 그런 다음 검색된 체크섬을 계산된 체크섬에 비교할 수 있다. 만약 비교가 일치를 표시하면, 그러면 프로비전 및 입수 서비스 (520)는 파일 데이터의 무결성을 확인할 수 있다.
블럭 (2220)에서, 파일 데이터의 무결성에 응답하여, 스토리지 서비스 제공자 (102)는 파일이 할당된 버킷에 파일을 저장한다. 예를 들어, 프로비전 및 입수 서비스 (520)는 스토리지 서비스 제공자 (102)의 스토리지 디바이스 (502)내에 특정 버킷에 파일을 저장할 수 있다.
블럭 (2222)에서, 스토리지 서비스 제공자 (102)는 데이터 유입 작업에 대하여 프로세스할 다른 파일이 있는지 여부를 결정한다. 만약 스토리지 서비스 제공자 (102)가 프로세스할 다른 파일이 있다고 결정하면, 그러면 프로세스는 블럭(2218)로 리턴한다. 만약 스토리지 서비스 제공자 (102)가 유입 작업에 대하여 프로세스할 더 이상의 파일들이 없다고 결정하면, 그러면 프로세스는 블럭 (2224)으로 진행한다.
일부 실시예들에서, 두개 이상의 샤드들이 스토리지 서비스 제공자 (102)에 의해 수신되고 복호화된다. 샤드는 샤드들이 어떻게 암호화되었는지에 의존하여 단일 파일 또는 다수의 파일들로 복호화될 수 있다. 유입될 데이터 (500)는 두개 이상의 샤드들로부터 복원될 수 있고 스토리지 서비스 제공자 (102)에 유입될 수 있다. 두개 이상의 샤드들은 하나의 또는 다수의 배송가능한 스토리지 디바이스들 (100)로부터 검색될 수 있다.
블럭 (2224)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 와이핑(wipe)한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 데이터 및 운용 소프트웨어를 수신하여 배송가능한 스토리지 디바이스 (100)로부터 삭제한다. 배송가능한 스토리지 디바이스 (100)는 그런 다음 네트워크로부터 연결 차단될 수 있고 프로비저닝될 준비가 된 와이핑된 디바이스들에 대한 스토리지 영역으로 이동될 수 있다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 네트워크에 연결된 채로 있을 수 있어서 그것은 동일한 고객 또는 다른 고객에 대한 다른 데이터 유입 작업에 대하여 프로비저닝될 수 있다.
도 23은 일부 실시예들에 따른 스토리지 서비스 제공자(102)에서 배송가능한 스토리지 디바이스(100)로부터 데이터를 복호화하고 유입하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자 (102)의 하나 이상의 서비스들에 의해, 예컨대 프로비전 및 입수 서비스 (520) 및/또는 다른 서비스들에 의해 수행될 수 있다.
일부 실시예들에서, 암호화된 키들 및/또는 암호화된 데이터의 각각의 개별 세브셋을 스토리지 서비스 제공자 (102)의 휘발성 및/또는 비 휘발성 메모리, 예컨대 프로비전 및 입수 서비스 (520)와 관련된 메모리에 전송한 후에 키들 및 데이터의 복호화는 암호화된 키들 및/또는 암호화된 데이터의 서브셋들상에서 한번에 수행될 수 있다. 예를 들어, 아래에 예시된 바와 같이, 특정 파일에 대한 암호화된 파일 키 및 특정 파일에 대한 암호화된 청크들은 배송가능한 스토리지 디바이스 (100)로부터 데이터 스토리지 제공자 (102)로 전송될 수 있고, 관련 데이터가 복호화되고 및/또는 유입될 수 있고, 그런 다음 프로비전 및 입수 서비스 (520)는 각각의 추가 파일에 대하여 프로세스를 반복할 수 있다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 배송가능한 스토리지 디바이스 (100)로부터 데이터 스토리지 제공자 (102)로 암호화된 데이터 및 키들의 전부 또는 상당한 부분을 전송할 수 있고 그런 다음 데이터의 복호화 및/또는 유입을 수행한다. 다양한 실시예들에서, 임의의 다른 적절한 서브셋의 키들 및/또는 데이터는 프로세싱을 위해 (예를 들어, 키들 및 청크들의 복호화, 청크들을 파일로 어셈블리, 파일을 확인, 파일 저장, 등) 배송가능한 스토리지 디바이스 (100)로부터 데이터 스토리지 제공자 (102)로 전송될 수 있다.
블럭 (2302)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)과 관련된 데이터 유입 작업을 결정한 것에 기초하여 스토리지 서비스 제공자 (102)의 스토리지 위치로부터 버킷 키들 (1900)을 검색한다. 예를 들어, 프로비전 및 입수 서비스 (520)는 배송가능한 스토리지 디바이스 (100)로부터 맥 어드레스, 유입 작업 ID, 또는 다른 식별자를 획득할 수 있고 스토리지 서비스 제공자 (102)에 의해 저장된 맥 어드레스, 작업 ID, 또는 하나 이상의 레코드들에 일치하는 다른 식별자에 기초하여 키 데이터 (506)로부터 버킷 키들 (1900)을 검색한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 데이터 유입 작업과 관련된 하나 이상의 다른 키들 또는 데이터를 또한 검색할 수 있다.
블럭 (2304)에서, 프로비전 및 입수 서비스 (520)는 배송가능한 스토리지 디바이스 (100)로부터 유입된 데이터를 저장하기 위해 사용될 다른 버킷 (예를 들어, 하나 이상의 파일들에 대한 특정 로직상 및/또는 물리적 스토리지 위치)이 있는지 여부를 결정한다. 일부 실시예들에서, 이것은 배송가능한 스토리지 디바이스 (100)상에 저장된 다른 버킷 ID (또는 다른 위치 식별자)가 있는지 여부를 결정하는 단계를 포함할 수 있다. 만약 프로비전 및 입수 서비스 (520)가 다른 버킷이 있다고 결정하면, 그러면 프로세스는 블럭 (2306)으로 이어져서 현재 버킷에 대하여 파일 프로세싱을 계속한다. 만약 프로비전 및 입수 서비스 (520)가 다른 버킷이 없다고 결정하면, 그러면 프로세스 블럭 (2320)로 이어지고, 여기서 스토리지 서비스 제공자 (102)는 데이터 유입 작업에 대한 데이터 유입이 완료되었다는 통지를 하나 이상의 다른 서비스들 및/또는 디바이스들로 발송될 수 있다.
블럭 (2306)에서, 프로비전 및 입수 서비스 (520)는 블럭(2304)에서 식별된 버킷과 관련된 다른 파일 레코드 (예를 들어, 파일과 관련된 파일 데이터 및 메타데이터)가 있는지 여부를 결정한다. 일부 실시예들에서, 이것은 임의의 더 많은 남은 파일 레코드들 (예를 들어, 배송가능한 스토리지 디바이스상에 저장된)이 현재 프로세스된 버킷에 일치하는 버킷 키 ID를 포함하는지(블럭 (2304)에서 결정된) 결정하는 것을 포함한다. 만약 프로비전 및 입수 서비스 (520)가 다른 파일 레코드가 있다고 결정하면, 그러면 프로세스는 블럭 (2308)으로 이어진다. 만약 프로비전 및 입수 서비스 (520)가 다른 파일 레코드가 없다고 결정하면, 그러면 프로세스는 블럭 (2304)으로 리턴하고, 여기서 스토리지 서비스 제공자 (102)는 데이터 유입 작업에 대하여 유입될 다른 버킷과 관련된 데이터가 있는지 여부를 결정한다. 일부 실시예들에서, 파일 레코드는 파일 키와 관련된 버킷 키들을 복호화하기 위해 암호화되지 않은 형태로 사용될 수 있는 암호화된 파일 키, 및 파일이 저장될 버킷과 관련된 버킷 키를 식별하는 버킷 키 식별자를 포함할 수 있다.
블럭 (2308)에서, 프로비전 및 입수 서비스 (520)는 파일 레코드의 암호화된 파일 키를 획득하고 (블럭 (2306)에서 결정된) 버킷 키 (블럭 (2302)에서 획득된) 와 관련된 버킷 (블럭 (2304)에서 결정된)를 이용하여 암호화된 파일 키를 복호화한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 파일 레코드가 블럭 (2302)에서 검색되어진 특정 버킷 키 (및 관련 버킷)을 식별하는지를 결정한다. 따라서, 프로비전 및 입수 서비스 (520)는 파일 레코드의 파일 키를 복호화하기 위해 식별된 버킷 키를 사용할 수 있다.
블럭 (2310)에서, 프로비전 및 입수 서비스 (520)는 파일에 대한 청크 키들을 획득하고 블럭 (2308)에서 복호화된 파일 키를 이용하여 각각의 청크 키들을 복호화한다. 블럭 (2312)에서, 프로비전 및 입수 서비스 (520)는 파일에 대한 청크들을 획득하고 블럭 (2310)에서 획득된 대응하는 청크 키를 이용하여 각각의 청크들을 복호화한다. 예를 들어, 각각의 청크 키는 특정 청크를 복호화하기 위해 사용되는 상이한 청크 키와 관련될 수 있다.
일부 실시예들에서, 임의의 복호화가 일어나기 전에, 각각의 암호화된 청크는 암호화된 청크를 복호화하기 위해 사용되는 암호화된 청크 키(복호화된 형태로)와 연관되어 저장된다(예를 들어, 특정 오프셋내에 인접하여, 또는 다른 식으로, 관련된). 청크 키를 복호화하는 파일 키에 대한 식별자가 암호화된 청크 및/또는 암호화된 청크 키와 관련하여 또한 저장될 수 있다. 따라서, 실시예들에서, 프로비전 및 입수 서비스 (520)는 각각의 암호화된 청크에 대하여, 청크를 복호화하기 위한 대응하는 청크 키 뿐만 아니라 청크 키를 복호화하기 위한 대응하는 파일 키를 결정할 수 있다.
블럭 (2312)에서, 프로비전 및 입수 서비스 (520)는 파일에 대한 청크들을 획득하고 (블럭 (2310)에서 복호화된) 대응하는 청크 키를 이용하여 각각의 청크들을 복호화한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 적어도 청크 및/또는 청크 키와 관련된 메타데이터에 기초하여 어느 청크 키가 특정 청크를 복호화하기 위해 사용된 지를 결정한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 적어도 특정 청크의 스토리지 위치에 대한 청크 키의 스토리지 위치에 기초하여 어느 청크 키가 특정 청크를 복호화하기 위해 사용된 지를 결정한다.
블럭 (2314)에서, 프로비전 및 입수 서비스 (520)는 청크들 (1700)을 파일로 어셈블리한다. 일부 실시예들에서, 프로비전 및 입수 서비스 (520)는 각각의 청크와 관련된 메타데이터 (예를 들어, 다른 청크들에 대한 시퀀스 번호 및/또는 순서)에 기초하여 청크들을 파일로 어셈블리할 수 있다. 일부 경우들에서, 프로비전 및 입수 서비스 (520)는 적어도 하나 이상의 다른 청크들에 대한 각각의 청크의 스토리지 위치에 기초하여 청크들을 파일로 어셈블리할 수 있다. 블럭 (2316)에서, 프로비전 및 입수 서비스 (520)는 상기에서 설명된 체크섬을 이용하여 파일을 확인한다. 블럭 (2318)에서, 프로비전 및 입수 서비스 (520)는 스토리지 서비스 제공자 (102)에서 버킷에 파일을 저장한다. 프로세스는 그런 다음 블럭 (2306)으로 리턴하고, 여기서 프로비전 및 입수 서비스 (520)는 버킷에 대하여 다른 파일 레코드가 있는지 여부를 결정한다.
도 24는 일부 실시예들에 따른 스토리지 서비스 제공자(102)에서 배송가능한 스토리지 디바이스(100)를 와이핑하기 위한 프로세스의 흐름도이다. 예시된 프로세스의 하나 이상의 부분들이 스토리지 서비스 제공자의 하나 이상의 서비스들에 의해, 예컨대 프로비전 및 입수 서비스 (520) 및/또는 다른 서비스들에 의해 수행될 수 있다.
블럭 (2402)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)로부터 데이터를 삭제한다. 예를 들어, 스토리지 서비스 제공자 (102)는 영구 데이터 스토리지 (902)로부터 데이터를 삭제할 수 있다.
블럭 (2404)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)로부터 동작 소프트웨어를 삭제한다. 예를 들어, 스토리지 서비스 제공자 (102)는 영구 데이터 스토리지 (902)로부터 운영 체제 및 서버들을 삭제할 수 있다.
블럭 (2406)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 고객으로부터 연관 해제시킨다(de-associate). 예를 들어, 스토리지 서비스 제공자 (102)는 고객 또는 고객 네트워크 (104)를 배송가능한 스토리지 디바이스 (100)와 연관시키는 하나 이상의 레코들을 제거할 수 있다. 블럭 (2408)에서, 스토리지 서비스 제공자 (102)는 배송가능한 스토리지 디바이스 (100)를 와이핑된 배송가능한 스토리지 디바이스 (100)에 대한 스토리지 영역으로 이동시킨다. 일부 실시예들에서, 배송가능한 스토리지 디바이스 (100)는 네트워크에 부착된 채로 있을 수 있고 새로운 데이터 유입 작업을 위하여 프로비전을 대기할 수 있다.
임의의 다양한 컴퓨터 시스템들이 배송가능한 스토리지 디바이스와 관련된 프로세스들 (예를 들어, 고객 서버상에 다운로드된 애플리케이션의 실행 또는 서비스 제공자에 의한 프로비저닝 또는 입수(ingestion))을 구현하도록 구성될 수 있다. 예를 들어, 도 25는 본 출원에서 설명된 시스템들 및 방법들의 부분을 구현하기 위해 적절한 컴퓨터 시스템의 일 실시예를 예시하는 블럭 다이어그램이다. 다양한 실시예들에서, 스토리지 서비스 제공자 (102), 또는 고객 네트워크 (104) 에서 고객 컴퓨터들(예를 들어, 고객 디바이스 (504) 또는 컴퓨팅 디바이스 (1102))은 컴퓨터 시스템 (2500) 예컨대 도 25에 예시된 것을 각각 포함할 수 있다.
예시된 실시예에서, 컴퓨터 시스템(2500)은 입력/출력(I/O) 인터페이스(2530)를 통해 시스템 메모리(2520)에 결합된 하나 이상의 프로세서들(2510)을 포함한다. 컴퓨터 시스템 (2500)은 I/O 인터페이스 (2530)에 결합된 네트워크 인터페이스 (2540)를 더 포함한다. 일부 실시예들에서, 컴퓨터 시스템 (2500)은 기업 로직 또는 다운로드가능한 애플리케이션을 구현하는 서버들의 예시일 수 있지만, 한편 다른 실시예들에서 서버들은 컴퓨터 시스템 (2500)보다 더 많거나, 더 적거나 또는 상이한 엘리먼트들을 포함할 수 있다.
다양한 실시예들에서, 컴퓨터 시스템 (2500)은 하나의 프로세서 (2510)을 포함하는 유니프로세서 시스템, 또는 몇몇의 프로세서들 (2510) (예를 들어, 두개, 네개, 여덟개, 또는 다른 적절한 수)을 포함하는 멀티프로세서 시스템일 수 있다. 프로세서들(2510)은 지시들을 실행할 수 있는 임의의 적절한 프로세서일 수 있다. 예를 들면, 다양한 실시예들에서, 프로세서들(2510)은 x106, 파워PC, SPARC, 또는 MIPS ISA들, 또는 임의의 다른 적절한 ISA와 같은, 다양한 명령 세트 아키텍처들(ISA들) 중 임의의 것을 구현한 임베디드 프로세서(embedded processor)들일 수 있다. 다중프로세서 시스템들에서, 프로세서들(2510)의 각각은, 일반적으로, 반드시는 아니지만, 동일한 ISA를 구현할 수 있다.
시스템 메모리(2520)는 프로세서(2510)에 의해 액세스 가능한 지시들 및 데이터를 저장하도록 구성될 수 있다. 다양한 실시예들에서, 시스템 메모리(2520)는 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 RAM(SDRAM), 비-휘발성/플래시-형 메모리, 또는 임의의 다른 유형의 메모리와 같은, 임의의 적절한 메모리 기술을 사용하여 구현될 수 있다. 예시된 실시예에서, 다운로드가능한 소프트웨어 또는 서비스 제공자에 대하여 상기에서 설명된 이들 방법들, 기술들과 같은, 원하는 기능들을 구현하는 프로그램 지시들 및 데이터는 프로그램 지시들(2525)로서 시스템 메모리(2520) 내에 저장되어 도시된다. 일부 실시예들에서, 시스템 메모리 (2520)는 본 출원에서 설명된 것처럼 구성될 수 있는 데이터 (2535)를 포함할 수 있다.
일 실시예에서, I/O 인터페이스 (2530)는 프로세서 (2510), 시스템 메모리 (2520) 및 스루네트워크 인터페이스 (2540) 또는 다른 주변기기 인터페이스들을 포함하는 시스템내 임의의 주변 디바이스들 사이에 I/O 트래픽을 조정하도록 구성될 수 있다. 몇몇 실시예들에서, I/O 인터페이스(2530)는 하나의 구성요소(예로서, 시스템 메모리(2520))에서 다른 구성요소(예로서, 프로세서(2510))에 의한 사용에 적합한 포맷으로 데이터 신호들을 변환하기 위해 임의의 필요한 프로토콜, 타이밍 또는 다른 데이터 변환들을 수행할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(2530)는 예를 들면, 주변 구성요소 상호 연결(PCI) 버스 표준 또는 범용 직렬 버스(USB) 표준의 변형과 같은, 다양한 유형들의 주변 버스들을 통해 접속된 디바이스들에 대한 지원을 포함할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(2530)의 기능은 예를 들면, 노스 브리지 및 사우스 브리지와 같은, 둘 이상의 별개의 구성요소들로 분리될 수 있다. 또한, 몇몇 실시예들에서 시스템 메모리(2520)로의 인터페이스와 같은, I/O 인터페이스(2530)의 기능 중 일부 또는 모두는 프로세서(2510)로 직접 통합될 수 있다.
네트워크 인터페이스 (2540)는 데이터가 컴퓨터 시스템 (2500) 및 예를 들어 다른 컴퓨터 시스템들과 같은 네트워크에 부착된 다른 디바이스들 간에 교환되는 것을 허용하도록 구성될 수 있다. 특별히, 네트워크 인터페이스 (2540)는 컴퓨터 시스템 (2500) 및/또는 다양한 I/O 디바이스들 (2550) 간에 통신을 허용하도록 구성될 수 있다. I/O 디바이스들 (2550)은 본 출원에서 설명된 스캐닝 디바이스들, 디스플레이 디바이스들, 입력 디바이스들 및/또는 다른 통신 디바이스들을 포함할 수 있다. 네트워크 인터페이스 (2540)는 공통으로 하나 이상의 무선 네트워킹 프로토콜들 (예를 들어, Wi-Fi/IEEE 802.11, 또는 다른 무선 네트워킹 표준)을 지원할 수 있다. 그러나, 다양한 실시예들에서, 네트워크 인터페이스(2540)는 예를 들면, 이더넷 네트워크의 유형들과 같은, 임의의 적절한 유선 또는 무선 일반 데이터 네트워크들을 통해 통신을 지원할 수 있다. 부가적으로, 네트워크 인터페이스(2540)는 파이버 채널 SAN들과 같은 저장 영역 네트워크들을 통해, 또는 임의의 다른 적절한 유형의 네트워크 및/또는 프로토콜을 통해, 아날로그 음성 네트워크들 또는 디지털 파이버 통신들 네트워크들과 같은 전기통신들/전화 네트워크들을 통해 통신을 지원할 수 있다.
몇몇 실시예들에서, 시스템 메모리(2520)는 상기 설명된 프로그램 지시들 및 데이터를 저장하도록 구성된 컴퓨터-액세스 가능한 매체의 일 실시예일 수 있다. 그러나, 다른 실시예들에서, 프로그램 지시들 및/또는 데이터는 상이한 유형들의 컴퓨터-액세스 가능한 미디어 상에서 수신되고, 전송되거나 또는 저장될 수 있다. 개괄적으로 말해서, 컴퓨터-액세스 가능한 매체는 I/O 인터페이스 (2530)를 통하여 컴퓨터 시스템 (2500)에 결합된 컴퓨터-판독가능한 스토리지 매체 또는 메모리 매체들 예컨대 자기 또는 광 매체, 예를 들어, 디스크 또는 DVD/CD-ROM를 포함할 수 있다. 컴퓨터-판독가능한 스토리지 매체는 시스템 메모리(2520) 또는 다른 유형의 메모리로서 컴퓨터 시스템 (2500)의 일부 실시예들에 포함될 수 있는 RAM (예를 들어, SDRAM, DDR SDRAM, RDRAM, SRAM, 등), ROM, 등과 같은 임의의 휘발성 또는 비-휘발성 매체들을 또한 포함할 수 있다. 뿐만 아니라, 컴퓨터-액세스 가능한 매체는 네트워크 인터페이스(2540)를 통해 구현될 수 있는 바와 같이, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달된, 전기, 전자기 또는 디지털 신호들과 같은 송신 미디어 또는 신호들을 포함할 수 있다.
일부 실시예들에서, I/O 디바이스들 (2550)은 상대적으로 간단하거나 또는 “씬(thin)” 클라이언트 디바이스들일 수 있다. 예를 들어, I/O 디바이스들 (2550)은 디스플레이, 데이터 엔트리 및 통신 성능들을 갖지만, 그 외에는, 거의 컴퓨터 기능이 없는 덤(dumb) 단말들로 구성될 수 있다. 그러나, 일부 실시예들에서, I/O 디바이스들 (2550)은 하나 이상의 프로세서들 (2510) 및 다양한 다른 디바이스들을 포함하는 컴퓨터 시스템 (2500)에 유사하게 구성된 컴퓨터 시스템들일 수 있다 (그러나 일부 실시예들에서, I/O 디바이스 (2550)를 구현하는 컴퓨터 시스템 (2500)는 다소 상이한 디바이스들, 또는 상이한 클래스들의 디바이스들을 가질 수 있다).
다양한 실시예들에서, I/O 디바이스들 (2550) (예를 들어, 스캐너들 또는 디스플레이 디바이스들 및 다른 통신 디바이스들)은 다양한 실시예들에 따른 핸드헬드 디바이스들, 사람에 착용되거나 또는 부착된 디바이스들, 및 임의의 모바일 또는 고정된 장비상에 마운트되거나 또는 통합된 디바이스들 중 하나 이상을 포함할 수 있지만, 이것에 한정되지는 않는다. I/O 디바이스들 (2550)은 컴퓨터 시스템 (2500)과 통신하기에 적절한 퍼스널 컴퓨터 시스템들, 데스크탑 컴퓨터들, 랙(rack)-마운트 컴퓨터들, 랩탑 또는 노트북 컴퓨터들, 워크스테이션들, 네트워크 컴퓨터들, “덤” 단말들 (즉, 거의 또는 전혀 통합 프로세싱 능력을 갖지 않는 컴퓨터 단말들), 개인 디지털 보조장치들 (PDA들), 이동 전화기들, 또는 다른 핸드헬드 디바이스들, 전용 디바이스들, 프린터들, 또는 임의의 다른 디바이스들 중 하나 이상을 추가로 포함할 수 있지만, 이것에 한정되지는 않는다,. 일반적으로, I/O 디바이스 (2550) (예를 들어, 커서 제어 디바이스, 키보드, 또는 디스플레이(들))은 컴퓨팅 시스템 (2500)의 엘리먼트들과 통신할 수 있는 임의의 디바이스일 수 있다.
도면들에 예시되며 본 출원에서 설명된 다양한 방법들은 방법들의 예시적인 실시예들을 나타낸다. 방법들은 소프트웨어로, 하드웨어로 또는 그것의 조합으로 구현될 수 있다. 임의의 방법의 순서는 변화될 수 있고, 다양한 엘리먼트들이 추가, 재순서화, 결합, 생략, 변형 등 될 수 있다. 예를 들어, 일 실시예에서, 방법들은 프로세서에 결합된 컴퓨터-판독가능한 스토리지 매체 상에 저장된 프로그램 지시들을 실행시키는 프로세서를 포함하는 컴퓨터 시스템에 의해 구현될 수 있다. 프로그램 지시들은 본 출원에서 설명된 기능(예를 들어, 데이터 전송 툴, 다양한 서비스들, 데이터 베이스들, 디바이스들 및/또는 다른 통신 디바이스들 등의 기능)을 구현하도록 구성될 수 있다.
다양한 수정들 및 변화들은 본 개시의 이득을 가진 이 기술분야의 숙련자에게 명백할 바와 같이 이루어질 수 있다. 제한적 의미보다는 예시적으로 간주될 모든 이러한 수정들 및 변화들, 및 그에 따라 상기 설명을 포괄하도록 의도된다.
이하의 항목들을 고려하여 이하가 더 잘 이해될 수 있다:
1. 시스템에 있어서,
상기 스토리지 서비스 제공자의 클라이언트로부터 수신된 적어도 하나의 배송가능한 스토리지 디바이스(shippable storage device)로서, 상기 적어도 하나의 배송가능한 스토리지 디바이스는 상기 스토리지 서비스 제공자의 네트워크에 부착된, 상기 배송가능한 스토리지 디바이스; 및
상기 하나 이상의 컴퓨팅 디바이스들 중 적어도 하나에 구현된 데이터 입수 서비스(data ingestion service)를 포함하되, 상기 데이터 입수 서비스는 :
상기 배송가능한 스토리지 디바이스와 관련된 데이터 유입 작업에 대한 정보를 결정하고;
상기 데이터 유입 작업에 대한 정보에 기초하여, 상기 스토리지 서비스 제공자에 의해 저장된 하나 이상의 저장된 키들 및 보안 정보를 획득하고;
상기 보안 정보에 기초하여 상기 배송가능한 스토리지 디바이스를 인증하고;
상기 배송가능한 스토리지 디바이스로부터 암호화된 키들 및 암호화된 데이터를 획득하고;
상기 스토리지 서비스 제공자에 의해 저장된 하나 이상의 키들을 이용하여 상기 암호화된 키들을 복호화하여 복호화된 키들을 생성하고;
상기 복호화된 키들을 이용하여 암호화된 데이터를 복호화하여 복호화된 데이터를 생성하고; 및
상기 데이터 유입 작업에 대한 정보에 의해 표시된 상기 스토리지 서비스 제공자에서의 하나 이상의 위치들에서 상기 복호화된 데이터를 저장하도록 구성된다.
2. 항목 1에 열거된 시스템에 있어서, 상기 데이터 입수 서비스는 :
상기 하나 이상의 저장된 키들을 이용하여 하나 이상의 암호화된 파일 키들을 복호화 하여 하나 이상의 파일 키들을 생성하고;
상기 하나 이상의 파일 키들을 이용하여 하나 이상의 암호화된 청크 키들을 복호화 하여 하나 이상의 청크 키들을 생성하고;
상기 하나 이상의 청크 키들을 이용하여 상기 암호화된 청크들을 복호화 하여 상기 복호화된 데이터를 생성하도록 더 구성된다.
3. 항목 1에 열거된 시스템에 있어서, 상기 데이터 입수 서비스는 :
상기 복호화된 키들 중 제 1 키를 이용하여 상기 암호화된 데이터의 제 1 부분을 복호화하여 상기 복호화된 데이터의 제 1 부분을 생성하고;
상기 복호화된 키들 중 적어도 제 2 키를 이용하여 상기 암호화된 데이터의 적어도 제 2 부분을 복호화하여 상기 복호화된 데이터의 적어도 제 2 부분을 생성하고; 및
상기 복호화된 데이터의 제 1 부분과 상기 복호화된 데이터의 적어도 제 2 부분을 결합하여 파일을 형성하도록 더 구성된다.
4. 항목 1에 열거된 시스템에 있어서, 상기 데이터 입수 서비스는 :
상기 배송가능한 스토리지 디바이스의 신뢰된 플랫폼 모듈로부터 구성 정보를 수신하고; 및
상기 구성 정보에 기초하여, 상기 배송가능한 스토리지 디바이스가 프로비저닝(provision)되고 상기 클라이언트에 발송된 이후에 상기 배송가능한 스토리지 디바이스의 구성이 변경되지 않았는지를 결정하도록 더 구성된다.
5. 항목 1에 열거된 시스템에 있어서, 상기 데이터 입수 서비스는 :
상기 배송가능한 스토리지 디바이스로부터 상기 클라이언트와 관련된 데이터 및 운영 소프트웨어(operating software)를 제거하기 위해 상기 배송가능한 스토리지 디바이스를 삭제하도록 더 구성된다.
6. 시스템에 있어서,
스토리지 서비스 제공자(storage service provider)의 하나 이상의 컴퓨팅 디바이스들; 및
상기 하나 이상의 컴퓨팅 디바이스들 중 적어도 하나에 구현된 프로비저닝 서비스(provisioning service)를 포함하되, 상기 프로비저닝 서비스는 :
클라이언트로부터 상기 스토리지 서비스 제공자로 데이터 유입에 대한 요청을 상기 클라이언트로부터 수신하고;
적어도 하나의 배송가능한 스토리지 디바이스상에 상기 데이터를 전송하기 위한 데이터 전송 툴을 상기 클라이언트에 발송하고;
상기 데이터 전송 툴에 의해 사용될 적어도 하나의 암호화 키를 결정하고;
상기 데이터 전송 툴에 의해 사용될 보안 정보를 결정하고;
상기 적어도 하나의 암호화 키 및 상기 보안 정보의 적어도 일부를 포함하는 매니페스트(manifest)를 생성하고;
상기 클라이언트로 발송될 상기 적어도 하나의 배송가능한 스토리지 디바이스를 프로비저닝하고;
상기 배송가능한 스토리지 디바이스의 상기 프로비저닝의 완료에 응답하여, 상기 배송가능한 스토리지 디바이스가 상기 클라이언트로의 배송 준비가 되었다고 표시하고; 및
상기 매니페스트를 상기 클라이언트에 발송하도록 구성된다.
7. 항목 6에 열거된 시스템에 있어서, 상기 프로비저닝 서비스는 :
상기 클라이언트 디바이스로부터, 자격 정보를 수신하고;
상기 클라이언트 디바이스로부터의 상기 자격 정보를 수신한 것에 응답하여, 상기 클라이언트를 인증하고; 및
하나 이상의 데이터 유입 작업들의 상태에 관한 표시를 상기 클라이언트에 제공하도록 더 구성된다.
8. 항목 6에 열거된 시스템에 있어서, 상기 매니페스트는 :
상기 스토리지 서비스 제공자에 의해 저장된 적어도 하나의 추가 암호화 키를 더 포함하고, 상기 적어도 하나의 추가 암호화 키는 상기 유입된 데이터의 적어도 일부를 저장하기 위한 상기 데이터 스토리지 제공자의 적어도 하나의 대응하는 스토리지 위치와 연관된다.
9. 항목 6에 열거된 시스템에 있어서, 상기 프로비저닝 서비스는 :
상기 배송가능한 스토리지 디바이스에 상기 보안 정보의 적어도 일부를 기록하고; 및
상기 배송가능한 스토리지 디바이스에 상기 클라이언트의 어드레스 정보를 기록하도록 더 구성된다.
10. 항목 6에 열거된 시스템에 있어서, 상기 프로비저닝 서비스는 :
상기 클라이언트가 상기 배송가능한 스토리지 디바이스를 수신하였는지에 응답하여:
통신 네트워크를 통하여 상기 매니페스트를 상기 클라이언트에 발송하고; 및
상기 매니페스트를 복호화하기 위해 상기 클라이언트에 코드를 발송하도록 더 구성된다.
11. 항목 6에 열거된 시스템에 있어서, 상기 프로비저닝 서비스는 :
상기 배송가능한 스토리지 디바이스에 운영 체제(operating system)을 기록하고; 및
상기 배송가능한 스토리지 디바이스에 상기 보안 정보의 적어도 일부를 기록하도록 더 구성되고, 상기 보안 정보의 적어도 일부가 상기 배송가능한 스토리지 디바이스와 상기 데이터 전송 툴 간에 상호 인증을 제공하도록 구성된다.
12. 방법에 있어서,
스토리지 서비스 제공자(storage service provider)의 하나 이상의 컴퓨팅 디바이스에 구현된 프로비저닝 서비스에 의해 수행되는 :
클라이언트로부터 상기 스토리지 서비스 제공자로 데이터 유입에 대한 요청을 상기 클라이언트로부터 수신하는 단계;
상기 데이터를 유입하는 것과 관련된 적어도 하나의 암호화 키를 결정하는 단계;
상기 적어도 하나의 암호화 키를 포함하는 정보를 생성하는 단계;
상기 클라이언트로 발송될 배송가능한 스토리지 디바이스를 프로비저닝하는 단계;
상기 배송가능한 스토리지 디바이스의 상기 프로비저닝의 완료에 응답하여, 상기 배송가능한 스토리지 디바이스가 상기 클라이언트로의 발송 준비가 되었다고 표시하는 단계; 및
상기 정보를 상기 클라이언트에 발송하는 단계를 포함한다.
13. 항목 12에 열거된 방법에 있어서,
상기 적어도 하나의 배송가능한 스토리지 디바이스상에 상기 데이터를 전송하기 위해 데이터 전송 툴을 상기 정보와 별개로 상기 클라이언트에 발송하는 단계를 더 포함한다.
14. 항목 13에 열거된 방법에 있어서, 상기 생성된 정보는 상기 배송가능한 스토리지 디바이스를 인증하기 위해 상기 데이터 전송 툴에 의한 사용을 위한 보안 정보를 포함한다.
15. 항목 14에 열거된 방법에 있어서, 상기 적어도 하나의 암호화 키는 상기 스토리지 서비스 제공자에 의해 저장된 제 1 암호화 키 및 상기 스토리지 서비스 제공자에 의해 저장된 적어도 제 2 암호화 키를 포함한다.
16. 항목 15에 열거된 방법에 있어서, 상기 제 1 암호화 키는 상기 스토리지 서비스 제공자에서의 제 1 데이터 스토리지 위치와 연관되고 상기 적어도 제 2 암호화 키는 상기 스토리지 서비스 제공자에서의 제 2 데이터 스토리지 위치와 연관된다.
17. 항목 14에 열거된 방법에 있어서, 상기 보안 정보는 :
상기 배송가능한 스토리지 디바이스를 인증하도록 구성된 보안 정보의 적어도 제 1 부분; 및
상기 배송가능한 스토리지 디바이스에 의해 상기 데이터 전송 툴을 인증하도록 구성된 보안 정보의 적어도 제 2 부분을 포함한다.
18. 항목 12에 열거된 방법에 있어서,
상기 클라이언트에 발송된 상기 정보를 복호화하기 위한 코드를 상기 클라이언트에 발송하는 단계를 더 포함하고, 상기 정보는 통신 네트워크를 통하여 상기 클라이언트에 발송된다.
19. 항목 12에 열거된 방법에 있어서,
상기 배송가능한 스토리지 디바이스에 운영 체제를 기록하는 단계; 및
상기 배송가능한 스토리지 디바이스에 의해 디스플레이 될 상기 클라이언트의 어드레스 정보를 상기 배송가능한 스토리지 디바이스에 기록하는 단계를 더 포함한다.
20. 항목 12에 열거된 방법에 있어서,
상기 배송가능한 스토리지 디바이스에 상기 보안 정보의 적어도 일부를 기록하는 단계를 더 포함하고, 상기 보안 정보의 적어도 일부가 상기 배송가능한 스토리지 디바이스와 상기 데이터 전송 툴 간에 상호 인증을 제공하도록 구성된다.
뿐만 아니라 이하의 항목들은:
1. 시스템에 있어서,
클라이언트 사이트(client site)의 네트워크에 연결된 하나 이상의 컴퓨팅 디바이스들;
상기 클라이언트 사이트의 네트워크에 부착된 하나 이상의 스토리지 디바이스들;
원격 스토리지 서비스 제공자에 의해 제공된 적어도 하나의 배송가능한 스토리지 디바이스(shippable storage device)로서, 상기 적어도 하나의 배송가능한 스토리지 디바이스는 상기 클라이언트 사이트의 네트워크에 부착된, 상기 배송가능한 스토리지 디바이스; 및
상기 하나 이상의 컴퓨팅 디바이스들 중 적어도 하나에 구현된 데이터 전송 툴(data transfer tool)를 포함하되, 상기 데이터 전송 툴은:
상기 원격 스토리지 서비스 제공자로부터 적어도 하나의 암호화 키를 획득하고;
상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하고;
상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하고;
상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하고;
상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화 하여 암호화된 데이터를 생성하고;
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 하나 이상의 생성된 암호화 키들을 생성하고;
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하고; 및
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하도록 구성된다.
2. 항목 1에 열거된 시스템에 있어서, 상기 데이터 전송 툴은 :
상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하고 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하도록 더 구성된다.
3. 항목 1에 열거된 시스템에 있어서,
상기 식별된 데이터를 획득하기 위해, 상기 데이터 전송 툴은 :
하나 이상의 파일들을 획득하고; 및
상기 하나 이상의 파일들의 각각으로부터 데이터의 복수의 청크(chunk)들을 생성하도록 더 구성되고;
상기 하나 이상의 암호화 키들을 생성하기 위해, 상기 데이터 전송 툴은 데이터의 상기 복수의 청크들의 각각에 대한 별개의 암호화 키를 생성하도록 더 구성되고; 및
상기 식별된 데이터를 암호화하기 위해, 상기 데이터 전송 툴은 상기 하나 이상의 생성된 암호화 키들의 개별 암호화 키를 이용하여 데이터의 상기 복수의 청크들의 각각을 암호화하도록 더 구성된다.
4. 항목 1에 열거된 시스템에 있어서, 상기 암호화된 하나 이상의 암호화 키들을 상기 원격 스토리지 서비스 제공자로 발송하기 위해서, 상기 데이터 전송 툴은 :
상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스로 전송하거나 또는 상기 배송가능한 스토리지 디바이스와 별개로 통신 네트워크를 통하여 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 스토리지 서비스 제공자에 송신하도록 더 구성된다.
5. 방법에 있어서,
클라이언트 사이트의 네트워크의 하나 이상의 컴퓨팅 디바이스에 구현된 데이터 전송 툴(data transfer tool)에 의해 수행되는 :
상기 원격 스토리지 서비스 제공자로부터 적어도 하나의 암호화 키를 획득하는 단계;
상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 네트워크의 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하는 단계;
상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계;
상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하는 단계;
상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화 하여 암호화된 데이터를 생성하는 단계;
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 전달될 암호화된 하나 이상의 생성된 암호화 키들을 생성하는 단계;
상기 네트워크에 부착되고 상기 원격 스토리지 제공자에 의해 제공된 상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하는 단계; 및
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하는 단계를 포함한다.
6. 항목 5에 열거된 방법에 있어서, 상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하는 단계를 더 포함한다.
7. 항목 5에 열거된 방법에 있어서,
상기 네트워크의 상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계는;
하나 이상의 파일들을 획득하는 단계; 및
상기 하나 이상의 파일들의 각각으로부터 데이터의 복수의 청크들을 생성하는 단계;를 포함하고,
상기 하나 이상의 암호화 키들을 생성하는 단계는 데이터의 상기 복수의 청크들의 각각에 대한 별개의 암호화 키를 생성하는 단계를 포함하고; 및
상기 식별된 데이터를 암호화하는 단계는 상기 하나 이상의 생성된 암호화 키들의 개별 암호화 키를 이용하여 데이터의 상기 복수의 청크들의 각각을 암호화하는 단계를 포함한다.
8. 항목 5에 열거된 방법에 있어서,
상기 원격 스토리지 서비스 제공자로부터 보안 정보를 획득하는 단계;및
상기 보안 정보에 기초하여 상기 적어도 하나의 배송가능한 스토리지 디바이스를 인증하는 단계를 더 포함한다.
9. 항목 5에 열거된 방법에 있어서, 상기 원격 스토리지 서비스 제공자로부터, 상기 적어도 하나의 암호화 키를 획득하는 단계는 상기 적어도 하나의 배송가능한 스토리지 디바이스와 별개인 통신 네트워크를 통하여 상기 원격 스토리지 서비스 제공자로부터 상기 적어도 하나의 암호화 키를 다운로드하는 단계를 포함한다.
10. 항목 5에 열거된 방법에 있어서, 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 원격 스토리지 서비스 제공자에 전달하는 단계는 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스로 전송하는 단계를 포함한다.
11. 항목 5에 열거된 방법에 있어서, 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 원격 스토리지 서비스 제공자에 전달하는 단계는 상기 적어도 하나의 배송가능한 스토리지 디바이스와 별개인 통신 네트워크를 통하여 상기 암호화된 하나 이상의 암호화 키들을 상기 원격 스토리지 서비스 제공자로 송신하는 단계를 포함한다.
12. 항목 5에 열거된 방법에 있어서,
상기 네트워크에 부착된 복수의 상기 배송가능한 스토리지 디바이스를 발견하는 단계; 및
상기 암호화된 데이터를 상기 복수의 상기 배송가능한 스토리지 디바이스들로 전송하기 위한 데이터 전송 계획을 결정하는 단계를 더 포함하되, 상기 암호화된 데이터를 전송하는 단계는 상기 암호화된 데이터의 상이한 부분을 상기 복수의 배송가능한 스토리지 디바이스들의 각각으로 병렬로 전송하는 단계를 포함한다.
13. 항목 12에 열거된 방법에 있어서, 상기 데이터 전송 계획을 결정하는 단계는 :
상기 식별된 데이터의 데이터 소소의 특성(characteristic); 또는
상기 스토리지 서비스 제공자에서 상기 식별된 데이터의 스토리지 목적지의 특성 중 적어도 하나에 기반된다.
14. 프로그램 지시들을 저장한 비-일시적 컴퓨터-판독 가능한 저장 매체에 있어서, 상기 프로그램 지시들은 클라이언트 사이트의 네트워크의 하나 이상의 컴퓨팅 디바이스들에 의해 실행될 때 상기 하나이상의 컴퓨팅 디바이스들로 하여금:
원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 네트워크의 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하는 단계;
상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계;
상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하는 단계;
상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화 하여 암호화된 데이터를 생성하는 단계;
상기 원격 스토리지 서비스 제공자에 의해 저장된 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 전달될 암호화된 하나 이상의 생성된 암호화 키들을 생성하는 단계;
상기 네트워크에 부착되고 상기 원격 스토리지 제공자에 의해 제공된 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하는 단계; 및
상기 배송가능한 스토리지 디바이스로 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하는 단계를 구현하게 한다.
15. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하는 단계를 구현하게 한다.
16. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 적어도 하나의 암호화 키는 상기 배송가능한 스토리지 디바이스와 별개로 상기 클라이언트로 상기 원격 스토리지 서비스 제공자에 의해 제공되거나 또는 상기 배송가능한 스토리지 디바이스와 별개로 상기 원격 스토리지 서비스 제공자에 상기 클라이언트에 의해 제공된다.
17. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 원격 스토리지 서비스 제공자로부터 보안 정보를 획득하는 단계;및
상기 보안 정보에 기초하여 상기 적어도 하나의 배송가능한 스토리지 디바이스를 인증하는 단계를 구현하게 한다.
18. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 네트워크에 부착된 복수의 상기 배송가능한 스토리지 디바이스를 발견하는 단계;
상기 식별된 데이터 및 이중화 인코딩 기술(redundancy encoding technique)에 기초하여 복수의 샤드(shard)들을 생성하는 단계로서, 상기 식별된 데이터를 암호화하는 단계는 상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 복수의 샤드들의 각각을 암호화하여 복수의 암호화된 샤드들을 생성하는 단계를 포함하는, 상기 복수의 샤드들을 생성하는 단계; 및
상기 복수의 암호화된 샤드들의 서브셋을 식별하는 단계로서, 상기 암호화된 데이터의 전송 단계는 상기 배송가능한 스토리지 디바이스들의 개개의 것으로 상기 복수의 샤드들의 서브셋의 각각의 샤드를 전송하는 단계를 구현하게 한다.
19. 항목 18의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 복수의 샤드들의 서브셋의 각각을 상기 배송가능한 스토리지 디바이스들의 개개의 것으로 전송하는 단계는 병렬로 수행된다.
20. 항목 18의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 복수의 배송가능한 스토리지 디바이스들이 상기 원격 스토리지 서비스 제공자로 배송된 때, 상기 생성된 복수의 샤드들 중 적어도 하나는 상기 클라이언트 사이트에 유지된다.
뿐만 아니라 이하의 항목들은:
1. 시스템에 있어서,
클라이언트 사이트의 네트워크에 부착된 하나 이상의 스토리지 디바이스들;
원격 스토리지 서비스 제공자에 의해 제공된 적어도 하나의 배송가능한 스토리지 디바이스(shippable storage device)로서, 상기 적어도 하나의 배송가능한 스토리지 디바이스는 상기 클라이언트 사이트의 네트워크에 부착된, 상기 배송가능한 스토리지 디바이스; 및
클라이언트 사이트(client site)의 네트워크에 연결된 하나 이상의 컴퓨팅 디바이스들을 포함하되, 상기 하나 이상의 컴퓨팅 디바이스들은 ;
적어도 하나의 암호화 키를 획득하고, 상기 적어도 하나의 암호화 키는 상기 원격 스토리지 서비스 제공자에 의해 제공되고;
상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 하나 이상의 스토리지 디바이스들로부터의 데이터의 하나 이상의 파일들을 획득하고;
상기 하나 이상의 파일들을 데이터의 복수의 청크들로 파티션(partition)하고;
복수의 청크 키들, 각각은 상기 복수의 청크들의 개개의 것에 대응하는, 상기 복수의 청크 키들을 생성하고;
하나 이상의 파일 키들, 각각은 상기 하나 이상의 파일들의 개개의 것에 대응하는, 상기 하나 이상의 파일 키들을 생성하고;
상기 생성된 복수의 청크 키들 중 대응하는 것을 이용하여 상기 복수의 청크들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자로 발송하기 위한 암호화된 청크들을 생성하고;
상기 생성된 하나 이상의 파일 키들 중 대응하는 것을 이용하여 상기 복수의 청크 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자로 발송하기 위한 복수의 암호화된 청크 키들을 생성하고;
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 파일 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 하나 이상의 생성된 암호화된 파일 키들을 생성하고;
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 청크들을 전송하고; 및
전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하도록 구성된다.
2. 항목 1에 열거된 시스템에 있어서, 상기 하나 이상의 컴퓨팅 디바이스들은 추가로:
상기 암호화된 청크들, 상기 암호화된 청크 키들, 및 상기 하나 이상의 암호화된 파일 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하고 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 복수의 청크들 및 상기 복수의 청크 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하도록 구성된다.
3. 항목 1에 열거된 시스템에 있어서, 상기 하나 이상의 컴퓨팅 디바이스들은 추가로:
보안 정보를 획득하고, 상기 보안 정보는 상기 원격 스토리지 서비스 제공자에 의해 제공되고;
상기 보안 정보를 이용하여 상기 배송가능한 스토리지 디바이스를 인증하고; 및
상기 보안 정보의 적어도 일부를 상기 적어도 하나의 배송가능한 스토리지 디바이스에 제공하도록 구성된다.
4. 항목 3에 열거된 시스템에 있어서, 상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키는 상기 원격 스토리지 서비스 제공자에서 대응하는 스토리지 위치와 각각 관련된 복수의 암호화 키들을 포함하고, 상기 하나 이상의 컴퓨팅 디바이스들은 추가로 :
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 복수의 암호화 키들 중 대응하는 것을 이용하여 상기 복수의 파일 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에서 상기 스토리지 위치들 중 하나와 각각 관련된 복수의 암호화된 파일 키들을 생성하도록 구성된다.
5. 방법에 있어서,
클라이언트 네트워크의 하나 이상의 컴퓨팅 디바이스들에 의해 수행되는,
적어도 하나의 암호화 키를 획득하는 단계로서, 상기 적어도 하나의 암호화 키는 상기 원격 스토리지 서비스 제공자에 의해 저장된, 상기 암호화 키를 획득하는 단계;
상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 하나 이상의 스토리지 디바이스들로부터 데이터를 획득하는 단계;
상기 데이터를 데이터의 복수의 청크들로 파티션하는 단계(partitioning);
상기 복수의 청크들과 관련된 복수의 청크 키들을 생성하는 단계;
상기 생성된 복수의 청크 키들 중 대응하는 것을 이용하여 상기 복수의 청크들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자로 발송하기 위한 암호화된 청크들을 생성하는 단계;
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 복수의 청크 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 청크 키들을 생성하는 단계;
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 청크들을 전송하는 단계; 및
전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하는 단계를 포함한다.
6. 항목 5에 열거된 방법에 있어서,
상기 암호화된 청크들 및 상기 암호화된 청크 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 복수의 청크들 및 상기 복수의 청크 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하는 단계를 더 포함한다.
7. 항목 5에 열거된 방법에 있어서, 상기 데이터는 복수의 파일들을 포함하고, 복수의 파일 키들로서 각각이 상기 복수의 파일들의 개개의 것에 대응하는, 상기 복수의 파일 키들을 생성하는 단계를 더 포함하되, 상기 복수의 청크 키들의 각각을 암호화하여 상기 암호화된 청크 키들을 생성하는 단계는 :
상기 생성된 복수의 파일 키들 중 대응하는 것을 이용하여 상기 복수의 청크 키들의 각각을 암호화하여 복수의 암호화된 청크 키들을 생성하는 단계; 및
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 복수의 암호화된 청크 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 암호화-청크 키들을 생성하는 단계;를 포함한다.
8. 항목 7에 열거된 방법에 있어서, 상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키는 복수의 암호화 키들을 더 포함하고, 추가로 :
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 복수의 암호화 키들 중 대응하는 것을 이용하여 상기 복수의 파일 키들의 각각을 암호화하여 복수의 암호화된 파일 키들을 생성하는 단계; 및
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 복수의 암호화 키들을 이용하여 상기 복수의 암호화된 파일 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 암호화-파일 키들을 생성하는 단계;를 포함한다.
9. 항목 8에 열거된 방법에 있어서,
상기 복수의 암호화 키들 중 하나 이상은 상기 원격 스토리지 서비스 제공자에서의 스토리지 위치와 연관되고; 및
상기 복수의 암호화 키들 중 특정 암호화 키에 의해 암호화된 파일 키와 관련된 데이터의 하나 이상의 청크들은 상기 복수의 암호화 키들 중 특정 암호화 키와 관련된 스토리지 위치에서 저장된다.
10. 항목 5에 열거된 방법에 있어서,
상기 하나 이상의 스토리지 디바이스들로부터 상기 데이터를 획득하는 단계는;
상기 네트워크로부터 상기 데이터를 획득하는 단계;
상기 데이터내 적어도 하나의 파일을 식별하는 단계; 및
상기 데이터내 상기 적어도 하나의 파일들의 각각에 대응하는 상기 적어도 하나의 파일 키들의 각각을 생성하는 단계; 및
상기 데이터를 데이터의 복수의 청크들로 파티션하는 단계로서 :
상기 적어도 하나의 파일들의 각각을 청크들로 파티션하여 상기 데이터의 복수의 청크들을 형성하는 단계를 포함하는, 상기 파티션하는 단계를 포함한다.
11. 항목 5에 열거된 방법에 있어서,
상기 적어도 하나의 암호화 키를 획득하는 단계는;
통신 네트워크를 통하여 상기 원격 스토리지 서비스 제공자로부터, 상기 적어도 하나의 암호화 키 및 보안 정보를 다운로드하는 단계; 및
상기 보안 정보를 이용하여 상기 배송가능한 스토리지 디바이스를 인증하는 단계를 포함한다.
12. 항목 5에 열거된 방법에 있어서,
상기 적어도 하나의 암호화 키를 획득하는 단계는 추가로;
상기 적어도 하나의 암호화 키를 매니페스트(manifest)를 다운로드하는 단계;
코드를 수신하는 단계로서, 상기 코드는 상기 배송가능한 스토리지 디바이스와 별개로 상기 원격 서비스 제공자에 의해 제공되는, 상기 코드를 수신하는 단계; 및
상기 코드를 확인에 응답하여, 상기 적어도 하나의 암호화 키를 획득하는 단계를 포함한다.
13. 항목 5에 열거된 방법에 있어서,
상기 적어도 하나의 배송가능한 스토리지 디바이스는 복수의 배송가능한 스토리지 디바이스를 포함하고; 및
상기 암호화된 청크들을 상기 적어도 하나의 배송가능한 스토리지 디바이스들로 전송하는 단계는 상기 암호화된 청크들의 상이한 부분을 상기 복수의 배송가능한 스토리지 디바이스들의 각각으로 병렬로 전송하는 단계를 포함한다.
14. 프로그램 지시들을 저장한 비-일시적 컴퓨터-판독 가능한 저장 매체에 있어서, 상기 프로그램 지시들은 클라이언트 사이트의 네트워크의 하나 이상의 컴퓨팅 디바이스들에 의해 실행될 때 상기 하나이상의 컴퓨팅 디바이스들로 하여금:
적어도 하나의 암호화 키를 획득하는 단계로서, 상기 적어도 하나의 암호화 키는 원격 스토리지 서비스 제공자에 의해 제공되는, 상기 암호화 키를 획득하는 단계;
상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 하나 이상의 스토리지 디바이스들로부터 데이터를 획득하는 단계;
상기 데이터를 데이터의 복수의 청크들로 파티션하는 단계(partitioning);
복수의 청크 키들로서, 각각이 상기 복수의 청크들에 대응하는, 상기 복수의 청크 키들을 생성하는 단계;
상기 생성된 복수의 청크 키들의 대응하는 것을 이용하여 상기 복수의 청크들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자로 발송하기 위한 암호화된 청크들을 생성하는 단계;
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 복수의 청크 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 청크 키들을 생성하는 단계;
상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 청크들을 전송하는 단계; 및
전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송 준비가 되었다는 것을 표시하는 단계를 구현하게 한다.
15. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 암호화된 청크들 및 상기 암호화된 청크 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 복수의 청크들 및 상기 복수의 청크 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로 배송을 위한 준비가 되었다는 것을 표시하는 단계를 구현하게 한다.
16. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 데이터는 복수의 파일들을 포함하고, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
복수의 파일 키들로서, 각각이 상기 복수의 파일들의 개개의 것에 대응하는 상기 복수의 파일 키들을 생성하는 단계로서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로 :
상기 생성된 복수의 파일 키들 중 대응하는 것을 이용하여 상기 복수의 청크 키들의 각각을 암호화하여 복수의 암호화된 청크 키들을 생성하는 단계; 및
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 복수의 암호화된 청크 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 암호화-청크 키들을 생성하는 단계를 구현하게 한다.
17. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키는 복수의 암호화 키들을 포함하고, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로 :
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 복수의 암호화 키들 중 대응하는 것을 이용하여 상기 복수의 파일 키들의 각각을 암호화하여 복수의 암호화된 파일 키들을 생성하는 단계; 및
상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 복수의 암호화 키들을 이용하여 상기 복수의 암호화된 파일 키들의 각각을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 암호화-파일 키들을 생성하는 단계;를 구현하게 한다.
18. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 적어도 하나의 배송가능한 스토리지 디바이스와 관련된 특정 데이터 유입 작업에 대한 루트 인증서(root certificate)를 포함하는 보안 정보를 상기 원격 스토리지 서비스 제공자로부터 획득하는 단계;
상기 보안 정보에 기초하여 상기 적어도 하나의 배송가능한 스토리지 디바이스를 인증하는 단계; 및
상기 보안 정보의 적어도 일부를 상기 배송가능한 스토리지 디바이스에 제공하여 상기 클라이언트가 상기 적어도 하나의 배송가능한 스토리지 디바이스에 의해 인증되는 것을 허용하는 단계를 구현하게 한다.
19. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
상기 제 1 암호화 키, 상기 배송가능한 스토리지 디바이스를 인증하기 위한 보안 정보, 및 유입될 상기 데이터를 저장하기 위한 상기 스토리지 서비스 제공자에서의 하나 이상의 스토리지 위치들과 연관된 메타데이터를 포함하는 매니페스트를 통신 네트워크를 통하여 상기 원격 스토리지 서비스 제공자로부터 다운로드하는 단계를 구현하게 한다.
20. 항목 14의 비-일시적, 컴퓨터-판독가능한 스토리지 매체에 있어서, 상기 적어도 하나의 배송가능한 스토리지 디바이스는 복수의 배송가능한 스토리지 디바이스들을 포함하고, 상기 프로그램 지시들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로 :
상기 클라이언트 사이트의 네트워크의 하나 이상의 특성들에 기초하여 데이터 전송 계획을 결정하는 단계; 및
상기 데이터 전송 계획에 기초하여 상기 암호화된 청크들의 상이한 부분을 상기 복수의 배송가능한 스토리지 디바이스들 각각으로 전송하는 단계를 구현하게 한다.
다양한 실시예들은 컴퓨터-액세스 가능한 매체에 대한 앞서 말한 설명에 따라 구현된 지시들 및/또는 데이터를 수신하는 것, 전송하는 것, 또는 저장하는 것을 더 포함할 수 있다. 일반적으로 말해서, 컴퓨터-액세스 가능한 매체는 스토리지 매체 또는 메모리 매체들 예컨대 자기 또는 광 매체, 예를 들어, 디스크 또는 DVD/CD-ROM, 휘발성 또는 비-휘발성 매체들 예컨대 RAM (예를 들어, SDRAM, DDR, RDRAM, SRAM, 등), ROM, 등, 뿐만 아니라 송신 매체들 또는 신호들 예컨대 예컨대 네트워크 및/또는 무선 링크를 통하여 전송되는 전기적, 전자기, 또는 디지털 신호들을 포함할 수 있다.

Claims (15)

  1. 시스템으로서,
    클라이언트 사이트(client site)의 네트워크에 연결된 하나 이상의 컴퓨팅 디바이스들;
    상기 클라이언트 사이트의 네트워크에 부착된 하나 이상의 스토리지 디바이스들;
    원격 스토리지 제공자에 의해 제공된 적어도 하나의 배송가능한 스토리지 디바이스(shippable storage device)로서, 상기 적어도 하나의 배송가능한 스토리지 디바이스는 상기 클라이언트 사이트의 네트워크에 부착된, 상기 적어도 하나의 배송가능한 스토리지 디바이스; 및
    상기 하나 이상의 컴퓨팅 디바이스들 중 적어도 하나에 구현된 데이터 전송 툴(data transfer tool)를 포함하되, 상기 데이터 전송 툴은:
    원격 스토리지 서비스 제공자로부터 적어도 하나의 암호화 키를 획득하고;
    상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하고;
    상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하고;
    상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하고;
    상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화하여 암호화된 데이터를 생성하고;
    상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 발송하기 위한 암호화된 하나 이상의 생성된 암호화 키들을 생성하고;
    상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하고; 및
    상기 적어도 하나의 배송가능한 스토리지 디바이스로의 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하도록 구성되는 시스템.
  2. 제1항에 있어서, 상기 데이터 전송 툴은 :
    상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하고 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하도록 더 구성되는 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 식별된 데이터를 획득하기 위해, 상기 데이터 전송 툴은 :
    하나 이상의 파일들을 획득하고; 및
    상기 하나 이상의 파일들의 각각으로부터 데이터의 복수의 청크(chunk)들을 생성하도록 더 구성되고;
    상기 하나 이상의 암호화 키들을 생성하기 위해, 상기 데이터 전송 툴은 데이터의 상기 복수의 청크들의 각각에 대한 별개의 암호화 키를 생성하도록 더 구성되고; 및
    상기 식별된 데이터를 암호화하기 위해, 상기 데이터 전송 툴은 상기 하나 이상의 생성된 암호화 키들의 개별 암호화 키를 이용하여 데이터의 상기 복수의 청크들의 각각을 암호화하도록 더 구성되는 시스템.
  4. 제1항 또는 제2항에 있어서, 상기 암호화된 하나 이상의 암호화 키들을 상기 원격 스토리지 서비스 제공자로 발송하기 위해서, 상기 데이터 전송 툴은 :
    상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스로 전송하거나 또는 상기 배송가능한 스토리지 디바이스와 별개로 통신 네트워크를 통하여 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 스토리지 서비스 제공자에 송신하도록 더 구성되는 시스템.
  5. 방법으로서,
    클라이언트 사이트의 네트워크의 하나 이상의 컴퓨팅 디바이스에 구현된 데이터 전송 툴(data transfer tool)에 의해 수행되는 :
    원격 스토리지 서비스 제공자로부터 적어도 하나의 암호화 키를 획득하는 단계;
    상기 원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 네트워크의 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하는 단계;
    상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계;
    상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하는 단계;
    암호화된 데이터를 생성하기 위해 상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화하는 단계;
    상기 원격 스토리지 서비스 제공자에 의해 제공된 상기 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 전달될 암호화된 하나 이상의 생성된 암호화 키들을 생성하는 단계;
    상기 네트워크에 부착되고 상기 원격 스토리지 제공자에 의해 제공된 상기 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하는 단계; 및
    상기 적어도 하나의 배송가능한 스토리지 디바이스로의 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하는 단계를 포함하는 방법.
  6. 제5항에 있어서, 상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하는 단계를 더 포함하는 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 네트워크의 상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계는,
    하나 이상의 파일들을 획득하는 단계; 및
    상기 하나 이상의 파일들의 각각으로부터 데이터의 복수의 청크들을 생성하는 단계를 포함하고,
    상기 하나 이상의 암호화 키들을 생성하는 단계는 데이터의 상기 복수의 청크들의 각각에 대한 별개의 암호화 키를 생성하는 단계를 포함하고; 및
    상기 식별된 데이터를 암호화하는 단계는 상기 하나 이상의 생성된 암호화 키들의 개별 암호화 키를 이용하여 데이터의 상기 복수의 청크들의 각각을 암호화하는 단계를 포함하는 방법.
  8. 제5항 또는 제6항에 있어서,
    상기 원격 스토리지 서비스 제공자로부터 보안 정보를 획득하는 단계;및
    상기 보안 정보에 기초하여 상기 적어도 하나의 배송가능한 스토리지 디바이스를 인증하는 단계를 더 포함하는 방법.
  9. 제5항 또는 제6항에 있어서, 상기 원격 스토리지 서비스 제공자로부터, 상기 적어도 하나의 암호화 키를 획득하는 단계는 상기 적어도 하나의 배송가능한 스토리지 디바이스와 별개인 통신 네트워크를 통하여 상기 원격 스토리지 서비스 제공자로부터 상기 적어도 하나의 암호화 키를 다운로드하는 단계를 포함하는 방법.
  10. 제5항 또는 제6항에 있어서,
    상기 네트워크에 부착된 복수의 상기 배송가능한 스토리지 디바이스를 발견하는 단계; 및
    상기 암호화된 데이터를 상기 복수의 상기 배송가능한 스토리지 디바이스들로 전송하기 위한 데이터 전송 계획을 결정하는 단계를 더 포함하되, 상기 암호화된 데이터를 전송하는 단계는 상기 암호화된 데이터의 상이한 부분을 상기 복수의 배송가능한 스토리지 디바이스들의 각각으로 병렬로 전송하는 단계를 포함하는 방법.
  11. 프로그램 명령어들을 저장한 비-일시적 컴퓨터-판독 가능한 저장 매체에 있어서, 상기 프로그램 명령어들은 클라이언트 사이트의 네트워크의 하나 이상의 컴퓨팅 디바이스들에 의해 실행될 때 상기 하나 이상의 컴퓨팅 디바이스들로 하여금:
    원격 스토리지 서비스 제공자의 스토리지 서비스에 유입될 상기 네트워크의 하나 이상의 스토리지 디바이스들상에 저장된 데이터를 식별하는 단계;
    상기 하나 이상의 스토리지 디바이스들로부터 상기 식별된 데이터를 획득하는 단계;
    상기 식별된 데이터를 암호화하기 위해 하나 이상의 암호화 키들을 생성하는 단계;
    암호화된 데이터를 생성하기 위해 상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 식별된 데이터를 암호화하는 단계;
    상기 원격 스토리지 서비스 제공자에 의해 저장된 적어도 하나의 암호화 키를 이용하여 상기 하나 이상의 생성된 암호화 키들을 암호화하여 상기 원격 스토리지 서비스 제공자에 전달될 암호화된 하나 이상의 생성된 암호화 키들을 생성하는 단계;
    상기 네트워크에 부착되고 상기 원격 스토리지 제공자에 의해 제공된 적어도 하나의 배송가능한 스토리지 디바이스로 상기 암호화된 데이터를 전송하는 단계; 및
    상기 배송가능한 스토리지 디바이스로의 상기 암호화된 데이터의 전송 완료에 응답하여, 상기 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하는 단계를 구현하게 하는 비-일시적 컴퓨터-판독 가능한 저장 매체.
  12. 제11항에 있어서, 상기 프로그램 명령어들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
    상기 암호화된 데이터 및 상기 암호화된 하나 이상의 생성된 암호화 키들을 상기 적어도 하나의 배송가능한 스토리지 디바이스상에 저장하는 단계 및 암호화되지 않은 형태로 상기 배송가능한 스토리지 디바이스상에 저장된 상기 식별된 데이터 및 상기 하나 이상의 생성된 암호화 키들 없이 상기 적어도 하나의 배송가능한 스토리지 디바이스가 상기 원격 스토리지 서비스 제공자로의 배송을 위한 준비가 되었다는 것을 표시하는 단계를 구현하게 하는 비-일시적 컴퓨터-판독 가능한 저장 매체.
  13. 제11항 또는 제12항에 있어서, 상기 적어도 하나의 암호화 키는 상기 배송가능한 스토리지 디바이스와 별개로 상기 클라이언트로 상기 원격 스토리지 서비스 제공자에 의해 제공되거나 또는 상기 배송가능한 스토리지 디바이스와 별개로 상기 원격 스토리지 서비스 제공자에게 상기 클라이언트에 의해 제공되는 비-일시적 컴퓨터-판독 가능한 저장 매체.
  14. 제11항 또는 제12항에 있어서, 상기 프로그램 명령어들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
    상기 원격 스토리지 서비스 제공자로부터 보안 정보를 획득하는 단계;및
    상기 보안 정보에 기초하여 상기 적어도 하나의 배송가능한 스토리지 디바이스를 인증하는 단계를 구현하게 하는 비-일시적 컴퓨터-판독 가능한 저장 매체.
  15. 제11항 또는 제12항에 있어서, 상기 프로그램 명령어들은 상기 하나 이상의 컴퓨팅 디바이스들로 하여금 추가로:
    상기 네트워크에 부착된 복수의 상기 배송가능한 스토리지 디바이스를 발견하는 단계;
    상기 식별된 데이터 및 이중화 인코딩 기술(redundancy encoding technique)에 기초하여 복수의 샤드(shard)들을 생성하는 단계로서, 상기 식별된 데이터를 암호화하는 단계는 복수의 암호화된 샤드들을 생성하기 위해 상기 하나 이상의 생성된 암호화 키들을 이용하여 상기 복수의 샤드들의 각각을 암호화하는 단계를 포함하는, 상기 복수의 샤드들을 생성하는 단계; 및
    상기 복수의 암호화된 샤드들의 서브셋을 식별하는 단계로서, 상기 암호화된 데이터의 전송 단계는 상기 배송가능한 스토리지 디바이스들의 개개의 것으로 상기 복수의 샤드들의 서브셋의 각각의 샤드를 전송하는 단계를 구현하게 하는 비-일시적 컴퓨터-판독 가능한 저장 매체.
KR1020207021735A 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수 KR102192483B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14/975,363 US9934389B2 (en) 2015-12-18 2015-12-18 Provisioning of a shippable storage device and ingesting data from the shippable storage device
US14/975,363 2015-12-18
US14/975,371 2015-12-18
US14/975,371 US10482413B2 (en) 2015-12-18 2015-12-18 Data transfer tool for secure client-side data transfer to a shippable storage device
US14/975,368 2015-12-18
US14/975,368 US9887998B2 (en) 2015-12-18 2015-12-18 Security model for data transfer using a shippable storage device
PCT/US2016/067147 WO2017106628A1 (en) 2015-12-18 2016-12-16 Provisioning of a shippable storage device and ingesting data from the shippable storage device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187019244A Division KR102139709B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수

Publications (2)

Publication Number Publication Date
KR20200091965A KR20200091965A (ko) 2020-07-31
KR102192483B1 true KR102192483B1 (ko) 2020-12-17

Family

ID=58192348

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207021735A KR102192483B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수
KR1020207021737A KR102192490B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수
KR1020187019244A KR102139709B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207021737A KR102192490B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수
KR1020187019244A KR102139709B1 (ko) 2015-12-18 2016-12-16 배송가능한 스토리지 디바이스의 프로비저닝 및 배송가능한 스토리지 디바이스로부터 데이터 입수

Country Status (5)

Country Link
EP (2) EP4071645A1 (ko)
JP (4) JP6663013B2 (ko)
KR (3) KR102192483B1 (ko)
CN (2) CN115374478A (ko)
WO (1) WO2017106628A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385345A (zh) 2018-12-29 2020-07-07 北京航迹科技有限公司 用于数据传输和存储的系统和方法
US11810056B1 (en) * 2020-03-04 2023-11-07 Amazon Technologies, Inc. Dynamic physical data transfer routing
KR20220079192A (ko) * 2020-12-04 2022-06-13 삼성전자주식회사 보안 키를 관리하는 방법 및 장치
CN116547943A (zh) 2020-12-04 2023-08-04 三星电子株式会社 用于管理安全密钥的方法和设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350316A1 (en) * 2014-05-30 2015-12-03 Microsoft Technology Licensing, Llc Data transfer service

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3516591B2 (ja) * 1997-09-12 2004-04-05 日立ソフトウエアエンジニアリング株式会社 データの保存方法およびシステム並びにデータ保存処理用記録媒体
JP2008059561A (ja) * 2006-08-04 2008-03-13 Canon Inc 情報処理装置、データ処理装置、および、それらの方法
US20090196417A1 (en) * 2008-02-01 2009-08-06 Seagate Technology Llc Secure disposal of storage data
US8225109B1 (en) * 2008-04-30 2012-07-17 Netapp, Inc. Method and apparatus for generating a compressed and encrypted baseline backup
CN101316274B (zh) * 2008-05-12 2010-12-01 华中科技大学 一种适用于广域网的数据容灾系统
EP2337262A1 (en) * 2008-10-10 2011-06-22 Panasonic Corporation Information processing device, method, program, and integrated circuit
CN101478548B (zh) * 2009-01-22 2012-07-04 上海交通大学 数据传输的加密和完整性校验方法
US8090690B2 (en) * 2009-05-27 2012-01-03 MiMedia LLC Systems and methods for data upload and download
JP2011172099A (ja) * 2010-02-19 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> データ転送方法、データ転送システム、データ送信装置、データ管理装置、データ復号装置およびコンピュータプログラム
US9213709B2 (en) * 2012-08-08 2015-12-15 Amazon Technologies, Inc. Archival data identification
CN103179086B (zh) * 2011-12-21 2016-05-18 中国电信股份有限公司 数据的远程存储处理方法与系统
US8782441B1 (en) * 2012-03-16 2014-07-15 Google Inc. Methods and systems for storage of large data objects
CN103248618A (zh) * 2013-03-08 2013-08-14 重庆城市管理职业学院 一种基于OpenSSL的Linux安全文件传输系统及方法
US10187358B2 (en) * 2013-12-03 2019-01-22 Amazon Technologies, Inc. Data transfer optimizations
WO2016010604A2 (en) * 2014-04-28 2016-01-21 Topia Technology, Inc. Systems and methods for security hardening of data in transit and at rest via segmentation, shuffling and multi-key encryption

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150350316A1 (en) * 2014-05-30 2015-12-03 Microsoft Technology Licensing, Llc Data transfer service

Also Published As

Publication number Publication date
JP6942830B2 (ja) 2021-09-29
KR20180090865A (ko) 2018-08-13
EP4071645A1 (en) 2022-10-12
KR20200091966A (ko) 2020-07-31
JP2019500791A (ja) 2019-01-10
JP2021193587A (ja) 2021-12-23
CN108369628A (zh) 2018-08-03
KR20200091965A (ko) 2020-07-31
WO2017106628A1 (en) 2017-06-22
KR102139709B1 (ko) 2020-07-30
JP7201761B2 (ja) 2023-01-10
JP2020080559A (ja) 2020-05-28
EP3391277A1 (en) 2018-10-24
JP6941699B2 (ja) 2021-09-29
JP2020080560A (ja) 2020-05-28
CN115374478A (zh) 2022-11-22
JP6663013B2 (ja) 2020-03-11
CN108369628B (zh) 2022-09-13
KR102192490B1 (ko) 2020-12-17

Similar Documents

Publication Publication Date Title
US11921870B2 (en) Provisioning of a shippable storage device and ingesting data from the shippable storage device
US10482413B2 (en) Data transfer tool for secure client-side data transfer to a shippable storage device
US9887998B2 (en) Security model for data transfer using a shippable storage device
US11157630B2 (en) Migrating data between databases
JP7201761B2 (ja) 出荷可能記憶装置のプロビジョニング及び出荷可能記憶装置からのデータの取り込み
US9430211B2 (en) System and method for sharing information in a private ecosystem
EP3606003B1 (en) Securely storing content within public clouds
CN102971722A (zh) 用于创建和传送加密的虚拟盘的系统和方法
US10630722B2 (en) System and method for sharing information in a private ecosystem
US10558586B1 (en) Shippable storage device for executing applications and securely storing data

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right