KR101632817B1 - 클라우드 컴퓨팅 보안 데이터 저장 - Google Patents

클라우드 컴퓨팅 보안 데이터 저장 Download PDF

Info

Publication number
KR101632817B1
KR101632817B1 KR1020147021717A KR20147021717A KR101632817B1 KR 101632817 B1 KR101632817 B1 KR 101632817B1 KR 1020147021717 A KR1020147021717 A KR 1020147021717A KR 20147021717 A KR20147021717 A KR 20147021717A KR 101632817 B1 KR101632817 B1 KR 101632817B1
Authority
KR
South Korea
Prior art keywords
data
resource
particles
cloud computing
storage
Prior art date
Application number
KR1020147021717A
Other languages
English (en)
Other versions
KR20140110042A (ko
Inventor
샤오동 왕
준 팡
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140110042A publication Critical patent/KR20140110042A/ko
Application granted granted Critical
Publication of KR101632817B1 publication Critical patent/KR101632817B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

보안 데이터 저장 서비스를 제공하기 위한 기술들 및 구현예들이 일반적으로 개시된다. 그 방법은: 데이터 리소스를 데이터 파티클들로 분할하는 것, 논리 그룹들을 데이터 파티클들에 할당하는 것, 물리적 저장 그룹들을 데이터 파티클들에 할당하는 것, 및/또는 각각의 물리적 저장 그룹을 대응하는 저장 리소스에 저장하는 것, 데이터 리소스에 대한 요청을 상기 수신하는 것, 데이터 리소스에 대한 요청이 유효한지의 여부를 결정하는 것, 요청이 유효하면, 데이터 리소스의 데이터 파티클들을 클라이언트로 송신하는 것을 포함한다. 그 방법은 데이터 액세스에 대한 향상된 보안성을 가능하게 하고, 또한 클라우드 컴퓨팅 환경에서의 유저 경험을 향상시킨다.

Description

클라우드 컴퓨팅 보안 데이터 저장{CLOUD COMPUTING SECURE DATA STORAGE}
본원에서 달리 나타내어지지 않는 한, 본 섹션에서 설명된 접근법들은 본 출원에서의 청구항들에 대한 선행 기술이 아니며 본 섹션에 포함됨에 따라 선행기술이 되는 것으로 인정되지 않는다.
현재의 데이터 보안 대책은, 예를 들면, 유저 인증 대책 및 암호화 기술들에 의해 보호되고 있는 데이터를 중앙 서버에 저장할 수도 있다. 그러나, 예를 들면 클라우드 컴퓨팅 환경들과 같이 컴퓨팅 환경이 진화함에 따라, 클라우드 컴퓨팅 환경들과 관련될 수도 있는 유비쿼터스 컴퓨팅 환경들의 활용을 용이하게 하기 위해, 현재의 데이터 보안 솔루션들도 또한 진화할 수도 있다. 따라서, 안전하도록 의도된 데이터에 액세스하기 위한 기술들이 향상함에 따라, 향상된 보안 대책은 클라우드 컴퓨팅 환경들에서의 유저 경험을 향상시킬 수도 있다.
개요
다양한 실시형태들에서, 본 개시는 클라우드 컴퓨팅 환경에서 보안 (secure) 데이터 저장 서비스를 제공하는 예시적인 방법들을 설명한다. 예시적인 방법들은 데이터 리소스를 데이터 파티클들로 분할하는 것 및 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것을 포함할 수도 있으며, 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것은, 논리 그룹들을 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나가 통신 데이터 파티클인 데이터 파티클들을 포함하여, 데이터 파티클들이 그 논리 그룹의 임의의 다른 데이터 파티클과 통신하도록 구성되는, 상기 논리 그룹들을 데이터 파티클들에 할당하는 것, 물리적 저장 그룹들을 데이터 파티클들에 할당하는 것, 및 클라우드 컴퓨팅 환경의 대응하는 그리고 물리적으로 별도의 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 반복하는 것에 의한다. 예시적인 방법은 클라이언트로부터 데이터 리소스에 대한 요청을 수신하는 것, 데이터 리소스에 대한 요청이 유효한지의 여부를 결정하는 것, 및 데이터 리소스에 대한 요청이 유효하면, 데이터 리소스의 데이터 파티클들을 클라이언트로 송신하는 것을 또한 포함할 수도 있다.
다양한 실시형태들에서, 본 개시는 또한, 명령들이 저장된 예시적인 머신 판독가능한 비일시적 매체를 설명하는데, 명령들은, 실행시, 클라우드 컴퓨팅 환경에서의 클라우드 컴퓨팅 리소스로 하여금, 보안 데이터 저장 서비스를 제공하게 한다. 예시적인 머신 판독가능한 비일시적 매체는 명령들을 저장하며, 명령들은, 실행시, 클라우드 컴퓨팅 환경에서의 클라우드 컴퓨팅 리소스로 하여금, 데이터 리소스를 데이터 파티클들로 분할하는 것 및 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것에 의해, 그리고 클라이언트로부터 데이터 리소스에 대한 요청의 수신시, 데이터 리소스에 대한 요청이 유효한지의 여부를 결정하는 것, 및 데이터 리소스에 대한 요청이 유효하면, 데이터 리소스의 데이터 파티클들을 클라이언트로 송신하는 것에 의해, 보안 데이터 저장 서비스를 제공하게 하고, 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것은, 논리 그룹들을 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나가 통신 데이터 파티클인 데이터 파티클들을 포함하여, 데이터 파티클들이 그 논리 그룹의 임의의 다른 데이터 파티클과 통신하도록 구성되고, 각각의 통신 데이터 파티클은 클라우드 컴퓨팅 환경의 통신하도록 구성되는, 상기 논리 그룹들을 데이터 파티클들에 할당하는 것, 물리적 저장 그룹들을 데이터 파티클들에 할당하는 것, 및 클라우드 컴퓨팅 환경의 대응하는 그리고 물리적으로 별도의 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 반복하는 것에 의한다.
다양한 실시형태들에서, 본 개시는 또한 예시적인 시스템들을 설명한다. 예시적인 시스템들은 프로세서 및 명령들이 저장된 머신 판독가능 매체를 포함할 수도 있고, 명령들은, 실행시, 클라우드 컴퓨팅 환경에서의 클라우드 컴퓨팅 리소스로 하여금, 데이터 리소스를 데이터 파티클들로 분할하는 것 및 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것에 의해, 그리고 클라이언트로부터 데이터 리소스에 대한 요청의 수신시, 데이터 리소스에 대한 요청이 유효한지의 여부를 결정하는 것, 및 데이터 리소스에 대한 요청이 유효하면, 데이터 리소스의 데이터 파티클들을 클라이언트로 송신하는 것에 의해, 보안 데이터 저장 서비스를 제공하게 하고, 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경하는 것은, 논리 그룹들을 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나가 통신 데이터 파티클인 데이터 파티클들을 포함하여, 데이터 파티클들이 그 논리 그룹의 임의의 다른 데이터 파티클과 통신하도록 구성되고, 각각의 통신 데이터 파티클은 클라우드 컴퓨팅 환경의 통신하도록 구성되는, 상기 논리 그룹들을 데이터 파티클들에 할당하는 것, 물리적 저장 그룹들을 데이터 파티클들에 할당하는 것, 및 클라우드 컴퓨팅 환경의 대응하는 그리고 물리적으로 별도의 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 반복하는 것에 의한다.
상기 개요는 단지 예시적인 것이며 임의의 방식으로 제한하도록 의도되어선 안된다. 상기 상술된 예시적인 양태들, 실시형태들, 및 특징들에 부가하여, 다른 양태들, 실시형태들, 및 특징들이 도면들 및 하기의 상세한 설명으로부터 더욱 명확해질 것이다.
주제는 본 명세서의 결론 부분에서 특히 가리켜지고 뚜렷하게 주장된다. 본 개시의 앞서의 특징 및 다른 특징은, 첨부 도면들을 함께 취해진, 하기의 설명 및 첨부된 청구항들로부터 보다 완전히 명백해질 것이다. 이들 도면들은 단지 본 개시에 따른 몇몇 실시형태들만을 묘사하고, 따라서 그 범위를 제한하는 것으로 간주되지 않아야 한다는 점을 이해하면, 본 개시는 첨부 도면들의 이용을 통해 추가적인 특이성 및 세부사항으로 설명될 것이다.
도면들에서,
도 1은 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 방법의 블록도의 예시이다;
도 2는 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 방법의 흐름도의 예시이다;
도 3은 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 데이터 포맷의 블록도의 예시이다;
도 4는 예시적인 컴퓨터 프로그램 제품의 예시이다; 그리고
도 5는 예시적인 컴퓨팅 디바이스의 블록도의 예시이며, 이들 도면들 모두는 본 개시의 적어도 몇몇 실시형태에 따라 모두 정렬된다.
상세한 설명
주제는 본 명세서의 결론 부분에서 특히 가리켜지고 뚜렷하게 주장된다. 본 개시의 앞서의 특징 및 다른 특징은, 첨부 도면들을 함께 취해진, 하기의 설명 및 첨부된 청구항들로부터 보다 완전히 명백해질 것이다. 이들 도면들은 단지 본 개시에 따른 몇몇 실시형태들만을 묘사하고, 따라서 그 범위를 제한하는 것으로 간주되지 않아야 한다는 점을 이해하면, 본 개시는 첨부 도면들의 이용을 통해 추가적인 특이성 및 세부사항으로 설명될 것이다.
다음의 설명은, 청구된 청구물의 철저한 이해를 제공하기 위해, 특정 세부사항들과 함께 다양한 예들을 설명한다. 그러나, 청구된 주제는 본원에 개시된 특정 세부사항들 중 일부 또는 그 이상이 없어도 실시될 수도 있음이 당업자들에 의해 이해될 것이다. 또한, 일부 상황들에서, 공지의 방법들, 절차들, 시스템들, 컴포넌트들, 및/또는 회로들은 청구된 주제를 불필요하게 모호하게 하는 것을 막기 위해 상세히 설명되지 않았다.
하기의 상세한 설명에서는, 상세한 설명의 일부를 형성하는 첨부된 도면들을 참조한다. 도면들에서, 문맥상 다르게 지시하지 않는 한, 유사한 도면 부호는 통상 유사한 컴포넌트를 식별한다. 상세한 설명, 도면들, 및 특허청구범위에서 설명된 예시적인 실시형태들은 제한하는 것으로 의도된 것은 아니다. 본원에서 제시된 주제의 취지 또는 범위를 벗어나지 않으면서, 다른 실시형태들이 활용될 수도 있고, 다른 변경예들이 이루어질 수도 있다. 본원에서 일반적으로 설명되고, 도면들에서 예시된 바와 같은 본 개시의 양태들은 아주 다양하고 상이한 구성들로 배열되고, 대체되고, 조합되고, 설계될 수 있으며, 이들 모두는 본원에서 명시적으로 고려되고 본 개시물의 일부분을 이룬다는 것이 쉽게 이해될 것이다.
본 개시는, 특히, 클라우드 컴퓨팅 환경들에서 보안 데이터 저장 서비스들을 제공하는 것에 관련된 방법들, 디바이스들, 시스템들, 및 컴퓨터 판독가능 매체에 대해 묘사된다.
일반적으로, 데이터 파일, 이미지 파일, 오디오 파일, 비디오 파일, 어플리케이션 등과 같은 데이터 리소스는, 본원에서 논의되는 임의의 하나 이상의 기술들을 사용하여 클라우드 컴퓨팅 환경에 안전하게 저장될 수도 있다. 몇몇 예들에서, 데이터 리소스는 데이터 파티클들 (particles) 로 분할될 수도 있다. 데이터 파티클은 논리적으로 및/또는 물리적으로 분리될 수도 있다. 논리적 분리는, 데이터 파티클들의 모두가 논리 그룹에 할당될 수도 있도록, 데이터 파티클들에 논리 그룹들을 할당하는 것을 포함할 수도 있다. 몇몇 예들에서, 각각의 논리 그룹에서의 데이터 파티클들은 그 논리 그룹에서의 다른 데이터 파티클들과 통신하도록 구성될 수도 있다. 몇몇 예들에서, 각각의 논리 그룹에서의 하나 이상의 데이터 파티클들은, 각각의 그룹에서의 통신 데이터 파티클이 클라우드 컴퓨팅 환경의 중앙 리소스들과 통신할 수도 있도록, 통신 데이터 파티클로서 구성될 수도 있다.
데이터 파티클들의 물리적 분리는, 데이터 파티클들의 모두가 저장 그룹에 할당될 수도 있도록, 데이터 파티클들에 저장 그룹들을 할당하는 것을 포함할 수도 있다. 일반적으로, 임의의 수의 논리 그룹들 및 저장 그룹들이 사용될 수도 있다. 논리 그룹들 및 저장 그룹들은, 일반적으로, 데이터 파티클들의 상이한 그룹들을 포함할 수도 있다. 몇몇 예들에서, 논리 그룹들 및 저장 그룹들은 랜덤하게 할당될 수도 있다. 데이터 파티클들의 각각의 할당된 저장 그룹은 클라우드 컴퓨팅 환경의 별도의 저장 리소스들에 물리적으로 저장될 수도 있다. 데이터 파티클들의 논리적 및/또는 물리적 분리는, 단일의 저장 리소스에서 데이터 리소스 전체를 유지하는 것에 비해 향상된 보안성을 제공할 수도 있다.
몇몇 예들에서, 설명된 논리적 및 물리적 분리들은, 논리 그룹들 및/또는 저장 그룹들의 연속적인 할당들과 새롭게 할당된 저장 그룹들의 연속적인 물리적 저장이 제공될 수도 있도록, 시간에 걸쳐 반복적으로 또는 주기적으로 변경될 수도 있다. 이러한 구현예들은 데이터 파티클들을 물리적으로 이동시킬 수도 있고 데이터 파티클들을 논리적으로 이동시키거나 드리프트시킬 수도 있다. 데이터 파티클들을 이동시키는 이러한 방법들 또는 동적인 데이터 파티클들은 향상된 보안성을 제공할 수도 있다. 데이터 리소스에 대한 유효한 요청을 수신하면, 데이터 리소스는 요청자 (예를 들면, 클라이언트) 로 송신될 수도 있다. 데이터 리소스는 재구성되어 클라이언트로 송신되거나 또는 수신 클라이언트가 데이터 리소스를 재구성할 수도 있도록 데이터 파티클들이 별도로 송신될 수도 있다.
도 1은, 본 개시의 적어도 몇몇 실시형태들에 따라 정렬된, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 방법 (100) 의 블록도의 예시이다. 일반적으로, 방법 (100) 은 본원에서 논의된 바와 같은 임의의 적절한 디바이스, 디바이스들, 시스템, 리소스들, 또는 리소스들의 그룹들에서 수행될 수도 있다. 도시된 바와 같이, 방법 (100) 은, 보안 데이터 저장 서비스가 제공될 수도 있는 데이터 리소스 (110) 를 포함할 수도 있다. 일반적으로, 데이터 리소스 (110) 는, 예를 들면, 데이터 파일, 이미지 파일, 오디오 파일, 비디오 파일, 어플리케이션 등과 같은 임의의 적절한 데이터 리소스를 포함할 수도 있다. 몇몇 예들에서, 데이터 리소스 (110) 는 클라우드 컴퓨팅 환경에서의 보안 저장을 위해 클라이언트 디바이스로부터 수신될 수도 있다.
도시된 바와 같이, 데이터 리소스 (110) 는 다수의 데이터 파티클들 (120) 로 분할될 수도 있다. 일반적으로, 데이터 리소스 (110) 는 임의의 적절한 기술 또는 기술들을 사용하여 임의의 적절한 컴퓨팅 리소스에 의해 분할될 수도 있다. 몇몇 예들에서, 데이터 리소스 (110) 는 클라우드 컴퓨팅 환경의 리소스에서 분할될 수도 있다. 일반적으로, 데이터 리소스 (110) 는 임의의 수의 데이터 파티클들로 분할될 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 의 수는 데이터 리소스 (110) 의 크기에 의존할 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 은 실질적으로 동일한 크기일 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 은 상이한 크기들일 수도 있다. 일반적으로, 데이터 파티클들 (120) 은, 논의된 기술들 및 특히 하기의 도 3에 관해 논의된 기술들을 구현하는 정보 및 데이터 리소스 (110) 의 일부를 포함하는 임의의 적절한 정보를 포함할 수도 있다.
도시된 바와 같이, 데이터 파티클들 (120) 은 다수의 논리 그룹들 및/또는 물리적 저장 그룹들에 할당될 수도 있다. 도 1에서, 데이터 파티클들 (120) 의 할당된 논리 그룹들은, 예시된 예에서, 데이터 파티클들 (120) 이 논리 그룹들 A, B, C, 및 D에 할당될 수도 있도록, 문자들에 의해 표현된다. 도 1에 또한 예시된 바와 같이, 각각의 논리 그룹의 하나 이상의 데이터 파티클들은 통신 데이터 파티클들로서 할당될 수도 있다. 몇몇 예들에서, 통신 데이터 파티클들은 키 데이터 파티클들 (key data particles) 로서 칭해질 수도 있다. 데이터 파티클들은 임의의 적절한 기술 또는 기술들을 사용하여 통신하도록 구성될 수도 있다. 몇몇 예들에서, 데이터 파티클들은 피어 투 피어 통신들을 통해 통신하도록 구성될 수도 있다. 예시된 예에서, 통신 데이터 파티클들은 A', B', C', 및 D'로서 표기된다.
일반적으로 각각의 논리 그룹에서의 데이터 파티클들은 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성될 수도 있고, 각각의 논리 그룹에서의 통신 데이터 파티클들은 클라우드 컴퓨팅 환경의 리소스와 통신하도록 구성될 수도 있다. 또한, 데이터 파티클들은 다른 논리 그룹들의 데이터 파티클들과 통신하도록 구성되지 않을 수도 있으며, 따라서 그룹들의 논리적 및/또는 통신적 분리를 제공한다. 본원에서 더 논의되는 바와 같이, 이러한 기술들은 데이터 리소스 (110) 에 대한 유효한 요청에 대해 데이터 리소스 (110) 가 재구성되는 것을 허용할 수도 있다. 일반적으로, 논리 그룹들은 임의의 적절한 방식으로 데이터 파티클들 (120) 에 할당될 수도 있다. 몇몇 예들에서, 논리 그룹들의 수는 데이터 파티클들 (120) 의 수에 의존할 수도 있다. 몇몇 예들에서, 논리 그룹들은 각각 실질적으로 동일한 수의 데이터 파티클들 (120) 을 포함할 수도 있다. 몇몇 예들에서, 각각의 논리 그룹에서의 데이터 파티클들 (120) 의 수는 상이할 수도 있다. 몇몇 예들에서, 논리 그룹들의 수는 랜덤하게 선택될 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 은 논리 그룹들에 랜덤하게 할당될 수도 있다.
도 1에 도시된 바와 같이, 데이터 파티클들 (120) 은 물리적 저장 그룹들 (131, 132, 133, 134) 에 할당될 수도 있다. 일반적으로, 데이터 파티클들 (120) 은, 물리적 저장 그룹들 (131, 132, 133, 134) 각각이 클라우드 컴퓨팅 환경의 물리적으로 별도의 저장 리소스들에 저장될 수도 있도록, 물리적 저장 그룹들 (131, 132, 133, 134) 에 할당될 수도 있다. 일반적으로, 물리적 저장 그룹들 (131, 132, 133, 134) 은 임의의 적절한 방식으로 데이터 파티클들 (120) 에 할당될 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들 (131, 132, 133, 134) 의 수는 데이터 파티클들 (120) 의 수에 의존할 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들 (131, 132, 133, 134) 의 수는, 클라우드 컴퓨팅 환경에서 이용 가능한 저장 리소스들 수 및/또는 저장 리소스들의 저장 성능에 의존할 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들 (131, 132, 133, 134) 은 실질적으로 동일한 수의 데이터 파티클들 (120) 을 포함할 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들 (131, 132, 133, 134) 의 각각에서의 데이터 파티클들 (120) 의 수는 상이할 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들 (131, 132, 133, 134) 의 수는 랜덤하게 선택될 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 은 물리적 저장 그룹들 (131, 132, 133, 134) 에 랜덤하게 할당될 수도 있다.
도 1에 도시된 바와 같이, 데이터 파티클들 (120) 의 물리적 저장 그룹들 (131, 132, 133, 134) 은 클라우드 컴퓨팅 환경 (150) 의 저장 리소스들 (141, 142, 143, 144) 에 저장될 수도 있다. 일반적으로, 저장 리소스들 (141, 142, 143, 144) 은, 컴퓨팅 디바이스, 저장 서버, 클라우드 저장 디바이스 등과 같은 임의의 적절한 저장 리소스를 포함할 수도 있다. 일반적으로, 데이터 파티클들 (120) 은 임의의 적절한 기술 또는 기술들을 사용하여 저장 리소스들 (141, 142, 143, 144) 에 저장될 수도 있다. 몇몇 예들에서, 저장 리소스들 (141, 142, 143, 144) 은 클라우드 컴퓨팅 환경의 하나 이상의 노드들을 포함할 수도 있고, 데이터 파티클들 (120) 은 클라우드 컴퓨팅 환경의 제어 리소스의 제어 하에서 노드들 사이에서 송신될 수도 있다. 이러한 예들에서, 데이터 파티클들 (120) 은, 패킷 기반의 통신 기술들, 피어 투 피어 통신 기술들 등과 같은 임의의 적절한 통신 기술들을 사용하여 노드들 사이에서 송신될 수도 있다.
도 1에 도시된 바와 같이, 몇몇 예들에서, 방법 (100) 은, 논리 그룹들의 할당, 물리적 저장 그룹들의 할당, 및 할당된 물리적 저장 그룹들의 저장이 반복적으로 수행될 수도 있도록, 시간에 걸쳐, 데이터 파티클들 (120) 의 논리적 분리 및 물리적 분리를 변경할 수도 있다. 이러한 기술들은 향상된 보안성을 위해 데이터 파티클들을 물리적으로 이동시킬 수도 있고 데이터 파티클들을 논리적으로 이동시키거나 드리프트시킬 수도 있다. 일반적으로, 논리적 분리 또는 물리적 분리 또는 이들 양자 중 어느 하나는 각각 반복적으로 변경될 수도 있다. 일반적으로, 임의의 빈도의 반복들이 사용될 수도 있다. 몇몇 예들에서, 분리들은 시간 단위, 일 단위, 또는 주 단위 등등으로 변경될 수도 있다. 몇몇 예들에서, 그 빈도는 데이터 리소스 (110) 의 보안 레벨, 클라우드 컴퓨팅 환경 (150) 의 이용가능한 리소스들 등에 의존할 수도 있다. 몇몇 예들에서, 그 빈도는 랜덤할 수도 있는데, 이것은 향상된 보안성의 이점을 제공할 수도 있다. 몇몇 예들에서, 그 빈도는 일정할 수도 있는데, 이것은 구현예의 단순화의 이점을 제공할 수도 있다.
도 1에 도시된 바와 같이, 몇몇 예들에서, 데이터 리소스 (110) 가 재구성될 수도 있도록 데이터 리소스 (110) 에 대한 유효한 요청이 이루어질 수도 있다. 몇몇 예들에서, 데이터 리소스 (110) 에 대한 요청은 클라이언트와 같은 요청자로부터 수신될 수도 있다. 그 요청이 유효한지의 여부가 결정될 수도 있고, 만약 그렇다면, 데이터 리소스 (110) 는 클라이언트에게 제공될 수도 있다. 몇몇 예들에서, 데이터 리소스 (110) 는 클라우드 컴퓨팅 환경에서 재구성되어 클라이언트로 송신될 수도 있다. 몇몇 예들에서, 데이터 파티클들은, 수신 클라이언트가 데이터 리소스를 재구성할 수도 있도록, 별도로 송신될 수도 있다.
논의된 바와 같이, 데이터 파티클들 (120) 의 논리적 분리 및 물리적 분리를, 시간에 걸쳐, 변경시킴으로써 데이터 리소스 (110) 에 대해 데이터 보안 대책이 제공될 수도 있다. 몇몇 예들에서, 추가적인 데이터 보안 대책이 제공될 수도 있다. 몇몇 예들에서, 데이터 리소스 (110) 는 데이터 파티클들 (120) 로 분할되기 이전에 암호화될 수도 있다. 몇몇 예들에서, 데이터 파티클들 (120) 은 데이터 리소스 (110) 로부터 분할된 이후에 암호화될 수도 있다. 이러한 암호화 방법들은, 예를 들면, 암호 기술들, 패스워드 보호 디스크 암호 기술들 등을 포함하는 임의의 적절한 암호 기술 또는 기술들을 사용하여 구현될 수도 있다. 논의된 바와 같이, 몇몇 예들에서, 클라이언트 리소스 요청이 유효한지의 여부가 결정될 수도 있다. 몇몇 예들에서, 이러한 결정은 인증 기술들을 포함할 수도 있다. 몇몇 예들에서, 이러한 결정은 요청 클라이언트의 유저명 및 패스워드를 평가하는 것을 포함할 수도 있다.
도 2는, 본 개시의 적어도 몇몇 실시형태들에 따라 정렬된, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 방법 (200) 의 블록도의 예시이다. 일반적으로, 방법 (200) 은 본원에서 논의된 바와 같은 임의의 적절한 디바이스, 디바이스들, 또는 시스템에 의해 수행될 수도 있다. 몇몇 예들에서, 방법 (200) 은 서버 시스템에 의해 수행될 수도 있다. 몇몇 예들에서, 방법 (200) 은 컴퓨터, 다수의 컴퓨터들, 서버, 컴퓨팅 리소스, 가상 머신, 컴퓨팅 클러스터, 데이터 센터, 데이터 센터 클러스터, 클라우드 컴퓨팅 리소스 또는 리소스들 등에 의해 수행될 수도 있다. 방법 (200) 은, 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수도 있는 프로세싱 스텝들, 기능적 동작들, 이벤트들 및/또는 액트들 등으로서 설명될 수도 있는 다양한 기능적 블록들 또는 액션들을 설명한다. 도 2에 도시된 기능적 블록들에 대한 다수의 대안예들이 다양한 구현예들에서 실시될 수도 있다. 예를 들면, 청구된 주제의 범위를 벗어나지 않으면서, 도 2에 도시되지 않은 중재 액션들 (intervening actions) 및/또는 도 2에 도시되지 않은 추가적인 액션들이 활용될 수도 있고 및/또는 도 2에 도시된 액션들의 몇몇은 제거될 수도 있다. 방법 (200) 은, 하나 이상의 블록들 (210, 220, 230, 240, 250, 및/또는 260) 에 의해 나타내어진 바와 같이 하나 이상의 기능적 동작을 포함할 수도 있다. 방법 (200) 의 프로세스는 블록 (210) 에서 시작할 수도 있다.
블록 (210) 의 "데이터 리소스의 데이터 파티클로의 분할"에서, 데이터 리소스는 다수의 데이터 파티클들로 분할될 수도 있다. 논의된 바와 같이, 데이터 리소스는, 데이터 파일, 이미지 파일, 오디오 파일, 비디오 파일, 어플리케이션 등과 같은 임의의 적절한 데이터 리소스를 포함할 수도 있다. 데이터 리소스는, 본원에서 논의된 기술들을 포함하는 임의의 적적한 기술 또는 기술들을 사용하여 분할될 수도 있다. 일반적으로, 데이터 리소스는 임의의 컴퓨팅 디바이스에 의해 분할될 수도 있다. 몇몇 예들에서, 데이터 리소스는 컴퓨터, 복수의 컴퓨터들, 서버, 컴퓨팅 리소스, 클라우드 컴퓨팅 환경의 리소스, 가상 머신, 컴퓨팅 클러스터 등에 의해 분할될 수도 있다. 몇몇 예들에서, 데이터 리소스는 클라우드 컴퓨팅 환경의 데이터 보안 리소스에 의해 분할될 수도 있다.
일반적으로, 데이터 리소스는 임의의 적절한 기술 또는 기술들을 사용하여 분할될 수도 있고 데이터 파티클은 임의의 적절한 정보를 포함할 수도 있다. 몇몇 예들에서, 데이터 리소스를 데이터 파티클로 분할하는 것은, 나중의 재조립을 위해 각각의 데이터 파티클을 넘버링하는 것을 포함할 수도 있다. 몇몇 예들에서, 데이터 파티클들은, 본원에서, 특히 도 3에 관해서 더 논의되는 바와 같이, 파티클 식별자, 생성 타임 스탬프, 데이터 파티클이 통신 데이터 파티클 중 하나인지의 여부의 표시, 데이터 파티클의 저장 리소스를 나타내는 제 1의 어드레스, 데이터 파티클의 논리 그룹에서의 적어도 하나의 데이터 파티클의 적어도 하나의 저장 리소스를 나타내는 제 2의 어드레스, 수집 어드레스 (gather address), 데이터 패킷, 순환 중복 검사 (cyclic redundancy check) 코드 등을 포함할 수도 있다. 몇몇 예들에서, 데이터 파티클들은 에이전트로 로딩될 수도 있다. 방법 (200) 의 프로세스는 블록 (220) 에서 계속될 수도 있다.
블록 220의 "논리 그룹들을 데이터 파티클들에 할당, 물리적 저장 그룹들을 데이터 파티클들에 할당, 및/또는 각각의 물리적 저장 그룹을 대응하는 저장 리소스에 저장"에서, 하나 이상의 논리 그룹들이 파티클들에 할당될 수도 있고, 하나 이상의 물리적 저장 그룹들이 데이터 파티클들에 할당될 수도 있고, 및/또는 데이터 파티클들의 각각의 물리적 저장 그룹이 대응하는 저장 리소스에 저장될 수도 있다. 본원에서 논의된 바와 같이, 블록 220에 관해 논의된 기술은, 데이터 파티클들의 논리적 및/또는 물리적 분리가 시간에 걸쳐 변경될 수도 있도록, 실질적으로 반복적으로 및/또는 연속적으로 수행될 수도 있다.
논의된 바와 같이, 블록 220에서, 하나 이상의 논리 그룹들이 데이터 파티클들에 할당될 수도 있다. 논리 그룹들은 본원에서 논의된 기술들을 포함하는 임의의 적절한 기술 또는 기술들을 사용하여 할당될 수도 있다. 일반적으로, 각각의 논리 그룹은 하나 이상의 데이터 파티클들을 포함할 수도 있다. 몇몇 예들에서, 각각의 논리 그룹에서의 데이터 파티클들은 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성될 수도 있다. 몇몇 예들에서, 각각의 논리 그룹은, 통신 데이터 파티클이 클라우드 컴퓨팅 환경의 리소스, 예컨대 클라우드 컴퓨팅 환경의 데이터 보안 리소스와 통신할 수도 있도록, 통신 데이터 파티클 (키 데이터 파티클로 칭해질 수도 있다) 이도록 구성될 수도 있는 하나 이상의 데이터 파티클들을 포함할 수도 있다. 일반적으로, 논리 그룹들은 임의의 적절한 기술 또는 기술들을 사용하여 할당될 수도 있다. 몇몇 예들에서, 논리 그룹들은 랜덤하게 할당될 수도 있다.
논의된 바와 같이, 블록 220에서, 하나 이상의 물리적 저장 그룹들이 데이터 파티클들에 할당될 수도 있다. 물리적 저장 그룹들은 본원에서 논의된 기술들을 포함하는 임의의 적절한 기술 또는 기술들을 사용하여 할당될 수도 있다. 일반적으로, 물리적 저장 그룹들은 임의의 적절한 기술 또는 기술들을 사용하여 할당될 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들은 랜덤하게 할당될 수도 있다. 몇몇 예들에서, 물리적 저장 그룹들의 할당 및 논리 그룹들의 할당은 독립적으로 수행될 수도 있다. 일반적으로, 각각의 물리적 저장 그룹은, 하나 이상의 데이터 파티클들이 클라우드 컴퓨팅 환경의 물리적으로 별개의 저장 리소스들에 별도로 저장될 수도 있도록, 그들 데이터 파티클들을 포함할 수도 있다.
논의된 바와 같이, 블록 220에서, 데이터 파티클들의 각각의 물리적 저장 그룹은 대응하는 저장 리소스에 저장될 수도 있다. 물리적 저장 그룹들은 본원에서 논의된 기술들을 포함하는 임의의 적절한 기술 또는 기술들을 사용하여 할당될 수도 있다. 몇몇 예들에서, 각각의 저장 리소스들은 다른 저장 리소스들과는 물리적으로 별개일 수도 있다. 일반적으로, 저장 리소스들은, 컴퓨팅 디바이스, 저장 서버, 클라우드 저장 디바이스 등과 같은 임의의 적절한 저장 리소스들을 포함할 수도 있다. 몇몇 예들에서, 저장 리소스들은 클라우드 컴퓨팅 환경의 하나 이상의 노드들을 포함할 수도 있고, 데이터 파티클들은 클라우드 컴퓨팅 환경의 데이터 보안 리소스와 같은 제어 리소스의 제어 하에서 노드들 사이에서 송신될 수도 있다. 이러한 예들에서, 데이터 파티클들은, 패킷 기반의 통신 기술들, 피어 투 피어 통신 기술들 등과 같은 임의의 적절한 통신 기술들을 사용하여 노드들 사이에서 송신될 수도 있다.
논의된 바와 같이, 블록 220에 관해 논의된 방법 (200) 의 프로세스는, 데이터 파티클들의 논의된 논리적 및 물리적 분리들이 시간에 걸쳐 반복적으로 변경될 수도 있도록, 수행될 수도 있다. 이러한 기술들은 논리 그룹들 및/또는 저장 그룹들의 연속적인 할당들 및 새롭게 할당된 저장 그룹들의 연속적인 물리적 저장을 제공할 수도 있다. 일반적으로, 논리적 분리 또는 물리적 분리 또는 이들 양자 중 어느 하나는 각각 반복적으로 변경될 수도 있다. 몇몇 예들에서, 논리적 분리만이 반복적으로 변경될 수도 있다 (그리고 물리적 저장 그룹들을 할당하고 저장하는 것에 관련된 기술들은 구현되지 않을 수도 있다). 몇몇 예들에서, 물리적 분리만이 반복적으로 변경될 수도 있다 (그리고 논리 그룹들을 할당하는 것에 관련된 기술들은 구현되지 않을 수도 있다). 일반적으로, 각각의 반복은 본원에서 논의된 기술들 중 임의의 것을 사용할 수도 있다. 몇몇 예들에서, 논의된, 논리 그룹들의 수의 랜덤 선택, 논리 그룹들의 랜덤 할당, 물리적 저장 그룹들의 수의 랜덤 선택, 및 물리적 저장 그룹들의 랜덤 할당이 사용될 수도 있다. 몇몇 예들에서, 반복들은, 본원에서 더 논의되는 바와 같이, 논리 그룹들 및/또는 물리적 저장 그룹들을 모으거나 또는 논리 그룹들 및/또는 물리적 저장 그룹들을 나누는 것을 포함할 수도 있다.
몇몇 예들에서, 논의된 반복들은 대략 시간 단위, 하루 단위, 또는 주 단위 등의 범위의 빈도로 수행될 수도 있다. 몇몇 예들에서, 그 빈도는 데이터 리소스의 보안 레벨, 클라우드 컴퓨팅 환경의 이용가능한 리소스들 등에 의존할 수도 있다. 몇몇 예들에서, 그 빈도는, 데이터 파티클들의 논리적 분리 및 물리적 분리가 랜덤한 지속기간 이후에 수행될 수도 있도록, 랜덤일 수도 있다. 몇몇 예들에서, 그 빈도는 일정할 수도 있다. 방법 (200) 의 프로세스는 블록 (230) 에서 계속될 수도 있다.
블록 (230) 의 "데이터 리소스에 대한 요청을 수신"에서, 데이터 리소스에 대한 요청이 수신될 수도 있다. 일반적으로, 요청은 임의의 적절한 소스로부터 임의의 적절한 방식으로 수신될 수도 있다. 몇몇 예들에서, 요청은 클라우드 컴퓨팅 환경의 클라이언트로부터 수신될 수도 있다. 일반적으로, 그 요청은 임의의 적절한 통신 기술들을 사용하여 수신될 수도 있다. 몇몇 예들에서, 요청은 클라우드 컴퓨팅 환경의 데이터 보안 리소스로 송신될 수도 있다. 방법 (200) 의 프로세스는 결정 블록 (240) 에서 계속될 수도 있다.
결정 블록 240의 "요청이 유효한가?"에서, 데이터 리소스에 대한 요청이 유효한지의 여부가 결정될 수도 있다. 일반적으로, 요청의 유효성은 임의의 적절한 기술 또는 기술들을 사용하여 결정될 수도 있다. 몇몇 예들에서, 요청의 유효성은 인증 기술들을 사용하여 결정될 수도 있다. 몇몇 예들에서, 요청의 유효성은 클라이언트에 의해 제공된 유저명 및/또는 패스워드를 평가함으로써 결정될 수도 있다. 요청이 무효한 것으로 간주되면, 방법 (200) 의 프로세스는 블록 250에서 계속될 수도 있다. 요청이 유효한 것으로 간주되면, 방법 (200) 의 프로세스는 블록 260에서 계속될 수도 있다.
블록 250의 "요청 거절"에서, 데이터 리소스에 대한 요청이 거절될 수도 있다. 일반적으로, 요청은 임의의 적절한 기술 또는 기술들을 사용하여 거절될 수도 있다. 몇몇 예들에서, 거절은 요청의 실패를 나타내는 메시지가 요청 클라이언트로 송신되는 것을 포함할 수도 있다. 몇몇 예들에서, 메시지는, 클라이언트가 요청을 재시도할 수도 있다는 표시를 포함할 수도 있다. 몇몇 예들에서, 그리고, 특히, 데이터 리소스에 대한 또는 유저명에 대한 다수의 실패한 요청들에 대해, 추가적인 액션이 취해질 수도 있다. 몇몇 예들에서, 요청을 거절하는 것은, 관련 데이터 리소스를, 잠재적으로 목표가 되는 리소스로서 플래그하는 (flagging) 것을 포함할 수도 있다. 몇몇 예들에서, 요청을 거절하는 것은, 유저명을, 무효한 데이터 요청들을 시도하고 있을 수도 있는 사람으로서 플래그하는 것을 포함할 수도 있다.
블록 260의 "데이터 리소스를 송신"에서, 유효한 요청에 대해, 데이터 파티클들이 요청 클라이언트로 송신될 수도 있다. 일반적으로, 데이터 파티클들은 임의의 적절한 기술 또는 기술들을 사용하여 송신될 수도 있다. 몇몇 예들에서, 데이터 리소스의 데이터 파티클들은 클라우드 컴퓨팅 환경의 리소스의 제어하에서 저장 리소스들로부터 송신될 수도 있다. 이러한 예들에서, 클라이언트는 데이터 리소스를 구성하도록 데이터 파티클들을 재구성 또는 재작성할 수도 있다. 몇몇 예들에서, 데이터 파티클들은 데이터 리소스를 재구성하기 위한 정보를 포함할 수도 있다. 몇몇 예들에서, 재구성에 대한 방침들 또는 어플리케이션들 등에 관한 추가적인 정보가 제공될 수도 있다. 몇몇 예들에서, 데이터 파티클들은, 본원에서, 특히, 도 3에 관해 더 논의되는 바와 같이, 데이터 리소스에서의 데이터 파티클의 배치 (placement) 를 나타내는 정수 또는 넘버링을 포함할 수도 있는 식별자 필드를 포함할 수도 있다.
몇몇 예들에서, 데이터 리소스는 데이터 파티클들로부터 재구성 또는 형성될 수도 있고 데이터 리소스는 클라이언트로 송신될 수도 있다. 이러한 액션들은 클라우드 컴퓨팅 환경의 리소스에서 취해질 수도 있다. 몇몇 예들에서, 데이터 파티클들은, 각각의 논리 그룹의 통신 데이터 파티클로 복원 요청을 통신하고, 그 다음 각각의 논리 그룹의 통신 데이터 파티클들이 그 통신 데이터 파티클들의 논리 그룹의 다른 데이터 파티클로 복원 요청의 통신을 야기함으로써 클라우드 컴퓨팅 환경의 리소스에 의해 복원될 수도 있다. 이러한 기술들은 데이터 파티클들의 효율적인 복원을 제공할 수도 있다.
논의된 바와 같이, 데이터 파티클들의 논리적 분리 및 물리적 분리를 시간에 걸쳐 변경시킴으로써 데이터 리소스에 대해 데이터 보안 대책이 제공될 수도 있다. 몇몇 예들에서, 추가적인 데이터 보안 대책이 제공될 수도 있다. 몇몇 예들에서, 데이터 리소스는 데이터 파티클들로 분할되기 이전에 (즉, 블록 210 이전에) 암호화될 수도 있다. 몇몇 예들에서, 데이터 파티클들은 데이터 리소스로부터 분할된 이후에 (즉, 블록 210 이후이지만 블록 220 이전에) 암호화될 수도 있다. 몇몇 예들에서, 데이터 파티클들은 저장시 (즉, 블록 220에서) 암호화될 수도 있다. 이러한 암호화 방법들은, 예를 들면, 암호 기술들, 패스워드 보호 디스크 암호 기술들 등을 포함하는 임의의 적절한 암호 기술 또는 기술들을 사용하여 구현될 수도 있다.
알 수 있는 바와 같이, 방법 (200) 의 프로세스는 임의의 수의 데이터 리소스들에 대해 병렬로 동작될 수도 있거나 반복될 수도 있다. 몇몇 예들에서, 방법 (200) 의 프로세스는 클라우드 컴퓨팅 환경의 모듈 예컨대 데이터 보안 모듈 등에 의해 수행될 수도 있다. 이러한 모듈은 임의의 적절한 방식으로 구현될 수도 있다. 몇몇 예들에서, 데이터 보안 모듈은 컴퓨터, 복수의 컴퓨터들, 서버, 컴퓨팅 리소스, 가상 머신, 컴퓨팅 클러스터 등으로서 구현될 수도 있다. 몇몇 예들에서, 클라우드 컴퓨팅 환경에 유지된 모든 데이터는 본원에서 논의된 보안 기술들을 사용하여 유지될 수도 있다. 몇몇 예들에서, 클라우드 컴퓨팅 환경에 유지된 데이터의 일부는 본원에서 논의된 보안 기술들을 사용하여 유지될 수도 있다. 이러한 예들에서, 더 높은 우선 순위 또는 위험에 처한 데이터는 본원에서 논의된 보안 기술들을 사용하여 유지될 수도 있다.
도 3은, 본 개시의 적어도 몇몇 실시형태들에 따라 정렬된, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하기 위한 예시적인 데이터 포맷 (300) 의 블록도의 예시이다. 도시된 바와 같이, 데이터 포맷 (300) 은 식별자 (ID) 필드 (310), 날짜 필드 (date field; 320), 통신 플래그 필드 (330), 어드레스 필드 (340), 그룹 멤버들의 어드레스 필드 (350), 어드레스 수집 그룹 필드 (group gathering address field; 360), 데이터 필드 (370), 및 순환 중복 검사 (cyclic redundancy check; CRC) 필드 (380) 를 포함할 수도 있다. 몇몇 예들에서, 데이터 포맷 (300) 은 본원에서 논의된 데이터 파티클들의 포맷에 대해 사용될 수도 있다.
몇몇 예들에서, ID 필드 (310) 는, 데이터 파티클이 분할되었던 데이터 리소스의 상황에서 데이터 파티클의 식별자를 포함할 수도 있다. 몇몇 예들에서, ID 필드 (310) 는 데이터 리소스를 형성하기 위해 데이터 파티클들을 재구성하는 데 사용될 수도 있다. 일반적으로, ID 필드 (310) 는 임의의 적절한 정보를 포함할 수도 있다. 몇몇 예들에서, ID 필드 (310) 는, 데이터 리소스에서 데이터 포맷 (300) 에 의해 표현된 데이터 파티클의 배치를 표시하는 정수를 포함할 수도 있다. 몇몇 예들에서, 본원에서 논의된 바와 같은 데이터 리소스는, 결과적으로 생성되는 데이터 파티클들이 정돈된 (ordered) 세트일 수도 있고 ID 필드 (310) 가 그 정돈된 세트에서의 데이터 파티클의 포지션을 표시할 수도 있도록, 분할될 수도 있다.
몇몇 예들에서, 날짜 필드 (320) 는 데이터 포맷 (300) 에 의해 표현되는 데이터 파티클의 형성에 관련된 타임 스탬프를 포함할 수도 있다. 일반적으로, 날짜 필드 (320) 는 타임 스탬프를 표현하는 임의의 적절한 정보를 포함할 수도 있다. 날짜 필드 (320) 는 데이터 파티클을 재구성하고, 데이터 파티클이 유효한지의 여부를 표시하고, 기타 등등을 하는 데 사용될 수도 있다.
몇몇 예들에서, 통신 플래그 필드 (330) 는, 데이터 포맷 (300) 에 의해 표현된 데이터 파티클이 논리 그룹의 통신 데이터 파티클인지의 여부에 관한 식별자를 포함할 수도 있다. 본원에서 논의된 바와 같이, 이러한 통신 데이터 파티클들은, 데이터 리소스의 재구성시 클라우드 컴퓨팅 환경의 리소스와 통신하도록 구성될 수도 있다. 일반적으로, 통신 플래그 필드 (330) 는, 데이터 파티클이 통신 데이터 파티클인지의 여부를 표현하는 임의의 적절한 정보, 예컨대 불린 값 (Boolean value), 참 또는 거짓의 값 등을 포함할 수도 있다.
몇몇 예들에서, 어드레스 필드 (340) 는, 데이터 포맷 (300) 에 의해 표현된 데이터 파티클이 존재하는, 클라우드 컴퓨팅 환경에서의 로케이션을 표현하는 정보를 포함할 수도 있다. 일반적으로, 어드레스 필드 (340) 는 클라우드 컴퓨팅 환경에서의 로케이션을 표현하는 임의의 적절한 정보를 포함할 수도 있다. 몇몇 예들에서, 어드레스 필드 (340) 는 클라우드 컴퓨팅 환경에서의 노드의 인터넷 프로토콜 (internet protocol; IP) 어드레스를 포함할 수도 있다. 몇몇 예들에서, 어드레스 필드 (340) 는 데이터 포맷 (300) 에 의해 표현된 데이터 파티클의 물리적 저장 로케이션일 수도 있다.
몇몇 예들에서, 그룹 멤버들의 어드레스 필드 (350) 는, 데이터 포맷 (300) 에 의해 표현된 데이터 파티클과 동일한 논리 그룹에서의 모든 데이터 파티클의 로케이션들 또는 로케이션을 표현하는 정보를 포함할 수도 있다. 일반적으로, 그룹 멤버들의 어드레스 필드 (350) 는 클라우드 컴퓨팅 환경에서 동일한 논리 그룹의 다른 데이터 파티클들의 로케이션들을 표현하는 임의의 적절한 정보를 포함할 수도 있다. 몇몇 예들에서, 그룹 멤버들의 어드레스 필드 (350) 는 클라우드 컴퓨팅 환경에서의 노드들의 하나 이상의 인터넷 프로토콜 (IP) 어드레스들을 포함할 수도 있다.
몇몇 예들에서, 어드레스 수집 그룹 필드 (360) 는, 수집 통지의 수신시 데이터 포맷 (300) 에 의해 표현된 데이터 파티클이 모일 수도 있는, 클라우드 컴퓨팅 환경에서의 포지션을 표현하는 정보를 포함할 수도 있다. 몇몇 예들에서, 수집 통지는, 본원에서 논의되는 바와 같이, 리소스 요청의 유효성 인정시 클라우드 컴퓨팅 환경의 리소스에 의해 전송될 수도 있다. 일반적으로, 어드레스 수집 그룹 필드 (360) 는 데이터 포맷 (300) 에 의해 표현된 데이터 파티클의 수집 로케이션을 표현하는 임의의 적절한 정보를 포함할 수도 있다. 몇몇 예들에서, 어드레스 수집 그룹 필드 (360) 는 클라우드 컴퓨팅 환경에서의 노드의 인터넷 프로토콜 (IP) 어드레스를 포함할 수도 있다. 논의된 바와 같이, 몇몇 예들에서, 데이터 파티클들은 재구성을 위해 클라이언트로 송신될 수도 있다. 이러한 예들에서, 어드레스 수집 그룹 필드 (360) 는 사용되지 않을 수도 있다.
몇몇 예들에서, 데이터 필드 (370) 는, 데이터 포맷 (300) 에 의해 표현된 데이터 파티클로 분할된 데이터 리소스의 일부를 표현하는 정보를 포함할 수도 있다. 일반적으로, 데이터 필드 (370) 는, 데이터, 이미지, 오디오, 또는 비디오 파일의 일부, 또는 어플리케이션의 일부, 또는 일련의 바이트들 등을 포함하는 임의의 적절한 데이터를 포함할 수도 있다.
몇몇 예들에서, CRC 필드 (380) 는, 데이터 필드 (370) 에서의 데이터에 손상이 발생했을 수도 있는지의 여부를 검출하기 위해 사용될 수도 있는 에러 검출 코드를 표현하는 정보를 포함할 수도 있다. 일반적으로, CRC 필드 (380) 는 에러 검출을 위한 임의의 정보를 포함할 수도 있다. 몇몇 예들에서, CRC 필드 (380) 에서의 정보는, 데이터 필드 (370) 에서의 데이터에 기초한 CRC32 알고리즘을 사용하여 계산될 수도 있다.
논의된 바와 같이, 데이터 파티클들의 논리적 분리 및 물리적 분리는 시간에 걸쳐 변경될 수도 있다. 이러한 분리는 데이터 포맷 (300) 에서 적어도 부분적으로 구현될 수도 있다. 몇몇 예들에서, 데이터 포맷 (300) 의 필드들은, 일반적으로, 안정한 것 또는 가변적인 것으로서 분류될 수도 있다. 몇몇 예들에서, 안정한 필드들은 ID 필드 (310), 날짜 필드 (320), 및 데이터 필드 (370) 를 포함할 수도 있다. 몇몇 예들에서, 가변적인 필드들은 통신 플래그 필드 (330), 어드레스 필드 (340), 그룹 멤버들의 어드레스 필드 (350), 및 CRC 필드 (380) 를 포함할 수도 있다. 일반적으로, 본원에서 논의된 바와 같은 데이터 파티클들은 데이터 포맷 (300) 또는 유사한 데이터 포맷을 사용하는 에이전트들로 로딩될 수도 있다. 이러한 에이전트들은, 예컨대, 예를 들면, 클라우드 컴퓨팅 환경에서 노드에서 노드로 이동함으로써 클라우드 컴퓨팅 환경에서 효율적으로 이동하고 통신할 수도 있다.
논의된 바와 같이, 보안 서비스들은, 데이터 리소스를 분할하고 데이터 파티클들의 논리적 및 물리적 분리를 시간에 걸쳐 변경시킴으로써 데이터 리소스에 대해 제공될 수도 있다. 본원에서 제공되는 보안 기술들을 더 설명하기 위해서, 단순화된 예를 논의한다. 몇몇 예들에서, 데이터 리소스, 즉 D는 임의의 데이터 파일, 이미지 파일, 오디오 파일, 비디오 파일, 어플리케이션 등을 포함할 수도 있다. 데이터 리소스 (D) 는 데이터 파티클들 (p 1 , ... , p i , ..., p n )로 나누어질 수도 있는데, 여기서, n은 임의의 정수를 포함할 수도 있고, 몇몇 예에서, 1보다 훨씬 더 클 수도 있다. 몇몇 예들에서, n은 랜덤하게 생성될 수도 있다.
예를 위해서, 5개의 데이터 파티클들을 가정하면, 데이터 파티클들은 p 1 , p 2 , p 3 , p 4 , p 5 로서 정의될 수도 있다. 논의된 바와 같이, 데이터 파티클들은 논리 그룹들에 할당될 수도 있다. 예를 위해서, 2개의 논리 그룹들 A와 B를 가정하면, 데이터 파티클들은 (랜덤하게, 예를 들면) 다음과 같이 할당될 수도 있다: A={p 1 , p 3 , p 5 } 및 B={p 2 , p 4 }. 따라서, 이러한 예들에서, 데이터 파티클들에 대해, A ={p 1 , p 3 , p 5 } = {p A 1 , p A 2 , p A 3 }이고 B ={p 2 , p 4 } = {p B 1 , p B 2 }와 같이 다시 라벨을 붙일 수도 있다. 또한, 본원에서 논의된 바와 같이, 각각의 논리 그룹은 통신 데이터 파티클 (키 데이터 파티클로서 칭해질 수도 있다) 을 포함할 수도 있다. 위의 예에서 계속하면, pk가 통신 (또는 키) 데이터 파티클을 표시한다고 하면, 다음이 할당될 수도 있다: pk A = p A 2 , pk B = p B 1 .
논의된 바와 같이, 논리 그룹들에 할당된 예시적인 데이터 파티클들 및 할당된 통신 데이터 파티클은 물리적 저장 그룹들에 할당되고 클라우드 컴퓨팅 환경의 별도의 저장 리소스들에 저장될 수도 있다. 이러한 물리적 저장은, 클라우드 컴퓨팅 환경의 노드들 사이로 데이터 파티클들을 이송 (transfer) 시킴으로써 제공될 수도 있다. 몇몇 예들에서, 이송 동안, 데이터 파티클들은 암호화될 수도 있다. 몇몇 예들에서, 이송 동안, 임의의 손실된 또는 손상된 파티클들이 회복될 수도 있도록, 데이터 파티클들의 백업들이 유지될 수도 있다. 수신시, 백업들은 삭제될 수도 있다.
위에서 논의된 바와 같이, 데이터 파티클들은, 보안성을 향상시키기 위해, 시간에 걸쳐, 상이한 또는 드리프트하는 논리 그룹들에 할당될 수도 있다. 또한, 본원에서 논의된 바와 같이, 몇몇 예들에서, 데이터 파티클들은 논리 그룹 변화 반복에서 그룹 집성 (group aggregation) 또는 그룹 분할 (group split) 을 겪을 수도 있다. 그룹 집성 기술을 더 설명하기 위해서, 단순화된 예를 논의한다. 예를 들면, 논리 그룹들에서 키 데이터 파티클 (p AB t ) 을 갖는 논리 그룹 (AB ={ p A 1 , p A 2 ,..., p A N , p B 1 , p B 2 ,..., p B M }={p AB 1 , p AB 2 ,..., p AB N +M }) 으로의 그룹 집성 반복시, 키 데이터 파티클들 (pk A = p A 1 pk B = p B M ) 을 갖는 논리 그룹들 (A = {p A 1 , p A 2 ,..., p A N }, 및 B={p B 1 , p B 2 , ., p AB N +M }) 이 정의될 수도 있는데, 여기서 t는 1이상에서 M+N 이하 사이에서 랜덤하게 선택된 정수이다. 몇몇 예들에서, 키 데이터 파티클은 랜덤 선택 이외의 기술, 예컨대 폴링 기술들, 보팅 기술들 (voting techniques), 충돌 기술들 (collision techniques) 등을 사용하여 선택될 수도 있다. 새롭게 지정된 키 데이터 파티클은 자신의 통신 데이터 필드를 참 (기타 등등) 으로 설정할 수도 있고, 자신의 그룹의 다른 데이터 파티클들에게 자신의 어드레스 필드에 관해 통지할 수도 있다. 몇몇 예들에서, 새롭게 모여진 그룹에서의 키 데이터 파티클 및 다른 데이터 파티클들은 그들의 어드레스 수집 그룹 필드들을 업데이트할 수도 있다.
논의된 바와 같이, 몇몇 예들에서, 데이터 파티클들은 논리 그룹 변경 반복에서 그룹 분할을 겪을 수도 있다. 그룹 분할 기술을 더 설명하기 위해서, 단순화된 예를 논의한다. 몇몇 예들에서, 그룹 분할들은 논리 그룹을 하나 이상의 논리 그룹들로 랜덤하게 분할할 수도 있다. 예를 들면, 논리 그룹의 다수의 논리 그룹들 (A 1 = {p A 1 , p A 3 , p A 5 } (p A 3 인 키 파티클을 가짐) 및 A 2 = {p A 2 , p A 4 } (p A 2 인 파티클을 가짐)) 로의 그룹 분할 반복시, pk A = p A 1 인 키 파티클을 갖는 논리 그룹 A = {p A 1 , p A 2 , p A 3 , p A 4 , p A 5 }가 정의될 수도 있다.
일반적으로, 도 1 및 도 2에 관해 그리고 다른 곳에서 설명된 방법은 임의의 적절한 서버 및/또는 컴퓨팅 시스템에서 구현될 수도 있다. 예시적인 시스템들은 도 5에 관해 그리고 본원의 다른 곳에서 설명된다. 몇몇 예들에서, 본원에서 논의된 바와 같은 데이터 보안 시스템, 데이터 센터, 데이터 클러스터, 클라우드 컴퓨팅 환경, 또는 다른 시스템은 다수의 물리적 사이트들 또는 로케이션들에 걸쳐 구현될 수도 있다. 일반적으로, 데이터 보안 시스템은 임의의 수의 클라이언트들에 대해 보안 데이터 저장 서비스들을 제공하도록 구성될 수도 있다.
도 4는, 본 개시의 적어도 몇몇 실시형태들에 따라 정렬된, 예시적인 컴퓨터 프로그램 제품 (400) 을 예시한다. 컴퓨터 프로그램 제품 (400) 은 복수의 명령들을 저장하고 있는 머신 판독가능한 비일시적 매체를 포함할 수도 있는데, 명령들은 실행시 머선으로 하여금 본원에서 논의된 프로세스들 및 방법들에 따른 보안 데이터 저장 서비스를 제공하게 한다. 컴퓨터 프로그램 제품 (400) 은 신호 베어링 매체 (402) 를 포함할 수도 있다. 신호 베어링 매체 (402) 는 하나 이상의 머신 판독가능 명령들 (404) 을 포함할 수도 있는데, 명령들은 하나 이상의 프로세서들에 의한 실행시, 컴퓨팅 디바이스가 본원에서 설명된 기능성을 제공하는 것을 동작적으로 가능하게 할 수도 있다. 다양한 예들에서, 머신 판독가능 명령들의 일부 또는 모두는 본원에서 논의된 디바이스들에 의해 사용될 수도 있다.
몇몇 구현예들에서, 신호 베어링 매체 (402) 는, 하드디스크 드라이브, 컴팩트 디스크 (Compact Disc; CD), 디지털 다기능 디스크 (Digital Versatile Disk; DVD), 디지털 테이프, 메모리 등과 같은 그러나 이들에 제한되지 않는 컴퓨터 판독가능 매체 (406) 를 포함할 수도 있다. 몇몇 구현예들에서, 신호 베어링 매체 (402) 는, 메모리, 판독/기록 (R/W) CD들, R/W DVD들 등과 같은 그러나 이들에 제한되지 않는 기록가능 매체 (408) 를 포함할 수도 있다. 몇몇 구현예들에서, 신호 베어링 매체 (402) 는, 디지털 및/또는 아날로그 통신 매체 (예를 들면, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 그러나 이에 제한되지 않는 통신 매체 (410) 를 포함할 수도 있다. 몇몇 예들에서, 신호 베어링 매체 (402) 는 머신 판독가능한 비일시적 매체를 포함할 수도 있다.
도 5는 본 개시의 적어도 몇몇 실시형태들에 따라 정렬된 예시적인 컴퓨팅 디바이스 (500) 를 예시하는 블록도이다. 다양한 예들에서, 컴퓨팅 디바이스 (500) 는 본원에서 논의된 바와 같은 보안 데이터 저장 서비스를 제공하도록 구성될 수도 있다. 다양한 예들에서, 컴퓨팅 디바이스 (500) 는 본원에서 논의된 바와 같은 서버 시스템으로서 보안 데이터 저장 서비스를 제공하도록 구성될 수도 있다. 일 예시적인 기본 구성 (501) 에서, 컴퓨팅 디바이스 (500) 는 하나 이상의 프로세서들 (510) 및 시스템 메모리 (520) 를 포함할 수도 있다. 메모리 버스 (530) 는 프로세서 (510) 와 시스템 메모리 (520) 사이에서 통신하기 위해 사용될 수도 있다.
소망하는 구성에 따라, 프로세서 (510) 는, 마이크로프로세서 (μP), 마이크로컨트롤러 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하는 임의의 형태를 취할 수도 있지만, 이들에 제한되는 것은 아니다. 프로세서 (510) 는 레벨 1 캐시 (511) 및 레벨 2 캐시 (512) 와 같은 하나 이상의 레벨들의 캐시, 프로세서 코어 (513), 및 레지스터 (514) 를 포함할 수도 있다. 프로세서 코어 (513) 는 산술 로직 유닛 (ALU), 부동소수점 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP 코어), 또는 이들의 임의의 조합을 포함할 수도 있다. 메모리 컨트롤러 (515) 는 또한 프로세서 (510) 와 함께 사용될 수 있고, 또는 몇몇 구현예들에서, 메모리 컨트롤러 (515) 는 프로세서 (510) 의 내부 부품일 수 있다.
소망하는 구성에 따라, 시스템 메모리 (520) 는 휘발성 메모리 (예컨대, RAM), 불휘발성 메모리 (예컨대, ROM, 플래시 메모리 등) 또는 이들의 임의의 조합을 포함하는 임의의 형태를 취할 수도 있는데, 이들에 제한되는 것은 아니다. 시스템 메모리 (520) 는 오퍼레이팅 시스템 (521), 하나 이상의 어플리케이션들 (522), 및 프로그램 데이터 (524) 를 포함할 수도 있다. 어플리케이션 (522) 은, 본원에서 설명된 기능성 블록들, 액션들, 및/또는 동작들을 포함하는, 본원에서 논의된 바와 같은 기능들, 액션들, 및/또는 동작들을 수행하도록 정렬될 수 있는 보안 데이터 저장 어플리케이션 (523) 을 포함할 수도 있다. 프로그램 데이터 (524) 는 보안 데이터 저장 어플리케이션 (523) 과 함께 사용하기 위한 보안 데이터 저장 데이터 (525) 를 포함할 수도 있다. 몇몇 예시적인 실시형태들에서, 어플리케이션 (522) 은 오퍼레이팅 시스템 (521) 상에서 프로그램 데이터 (524) 와 함께 동작하도록 정렬될 수도 있다. 이 설명된 기본 구성은 도 5에서 점선 (501) 에 내의 컴포넌트들에 의해 예시된다.
컴퓨팅 디바이스 (500) 는 부가적인 특징들 또는 기능, 및 기본 구성 (501) 과 임의의 필요한 디바이스들 및 인터페이스들 사이의 통신들을 용이하게 하기 위한 부가적인 인터페이스들을 구비할 수도 있다. 예를 들면, 버스/인터페이스 컨트롤러 (540) 는 기본 구성 (501) 과 하나 이상의 데이터 저장 디바이스들 (550) 사이의 저장 인터페이스 버스 (541) 를 통한 통신들을 용이하게 하기 위해 사용될 수도 있다. 데이터 저장 디바이스들 (550) 은 착탈식 저장 디바이스들 (551), 비착탈식 저장 디바이스들 (552), 또는 이들의 조합일 수도 있다. 착탈식 저장 디바이스들 및 비착탈식 저장 디바이스들의 실시형태들은, 몇몇을 거론하자면, 플렉시블 디스크 드라이브들 및 하드 디스크 드라이블 (HDD) 와 같은 자기 디스크 디바이스들, 컴팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들과 같은 광학 디스크 드라이브들, 솔리드 스테이트 드라이브들 (SSD), 및 테이프 드라이브들을 포함한다. 예시적인 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술에 의해 구현되는 휘발성 및 불휘발성의 착탈식 및 비착탈식 매체를 포함할 수도 있다.
시스템 메모리 (520), 착탈식 저장 디바이스들 (551) 및 비착탈식 저장 디바이스들 (552) 모두는 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD) 또는 다른 광학 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 스토리 또는 다른 자기 스토리지 디바이스들, 또는 소망의 정보를 저장하기 위해 사용될 수도 있고 컴퓨팅 디바이스 (500) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만, 이들에 제한되는 것은 아니다. 임의의 이러한 컴퓨터 저장 매체는 디바이스 (500) 의 일부일 수도 있다.
컴퓨팅 디바이스 (500) 는 또한 여러 인터페이스 디바이스들 (예를 들면, 출력 인터페이스들, 주변 인터페이스들, 및 통신 인터페이스) 로부터 기본 구성 (501) 으로의 버스/인터페이스 컨트롤러 (540) 를 통한 통신을 용이하게 하기 위한 인터페이스 버스 (542) 를 포함할 수도 있다. 예시적인 출력 인터페이스들 (560) 은 그래픽 프로세싱 유닛 (561) 및 오디오 프로세싱 유닛 (562) 을 포함할 수도 있으며, 이들은 하나 이상의 A/V 포트들 (563) 를 통해 디스플레이 또는 스피커들과 같은 다양한 외부 디바이스들과 통신하도록 구성될 수도 있다. 예시적인 주변 인터페이스들 (570) 은 시리얼 인터페이스 컨트롤러 (571) 또는 패럴렐 인터페이스 컨트롤러 (572) 을 포함할 수도 있으며, 이들은 입력 디바이스들 (예를 들면, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 과 같은 외부 디바이스들과 하나 이상의 I/O 포트들 (573) 을 통해 통신하도록 구성될 수도 있다. 예시적인 통신 디바이스 (580) 는 네트워크 컨트롤러 (581) 를 포함하며, 이것은 하나 이상의 통신 포트들 (582) 를 통한 네트워크 통신 링크를 통해 하나 이상의 다른 컴퓨팅 디바이스들 (583) 과의 통신을 용이하게 하도록 정렬될 수도 있다. 통신 접속은 통신 매체들의 일 예이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에서의 다른 데이터에 의해 구체화될 수도 있고, 임의의 정보 전송 매체를 포함할 수도 있다. "변조된 데이터 신호"는 하나 이상의 자신의 특성들 세트를 구비하거나 또는 신호에 정보를 인코딩하도록 변경된 신호일 수도 있다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직결 접속과 같은 유선 매체, 및 음향, 라디오 주파수 (RF), 마이크로파, 적외선 (IR) 와 같은 무선 매체 및 다른 무선 매체를 포함할 수도 있다. 본원에서 사용된 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 양자를 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는, 셀폰, 모바일 폰, 태블릿 디바이스, 랩탑 컴퓨터, PDA (personal data assistant), 퍼스널 미디어 플레이어 디바이스, 무선 웹-워치 디바이스, 퍼스널 헤드셋 디바이스, 어플리케이션 전용 디바이스, 또는 임의의 상기 기능들을 포함하는 하이브리드 디바이스와 같은 스몰 폼팩터의 휴대형 (또는 모바일) 전자 디바이스의 일부로서 구현될 수도 있다. 컴퓨팅 디바이스 (500) 는 또한 랩탑 컴퓨터 및 비랩탑 컴퓨터 구성들 양자를 포함하는 퍼스널 컴퓨터로서 구현될 수도 있다. 또한, 컴퓨팅 디바이스 (500) 는 무선 기지국 또는 다른 무선 시스템 또는 디바이스의 일부로서 구현될 수도 있다.
앞서의 상세한 설명 중 일부 부분들은 컴퓨터 메모리와 같은 컴퓨팅 시스템 메모리 내에 저장된 데이터 비트들 또는 이진 디지털 신호들에 대한 동작들의 알고리즘들 또는 기호적 표현들 (symbolic representations) 의 면에서 제시된다. 이러한 알고리즘적인 설명들 또는 표현들은 데이터 프로세싱 분야들에서의 당업자가 그들의 작업 내용을 다른 당업자에게 전달하기 위해 당업자들에 의해 이용되는 기법들의 예들이다. 알고리즘은, 본원에서, 그리고 일반적으로, 동작들의 모순이 없는 시퀀스 (a self-consistent sequence) 또는 소망의 결과로 이끄는 유사한 프로세싱인 것으로 간주된다. 이러한 맥락에서, 동작들 또는 프로세싱은 물리적 양들의 물리적 조작을 수반한다. 통상적으로, 필수적이진 않지만, 이러한 양들은 저장, 전송, 병합, 비교 또는 그렇지 않으면 조작될 수 있는 전자적 또는 자기적 신호의 형태를 취할 수도 있다. 원칙적으로 공동 사용의 이유로 인해, 이러한 신호들을 비트들, 데이터, 값들, 요소들, 심볼들, 캐릭터들, 용어들, 숫자들, 수치들 등으로 지칭하는 것이 때때로 편리하다는 것이 증명되었다. 그러나, 이들 및 유사한 용어들의 모두가 적절한 물리적 양들과 연관될 것이고 단지 편의적 라벨들에 불과하다는 것이 이해되어야 한다. 달리 구체적으로 언급되지 않는 한, 다음의 논의에서 명백한 바와 같이, 이 명세서에 전체에서, "프로세싱", "컴퓨팅", "계산", "결정" 등과 같은 용어들을 이용하는 논의들은, 메모리들, 레지스터들, 또는 컴퓨팅 디바이스의 다른 정보 저장 디바이스들, 송신 디바이스들, 또는 디스플레이 디바이스들 내에서 전자적 또는 자기적 물리량들로 표현되는 데이터를 조작하거나 변환하는, 컴퓨팅 디바이스의 액션들 또는 프로세스들을 지칭한다.
앞서의 상세한 설명은 블록 다이어그램들, 플로차트들, 및/또는 예들의 이용을 통해 디바이스들 및/또는 프로세스들의 다양한 실시형태들을 제시하였다. 이러한 블록 다이어그램들, 흐름도들, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 이러한 블록 다이어그램들, 흐름도들, 또는 예들 내에서의 각각의 기능 및/또는 동작은, 광범위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 실질적인 임의의 조합에 의해, 개별적으로 및/또는 집합적으로 구현될 수 있다. 일부 실시형태들에서, 본원에 설명된 주제 중 여러 부분들은 ASIC들 (Application Specific Integrated Circuits), FPGA들 (Field Programmable Gate Arrays), DSP들 (digital signal processors), 또는 다른 집적 형태들을 통해 구현될 수도 있다. 그러나, 당업자라면, 본원에서 개시된 실시형태들의 몇몇 양태들이, 전체적으로 또는 부분적으로, 집적 회로들에서, 하나 이상의 컴퓨터들 상에서 작동되는 하나 이상의 컴퓨터 프로그램들 (예를 들면, 하나 이상의 컴퓨터 시스템들 상에서 작동하는 하나 이상의 프로그램들) 로서, 하나 이상의 프로세스들 상에서 작동되는 하나 이상의 프로그램들 (예를 들면, 하나 이상의 마이크로프로세서들 상에서 작동되는 하나 이상의 프로그램들) 로서, 펌웨어로서, 또는 실질적으로 이들의 임의의 조합으로서, 등가적으로 구현될 수 있으며, 소프트웨어 및/또는 펌에어에 대한 코드를 기록하고/하거나 회로부를 설계하는 것이 본 개시의 견지에서 당업자의 스킬 내에 있을 것임을 알 수 있을 것이다. 또한, 본원에서 설명된 주제의 메커니즘들이 다양한 형태들의 프로그램 제품으로서 배포될 수 있으며, 본원에서 설명된 주제의 예시적인 실시형태는 상기 배포를 실제 실행하기 위해 사용되는 특정한 타입의 신호 베어링 매체에 관계없이 적용됨을 알 수 있을 것이다. 신호 베어링 매체의 예들은, 다음의 것, 즉, 플렉시블 디스크, HDD (hard disk drive), CD (Compact Disc), DVD (Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능한 타입의 매체; 및 디지털 및/또는 아날로그 통신 매체 (예를 들면, 광 섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 송신 타입의 매체를 포함하지만, 이들에 제한되는 것은 아니다.
때때로, 본원에서 설명된 주제는 상이한 다른 컴포넌트들 내에 포함된, 또는 상이한 다른 컴포넌트들과 연결된 상이한 컴포넌트들을 예시한다. 이렇게 묘사된 아키텍쳐들은 단순히 예들일 뿐이고, 사실 동일한 기능을 달성하는 많은 다른 아키텍쳐들이 구현될 수 있다는 것을 이해해야 할 것이다. 개념적인 면에서, 동일한 기능을 달성하는 컴포넌트들의 임의의 배치는, 소망의 기능이 달성되도록 유효하게 "관련"된다. 그러므로, 특정 기능을 달성하기 위해 본원에서 결합된 임의의 두 컴포넌트들은, 아키텍쳐들 또는 중간 컴포넌트들에 관계없이, 소망의 기능을 달성하도록 서로 "관련된" 것으로 보여질 수 있다. 마찬가지로, 이렇게 관련된 임의의 두 컴포넌트들은 소망의 기능을 달성하도록 서로 "동작적으로 연결된" 것으로, 또는 "동작적으로 커플링된" 것으로도 보여질 수 있으며, 이렇게 결합될 수 있는 임의의 두 컴포넌트들은 소망의 기능을 달성하도록 서로 "동작적으로 커플링될 수 있는" 것으로도 보여질 수 있다. 동작가능하게 커플링될 수 있는 것의 구체적인 예들은 물리적으로 결합될 수 있고/있는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용 가능한 컴포넌트들 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용 가능한 컴포넌트들을 포함하지만, 이들에 제한되는 것은 아니다.
본원에서의 실질적인 임의의 단복수 용어들의 사용과 관련하여, 당업자라면, 문맥 및/또는 용도에 따라 적절하게 복수를 단수로 및/또는 단수를 복수로 치환할 수 있을 것이다. 본원에서는, 명확성을 목적으로, 다양한 단수/복수의 치환이 명시적으로 설명될 수도 있다.
당업자라면, 일반적으로, 본원, 특히 하기의 특허청구범위 (예를 들어, 첨부된 청구항들 특징부) 에서 사용된 용어들은, 일반적으로, "비제한적인 (open) " 용어들로서 의도되는 것을 이해할 것이다 (예를 들어, 용어 "포함하는" 은 " 포함하지만 제한되지 않는"으로 해석되어야 하고, 용어 "구비하는" 은 "적어도 구비하는" 으로 해석되어야 하며, 용어 "포함한다"는 포함하나 제한되지 않는"으로 해석되는 등등). 또한, 당업자라면, 도입된 청구항 기재 (introduced claim recitation) 에 있어서 특정의 수가 의도되는 경우, 그러한 의도는 해당 청구항 중에 명시적으로 기재되며, 그러한 기재가 없는 경우는, 그러한 의도가 없다는 것을 이해할 것이다. 예를 들면, 이해를 돕기 위한 것으로서, 하기의 특허청구범위에서는, 청구항 기재를 도입하기 위해, "적어도 하나" 및 "하나 이상의"의 도입구들의 사용을 포함할 수도 있다. 그러나, 이러한 구들의 사용은, 부정 관사 "a" 또는 "an" 에 의한 청구항 기재의 도입이, 동일한 청구항이 "하나 이상의" 또는 "적어도 하나의"의 도입 어구들 및 "a" 또는 "an"과 같은 부정 관사들을 포함하는 경우에도, 이러한 도입된 청구항 기재를 포함하는 임의의 특정한 청구항을, 이러한 기재를 하나만 포함하는 발명들로 제한하는 것을 의미하는 것으로 해석되어선 안되며 (예를 들어, "a" 및/또는 "an" 은 통상적으로 "적어도 하나" 또는 "하나 이상" 으로 해석되어야 한다); 청구항 기재들을 도입하기 위해 정관사들을 사용하는 경우에도 마찬가지이다. 또한, 도입된 청구항 기재의 특정 번호가 명시적으로 기재되어도, 당업자들은 이러한 기재는 통상적으로 적어도 기재된 번호를 의미하는 것으로 해석되어야 한다는 것을 이해할 것이다 (예를 들어, 다른 수식어가 없는 "두 기재들"의 단순한 기재는 통상적으로 적어도 두 개의 기재들 또는 두 개 이상의 기재들을 의미한다). 또한, "A, B, 및 C 등 중 적어도 하나" 와 유사한 표현이 이용되는 경우, 일반적으로 그러한 구성은, 당업자가 그 표현을 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템" 은 A만 단독으로, B만 단독으로, C만 단독으로, A와 B를 함께, A와 C를 함께, B와 C를 함께, 그리고/또는 A, B 및 C를 함께 갖는 등의 시스템을 포함하나, 이로 제한되지는 않을 것이다). "A, B, 또는 C 등 중 적어도 하나"와 유사한 표현들이 이용되는 경우, 일반적으로 그러한 구성은, 당업자가 그 표현을 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템" 은 A만 단독으로, B만 단독으로, C만 단독으로, A와 B를 함께, A와 C를 함께, B와 C를 함께, 그리고/또는 A, B 및 C를 함께 갖는 등의 시스템을 포함하나, 이로 제한되지는 않을 것이다). 상세한 설명서에서든, 청구항들에서든, 또는 도면들에서든, 2 개 이상의 대안적인 용어들을 나타내는 사실상 임의의 이접 (disjunctive) 단어 및/또는 구는, 용어들 중 하나, 용어들 중 어느 하나, 또는 용어들 양자 모두를 포함하는 가능성들을 의도하는 것으로 이해되어야 한다는 것이 당업자들에게 이해될 것이다. 예를 들면, 구 "A 또는 B" 는 "A" 또는 "B", 또는 "A와 B" 의 가능성들을 포함하는 것이 이해될 것이다.
소정의 예시적인 기법들이 다양한 방법들 및 시스템들을 이용하여 본원에서 설명되고 도시되었으나, 청구된 주제로부터 벗어나지 않으면서, 다양한 다른 수정들이 이루어질 수도 있고, 등가물들이 대체될 수도 있다는 것이 당업자들에 의해 이해되어야 한다. 또한, 본원에서 설명된 중심 개념을 벗어나지 않으면서 특정한 상황을 청구되는 주제의 교시들로 적응시키도록 많은 수정예들이 이루어질 수도 있다. 따라서, 청구되는 주제는 개시된 특정 예들에 제한되는 것이 아니라, 이러한 청구되는 주제가 첨부된 청구항들의 범위 내에 있는 모든 구현예들과 그 등가예들을 포함할 수도 있다는 것이 의도된다.

Claims (28)

  1. 클라우드 컴퓨팅 환경에서 보안 (secure) 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법으로서,
    상기 클라우드 컴퓨팅 환경의 리소스에서, 상기 클라우드 컴퓨팅 환경에서의 보안 저장을 위해 클라이언트로부터 수신되는, 데이터 리소스를 복수의 데이터 파티클들로 분할하는 것;
    상기 데이터 리소스가 상기 클라우드 컴퓨팅 환경에 저장되는 동안 시간에 걸쳐 반복적으로 상기 데이터 리소스 상에서 다음의 동작들을 행함으로써, 시간에 걸쳐, 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것으로서, 상기 다음의 동작들은,
    상기 데이터 리소스에서, 복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나의 통신 데이터 파티클을 포함하는 하나 이상의 데이터 파티클들을 포함하고, 상기 논리 그룹들의 각각에서의 상기 하나 이상의 데이터 파티클들은 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성되고 (configured), 각각의 통신 데이터 파티클은 상기 리소스와 통신하도록 구성되는, 상기 복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것;
    상기 데이터 리소스에서, 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 상기 물리적 저장 그룹들의 각각은 하나 이상의 데이터 파티클들을 포함하는, 상기 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것; 및
    상기 클라우드 컴퓨팅 환경의 복수의 저장 리소스들 중 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것으로서, 각각의 저장 리소스는 다른 저장 리소스들과는 물리적으로 분리된, 상기 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 포함하는, 상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것;
    상기 클라이언트로부터 상기 데이터 리소스에 대한 요청을 수신하는 것;
    상기 리소스에서, 상기 데이터 리소스에 대한 상기 요청이 유효한지의 여부를 결정하는 것; 및
    상기 데이터 리소스에 대한 상기 요청이 유효하다는 결정에 응답하여, 상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것을 포함하고,
    상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것은, 상기 데이터 리소스의 보안 레벨의 기능에 따라 변하는 빈도로 상기 데이터 파티클들의 상기 논리적 분리 및 상기 물리적 분리를 변경시키는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  2. 제 1항에 있어서,
    상기 리소스에서, 상기 데이터 리소스를 상기 복수의 데이터 파티클들로 분할하기 이전에 상기 데이터 리소스를 암호화하는 것을 더 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  3. 제 1항에 있어서,
    상기 리소스에서, 상기 복수의 데이터 파티클들을 암호화하는 것을 더 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  4. 제 1항에 있어서,
    상기 복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것은, 상기 복수의 논리 그룹들을 상기 데이터 파티클들에 랜덤하게 할당하는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  5. 제 1항에 있어서,
    상기 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것은, 상기 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 랜덤하게 할당하는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  6. 제 1항에 있어서,
    상기 클라우드 컴퓨팅 환경의 상기 리소스는, 컴퓨터, 복수의 컴퓨터들, 서버, 컴퓨팅 리소스, 가상 머신, 또는 컴퓨팅 클러스터 중 적어도 하나를 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  7. 제 1항에 있어서,
    상기 데이터 리소스는, 데이터 파일, 이미지 파일, 오디오 파일, 비디오 파일, 또는 어플리케이션 중 적어도 하나를 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  8. 제 1항에 있어서,
    시간에 걸쳐, 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것은, 랜덤한 지속기간 이후에 상기 데이터 파티클들의 상기 논리적 분리 및 상기 물리적 분리를 변경시키는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  9. 삭제
  10. 제 1항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 리소스의 제어하에서 상기 복수의 저장 리소스들로부터 상기 데이터 리소스의 상기 데이터 파티클들을 송신하는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  11. 제 1항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 리소스에서 상기 데이터 리소스로부터 상기 데이터 파티클들을 수신하는 것, 상기 데이터 파티클들로부터 상기 데이터 리소스를 형성하는 것, 및 상기 리소스로부터 상기 데이터 리소스를 송신하는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  12. 제 1항에 있어서,
    상기 데이터 리소스를 복수의 데이터 파티클들로 분할하는 것은, 추후의 재조립 (reassembly) 을 위해 각각의 데이터 파티클들을 넘버링하는 것을 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  13. 제 1항에 있어서,
    각각의 데이터 파티클은, 파티클 식별자, 생성 타임 스탬프, 상기 데이터 파티클이 통신 데이터 파티클들 중 하나인지의 여부의 표시, 상기 데이터 파티클의 상기 저장 리소스를 나타내는 제 1의 어드레스, 상기 데이터 파티클의 상기 논리 그룹에서의 적어도 하나의 데이터 파티클의 적어도 하나의 저장 리소스를 나타내는 제 2의 어드레스, 수집 어드레스 (gather address), 데이터 패킷, 또는 순환 중복 검사 코드 중 적어도 하나를 포함하는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  14. 제 1항에 있어서,
    상기 복수의 데이터 파티클들의 각각은 에이전트로 로딩되는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  15. 제 1항에 있어서,
    논리 그룹의 적어도 하나의 통신 데이터 파티클은, 상기 논리 그룹의 하나의 데이터 파티클로부터 상기 논리 그룹의 다른 데이터 파티클로 재할당되는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  16. 제 1항에 있어서,
    상기 논리 그룹들의 각각에서의 상기 하나 이상의 데이터 파티클들은 피어 투 피어 통신들을 통해 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성되는, 클라우드 컴퓨팅 환경에서 보안 데이터 저장 서비스를 제공하는 컴퓨터로 구현되는 방법.
  17. 명령들이 저장된 머신 판독가능한 비일시적 매체로서,
    상기 명령들은, 실행시, 클라우드 컴퓨팅 환경에서의 클라우드 컴퓨팅 리소스로 하여금,
    상기 클라우드 컴퓨팅 환경에서의 보안 저장을 위해 클라이언트로부터 수신되는, 데이터 리소스를 복수의 데이터 파티클들로 분할하는 것;
    상기 데이터 리소스가 상기 클라우드 컴퓨팅 환경에 저장되는 동안 시간에 걸쳐 반복적으로 상기 데이터 리소스 상에서 다음의 동작들을 행함으로써, 시간에 걸쳐, 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것으로서, 상기 다음의 동작들은,
    복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나의 통신 데이터 파티클을 포함하는 하나 이상의 데이터 파티클들을 포함하고, 상기 논리 그룹들의 각각에서의 상기 하나 이상의 데이터 파티클들은 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성되고, 그리고 각각의 통신 데이터 파티클은 상기 클라우드 컴퓨팅 리소스와 통신하도록 구성되는, 상기 복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것;
    복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 상기 물리적 저장 그룹들의 각각은 하나 이상의 데이터 파티클들을 포함하는, 상기 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것; 및
    상기 클라우드 컴퓨팅 환경의 복수의 저장 리소스들 중 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것으로서, 각각의 저장 리소스는 다른 저장 리소스들과는 물리적으로 분리된, 상기 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 포함하는, 상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것;
    상기 클라이언트로부터 상기 데이터 리소스에 대한 요청을 수신하는 것;
    상기 데이터 리소스에 대한 상기 요청이 유효한지의 여부를 결정하는 것; 및
    상기 데이터 리소스에 대한 상기 요청이 유효하다는 결정에 응답하여, 상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것
    에 의해, 보안 데이터 저장 서비스를 제공하게 하고,
    상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것은, 상기 데이터 리소스의 보안 레벨의 기능에 따라 변하는 빈도로 상기 데이터 파티클들의 상기 논리적 분리 및 상기 물리적 분리를 변경시키는 것을 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  18. 제 17항에 있어서,
    실행시, 상기 클라우드 컴퓨팅 환경에서의 상기 클라우드 컴퓨팅 리소스로 하여금,
    상기 데이터 리소스를 상기 복수의 데이터 파티클들로 분할하기 이전에 상기 데이터 리소스를 암호화하는 것에 의해,
    상기 보안 데이터 저장 서비스를 제공하게 하는 명령들을 더 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  19. 제 17항에 있어서,
    실행시, 상기 클라우드 컴퓨팅 환경에서의 상기 클라우드 컴퓨팅 리소스로 하여금,
    상기 복수의 데이터 파티클들을 암호화하는 것에 의해,
    상기 보안 데이터 저장 서비스를 제공하게 하는 명령들을 더 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  20. 제 17항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 복수의 저장 리소스들로부터 상기 데이터 리소스의 상기 데이터 파티클들을 송신하는 것을 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  21. 제 17항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 리소스에서 상기 데이터 리소스로부터 상기 데이터 파티클들을 수신하는 것, 상기 데이터 파티클들로부터 상기 데이터 리소스를 형성하는 것, 및 상기 리소스로부터 상기 데이터 리소스를 송신하는 것을 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  22. 제 17항에 있어서,
    각각의 데이터 파티클은, 파티클 식별자, 생성 타임 스탬프, 상기 데이터 파티클이 통신 데이터 파티클들 중 하나인지의 여부의 표시, 상기 데이터 파티클의 상기 저장 리소스를 나타내는 제 1의 어드레스, 상기 데이터 파티클의 상기 논리 그룹에서의 적어도 하나의 데이터 파티클의 적어도 하나의 저장 리소스를 나타내는 제 2의 어드레스, 수집 어드레스, 데이터 패킷, 또는 순환 중복 검사 코드 중 적어도 하나를 포함하는, 명령들이 저장된 머신 판독가능한 비일시적 매체.
  23. 클라우드 컴퓨팅 리소스로서,
    프로세서; 및
    명령들이 저장된 머신 판독가능 매체를 포함하는 메모리를 포함하고,
    상기 명령들은, 실행시, 클라우드 컴퓨팅 환경으로 하여금,
    상기 클라우드 컴퓨팅 환경에서의 보안 저장을 위해 클라이언트로부터 수신되는 데이터 리소스를 복수의 데이터 파티클들로 분할하는 것;
    상기 데이터 리소스가 상기 클라우드 컴퓨팅 환경에 저장되는 동안 시간에 걸쳐 반복적으로 상기 데이터 리소스 상에서 다음의 동작들을 행함으로써, 시간에 걸쳐, 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것으로서, 상기 다음의 동작들은,
    복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 각각의 논리 그룹은 적어도 하나의 통신 데이터 파티클을 포함하는 하나 이상의 데이터 파티클들을 포함하고, 상기 논리 그룹들의 각각에서의 상기 하나 이상의 데이터 파티클들은 그 논리 그룹에서의 임의의 다른 데이터 파티클들과 통신하도록 구성되고, 그리고 각각의 통신 데이터 파티클은 상기 클라우드 컴퓨팅 리소스와 통신하도록 구성되는, 상기 복수의 논리 그룹들을 상기 데이터 파티클들에 할당하는 것;
    복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것으로서, 상기 물리적 저장 그룹들의 각각은 하나 이상의 데이터 파티클들을 포함하는, 상기 복수의 물리적 저장 그룹들을 상기 데이터 파티클들에 할당하는 것; 및
    상기 클라우드 컴퓨팅 환경의 복수의 저장 리소스들 중 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것으로서, 각각의 저장 리소스는 다른 저장 리소스들과는 물리적으로 분리된, 상기 대응하는 저장 리소스에 각각의 물리적 저장 그룹을 저장하는 것을 포함하는, 상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것;
    상기 클라이언트로부터 상기 데이터 리소스에 대한 요청을 수신하는 것;
    상기 데이터 리소스에 대한 상기 요청이 유효한지의 여부를 결정하는 것; 및
    상기 데이터 리소스에 대한 상기 요청이 유효하다는 결정에 응답하여, 상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것에 의해,
    보안 데이터 저장 서비스를 제공하게 하고,
    상기 시간에 걸쳐 상기 데이터 리소스에서의 상기 데이터 파티클들의 논리적 분리 및 물리적 분리를 변경시키는 것은, 상기 데이터 리소스의 보안 레벨의 기능에 따라 변하는 빈도로 상기 데이터 파티클들의 상기 논리적 분리 및 상기 물리적 분리를 변경시키는 것을 포함하는, 클라우드 컴퓨팅 리소스.
  24. 제 23항에 있어서,
    상기 머신 판독가능 매체는, 실행시, 상기 클라우드 컴퓨팅 환경으로 하여금,
    상기 데이터 리소스를 상기 복수의 데이터 파티클들로 분할하기 이전에 상기 데이터 리소스를 암호화하는 것에 의해,
    보안 데이터 저장 서비스를 제공하게 하는 명령들을 더 포함하는, 클라우드 컴퓨팅 리소스.
  25. 제 23항에 있어서,
    상기 머신 판독가능 매체는, 실행시, 상기 클라우드 컴퓨팅 환경으로 하여금,
    상기 복수의 데이터 파티클들을 암호화하는 것에 의해,
    보안 데이터 저장 서비스를 제공하게 하는 명령들을 더 포함하는, 클라우드 컴퓨팅 리소스.
  26. 제 23항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 복수의 저장 리소스들로부터 상기 데이터 리소스의 상기 데이터 파티클들을 송신하는 것을 포함하는, 클라우드 컴퓨팅 리소스.
  27. 제 23항에 있어서,
    상기 데이터 리소스의 상기 데이터 파티클들을 상기 클라이언트로 송신하는 것은, 상기 리소스에서 상기 데이터 리소스로부터 상기 데이터 파티클들을 수신하는 것, 상기 데이터 파티클들로부터 상기 데이터 리소스를 형성하는 것, 및 상기 리소스로부터 상기 데이터 리소스를 송신하는 것을 포함하는, 클라우드 컴퓨팅 리소스.
  28. 제 23항에 있어서,
    각각의 데이터 파티클은, 파티클 식별자, 생성 타임 스탬프, 상기 데이터 파티클이 통신 데이터 파티클들 중 하나인지의 여부의 표시, 상기 데이터 파티클의 상기 저장 리소스를 나타내는 제 1의 어드레스, 상기 데이터 파티클의 상기 논리 그룹에서의 적어도 하나의 데이터 파티클의 적어도 하나의 저장 리소스를 나타내는 제 2의 어드레스, 수집 어드레스, 데이터 패킷, 또는 순환 중복 검사 코드 중 적어도 하나를 포함하는, 클라우드 컴퓨팅 리소스.
KR1020147021717A 2012-03-09 2012-03-09 클라우드 컴퓨팅 보안 데이터 저장 KR101632817B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/072122 WO2013131273A1 (en) 2012-03-09 2012-03-09 Cloud computing secure data storage

Publications (2)

Publication Number Publication Date
KR20140110042A KR20140110042A (ko) 2014-09-16
KR101632817B1 true KR101632817B1 (ko) 2016-06-22

Family

ID=49115887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021717A KR101632817B1 (ko) 2012-03-09 2012-03-09 클라우드 컴퓨팅 보안 데이터 저장

Country Status (4)

Country Link
US (2) US9225770B2 (ko)
KR (1) KR101632817B1 (ko)
CN (1) CN104255011B (ko)
WO (1) WO2013131273A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012015573A1 (de) * 2012-08-07 2014-02-13 Giesecke & Devrient Gmbh Verfahren zum Aktivieren eines Betriebssystems in einem Sicherheitsmodul
CN103685567A (zh) * 2013-12-31 2014-03-26 曙光云计算技术有限公司 云环境下配置虚拟应用服务器的方法
EP3153961A1 (fr) * 2015-10-08 2017-04-12 The Roberto Giori Company Ltd. Procédé et système de sauvegarde répartie dynamique
US9680809B2 (en) 2015-10-12 2017-06-13 International Business Machines Corporation Secure data storage on a cloud environment
KR101692339B1 (ko) 2016-06-08 2017-01-03 (주)세이퍼존 클라우드 기반의 엔드 포인트 보안용 보안키 및 이를 이용한 보안 시스템
KR101709276B1 (ko) 2016-11-17 2017-02-22 (주)세이퍼존 엔드 포인트 보안서버 관리 시스템
CN107995299A (zh) * 2017-12-08 2018-05-04 东北大学 一种云环境下抗访问模式泄露的盲存储方法
US10885018B2 (en) 2018-05-07 2021-01-05 Microsoft Technology Licensing, Llc Containerization for elastic and scalable databases
CN110555138B (zh) * 2019-08-05 2022-09-13 慧镕电子系统工程股份有限公司 一种云计算架构下的混合云存储方法
CN112034802A (zh) * 2020-09-02 2020-12-04 江苏工程职业技术学院 一种运用于云数据计算的数据采集系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060177061A1 (en) * 2004-10-25 2006-08-10 Orsini Rick L Secure data parser method and system
US20100299313A1 (en) 2009-05-19 2010-11-25 Security First Corp. Systems and methods for securing data in the cloud

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188153A1 (en) * 2002-04-02 2003-10-02 Demoff Jeff S. System and method for mirroring data using a server
US7778417B2 (en) * 2005-05-17 2010-08-17 International Business Machines Corporation System and method for managing encrypted content using logical partitions
US8555109B2 (en) * 2009-07-30 2013-10-08 Cleversafe, Inc. Method and apparatus for distributed storage integrity processing
BRPI0618725A2 (pt) 2005-11-18 2011-09-06 Rick L Orsini método analisador de dados seguro e sistema
CN104283880A (zh) * 2008-02-22 2015-01-14 安全第一公司 安全工作组管理和通信的系统和方法
EP2304919B1 (en) * 2009-05-25 2013-07-24 Hitachi, Ltd. Storage device and its control method
US9900150B2 (en) * 2009-10-30 2018-02-20 International Business Machines Corporation Dispersed storage camera device and method of operation
WO2011094736A1 (en) 2010-02-01 2011-08-04 Strattec Security Corporation Latch mechanism and latching method
CN102148798A (zh) * 2010-02-04 2011-08-10 上海果壳电子有限公司 大容量数据包的高效并行安全加解密方法
WO2011157708A1 (en) 2010-06-14 2011-12-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Methods and systems for securely handling datasets in computer systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060177061A1 (en) * 2004-10-25 2006-08-10 Orsini Rick L Secure data parser method and system
US20100299313A1 (en) 2009-05-19 2010-11-25 Security First Corp. Systems and methods for securing data in the cloud

Also Published As

Publication number Publication date
US20140196124A1 (en) 2014-07-10
CN104255011A (zh) 2014-12-31
US20160087996A1 (en) 2016-03-24
US9882917B2 (en) 2018-01-30
KR20140110042A (ko) 2014-09-16
WO2013131273A1 (en) 2013-09-12
CN104255011B (zh) 2017-12-08
US9225770B2 (en) 2015-12-29

Similar Documents

Publication Publication Date Title
KR101632817B1 (ko) 클라우드 컴퓨팅 보안 데이터 저장
US11256558B1 (en) Prioritized data rebuilding in a dispersed storage network based on consistency requirements
EP3132373B1 (en) Systems and methods for security management of multi-client based distributed storage
US20170285952A1 (en) System and method for quasi-compacting garbage collection
US10091077B1 (en) Systems and methods for detecting transactional message sequences that are obscured in multicast communications
US10516732B2 (en) Disconnected ingest in a distributed storage system
MX2008008604A (es) Sistema de almacenamiento distribuido con interfaz para servicios al cliente via la web.
CN111858146B (zh) 用于恢复数据的方法、设备和计算机程序产品
US10650160B2 (en) Enhancing security for multiple storage configurations
US9201735B1 (en) Distributed storage data repair air via partial data rebuild within an execution path
KR20170095570A (ko) 네트워크 트래픽 기록 장치 및 그 방법
US11275518B2 (en) System and method for implementing heterogeneous media types with raid
US9578120B1 (en) Messaging with key-value persistence
US10511656B1 (en) Log information transmission integrity
CN111130788B (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器
US9444891B2 (en) Data migration in a storage network
US10554517B2 (en) Reduction of volume of reporting data using content deduplication
US11347596B2 (en) Preliminary data protection using composite copies of data in a data storage system
GB2496258A (en) Encrypting data objects to back-up
US11481381B2 (en) System and method for non-disruptive in-memory certificate management
US10481832B2 (en) Applying a probability function to avoid storage operations for already-deleted data
KR20240037618A (ko) Can 메시지의 난독화 방법
US20240214003A1 (en) Data compression with signature-based intrusion detection
US11385941B2 (en) System and method for address space slicing with strong CPU core affinity
US20240113729A1 (en) System and method for data compression with homomorphic encryption

Legal Events

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