KR20230062817A - 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법 - Google Patents

신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230062817A
KR20230062817A KR1020237006378A KR20237006378A KR20230062817A KR 20230062817 A KR20230062817 A KR 20230062817A KR 1020237006378 A KR1020237006378 A KR 1020237006378A KR 20237006378 A KR20237006378 A KR 20237006378A KR 20230062817 A KR20230062817 A KR 20230062817A
Authority
KR
South Korea
Prior art keywords
superfile
content
client device
server
information
Prior art date
Application number
KR1020237006378A
Other languages
English (en)
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 KR20230062817A publication Critical patent/KR20230062817A/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/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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1015Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to users
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Abstract

하나의 예시적인 방법은, 클라이언트 컴퓨팅 디바이스에 의해, 클라이언트 컴퓨팅 디바이스에서 메모리 디바이스에 저장된 슈퍼파일을 열기 위한 요청을 수신하는 단계 - 슈퍼파일은 암호화된 콘텐츠를 포함하고, 요청은 사용자 크리덴셜 정보를 포함함 - ; 슈퍼파일을 열기 위한 요청을 수신하는 것에 응답하여, 클라이언트 컴퓨팅 디바이스에 의해, 슈퍼파일에 액세스하기 위한 요청을 원격 서버에 전달하는 단계 - 요청은 사용자 계정과 연관된 크리덴셜을 포함함 - ; 원격 서버로부터, 암호 정보를 수신하는 단계; 암호 정보를 사용하여, 암호화된 콘텐츠를 사용하는 단계; 암호 해독된 콘텐츠에 액세스하고 제시하는 단계; 및 암호 해독된 콘텐츠가 액세스되는 동안 원격 서버와의 통신을 유지하는 단계를 포함한다.

Description

신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법
연관된 출원에 대한 상호참조
본 출원은 2020년 7월 24일에 출원되고, 명칭이 “New computer file type that is trackable, has analytics, has the ability to change access at any time, is able for the owner of the file update it and then it updates everyone file who has the file.”인 미국 가특허출원 제63/056,288호에 대한 우선권을 주장하고, 그의 전체는 본원에 참조로 통합된다.
기술분야
본 출원은 일반적으로 미디어 콘텐츠에 대한 액세스를 원격으로 제어하는 것에 관한 것이며, 더욱 구체적으로 신뢰되지 않은 시스템(untrusted systems) 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법에 관한 것이다.
컴퓨팅 시스템은 데이터를 상이한 방식으로 저장할 수 있다. 데이터를 저장하기 위한 하나의 일반적인 방식은 하드 드라이브와 같은 비휘발성 메모리 디바이스 상의 파일에 있다. 이러한 파일에서의 데이터는 컴퓨팅 시스템에 의해 실행되는 상이한 애플리케이션에 의해 액세스될 수 있으며, 파일은 다른 저장 디바이스에 복사될 수 있다.
신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법에 대한 다양한 예가 설명된다. 하나의 예시적인 방법은, 클라이언트 컴퓨팅 디바이스에 의해, 클라이언트 컴퓨팅 디바이스에서 메모리 디바이스에 저장된 슈퍼파일(superfile)을 열기 위한 요청을 수신하는 단계 - 슈퍼파일은 암호화된 콘텐츠를 포함하고, 요청은 사용자 크리덴셜 정보를 포함함 - ; 슈퍼파일을 열기 위한 요청을 수신하는 것에 응답하여, 클라이언트 컴퓨팅 디바이스에 의해, 슈퍼파일에 액세스하기 위한 요청을 원격 서버에 전달하는 단계 - 요청은 사용자 계정과 연관된 크리덴셜을 포함함 - ; 원격 서버로부터, 암호 정보를 수신하는 단계; 암호 정보를 사용하여, 암호화된 콘텐츠를 사용하는 단계; 암호 해독된 콘텐츠에 액세스하고 제시하는 단계; 및 암호 해독된 콘텐츠가 액세스되는 동안 원격 서버와의 통신을 유지하는 단계를 포함한다.
다른 예시적인 방법은 원격 클라이언트 디바이스로부터, 슈퍼파일 내의 암호화된 콘텐츠에 액세스하기 위한 요청을 수신하는 단계 - 요청은 사용자 크리덴셜 정보를 포함하고, 슈퍼파일은 원격 클라이언트 디바이스의 메모리 디바이스에 저장되고 암호화된 콘텐츠를 포함함 - ; 암호화된 콘텐츠에 액세스하기 위한 허가 레벨을 결정하는 단계; 허가 레벨을 결정하는 것에 응답하여: 원격 클라이언트 디바이스에 암호 정보를 제공하는 단계; 및 원격 클라이언트 디바이스에서 슈퍼파일이 열려있는 동안, 암호화된 콘텐츠와 연관된 원격 클라이언트 디바이스로부터 사용 정보를 수신하고 저장하는 단계를 포함한다.
다른 예시적인 방법은 원격 클라이언트 디바이스로부터, 새로운 슈퍼파일의 생성의 표시를 수신하는 단계; 새로운 슈퍼파일과 연관된 데이터 저장소에 하나 이상의 레코드를 생성하는 단계; 하나 이상의 레코드에 하나 이상의 암호 키를 저장하는 단계 - 하나 이상의 키 중 하나는 슈퍼파일에서의 콘텐츠를 암호화하는 데 사용됨 - ; 및 슈퍼파일의 사본을 수신하고 저장하는 단계를 포함한다.
이들 예시적인 예는 본 개시의 범주를 제한하거나 한정하기 위해 언급되지 않고, 오히려 이의 이해를 돕기 위한 예를 제공하기 위해 언급된다. 예시적인 예는 추가적인 설명을 제공하는 상세한 설명에서 논의된다. 다양한 예에 의해 제공되는 이점은 본 명세서를 검토함으로써 추가로 이해될 수 있다.
본 명세서에 통합되고 그의 일부를 구성하는 첨부 도면은, 하나 이상의 특정 예를 예시하고, 예의 설명과 함께 특정 예의 원리 및 구현을 설명하는 역할을 한다.
도 1은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 시스템을 도시한다.
도 2는 슈퍼파일의 예시적인 구조를 도시한다.
도 3은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 시스템을 도시한다.
도 4는 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어와 관련된 프로세스에 대한 예시적인 시퀀스 도면을 도시한다.
도 5-8은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 방법을 도시한다.
도 9는 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 시스템 및 방법과 함께 사용하기에 적합한 예시적인 컴퓨팅 디바이스를 도시한다.
본원에서, 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법의 맥락에서 예가 설명된다. 통상의 기술자는 다음의 설명이 단지 예시적인 것이며, 어떤 식으로든 제한하려는 것으로 의도되지 않는다는 것을 인식할 것이다. 이제 첨부 도면에 예시된 바와 같은 예의 구현에 대한 참조가 상세히 이루어질 것이다. 동일한 참조 표시자는 동일하거나 유사한 항목을 지칭하기 위해 도면 및 다음의 설명 전체에 걸쳐 사용될 것이다.
명료함을 위해, 본원에서 설명된 예의 일상적인 피처의 모두가 도시되고 설명되는 것은 아니다. 물론, 임의의 이러한 실제 구현의 개발에서, 애플리케이션 및 사업-관련된 제약을 준수하는 것과 같은 개발자의 특정 목표를 달성하기 위해 다수의 구현-특정 결정이 이루어질 수 있고, 이들 특정 목표는 구현마다 그리고 개발자마다 다르다는 것이 인식될 것이다.
컴퓨터는 현대 사회에서 아주 흔하고(ubiquitous), 일반적으로 사진, 비디오, 문서 및 다른 종류의 파일을 생성하고, 교환하고, 보고 편집하는 데 사용된다. 하지만, 컴퓨터 파일은 파일 내에 포함된 콘텐츠의 소유자가 그 콘텐츠에 대한 제어를 하는 것을 허용하기 위한 기능이 대부분 부족하다. 일부 애플리케이션은 사용자가 파일을 암호로 보호하거나 또는 파일이 편집되지 않게 잠그는 것을 허용하지만, 이러한 기능은 파일에 적용되며, 파일이 다른 사람에게 배포되면, 소유자는 이후에 필요한 암호를 제공하는 것을 제외하고 이들 제한을 변경하기 위한 능력, 또는 편집을 위해 잠금되지 않은 파일의 대안적인 사본을 제공하기 위한 능력이 부족하다.
대안적으로, 컴퓨터 파일은 상이한 사용자가 파일을 보거나 편집하는 것과 같이 플랫폼 상의 파일에 액세스하는 것을 허용하는 클라우드 서비스와 같은 온라인 플랫폼을 통해 저장되고 공유될 수 있다. 하지만, 이들 파일에 대한 제어는 플랫폼 그 자체에 의해 제공되며, 플랫폼 상에 저장된 파일에 고유하지 않다. 따라서, 파일의 공유는 파일이 저장된 곳에 대한 참조를 공유하고, 파일에 대한 제어를 유지하는 플랫폼과 상호 작용하는 것으로 제한된다. 이 구성은 특정 이점을 제공할 수 있지만, 이는 모든 사용자가 플랫폼에 의해 중재되는 액세스를 통해, 파일의 동일한 사본에 액세스하는 것을 요구한다.
콘텐츠 생성자가 종래의 파일과 같이 복사되거나 또는 공유될 수 있는 개별 파일로 그의 콘텐츠를 널리 배포하는 것을 가능하게 하기 위해, 사용자는 콘텐츠를 "슈퍼파일"로 지칭되는 파일 구조로 저장할 수 있다. 슈퍼파일은 파일 저작자(file author)가 생성한 콘텐츠 - 비디오, 오디오, 텍스트, 스프레드시트 등 -, 및 컴퓨팅 디바이스 또는 클라이언트 디바이스로 하여금, 원격 서버와 통신하여 슈퍼파일의 콘텐츠에 대한 액세스를 획득하거나 또는 파일 콘텐츠의 사용에 대한 정보 및 사용자에게 부과된 모든 제한을 제공하는 것을 하게 하기 위한 정보 모두를 포함한다.
예시적인 슈퍼파일은 헤더 부분 및 콘텐츠 부분을 포함하며, 콘텐츠는 암호화되지만 헤더는 암호화되지 않는다. 콘텐츠 부분은 파일 생성자 또는 편집자가 생성한 어떤 콘텐츠라도 포함한다. 이에 대하여 헤더 부분은, 사용자의 클라이언트 디바이스가 슈퍼파일의 콘텐츠를 암호 해독하고 액세스하기 위해 암호 정보를 요청하는 것을 가능하게 하는 정보를 포함한다.
사용자가 슈퍼파일을 열려고 시도할 때, 운영체제는 예를 들어, .super(예를 들어, movie.super)의 파일 확장자를 검출함으로써, 파일 타입을 슈퍼파일로 검출하고, 슈퍼파일의 헤더 부분에 액세스한다. 헤더로부터, 운영체제는 "URL"(Universal Resource Locator)과 같은 "URI"(universal resource identifier)로 인코딩될 수 있는 서버 컴퓨터(또는 컴퓨터들)를 식별하는 정보, 및 파일 ID 및 암호 해시 값과 같은 슈퍼 파일의 식별자를 추출한다. 그 후, 이는 URL을 사용하여 서버에 접속하고(contact), 파일 ID 및 해시 값과, 사용자 크리덴셜 정보를 제공한다.
서버는 파일 ID 및 해시 값을 수신하고, 두 개가 파일에 대한 대응하는 정보에 일치하는지를 확인한다. 이 예에서, 서버는 새로운 슈퍼파일이 생성되거나 수정될 때 블록체인 네트워크에 블록체인을 추가하며, 따라서 서버는 파일 ID에 대응하는 블록체인에 액세스하고, 클라이언트 컴퓨터로부터 수신된 해시 값이 블록체인에 저장된 해시 값에 일치하는 지를 확인할 수 있다. 두 개가 일치하는 경우, 서버는 블록체인이 식별된 슈퍼파일에 대응하고 슈퍼파일이 진짜인지 확인한다.
슈퍼파일에 대한 블록체인에서의 대응하는 레코드를 식별한 이후에, 서버는 공급된 사용자 크리덴셜이 수락되는지를 결정한다. 예를 들어, 사용자는 슈퍼파일 서버에 사용자 계정을 가지고 있을 수 있다. 따라서, 사용자 크리덴셜은 사용자의 사용자 이름 및 암호일 수 있거나, 또는 사용자 크리덴셜은 암호 서명과 같이 사용자의 신원을 확인하기 위한 일부 다른 검증 가능한 정보일 수 있다. 그 후, 서버는 사용자의 신원을 확인하고, 사용자가 파일에 액세스하는지를 결정하기 위한 블록체인 레코드, 또는 이러한 정보를 포함하는 별도의 데이터 저장소에 액세스할 수 있다.
암호 해독 키를 수신한 이후에, 클라이언트 디바이스는 슈퍼파일 서버와의 연결을 유지하고 또한 암호 해독 키를 삭제하는 동안, 메모리에서의 파일의 콘텐츠를 암호 해독하고, 이를 사용자에게 제시한다. 클라이언트 디바이스가 슈퍼파일을 여는 동안, 클라이언트 디바이스는 콘텐츠의 어느 부분이 보여지고 있는지, 파일이 얼마나 오래 열려있는지, 유휴 시간이 얼마나 검출되었는지, 사용자가 콘텐츠를 복사하거나 편집하려고 시도하는 지 등과 같은 정보를 슈퍼파일 서버에 전송할 수 있다. 슈퍼파일 서버는 수신된 정보를 슈퍼파일의 블록체인 레코드에 대응하는 데이터 저장소 레코드에 저장할 수 있다. 나중에 사용자가 슈퍼파일을 닫을 때, 사용자의 컴퓨터는 암호 해독 키를 삭제하고, 슈퍼파일의 콘텐츠를 제시하는 것을 중지한다.
이 예는 슈퍼파일에 액세스하는 사용자의 간단한 예를 제공하지만, 슈퍼파일의 한 가지 이점은 슈퍼파일의 소유자가 그의 콘텐츠를 편집하거나 또는 슈퍼파일에 대한 액세스 레벨을 변경할 수 있다는 것이고, 이는 그 후 사용자 컴퓨터 상에서 이후에 열리는 슈퍼파일의 임의의 사본에 실시간으로 전파될 수 있다. 예를 들어, 슈퍼파일의 소유자가 슈퍼파일 문서에서의 텍스트를 편집하는 경우, 이들 편집은 슈퍼파일 서버로 전송되며, 그 후, 슈퍼파일 서버는 그 시간에 다른 클라이언트 컴퓨터에서 열리는 파일의 각각의 사본에 이들 편집을 제공한다. 따라서, 이들 다른 클라이언트 컴퓨터는 편집된 콘텐츠를 수신하고, 슈퍼파일 그 자체의 콘텐츠를 업데이트할 뿐만 아니라, 사용자가 볼 수 있는 디스플레이된 암호 해독된 콘텐츠를 동적으로 변경한다. 따라서, 파일의 소유자에 의해 업데이트가 이루어질 때, 사용자는 업데이트를 거의 실시간으로 볼 것이다. 보는 사용자 중 한 명이 슈퍼파일을 닫을 때, 그 지점까지 수신된 변경이 슈퍼파일의 그의 사본에 저장될 것이다. 슈퍼파일을 보지 않고 나중에 이에 액세스하는 임의의 사용자에 대해, 그는 가령, 슈퍼파일에 액세스하는 데 승인될 시, 업데이트된 콘텐츠를 즉시 제공 받을 것이다. 따라서, 슈퍼파일은 사용자가 슈퍼파일을 임의의 전통적인 파일로 사용하지만, 거의 실시간으로 업데이트를 수신(또는 제공)하는 것을 가능하게 하기 위한 방식을 제공한다.
유사하게, 슈퍼파일의 소유자는 슈퍼파일 콘텐츠에 대한 액세스 제한을 변경할 수 있으며, 이는 그 후 당시(then-currently) 열려 있는 파일의 임의의 다른 사본에 거의 실시간으로 전파될 수 있다. 예를 들어, 사용자가 슈퍼파일을 여는 동안 소유자가 사용자의 액세스를 취소하는 경우(revokes), 슈퍼파일 서버는 클라이언트의 컴퓨터에 메시지를 송신하고, 클라이언트 컴퓨터는 콘텐츠가 사용자에 의해 더 이상 액세스되지 않도록, 암호 해독된 콘텐츠를 포함하는 메모리를 덮어씀으로써 사용자에게 암호 해독된 콘텐츠를 제공하는 것을 즉시 중단한다. 이는 또한, 사용자의 액세스 권한이 소유자에 의해 취소되었다는 통지를 제공할 수 있다.
슈퍼파일을 사용하여, 콘텐츠 생성자는 그의 작업에 대한 액세스에 대한 제어를 여전히 유지하면서, 그의 작업이 누군가에 의해 자유롭게 복사되는 것을 허용할 수 있다. 덧붙여, 슈퍼파일 서버에 의해 수집된 사용 정보는 사용자가 그의 콘텐츠에 대한 참여(engagement)를 모니터링하는 것을 허용할 수 있으며, 이는 사용자가 예를 들어, 콘텐츠에 대한 액세스를 판매함으로써 콘텐츠에 대한 수익을 직접적으로 창출하거나, 또는 가령 콘텐츠와 부수되는 광고를 판매함으로써 콘텐츠에 대한 수익을 간접적으로 창출하는 것을 가능하게 할 수 있다. 또한, 슈퍼파일에 대한 정보를 레코딩하기 위한 메커니즘으로 블록체인을 이용함으로써, 슈퍼파일에 대한 소유권의 체인 및 신빙성이 블록체인에 액세스함으로써 확인될 수 있다.
이 예시적인 예는 본원에서 논의된 일반적인 주제를 독자에게 소개하기 위해 제공되며, 본 개시는 이 예에 제한되지 않는다. 다음 섹션은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법의 예 및 다양한 추가적인 비-제한적인 예를 설명한다.
이제 도 1을 참조하면, 도 1은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 시스템을 도시한다. 예시적인 시스템은 생성자 디바이스(130), 및 하나 이상의 통신 네트워크(140)를 통해 슈퍼파일 서버(110)와 통신할 수 있는 다수의 클라이언트 디바이스(120a-n)를 포함한다. 이들 컴퓨팅 디바이스(110, 120a-n, 130)의 각각은 대응하는 데이터 저장소(112, 122a-n, 132)를 포함하며, 여기서 각 컴퓨팅 디바이스는 하나 이상의 데이터 파일을 영구적으로 저장하고 액세스할 수 있다.
클라이언트 디바이스(120a-n) 또는 생성자 디바이스(130)의 사용자의 각각은, 각 디바이스를 사용하여 창의적인 콘텐츠를 생성하거나 또는 보는 것과 같이, 임의의 수의 상이한 행위를 할 수 있다. 이러한 콘텐츠는 전형적으로 하나 이상의 소프트웨어 애플리케이션을 사용하여 생성되고, 그 후 사용자의 클라이언트 디바이스(120a-n) 상의 하나 이상의 데이터 파일(또는 단지 "파일")에 저장된다. 그 후, 사용자(또는 "생성자")는 관련된 파일(들)의 사본을 제공함으로써 생성자에게 알려지는 지의 여부에 관계없이, 그 콘텐츠를 다른 사용자와 공유할 수 있다. 그 후, 수신자는 파일(들)에 대한 액세스를 갖고, 콘텐츠를 볼 수 있으며, 일부 경우에 콘텐츠를 편집할 수 있다. 하지만, 수신자가 파일의 사본을 수신하면, 그는 콘텐츠의 전체를 포함하고, 그가 이후에, 그가 원하는 대로 액세스 및 사용할 수 있는 독립된 전자 패키지(self-contained electronic package)를 갖는다.
도시된 예시적인 시스템(100)에서, 클라이언트 디바이스(120a-n)의 각각은 하나 이상의 사용자에 의해 동작되고, 일반적으로 생성자 디바이스(130)에 대해 "신뢰되지 않은" 클라이언트로 지칭된다. 이러한 의미에서, "신뢰되지 않은"은 생성자의 제어에 독립적이고 자율적인 사용자에 의해 동작되는 디바이스를 의미한다. 따라서, 생성자는 가령, 다른 사용자가 취하기를 원할 수 있는 콘텐츠에 대해 취해진 행동을 방지하기 위해, 사용자의 클라이언트 디바이스(120a-n)에 액세스할 방식을 갖지 않는다. 덧붙여, 이러한 예시적인 시스템(100)의 사용 없이, 생성자는 그가 콘텐츠의 생성자라는 것을 확립하거나, 또는 다른 사용자에 의한 그 자신의 데이터 파일의 사용을 추적하기 위한 능력이 부족할 것이다.
생성자가 그 자신의 콘텐츠에 대한 제어를 유지하는 것을 가능하게 하기 위해, 생성자는 그의 콘텐츠를 슈퍼파일의 일부로 저장할 수 있다. 슈퍼파일은 파일의 콘텐츠에 액세스하기 위해 슈퍼파일 서버로부터의 권한(permission)을 요구하기 위한 기능을 포함하는 파일 타입이다. 그러나, 슈퍼파일은 단지 파일을 처음에 열어서 그의 콘텐츠에 액세스하기 위한 권한을 넘어서, 파일 콘텐츠에 액세스 하기 위한 권한이 변경되지 않거나 또는 취소되지 않는 것을 보장하고, 파일의 콘텐츠의 사용자의 사용을 추적하기 위해, 슈퍼파일 서버와의 지속적인 통신을 요구한다.
사용자가 슈퍼파일을 수신할 때, 그는 평범한 파일처럼 보이는 슈퍼파일의 전체를 수신한다. 따라서, 수신하는 사용자(또는 "수신자")는 원격 컴퓨터에 있는 파일의 일부 부분이 아닌, 전체 파일 및 그의 콘텐츠를 소유한다. 일부 예에서, 슈퍼파일은 파일 이름 확장자(예를 들어, .super)로 식별될 수 있지만, 일부 예에서 슈퍼파일은 파일 확장자 또는 특정 파일 확장자를 갖지 않을 수 있다.
파일에 액세스하기 위해, 사용자는 파일이 임의의 다른 파일인 것과 마찬가지로, 예를 들어 마우스를 사용하여 슈퍼파일에 대한 파일 아이콘을 선택하고 더블 클릭함으로써 그의 클라이언트 디바이스, 예를 들어 클라이언트 디바이스(120a)를 사용하여 파일을 열려고 시도할 수 있다. 수신자의 클라이언트 디바이스에 의해 실행되는 운영체제("OS")는 사용자 입력에 기초하여 파일을 열기 위한 명령을 검출하고, 예를 들어 파일 확장자에 기초하거나 또는 (아래에서 더욱 상세히 논의되는) 슈퍼파일 내의 헤더 정보에 액세스함으로써 파일이 슈퍼파일이라는 것을 결정할 수 있다. 파일이 슈퍼파일인 것으로 결정할 시, OS는 먼저 기본적으로 파일을 열도록 시도하거나, 또는 OS는 파일을 열기 위해 수신자의 클라이언트 디바이스 상에 설치된 애플리케이션을 런치(launch)할 수 있다. 예를 들어, 콘텐츠 헤더는 슈퍼파일에 저장된 콘텐츠의 타입을 나타낼 수 있고, 클라이언트 디바이스는 그 콘텐츠의 타입에 대응하는 애플리케이션을 열 수 있다.
파일을 열기 위해, OS 또는 애플리케이션(둘 다 "애플리케이션"으로 지칭됨)은 슈퍼파일 서버, 예를 들어, 슈퍼파일 서버(110)에 접속하려고 시도한다. 이렇게 하기 위해, 애플리케이션은 미리-구성된 서버 이름, 예를 들어, files.superfile.org에 대한 네트워크 주소를 획득하기 위해 DNS 요청을 발행할 수 있다. DNS 응답은, 애플리케이션이 이후에, 슈퍼파일 서버(110)에 접속하기 위해 사용하는 네트워크 주소, 예를 들어 인터넷 프로토콜("IP") 주소를 제공한다. 애플리케이션은 또한, 서버(110)와 통신을 확립하기 전에 또는 그 동안에, 예를 들어 신뢰 인증 기관을 통해 식별된 서버를 인증하려고 시도할 수 있다.
애플리케이션은 슈퍼파일 서버(110)와 통신을 확립한 이후에, 콘텐츠에 대한 액세스를 요청한다. 슈퍼파일 서버(110)는 어플리케이션 또는 대응하는 사용자가 콘텐츠에 액세스하기 위한 권한을 갖는 지를 결정할 수 있고, 그러한 경우, 슈퍼파일의 콘텐츠를 암호 해독하거나 또는 압축 해제하는데 필요한 정보를 송신할 수 있다. 정보를 수신한 이후에, 애플리케이션은 콘텐츠를 암호 해독하거나 또는 압축 해제하기 위한 정보를 사용하며, 애플리케이션은 그 후, 그 자체가 콘텐츠를 제시할 수 있거나, 또는 콘텐츠를 제시하기 위해 별도의 애플리케이션을 실행할 수 있다. 이 예시적인 시스템에서, 콘텐츠가 암호 해독될 때, 콘텐츠는 사용자로의 제시를 가능하게 하기 위해 휘발성 시스템 메모리로만 암호 해독된다. 슈퍼파일의 암호 해독된 사본은 생성되지 않는다. 이는, 액세스가 변경되거나 취소되는 이벤트에서, 슈퍼파일 콘텐츠의 보안을 보장하는 데 도움이 될 수 있다.
일반적으로 슈퍼파일이 "열린" 상태로 유지되는 동안으로 지칭되는, 콘텐츠가 사용자에게 제시되는 동안, 애플리케이션은 슈퍼파일 서버와의 통신을 유지하고, 사용자가 파일을 얼마나 오래 열고 있는지, 콘텐츠의 어느 부분이 보여지거나 또는 제시되는 지 등과 같은 사용 정보를 서버에 전송한다. 슈퍼파일 서버(110)는 이러한 정보를 그의 데이터 저장소(112)에 저장하고, 이를 슈퍼파일에 대응하는 레코드와 연관시킬 수 있다.
슈퍼파일이 열려 있는 동안, 애플리케이션이 슈퍼파일 서버(110)와의 연결을 잃는 경우(loses), 애플리케이션은 가령, (아직 삭제되지 않은 경우) 콘텐츠를 암호 해독하거나 또는 압축 해제하는 데 필요한 정보를 삭제하는 것, 콘텐츠의 제시를 가능하게 하기 위해 메모리에 복사되는 슈퍼파일 콘텐츠로부터 임의의 정보를 삭제하거나 덮어쓰는 것, 콘텐츠를 보는 데 사용되는 임의의 별도의 애플리케이션을 닫는 것 등에 의해, 슈퍼파일에 대한 액세스를 즉시 종료할 수 있다. 일부 예에서, 애플리케이션은 간헐적인 네트워크 실패와 관련된 문제를 완화하기 위해, 액세스를 종료하기 전에 미리 결정된 시간 기간, 예를 들어 5분 또는 10분을 그 대신에 대기할 수 있다. 슈퍼파일 서버와의 통신이 재개되는 경우, 액세스가 복원될 수 있거나, 액세스가 종료되는 경우, 미리 결정된 기간이 재설정될 수 있다.
사용자가 슈퍼파일에 액세스하려고 시도할 때, 사용자는 슈퍼파일 내의 콘텐츠 생성자에 의해 확립된 권한에 따라 액세스가 부여될 수 있다. 예를 들어, 생성자는, 생성자가 콘텐츠를 자유롭게 편집하거나 또는 삭제하거나, 상이한 사용자에 대한 권한을 변경하거나, 또는 다른 사용자에게 콘텐츠의 소유권을 다른 사용자에게 전달하는 것을 허용할 수 있는 파일에 대한 "소유자" 액세스를 가질 수 있다. 다른 사용자는 그가 콘텐츠를 보기는 하지만 이를 편집하지는 못하도록 허용할 수 있는, "뷰어" 액세스 권한을 가질 수 있다. 일부 사용자는 그가 콘텐츠를 보기는 하지만, 다른 사용자가 콘텐츠를 보는 것을 가능하게 하는 것과 같이, 소유권 기능을 수행하지는 못하도록 허용할 수 있는 "편집자" 액세스를 가질 수 있다. 여전히 다른 타입의 권한이 확립될 수 있다.
각각의 파일에 대한 상이한 권한 레벨은, 하나 이상의 슈퍼파일 서버, 예를 들어 슈퍼파일 서버(110)에 의해 유지될 수 있다. 따라서, 사용자가 슈퍼파일에 액세스하려고 시도할 때, 슈퍼파일 서버(110)는 사용자가 슈퍼파일의 콘텐츠에 액세스하기 위한 권한을 갖는지를 결정할 수 있고, 그러한 경우, 어느 등급 예를 들어, 소유자, 편집자, 뷰어 등을 갖는지를 결정할 수 있다. 권한 레벨은 슈퍼파일 내의 콘텐츠에 대한 변경을 행하거나, 또는 이를 저장하기 위한 사용자의 능력에 영향을 미칠 수 있다. 예를 들어, 사용자가 콘텐츠에 대한 "뷰어" 권한만을 갖는 경우, 사용자는 슈퍼파일로 저장된 문서를 열 수 있다. 사용자가 파일을 편집하는 것을 방지하기 위해, OS 또는 편집 애플리케이션(예를 들어, 워드 프로세싱 애플리케이션)과 같은 애플리케이션은, 사용자가 슈퍼파일의 콘텐츠를 편집하는 것을 방지하기 위해 파일을 "읽기 전용"으로 열 수 있다.
슈퍼파일이 자유롭게 배포될 수 있기 때문에, 임의의 수의 사본의 특정 슈퍼파일이 유통될 수 있고 동시에 열릴 수 있다. 따라서, 하나의 클라이언트 디바이스, 예를 들어 클라이언트 디바이스(120a)에서의 사용자가 슈퍼파일의 사본을 열 수 있는 한편, 다른 클라이언트 디바이스(120b)에서의 사용자가 또한 슈퍼파일의 사본을 열 수 있다. 두 클라이언트 디바이스(120a,b) 모두는 일반적으로 위에서 논의된 바와 같이, 슈퍼파일 서버(110)와 통신할 것이다.
클라이언트 디바이스(120a,b)가 슈퍼파일 서버(110)와의 통신을 유지하는 결과로서, 예를 들어 소유자 또는 "편집자"에 의해 슈퍼파일의 콘텐츠에 이루어진 임의의 업데이트는, 슈퍼파일 서버에 의해 열린 슈퍼파일의 사본을 갖는 임의의 클라이언트 디바이스(120a,b)로 즉시 전파될 수 있다. 그 대신, 슈퍼파일의 사본이 열려 있지 않은 임의의 클라이언트 디바이스는, 슈퍼파일이 열리는 다음 시간에 업데이트된 콘텐츠를 수신한다. 유사하게, 사용자 권한이 변경되는 경우, 업데이트된 권한은 슈퍼 파일이 열린 상태로 임의의 영향을 받는 사용자에게 즉시 전파될 것이다. 예를 들어, 사용자가 "편집자" 권한을 갖고, 사용자가 파일을 여는 동안, "뷰어" 권한으로 변경되는 경우, 그의 클라이언트 디바이스는 슈퍼파일 서버(110)로부터 변경된 권한을 수신하고 모든 변경이 슈퍼파일에 저장되는 것을 방지할 것이다. 일부 경우에서, 권한 변경 전에 슈퍼파일이 열려 있는 동안 편집자에 의해 이루어진 변경이 롤백되지만, 일부 경우에서는, 편집에 대한 금지만이 곧 있을 것이다. 또한, 사용자가 취소된 파일에 액세스하기 위한 그의 권한을 갖는 경우, 슈퍼파일 콘텐츠는 예를 들어, 슈퍼파일을 닫고 콘텐츠에 액세스하는 데 사용된 임의의 암호 정보를 폐기함으로써, 즉시 액세스할 수 없게 렌더링될 것이다. 일부 예에서, 슈퍼파일은 열린 상태로 유지될 수 있지만, 콘텐츠가 더 이상 제시되지 않을 것이고, 그 대신에 권한이 변경되었다는 표시가 디스플레이될 것이다.
클라이언트 디바이스(120a-n)가 슈퍼파일 서버(110)의 제어 하에 있지 않기 때문에, 슈퍼파일 서버(110) 그 자체는, 사용자가 다른 방식으로 금지될 기능을 가능하게 하기 위해 클라이언트 디바이스에 의해 실행되는 하나 이상의 애플리케이션을 변조하지(tampered) 않는다는 것을 보장할 수 없다는 것이 인식되어야 한다. 하지만, 사용자가 슈퍼파일의 콘텐츠를 몰래 수정하더라도, 그 수정은 슈퍼파일 서버(110) 또는 변조되지 않은 다른 클라이언트 디바이스(120a-n)에 의해 검출 가능할 것이다. 위에서 논의된 바와 같이, "편집자" 권한을 갖는 사용자는 슈퍼파일의 콘텐츠를 수정할 수 있으며, 그 후, 이는 슈퍼파일 서버(110)로 전파되고, 그 후 슈퍼파일의 사본을 갖는 다른 사용자에게 전파된다. 하지만, 사용자가 그의 콘텐츠를 수정하기 위해 슈퍼파일을 변조하는 경우, 슈퍼파일 서버(110)는 슈퍼파일 서버(110)에 의해 유지되는 권한을 기초로 수정을 거부할 것이다. 따라서, 사용자는 슈퍼파일의 그 자신의 사본으로 수정할 수 있으나, 이는 슈퍼파일 서버(110)를 통해 다른 사람에게 확장되지는 않을 것이다. 대안적으로, 사용자는 슈퍼파일의 콘텐츠를 변조하고, 예를 들어 이메일을 통해 파일을 다른 사용자(이 예에서는 "수신자")에게 배포하려고 시도할 수 있다.
수신자가 변조된 슈퍼파일에 액세스하려고 시도할 때, 그의 클라이언트 디바이스는 위에서 논의된 바와 같이 슈퍼파일 서버(110)에 접속할 것이고, 파일의 콘텐츠가 슈퍼파일의 현재 알려진 상태와 상이하다는 것을 나타내는 메시지가 제시될 수 있다. 일부 예에서, 슈퍼파일 서버(110)는 그 대신에, 슈퍼파일의 사용자의 사본과 슈퍼파일의 현재 알려진 상태 사이의 파일 콘텐츠에서의 상위를 검출하고, 그 후 사용자 사본에서의 콘텐츠를 대체하도록, 올바른 파일 콘텐츠를 사용자에게 전송할 수 있다. 파일 콘텐츠가 변조되었음을 나타내는 오류를 사용자에게 제시하는 것과 같은 또 다른 예시적인 행동이 취해질 수 있다.
예시적인 시스템(100)에 의해 가능하게 되는 기능은 (아래에서 설명되는) 슈퍼파일의 구조, 슈퍼파일 서버(110)의 사용 및 일부 예에서 블록체인 네트워크에 부분적으로 기초한다.
도 2를 참조하면, 도 2는 슈퍼파일(200)에 대한 예시적인 파일 구조를 도시한다. 이 예에서 슈퍼파일(200)은 헤더(210) 및 콘텐츠 페이로드(220)를 포함한다. 콘텐츠 페이로드(220)는 생성자에 의해 생성된 임의의 종류의 콘텐츠를 포함한다. 적합한 콘텐츠의 예는 서면 작업(예를 들어, 기사, 서적, 스크립트 등), 오디오 또는 시각적 작업(예를 들어, 음악, 비디오, 이미지 등), 기술 정보(예를 들어, 3D 프린터 계획, 컴퓨터-지원 설계 또는 제조 파일 등) 등을 포함한다. 일부 경우에서, 콘텐츠 페이로드(220)는 다른 슈퍼파일을 포함할 수 있다.
허가되지 않은 액세스로부터 슈퍼파일의 콘텐츠를 보호하기 위해, 일부 예에서 콘텐츠 페이로드(220)는 암호화되거나 압축되거나, 또는 둘 모두가 행해질 수 있다. AES(Advanced Encryption Standard) 암호화 기술 패밀리, 예를 들어, AES-256과 같은 대칭 키 암호화, 또는 비대칭 키 암호화와 같은 상이한 예에 따라 임의의 적합한 암호화 기술이 사용될 수 있다. 암호화에 부가하여(또는 그 대신에), 콘텐츠 페이로드(220)의 크기를 감소시키기 위해 LZ 압축과 같은 압축 기술이 사용될 수 있다. 기밀 정보를 포함하지 않는 콘텐츠 페이로드(220)의 경우, 예를 들어 사용자 매뉴얼, 이력서 등에 대해서는 압축이 충분할 수 있는 한편, 다른 타입의 정보에 대해서는 암호화가 바람직할 수 있다. 하지만, 슈퍼파일의 생성자는 암호화 또는 압축이 사용되는 지의 여부를 선택할 수 있으며, 그러한 경우 사용될 타입을 선택할 수 있다. 덧붙여, 생성자(또는 충분한 권한을 갖는 다른 사용자)는 언제든지 슈퍼파일로부터 암호화 또는 압축을 변경하거나 또는 제거할 수 있다(또는 다시 적용할 수 있다).
슈퍼파일 헤더(210)는 파일을 슈퍼파일로 식별하는 정보, 슈퍼파일에 대한 고유한 식별자, 콘텐츠 페이로드(220)에 적용되는 암호화 또는 압축의 타입을 나타내는 정보, 콘텐츠 페이로드(220)에 대한 체크섬 또는 해시 값 등을 포함한다. 이는 또한, 슈퍼파일의 생성자, 슈퍼파일의 생성 날짜, 서지 정보(bibliographic information)에 대한 체크섬 또는 해시 값, 전체 슈퍼파일(220)에 대한 체크섬 또는 해시 값 등과 같은 특정 서지 정보를 포함할 수 있다. 일반적으로, 슈퍼파일 헤더(210)는 슈퍼파일 콘텐츠와 유지하는 것이 바람직할 수 있는 슈퍼파일에 대한 임의의 정보와, 클라이언트 디바이스가 슈퍼파일 서버에 접속하고 콘텐츠 페이로드(220)에 액세스하는 것을 가능하게 하는 데 필요할 수 있는 특정 정보를 포함할 수 있다.
예시적인 슈퍼파일(200)은 헤더 부분(210) 및 콘텐츠 페이로드(220)를 포함하는 것으로 설명된다; 하지만, 이는 예고편과 같이 다른 부분도 포함할 수 있다. 일부 예에서, 슈퍼파일(200)은 다수의 콘텐츠 페이로드(220)를 포함할 수 있으며, 이의 각각은 사용자의 권한 레벨에 의존하여 별도로 액세스할 수 있다. 예를 들어, 슈퍼파일(200)은 두 개의 콘텐츠 페이로드(220)를 가질 수 있고, 그 중 하나는 파일의 사본, 예를 들어 영화에 대한 예고편 또는 책의 프롤로그를 갖는 사람이 볼 수 있는 한편, 다른 하나는 액세스, 예를 들어, 전체 영화 또는 책을 구매한 이후에만 액세스 가능하다. 따라서, 슈퍼파일은 콘텐츠에 대한 액세스를 저장, 규제 및 모니터링하는 데 적합한 구조를 가질 수 있다.
이제 도 3을 참조하면, 도 3은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 제공하기 위한 다른 예시적인 시스템(300)을 도시한다. 도 3에 도시된 예시적인 시스템(300)은 블록체인(332a-k)을 포함하는 블록체인 네트워크(330)를 집합적으로 구현하는 다수의 슈퍼파일 서버(310a-m) 및 다수의 클라이언트 디바이스(320a-n)를 포함한다. 블록체인(332a-k)은 슈퍼파일 서버(310a-m) 및 클라이언트 디바이스(320a-n)가 시간이 지남에 따라, 그리고 상이한 컴퓨팅 시스템에서 슈퍼파일을 추적하고 유효성 검증하기 위해 의존할 수 있는, 슈퍼파일의 영구적이고 불변인 레코드를 제공한다.
이 예에서, 슈퍼파일 서버(310a-m)는 읽고, 블록체인(332a-k)에 쓰기 위한 능력을 갖는 한편, 클라이언트 디바이스(320a-n)는 블록체인(332a-k)에서의 레코드를 읽을 수 있다. 하지만, 일부 예에서, 슈퍼파일 서버(310a-m)만이 블록체인 네트워크에 대한 액세스를 가질 수 있다. 새로운 슈퍼파일이 생성될 때, 생성자의 클라이언트 디바이스는 슈퍼파일 서버, 예를 들어 슈퍼파일 서버(310a)에 접속하고, 슈퍼파일을 등록한다. 슈퍼파일 서버(310a)는 슈퍼파일의 사본을 수신하고 슈퍼파일에 대한 블록체인을 확립한다. 다른 사용자가 슈퍼파일의 사본을 수신할 때(또는 생성자가 슈퍼파일에 다시 액세스할 때), 그는 대응하는 블록체인에 액세스하고 필요에 따라 이를 순회함으로써(traversing), 슈퍼파일의 무결성을 검증할 수 있다. 블록체인은 또한, 슈퍼파일 생성자에 대한 레코딩 정보와, 사용자 간 소유권의 전달을 포함할 수 있는, 슈퍼파일에 대한 소유권 정보를 제공한다. 슈퍼파일에 대한 변경이 이루어질 때, 슈퍼파일 서버(310a-m)는 블록체인에 블록을 추가하고, 이는 시간에 따라 슈퍼파일에 대해 이루어진 변경의 감사 추적(audit trail)을 제공한다.
이 예시적인 시스템에서, 슈퍼파일 서버(310a-m)는 신뢰된 제3자 슈퍼파일 서비스 제공자에 의해 호스팅된다; 하지만, 일부 예에서 사용자(예를 들어, 생성자) 또는 조직은 그 자신의 슈퍼파일의 모음 및 블록체인 네트워크를 관리하기 위해 그 자신의 슈퍼파일 서버(들)를 동작시킬 수 있다. 예를 들어, 영화 스튜디오는 그 자신의 슈퍼파일 서버(들) 및 블록체인 네트워크(310)를 관리할 수 있으며, 이는 스튜디오가 슈퍼파일을 생성하여, 그가 출시하는 영화에 대한 액세스를 관리하거나 또는 시간이 지남에 따라 업데이트를 출시하거나 또는 영화 내에 상이한 피처를 내장하는 것을 가능하게 할 수 있다. 예를 들어, 영화 스튜디오는 다양한 영화와 연관된 예고편 또는 마케팅 프로모션을 변경하기 위해 영화 슈퍼파일을 업데이트할 수 있다. 유사하게, 광고 대행사, 녹음 스튜디오, 연구소 등과 같은 다른 창의적인 조직은, 사용자가 그의 콘텐츠에 액세스하는 것을 가능하게 하기 위해, 그 콘텐츠의 사용에 걸쳐 제어를 모니터링하고 제어하면서, 그 자신의 슈퍼파일 서버(등) 및 블록체인 네트워크를 관리할 수 있다.
따라서, 본 개시에 따른 예시적인 시스템은 슈퍼파일 서버(들)가 슈퍼파일 콘텐츠에 대한 액세스를 중재하는 동안, 슈퍼파일의 신빙성 및 유효성을 보장하기 위해 블록체인 네트워크의 사용을 포함할 수 있다. 하지만, 블록체인의 사용은 일부 예시적인 시스템에서 선택적인 피처이며, 다른 것에서는 생략될 수 있다.
이제 도 4를 참조하면, 도 4는 본 개시에 따라 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 내의 상호작용을 도시하는 예시적인 시퀀스 도면을 도시한다. 시스템은 여러 클라이언트 디바이스(410a-c), 슈퍼파일 서버 및 블록체인 네트워크(430)를 포함한다.
이 시퀀스는 클라이언트 디바이스(410a)의 사용자가 콘텐츠를 생성하고 이를 슈퍼파일로 저장하는 것(440)으로 시작한다. 이는 클라이언트 디바이스(410a)로 하여금, 새로운 슈퍼파일이 생성되었다는 것을 나타내는 메시지를 슈퍼파일 서버(420)로 송신하게 한다. 이 예에서, 클라이언트 디바이스(410a)는 또한, 슈퍼파일의 사본을 슈퍼파일 서버(420)로 송신한다. 슈퍼파일은 도 2와 관련하여 위에서 논의된 예시적인 슈퍼파일과 유사하게, 헤더 부분 및 콘텐츠 페이로드를 모두 포함한다. 헤더 부분은 클라이언트 디바이스(410a)가 슈퍼파일 서버로부터 이전에 요청한, 슈퍼파일에 대한 고유한 식별자를 포함한다. 하지만, 일부 예에서, 클라이언트는 슈퍼파일을 생성하고 이를 저장할 수 있으며, 응답으로 슈퍼파일 서버(420)로부터 슈퍼파일 식별자를 수신할 수 있다. 그 후, 클라이언트 디바이스(410a)는 슈퍼파일 식별자를 슈퍼파일 헤더 부분에 삽입할 수 있다.
이 예에서, 슈퍼파일 서버(420)는 클라이언트 디바이스(410a)로부터 새로운 파일(440) 메시지를 수신하는 것에 응답하여 여러 상이한 행동을 취한다. 슈퍼파일 서버(420)는 클라이언트 디바이스(410a)(미도시)에 제공되는 고유한 슈퍼파일 식별자를 생성하고, 클라이언트 디바이스(410a)에 의해 새로운 슈퍼파일의 헤더에 삽입된다. 일부 예에서, 클라이언트 디바이스(410a)는 고유한 식별자를 생성하거나, 또는 슈퍼파일 서버(420)로부터 슈퍼파일 식별자를 요청할 수 있다.
슈퍼파일 서버(420)는 또한, 새로운 슈퍼파일에 대응하는 블록체인 네트워크(430)에 새로운 블록체인(442)을 생성한다. 이는 슈퍼파일 식별자, 체크섬 또는 해시 값(예를 들어, 암호 해시 값), 타임스탬프, 생성자 이름 또는 식별자, 소유자 이름 또는 식별자 등과 같은 슈퍼파일에 대한 정보를 포함한다. 일부 예에서, 블록체인(442)은 슈퍼파일 자체의 사본을 포함할 수 있다.
이 예에서, 도 3과 관련하여 위에서 논의된 바와 같이, 블록체인 네트워크는 여러 슈퍼파일 서버 및 클라이언트 디바이스에 분산될 수 있다. 따라서, 블록체인 네트워크에 새로운 블록체인을 추가하는 것은 슈퍼파일 서버(420) 또는 클라이언트 디바이스(410a-c) 중 하나 이상과 같은 상이한 컴퓨팅 디바이스 사이에 하나 이상의 블록을 배포하는 것을 수반할 수 있다.
슈퍼파일을 생성한 이후에, 슈퍼파일의 생성자는 슈퍼파일(444)의 사본을 상이한 클라이언트 디바이스(410b)에서의 다른 사용자에게 제공한다. 예를 들어, 생성자는 수신자에게 슈퍼파일을 이메일로 보낼 수 있거나, 또는 휴대용 저장 디바이스(예를 들어, 썸 드라이브(thumb drive), 휴대용 하드 드라이브 등)에 이를 저장할 수 있으며, 그 후 다른 클라이언트 디바이스(410b)에 물리적으로 연결될 수 있다. 슈퍼파일이 종래의 파일과 같이 독립된(self-contained) 유닛이고, 컴퓨팅 디바이스에 의해 종래의 파일로 저장되기 때문에, 이는 다른 컴퓨팅 디바이스 또는 저장 디바이스로 쉽게 전달될 수 있다.
그 후, 수신자는 슈퍼파일을 열기 위해(446), 그의 클라이언트 디바이스(410b)를 사용한다. 슈퍼파일을 열기 위해, 사용자는 클라이언트 디바이스의 OS에 의해 제공되는 그래픽 사용자 인터페이스("GUI")에서와 같이, 슈퍼파일에 대응하는 아이콘을 더블 클릭할 수 있다. 슈퍼파일을 열기 위한 사용자 입력에 응답하여, 수신자의 클라이언트 디바이스(410b)는 선택된 파일이 슈퍼파일이라는 것을 결정하고, 파일을 열기 위해 접속할 슈퍼파일 서버를 결정한다. 예를 들어, 애플리케이션은 예를 들어 슈퍼파일의 헤더에 저장된 URI 또는 IP 주소를 사용하여, 슈퍼파일 서버에 접속하기 위해 슈퍼파일 그 자체로부터 정보를 추출할 수 있다. 그 후, 애플리케이션은 슈퍼파일 콘텐츠 페이로드에 액세스하기 위해, 하나 이상의 네트워크를 통해 슈퍼파일 서버(420)에 하나 이상의 메시지를 송신할 수 있다.
클라이언트 디바이스(410b)에 의해 전송된 메시지(들)는 사용자 크리덴셜 정보, 예를 들어 사용자에 대한 신원 정보 또는 사용자의 신원을 확립하는 데 사용될 수 있는 정보를 포함할 수 있다. 메시지(들)는 또한, 클라이언트 디바이스(410b)가 열려고 시도하는 슈퍼파일을 식별하기 위해 사용될 수 있는, 슈퍼파일 식별자, 체크섬 또는 해시 값 등과 같은 슈퍼파일에 대한 정보를 포함할 수 있다. 사용자 크리덴셜 정보가 제공되지 않는 경우, 슈퍼파일 서버(420)는 이를 요청할 수 있다.
클라이언트 디바이스(410b)로부터 파일을 열기 위한(446) 요청을 수신하는 것에 응답하여, 슈퍼파일 서버(420)는 수신자가 슈퍼파일에 액세스하기 위한 권한을 갖는지를 결정하고, 그러한 경우 그에게 어느 액세스 레벨이 할당되는지를 결정한다. 슈퍼파일 서버(420)는 또한, 수신된 체크섬 또는 해시 값이 슈퍼파일에 대한 대응하는 블록체인 레코드에 저장된 체크섬/해시 값과 일치하는지를 결정하기 위해 슈퍼파일 그 자체에 대한 검사를 수행할 수 있다. 덧붙여, 슈퍼파일 서버(420)는, 수신자가 항목(444)에서 생성자로부터 파일을 수신한 이후 슈퍼파일 콘텐츠 페이로드가 업데이트되었는지를 결정할 수 있다. 예를 들어, 슈퍼파일 서버(420)는 클라이언트 디바이스(410b)로부터 수신된 것과 일치하는 체크섬/해시 값을 갖는 레코드를 식별하기 위해, 슈퍼파일에 대응하는 블록체인을 검색할 수 있다.
수신된 체크섬/해시 값이 블록체인에서의 최신 버전의 슈퍼파일과 일치하면, 슈퍼파일 서버(420)는 클라이언트 디바이스(410b)가 최신 버전의 슈퍼파일을 가지고 있는 것으로 결정한다. 하지만, 그것이 이전 버전의 슈퍼파일에 대한 블록체인 레코드와 일치하는 경우, 이는 항목(470, 472)에 관련하여 아래에서 더욱 자세히 설명되는 클라이언트 디바이스(410b)에서의 슈퍼파일을 업데이트할 수 있다. 체크섬 또는 해시 값이 블록체인에서의 임의의 블록과 일치하지 않는 경우, 슈퍼파일 서버(420)는 오류 메시지를 전송하거나, 또는 이는 슈퍼파일을 업데이트할 수 있다.
슈퍼파일 서버(420)가 수신자가 슈퍼파일의 콘텐츠 페이로드에 액세스하기 위한 권한을 갖는 것으로 결정하는 경우, 이는 콘텐츠 페이로드에 액세스(458)하는 데 필요한 정보를 전송할 수 있다. 이러한 정보는 하나 이상의 암호 키, 콘텐츠 페이로드를 압축하는 데 사용되는 압축 알고리즘의 식별 등일 수 있다. 하지만, 일부 예에서 콘텐츠 페이로드는 암호화 또는 압축되지 않을 수 있으며, 이 경우 슈퍼파일 서버(420)는 어떠한 암호 해독 또는 압축 해제도 필요하지 않는다는 것을 나타내는 응답을 할 수 있다. 또한, 일부 예에서, 슈퍼파일 그 자체가 콘텐츠 페이로드가 암호화되는지 또는 압축되는지를 나타낼 수 있다. 슈퍼파일이 콘텐츠 페이로드가 암호화되지 않고 압축되지 않는다고 나타내는 경우, 슈퍼파일 서버(420)는 항목(448)에서 액세스 정보를 수신하지 못할 수 있다. 그 대신에, 클라이언트 디바이스(410b)는 슈퍼파일 서버(420)와 통신을 확립하고, 슈퍼파일이 열려 있는 동안 통신을 유지할 수 있다. 클라이언트 디바이스(410b)가 액세스 정보를 수신하면, 이는 콘텐츠 페이로드에 액세스할 수 있다. 하지만, 이 예에서, 클라이언트 디바이스(410b)가 슈퍼파일 콘텐츠를 암호 해독하는 동안, 클라이언트 디바이스(410b)는 사용자로의 제시를 가능하게 하기 위해, 콘텐츠를 휘발성 시스템 메모리로 암호 해독한다; 클라이언트 디바이스(410b)는 콘텐츠를 비휘발성 저장소로 암호 해독하지 않는다. 따라서, 암호 해독된 클라이언트를 통한 어떠한 별도의 파일도 생성되지 않는다. 이는 슈퍼파일 서버(420)에 먼저 접속하지 않고, 콘텐츠에 대한 액세스를 방지하는 데 도움이 될 수 있다.
클라이언트 디바이스(410b)가 콘텐츠 페이로드에 액세스하는 동안, 클라이언트 디바이스(410b)는 슈퍼파일 서버(420)에 슈퍼파일의 그의 사용에 대한 정보를 보고할 수 있다(450). 사용 정보는 주기적으로, 예를 들어 매분마다 또는 슈퍼파일이 열려 있는 동안 발생하는 이벤트, 예를 들어 새로운 페이지로의 스크롤링, 영화/오디오를 재생/일시 중지/되감기 등을 하는 것, 사진을 확대하는 것 등에 응답하여 보고될 수 있다. 사용 정보는 콘텐츠 페이로드와 관련하여 취해진 행동(예를 들어, 위에서 설명한 것)의 식별, 콘텐츠 페이로드가 얼마나 오래 열릴지, 클라이언트 디바이스(410b)가 얼마나 오래 활성인지 또는 유휴 상태인지, 콘텐츠 페이로드가 언제 사용자에게 제시된 GUI의 전경 또는 배경에 있는지, 콘텐츠가 언제 최소화되었는지 등을 포함할 수 있다. 이는 또한, 제시된 콘텐츠의 스크린샷을 캡처하려고 시도하는 것, 콘텐츠 페이로드의 수정 시도, 별도의 파일로 콘텐츠 페이로드의 내보내기 시도 등과 같은 잠재적인 허가되지 않은 행동을 검출할 수 있다. 이러한 사용 정보는 슈퍼파일 서버(420)에 보고될 수 있으며, 슈퍼파일과 연관된 통계를 유지할 수 있다. 이러한 정보는 콘텐츠와의 참여 레벨을 결정하고, 상이한 사용자의 관심사를 결정하고, 콘텐츠와 관련된 광고 또는 다른 수익 창출 정보를 결정하는 등을 위해 사용될 수 있다. 이러한 정보는 슈퍼파일의 생성자 또는 소유자에 의해 액세스될 수 있으며, 슈퍼파일 서버(420)에 요청을 발행하거나 또는 슈퍼파일 서버(420)에 의해 유지되는 계정에 액세스함으로써 획득될 수 있다.
어떤 때에는, 수신자는 클라이언트 디바이스 3(410c)의 사용자("제2" 수신자)와 같은 다른 사용자에게 슈퍼파일을 추가로 배포할 수 있다. 항목(444)와 관련하여, 수신자는 임의의 적합한 메커니즘을 사용하여 임의의 다른 사용자에게 슈퍼파일을 배포할 수 있다. 그 후, 제2 수신자가 콘텐츠 페이로드에 액세스하도록 허가된 경우, 제2 수신자는 슈퍼파일을 열려고 시도할 수 있으며, 이는 슈퍼파일 서버(420)에 하나 이상의 메시지를 전송하고(462) 액세스 정보를 수신하는(464) 유사한 프로세스를 시작한다. 그 후, 제2 수신자의 클라이언트 디바이스(410c)는 또한, 슈퍼파일이 열려 있는 동안 슈퍼파일 서버(420)와의 통신을 유지하고, 항목(450)에 관련하여 위에서 논의된 바와 같이 사용 정보를 슈퍼파일 서버(420)에 보고할 수 있다(466).
어떤 때에는, 슈퍼파일의 생성자 또는 소유자 또는 다른 편집자(이 예에서는 생성자로 지칭됨)는 슈퍼파일의 콘텐츠 페이로드를 수정할 수 있다. 그것이 발생할 때, 클라이언트 디바이스(410a)는 슈퍼파일 서버(420)에 수정을 보고한다. 생성자가 슈퍼파일을 수정할 때 수정이 실시간으로 보고될 수 있지만, 일부 예에서, 수정은 또한, 사용자가 슈퍼파일에 변경을 저장하거나 슈퍼파일을 닫을 때만 보고될 수 있다. 수정은 슈퍼파일에 대한 임의의 변경일 수 있으며, 이는 콘텐츠 페이로드, 헤더 부분 또는 슈퍼파일의 다른 양상일 수 있다. 이러한 수정은 소유권 또는 권한 레벨의 변경, 콘텐츠 페이로드의 변경 등을 포함할 수 있다.
수정이 슈퍼파일 서버(420)에 보고될 때(466), 슈퍼파일 서버(420)는 슈퍼파일과 연관된 블록체인에 새로운 블록을 추가하고, 블록체인 네트워크(430)에 이를 저장한다. 따라서, 그것이 시간에 걸쳐 수정될 때, 블록체인은 슈퍼파일의 영구적인 불변의 레코드를 유지한다.
블록체인을 업데이트하는 것에 부가하여, 슈퍼파일 서버(420)는 수정이 이루어졌을 때 슈퍼파일이 열려 있는 임의의 다른 클라이언트 디바이스를 식별한다. 이 예에서, 슈퍼파일 서버(420)는 슈퍼파일 서버(410b-c)와 유지되는 연결을 기초로, 슈퍼파일의 열린 사본으로 두 개의 다른 클라이언트 디바이스(410b-c)를 식별한다. 클라이언트 디바이스(410b-c)를 식별한 이후에, 슈퍼파일 서버(420)는 클라이언트 디바이스(410b-c)의 각각에 슈퍼파일 업데이트를 제공하며, 여기서 업데이트는 슈퍼파일에 적용되고 저장된다. 덧붙여, (수정된 경우) 슈퍼파일의 제시된 콘텐츠는 콘텐츠를 보는 사용자를 위해 실시간으로 업데이트된다. 따라서, 그는 생성자가 파일을 수정할 때, 파일 콘텐츠가 실시간 또는 거의 실시간으로 변하는 것을 볼 수 있다.
나중에, 생성자는 슈퍼파일 콘텐츠 페이로드에 대한 파일 액세스 권한(480)을 변경한다. 이들 변경은 위에서 논의된 파일에 대한 수정과 유사하게 슈퍼파일 서버(420)에 보고된다(466).
변경된 파일 액세스 권한을 수신하는 것에 응답하여, 슈퍼파일 서버(420)는 클라이언트 디바이스(410b-c)가 이제 슈퍼파일의 콘텐츠에 액세스하기 위한 권한이 부족한 것으로 결정하고, 따라서 슈퍼파일 서버(420)는 클라이언트 디바이스(410b-c)에 하나 이상의 메시지(482, 484)를 송신하며, 그로 하여금 슈퍼파일의 콘텐츠를 제시하는 것을 즉시 중단하게 하고, 아직 폐기되지 않은 경우, 각각의 클라이언트 디바이스(410b-c)에 의해 이전에 수신된 임의의 액세스 정보 예를 들어, 암호 키를 폐기한다. 허가되지 않은 액세스로부터 콘텐츠를 추가로 보호하기 위해, 클라이언트 디바이스(410b-c)는 또한, 그것이 클라이언트의 디바이스로부터 완전히 제거되었음을(purged) 보장하기 위해 암호 해독된 콘텐츠를 포함하는 메모리를 덮어쓸 수 있다. 따라서, 생성자는 슈퍼파일의 사본을 갖는 누군가에게 액세스를 실시간으로 취소(또는 부여)할 수 있다.
이 예시적인 시퀀스는 특정 기능을 예시하기 위해, 단일 슈퍼파일 서버(420) 및 세 개의 클라이언트 디바이스(410a-c)를 갖는 상대적으로 작은 규모의 시스템만을 이용한다는 것이 인식되어야 한다. 하지만, 상당히 더 많은 구성요소, 예를 들어 수천, 수백만 개 또는 그 이상의 클라이언트 디바이스와 상호 작용하는 수십, 수백 또는 수천 개 이상의 슈퍼파일 서버를 갖는 시스템 구상되고, 위에서 논의된 것과 유사한 기능을 상당히 더 큰 규모로 제공할 수 있다.
이제 도 5를 참조하면, 도 5는 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템의 일부로서 새로운 슈퍼파일을 생성하기 위한 예시적인 방법(500)을 도시한다. 이 예에서 방법(500)은 방법의 상이한 양상을 수행하는 두 개의 상이한 컴퓨팅 시스템을 수반한다. 그리고 이들 양상이 상호-관련될 수 있지만, 각각의 컴퓨팅 시스템은, 다른 컴퓨팅 디바이스로부터 입력을 수신하는 것 또는 다른 컴퓨팅 디바이스로 정보를 전송하는 것을 수반할 수 있는 그 자신의 별개의 방법을 수행한다.
블록(512)에서, 클라이언트 디바이스(510)의 사용자는 임의의 적합한 타입의 파일 콘텐츠, 예를 들어 문서, 오디오, 비디오, 소스 코드 등을 생성한다. 사용자는 워드 프로세싱 프로그램, 소스 코드 편집기, 비디오 카메라 등과 같은 임의의 적합한 저작 또는 캡처 도구를 사용하여 파일 콘텐츠를 생성할 수 있다. 사용자는 이러한 콘텐츠를, 임의의 적합한 파일 포맷에 따라 임의의 적합한 파일에 저장할 수 있다.
블록(514)에서, 사용자는 콘텐츠를 슈퍼파일로 저장하기로 선택한다. 이는 콘텐츠가 하나의 파일 포맷에 따라 기존의 파일에 저장된 후에 행해질 수 있거나, 또는 사용자가 초기에, 콘텐츠를 슈퍼파일 내의 콘텐츠로 저장할 수 있다. 이렇게 하기 위해, 사용자는 애플리케이션과 상호작용하고, 새로운 슈퍼파일에 콘텐츠(예를 들어, 휘발성 메모리에 저장된 콘텐츠 또는 비휘발성 메모리에 저장된 파일에 저장된 콘텐츠)를 저장하거나 내보내기 위한 옵션을 선택할 수 있다. 그 후, 애플리케이션은 적합한 슈퍼파일 구조에 따라 슈퍼파일을 생성하고, 슈퍼파일의 콘텐츠 페이로드 내에 콘텐츠를 저장할 수 있다. 이 프로세스 동안, 애플리케이션은 사용자에게, 액세스 제어 정보, 하나 이상의 암호화 옵션의 선택, 하나 이상의 압축 옵션의 선택, 슈퍼파일 서버 제공자의 선택 등과 같은 특정 정보를 공급하도록 프롬프트(prompt)할 수 있다. 공급된 정보를 기초로, 애플리케이션은 새로운 슈퍼파일의 헤더 부분을 생성하거나 또는 보충할 수 있다. 그 후, 애플리케이션은 슈퍼파일의 콘텐츠를 하드 드라이브 또는 클라우드 저장소와 같은 비휘발성 메모리에 저장할 수 있다.
슈퍼파일을 생성하는 동안, 클라이언트 디바이스(510)는 슈퍼파일 서버(520), 예를 들어 사용자에 의해 선택된 슈퍼파일 서버 또는 애플리케이션에 의해 자동으로 선택된 것에 접속하고, 새로운 슈퍼파일이 생성되었다는 표시를 제공한다. 덧붙여, 클라이언트 디바이스(510)는 헤더 정보의 일부 또는 전부 또는 콘텐츠 페이로드의 일부 또는 전부를 포함하는 슈퍼파일에 대한 정보를 제공한다. 일부 구현에서, 슈퍼파일 서버(520)는 클라이언트 디바이스(510)에 제공되는 슈퍼파일에 대한 고유한 식별자를 생성할 수 있지만, 일부 예에서, 클라이언트 디바이스(510)는 슈퍼파일에 대한 그 자신의 고유한 식별자를 생성할 수 있다.
고유한 식별자를 획득하는 것에 부가하여, 슈퍼파일이 암호화된 콘텐츠를 포함하는 경우, 클라이언트 디바이스(514)는 콘텐츠를 암호화하기 위해 하나 이상의 암호 키를 생성하거나, 또는 이는 슈퍼파일 서버(520)로부터 이러한 키(또는 키들)를 요청할 수 있다. 그 후, 클라이언트 디바이스(510)는 암호 키를 사용하여 슈퍼파일의 콘텐츠를 암호화한다.
블록(522)에서, 슈퍼파일 서버(520)는 슈퍼파일에 대응하는 데이터 저장소에서 레코드를 생성함으로써 슈퍼파일을 등록한다. 레코드는 슈퍼파일 식별자, 슈퍼파일의 소유자, 슈퍼파일에 대한 체크섬 또는 해시 값 등과 같은 슈퍼파일에 대한 정보를 포함할 수 있다. 이는 또한, 슈퍼파일의 콘텐츠 페이로드의 일부 또는 전부와, 암호 정보 예를 들어, 대칭 암호 키, 비대칭 암호 키 쌍 등, 또는 압축 정보를 포함할 수 있다. 데이터 저장소에 레코드를 생성하는 것에 부가하여, 슈퍼파일 서버(520)는 또한, 슈퍼파일이 성공적으로 생성되었다는 것을 나타내는 확인을 생성하고, 클라이언트 디바이스(510)에 제공할 수 있다.
블록(524)에서, 슈퍼파일 서버(520)는 블록체인 네트워크에 블록체인을 추가한다. 새로운 블록체인은 새로운 슈퍼파일과 연관되고, 블록은 새로운 슈퍼파일을 기초로 블록체인에 생성된다. 블록은 블록(522)에 관련하여 위에서 논의된 정보와 유사한 정보를 포함할 수 있다. 또한, 이는 헤더 부분 또는 콘텐츠 페이로드와 같이, 슈퍼파일의 콘텐츠의 일부 또는 전부를 포함할 수 있다. 콘텐츠 페이로드를 포함함으로써, 슈퍼파일 서버(520)는 슈퍼파일을 여는 다른 컴퓨팅 디바이스에 콘텐츠 페이로드를 제공할 수 있고, 가령 현재 콘텐츠로 슈퍼파일의 사본을 업데이트하거나 또는 슈퍼파일의 손상된 사본을 수정할 수 있다. 또한, 상이한 구현에 따라, 임의의 적합한 정보가 블록체인에서의 블록에 저장될 수 있다.
슈퍼파일이 생성되고 슈퍼파일 서버(520)에 등록되면, 생성자는 슈퍼파일을 임의의 다른 사용자에게 자유롭게 배포할 수 있으며, 그는 그 후 아래에서 더욱 상세히 논의되는 바와 같이 슈퍼파일 콘텐츠에 액세스할 수 있다.
모든 슈퍼파일 시스템이 블록체인 기술을 사용할 수 있는 것은 아니라는 것이 인식되어야 한다. 따라서, 일부 예들에서, 블록(524)은 생략될 수 있다.
이제 도 6을 참조하면, 도 6은 슈퍼파일을 액세스하고, 수정하고, 및 업데이트하기 위한 예시적인 방법(600)을 도시한다. 이 예에서 방법(600)은 방법의 상이한 양상을 수행하는 세 개의 상이한 컴퓨팅 시스템을 수반한다. 그리고 이들 양상이 상호-관련될 수 있지만, 각각의 컴퓨팅 시스템은, 다른 컴퓨팅 디바이스로부터 입력을 수신하는 것 또는 다른 컴퓨팅 디바이스로 정보를 전송하는 것을 수반할 수 있는 그 자신의 별개의 방법을 수행한다.
블록(612)에서, 클라이언트 디바이스(610)는 슈퍼파일의 사본을 획득한다. 예를 들어, 이는 이메일을 통해 또는 웹사이트로부터 이를 다운로드함으로써 슈퍼파일을 수신할 수 있다. 일부 예에서, 사용자는 휴대용 저장 디바이스를 사용하고, 이를 클라이언트 디바이스(610)에 연결하여 슈퍼파일을 획득할 수 있다.
블록(614)에서, 클라이언트 디바이스(610)는 슈퍼파일을 연다. 슈퍼파일을 여는 것은 슈퍼파일의 콘텐츠에 액세스하는 것을 수반할 수 있지만, 이는 슈퍼파일의 콘텐츠 페이로드 내에 저장된 암호화되거나 또는 압축된 데이터에 액세스할 수 있는 것을 수반하는 것은 아닐 수 있다. 사용자는 일반적으로 가령, 도 4에서의 항목(446, 462)과 관련하여 위에서 논의된 바와 같이 슈퍼파일을 열기 위해 클라이언트 디바이스(610)를 이용할 수 있다. 또한, 슈퍼파일을 여는 것은 항목(446, 462)에 관련하여 위에서 논의된 것과 같이, 슈퍼파일 내에 저장된 콘텐츠에 대한 액세스를 획득하기 위해 슈퍼파일 서버(630)에 정보를 송신하는 것을 수반할 수 있다.
블록(632)에서, 슈퍼파일 서버(630)는 클라이언트 디바이스(610)로부터, 클라이언트 디바이스(610)의 사용자의 신원을 나타낼 수 있는 사용자 크리덴셜 정보를 수신한다. 사용자 크리덴셜 정보는 사용자 계정 정보(예를 들어, 사용자 이름 및 암호), 신뢰된 엔터티에서 확립된 사용자 신원과 연관된 인증 가능한 토큰 등을 포함할 수 있다. 일부 예에서, 사용자 크리덴셜 정보가 수신되지 않은 경우, 슈퍼파일 서버(630)는 사용자 크리덴셜 정보에 대한 요청으로 클라이언트 디바이스(610)에 응답할 수 있다. 일부 예에서, 슈퍼파일 서버(630)는, 그것이 사용자 크리덴셜 정보를 수신하지 않은 경우, 사용자를 익명 사용자로 다룰 수 있다.
블록(634)에서, 슈퍼파일 서버(634)는 클라이언트 디바이스(610)의 사용자에 대한 슈퍼파일에 대한 액세스 권한을 결정한다. 액세스 권한은 개별적인 사용자, 미리 정의된 사용자의 그룹 등에 대해 확립될 수 있다. 따라서, 슈퍼파일 서버(630)는 사용자 크리덴셜 정보를 기초로, 사용자가 슈퍼파일에 대해 소유권을 보고, 편집하고, 전달하는 등을 위한 액세스와 같은 특정 액세스 권한을 갖는 지를 결정할 수 있다. 이러한 액세스 권한은 도 5의 블록(522)에 관련하여 위에서 논의된 데이터 저장소와 같은, 슈퍼파일 서버(630)에 의해 액세스 가능한 데이터 저장소 또는 슈퍼파일에 대한 블록체인 내에서 유지될 수 있다.
상이한 사용자에 대한 액세스 권한은 각각 특정 타입의 허용된 및 금지된 행동을 갖는 권한 그룹을 정의하고 그룹 중 하나에 사용자를 할당하거나, 또는 사용자 별로 맞춤화된(custom-tailored) 허용된 및 금지된 행동을 확립함으로써 적용될 수 있다. 소유자, 편집자, 뷰어, 제한된-시간 뷰어 등을 위해 그룹이 확립될 수 있다. 허용되거나 금지될 수 있는 행동은 소유권을 전달하는 것, 콘텐츠를 추가하는 것, 기존의 콘텐츠를 수정하는 것, 기존의 콘텐츠를 삭제하는 것, 하나 이상의 사용자 또는 그룹에 대한 권한 레벨을 변경하거나 또는 액세스를 취소하는 것, 암호화 또는 압축 설정을 변경하는 것, 모든 콘텐츠를 보는 것, 콘텐츠의 특정 부분을 보는 것, 소유권 정보를 보는 것, 생성자 정보를 보는 것 등을 포함할 수 있다.
요청 사용자에 대한 액세스 권한을 결정한 이후에, 슈퍼파일 서버(630)는 클라이언트 디바이스(610)에 응답한다. 응답에 의존하여, 클라이언트 디바이스(610)는 슈퍼파일의 전체 콘텐츠 페이로드(또는 페이로드들), 콘텐츠 페이로드의 일부, 콘텐츠 페이로드의 전체보다 더 적은 일부 등에 액세스할 수 있다. 이 예에서, 슈퍼파일은 암호화된 콘텐츠 페이로드를 포함하고 슈퍼파일 서버(630)는 요청 사용자가 슈퍼파일의 콘텐츠에 액세스하기 위한 권한을 갖는다는 것을 결정한다. 그 결정을 하는 것에 응답하여, 슈퍼파일 서버(630)는 슈퍼파일 서버(630)에 의해 액세스 가능한 데이터 저장소에 저장된 슈퍼파일에 대응하는 레코드로부터 암호 정보를 획득하고, 콘텐츠 페이로드를 암호 해독하는 데 필요한 암호 정보를 클라이언트 디바이스(610)에 제공한다. 콘텐츠 페이로드가 압축된 예에서, 슈퍼파일 서버(630)는 또한, 콘텐츠 페이로드에 적용되는 압축의 타입을 나타내는 정보를 제공할 수 있다.
블록(616)에서, 클라이언트 디바이스(610)는 암호 정보를 수신하고, 슈퍼파일 내의 콘텐츠를 암호 해독한다. 이 예에서 슈퍼파일은 하나의 콘텐츠 페이로드만을 포함하지만, 슈퍼파일이 다수의 콘텐츠 페이로드를 포함하는 경우, 클라이언트 디바이스(610)는 콘텐츠 페이로드의 일부 또는 전부를 암호 해독하는 데 필요한 암호 정보를 수신할 수 있으며, 이러한 암호 정보를 수신한 이후에 암호 정보가 수신된 콘텐츠 페이로드를 암호 해독한다. 유사하게, 콘텐츠 페이로드가 압축되는 경우, 클라이언트 디바이스(610)는 또한 암호 해독될 수 있는 임의의 콘텐츠 페이로드를 압축 해제한다. 압축은 암호화 이전 또는 이후에 적용될 수 있으며, 따라서 압축 및 암호 해독을 위한 동작의 순서는 슈퍼파일 서버로부터 수신되거나 또는 슈퍼파일의 헤더 부분에서 획득될 수 있다는 것이 인식되어야 한다. 이 예에서, 클라이언트 디바이스는 또한, 콘텐츠가 암호 해독되면 암호 해독 키를 즉시 삭제한다; 하지만, 다른 예는 파일이 열려 있는 동안 암호 해독 키의 사본을 유지할 수 있다.
블록(618)에서, 클라이언트 디바이스(610)는 사용자에게 암호 해독된 슈퍼파일 콘텐츠를 제시한다. 슈퍼파일 내의 콘텐츠 타입에 의존하여, 오디오를 재생하는 것, 비디오를 디스플레이하는 것, 문서를 제시하는 것 등과 같이, 제시의 방식이 다를 수 있다.
블록(620)에서, 클라이언트 디바이스(610)는 슈퍼파일 서버(630)와의 통신 연결을 유지하고, 사용자에 의한 콘텐츠의 사용에 기초하여 슈퍼파일 서버(630)에 사용 정보를 송신한다. 예를 들어, 클라이언트 디바이스(610)는 콘텐츠의 어느 부분이 사용자에게 제시되는지, 예를 들어 사용자에 의해 검토된 문서의 페이지, 사용자에 의해 재생된 음악 앨범에서의 트랙, 사용자에 의해 재생된 영화 또는 텔레비전 쇼의 부분, 사용자가 콘텐츠를 통해 되감기, 일시 중지, 빨리 감기를 하였는지, 사용자가 슈퍼파일을 얼마나 오래 열었는지 등을 보고할 수 있다. 문서를 편집하기 위한 시도, 권한을 변경하기 위한 시도, 소유권 정보를 보기 위한 시도 등을 포함하는, 시도된 금지 행동과 같은 다른 정보가 또한 제공될 수 있다.
사용 정보가 클라이언트 디바이스(610)에서 수집되고 클라이언트 디바이스(610)가 파일을 닫을 때에만 전송될 수 있지만, 일부 예에서 슈퍼파일이 열려있는 동안 사용 정보가 시간에 걸쳐 전송될 수 있다는 것이 인식되어야 한다. 사용 정보를 보고하기 위한 또 다른 메커니즘이 이용될 수 있다. 그리고 이 예에서, 사용 정보는 슈퍼파일을 열기 위해 초기에 접속된 동일한 슈퍼파일 서버(630)로 송신되는 한편, 사용 정보는 임의의 적합한 컴퓨팅 디바이스로 송신될 수 있다. 예를 들어, 슈퍼파일의 소유자는 슈퍼파일이 생성될 때 사용 정보가 전송되어야 하는 곳을 나타내는 정보를 포함할 수 있다.
슈퍼파일이 열려 있는 동안 클라이언트 디바이스(610)와 슈퍼파일 서버(630) 사이의 통신이 중단되는 경우, 슈퍼파일 콘텐츠에 대한 액세스는 즉시 또는 일정 시간 이후에 중단될 수 있다. 예를 들어, 슈퍼파일 콘텐츠의 뷰어는 그의 인터넷 연결을 잃을 수 있으며, 이때 클라이언트 디바이스는 슈퍼파일 콘텐츠를 제시하는 것을 중단한다. 또한 슈퍼파일 서버(630)와의 통신이 중단되는 동안, 슈퍼파일 콘텐츠에 대한 액세스를 방지하기 위해, 이는 임의의 암호 키를 폐기할 수 있다. 연결이 재설정되면, 클라이언트 디바이스(610)는 콘텐츠를 다시 제시할 수 있으며, 이는 슈퍼파일 서버(630)로부터 암호 정보를 다시 요청하는 것을 포함할 수 있다. 액세스를 취소하는 것은 특정 사용자의 액세스 레벨에 의존할 수 있다. 예를 들어, 슈퍼파일의 소유자는 슈퍼파일 콘텐츠에 대한 액세스 권한을 절대 잃지 않을 수 있는 한편, 생성자 또는 편집자는 그가 그의 작업을 잠재적으로 잃지 않고 콘텐츠를 계속 수정하는 것을 허용하기 위해 상당한 타임아웃 기간, 예를 들어, 1시간을 가질 수 있다. 다른 사용자는, 더 짧은 타임아웃 기간을 가질 수 있다. 예를 들어, 콘텐츠의 익명이 아닌 뷰어는 잠재적으로 산발적인 인터넷 서버를 원활하게 하기 위해, 짧은 타임아웃 기간, 예를 들어 5-10분을 가질 수 있다. 콘텐츠의 익명 뷰어는 중단 시 액세스를 즉시 잃을 수 있다. 하지만, 상이한 예에 따라 임의의 적합한 방식이 사용될 수 있다.
블록(636)에서, 슈퍼파일 서버(630)는 사용 정보를 수신하고, 이를 데이터 저장소에 저장하며, 사용 정보를 슈퍼파일과 연관시킨다.
블록(662)에서, 제2 클라이언트 디바이스는 클라이언트 디바이스(610)에 의해 액세스되는 동일한 슈퍼파일의 사본에 저장된 콘텐츠를 변경한다. 예를 들어, 슈퍼파일 콘텐츠의 소유자는, 클라이언트 디바이스(610)가 슈퍼파일의 사본을 열고 있는 동안, 슈퍼파일의 콘텐츠를 변경하기 위해 클라이언트 디바이스(660)를 사용할 수 있다. 클라이언트 디바이스(660)에 의해 이루어진 변경은 임의의 타입일 수 있고, 콘텐츠 페이로드에 대한 것, 헤더 부분에 대한 것, 새로운 콘텐츠 페이로드를 추가하기 위한 것, 기존의 콘텐츠 페이로드를 제거하기 위한 것 등일 수 있다.
변경을 한 이후에, 클라이언트 디바이스(660)는 슈퍼파일 서버(630)에 변경을 제공한다. 변경은 슈퍼파일 콘텐츠의 특정 부분에 대한 업데이트로, 또는 슈퍼파일 서버(630)에 전체 업데이트된 슈퍼파일을 전송함으로써 전송될 수 있다. 또한, 변경은, 실시간으로, 변경이 이루어질 때, 클라이언트 디바이스(660)의 사용자가 "파일 저장" 옵션을 선택할 때, 또는 클라이언트 디바이스(660)의 사용자가 슈퍼파일을 닫을 때를 포함하는 임의의 적합한 시간에 전송될 수 있다.
블록(638)에서, 슈퍼파일 서버(630)는 클라이언트 디바이스(660)로부터 변경을 수신한다. 이 예에서, 슈퍼파일 서버(630)는 클라이언트 디바이스(610)와 통신하는 동일한 슈퍼파일 서버(630)이다; 하지만, 일부 예에서 클라이언트 디바이스(660)는 클라이언트 디바이스(610)와 상이한 슈퍼파일 서버(630)와 통신할 수 있다.
변경된 콘텐츠를 수신한 이후에, 슈퍼파일 서버(630)는 클라이언트 디바이스(660)에 의해 이루어진 변경을 기초로 필요에 따라 슈퍼파일과 연관된 데이터 저장소에서의 하나 이상의 레코드를 업데이트한다. 그 후, 이는 블록(638)에 관련하여 아래에서 논의되는 바와 같이, 슈퍼파일에 대응하는 블록체인에 새로운 블록을 추가한다. 덧붙여, 슈퍼파일 서버(630)는 슈퍼파일이 변경되었다는 것을 클라이언트 디바이스(610)에 알린다. 이 예에서, 슈퍼파일 서버(630)는 변경된 콘텐츠를 클라이언트 디바이스(610)(및 슈퍼파일의 열린 사본을 갖는 임의의 다른 클라이언트 디바이스)에 푸시한다(pushes). 하지만, 일부 예에서, 슈퍼파일 서버(630)는 클라이언트 디바이스(610)에 변경된 콘텐츠를 통지하고, 클라이언트 디바이스(610)는 슈퍼파일 서버(630)에 변경된 콘텐츠에 대한 요청을 송신할 수 있다. 예를 들어, 클라이언트 디바이스(610)는 변경된 콘텐츠를 획득할 지의 여부를 사용자에게 물을 수 있다.
다수의 슈퍼파일 서버가 특정 슈퍼파일과 연관된 예에서, 이들 각각은 블록체인 또는 블록을 생성하고 이를 블록체인 네트워크에 추가하기 위해, 동일한 블록체인 네트워크에 액세스할 수 있다. 또한, 이는 슈퍼파일에 대한 정보를 획득하거나 또는 업데이트하기 위해 동일한 데이터 저장소에 대한 액세스를 각각 가질 수 있다. 또한, 슈퍼파일 서버의 그룹에서 하나의 슈퍼파일 서버가 슈퍼파일에 대한 업데이트를 수신할 때, 이는 변경이 수신되었다는 것을 나타내는 통지를 브로드캐스트(broadcast)할 수 있고, 다른 슈퍼파일 서버는 어느 클라이언트 디바이스가 현재 슈퍼파일의 사본을 열고 있는 지를 결정하고, 위에서 논의된 바와 같이 변경된 콘텐츠를 배포할 수 있다.
블록(640)에서, 슈퍼파일 서버(630)는 슈퍼파일에 대응하는 블록체인에 새로운 블록을 추가한다. 새로운 블록은 블록체인에서 이전 블록으로부터의 변경을 나타내는 정보를 포함하며, 일부 예에서, 변경된 슈퍼 파일의 사본은 새로운 블록에 저장될 수 있다.
블록(622)에서, 클라이언트 디바이스(610)는 그것이 슈퍼파일을 여는 동안 슈퍼파일 서버(630)로부터 변경된 콘텐츠를 수신한다. 위에서 논의된 같이, 변경된 콘텐츠는 슈퍼파일 서버(630)에 의해 푸시되었을 수 있거나, 이는 예를 들어, 사용자가 그가 변경된 콘텐츠를 수신하기를 원한다는 것을 나타내는 것에 응답하여, 클라이언트 디바이스(610)에 의해 요청될 수 있다.
블록(624)에서, 클라이언트 디바이스(610)는 일반적으로 블록(618)에 관련하여 위에서 설명된 바와 같이, 변경된 콘텐츠를 사용자에게 제시하고, 블록(620)으로 돌아감으로써 사용 정보를 계속 전송한다.
따라서, 이 예시적인 방법은 사용자가 슈퍼파일의 사본을 획득하기 위한 방식과, 사용자가 파일을 열어 놓는 동안 시스템이 어떻게 슈퍼파일의 사용자의 사본을 실시간으로 업데이트하는 지를 예시한다. 따라서, 사용자는 항상 최신 버전의 슈퍼파일을 볼 수 있으며, 슈퍼파일에서의 콘텐츠의 소유자는 슈퍼파일의 사본이 항상 현재 버전의 콘텐츠를 제시하는 것을 보장할 수 있다. 변경된 콘텐츠가 수신되기 전에 사용자가 슈퍼파일을 닫은 경우, 슈퍼파일이 열린 다음 시간에, 슈퍼파일 서버(630)는 사용자가 오래된 버전의 콘텐츠를 갖고 있다는 것을 검출하고, 그 시간에 변경된 콘텐츠를 제공한다는 것이 인식되어야 한다. 따라서, 슈퍼파일에 대한 변경이 이루어질 때, 사용자가 슈퍼파일을 열지 않았더라도, 파일이 열린 다음 시간에, 이는 일반적으로 블록(662, 636, 638, 622 및 624)과 관련하여 위에서 설명된 바와 같이 업데이트될 것이다.
이제 도 7을 참조하면, 도 7은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 방법(700)을 예시한다. 도 7에 도시된 예는 도 1에 도시된 예시적인 시스템(100)과 관련하여 논의될 것이지만, 본 개시에 따른 임의의 적합한 시스템이 이용될 수 있다.
블록(712)에서, 클라이언트 디바이스, 예를 들어 클라이언트 디바이스(120a)는 사용자가 슈퍼파일에 대응하는 아이콘을 더블 클릭하거나 애플리케이션 내에서 열기 위해 슈퍼파일을 선택하는 것과 같은 슈퍼파일을 열기 위한 요청을 수신한다.
블록(714 및 716)에서, 클라이언트 디바이스(120a)는 슈퍼파일에 대한 액세스 정보에 대한 요청을 슈퍼파일 서버(110)에 송신하고, 이에 응답하여 일반적으로 도 4의 항목(446, 362) 및/또는 도 6의 블록(614)에 대해 위에서 논의된 바와 같이 액세스 정보를 수신한다.
블록(718)에서, 클라이언트 디바이스(120a)는 수신된 액세스 정보를 사용하여 슈퍼파일 콘텐츠를 암호 해독한다. 콘텐츠에 적용되는 암호화 또는 (있는 경우) 압축에 의존하여, 블록(718)이 생략되거나 또는 그 대신에 콘텐츠를 압축 해제하는 것 또는 콘텐츠를 압축 해제하는 것 및 암호 해독하는 것 모두를 수반할 수 있다는 것이 인식되어야 한다.
블록(720)에서, 클라이언트 디바이스(120a)는 일반적으로 도 6에서의 블록(618)과 관련하여 위에서 설명된 바와 같이, 슈퍼파일 콘텐츠를 사용자에게 제시한다.
블록(722)에서, 클라이언트 디바이스(120a)는 일반적으로 도 4의 항목(470, 472) 또는 도 6의 블록(622)과 관련하여 위에서 설명된 같이 슈퍼파일 서버, 예를 들어 슈퍼파일 서버(110)로부터 수정된 슈퍼파일 콘텐츠를 수신하고, 기존의 슈퍼파일 콘텐츠를 수정된 슈퍼파일 콘텐츠로 대체한다.
블록(724)에서, 클라이언트 디바이스(120a)는 일반적으로 도 4 또는 도 6의 블록(624)과 관련하여 위에서 설명된 바와 같이 수정된 슈퍼파일 콘텐츠를 제시한다.
블록(726)에서, 클라이언트 디바이스(120a)는 일반적으로 도 4의 항목(482, 484)과 관련하여 위에서 설명된 바와 같이, 슈퍼파일 서버로부터 액세스 취소 표시(access revocation indication)를 수신한다.
블록(728)에서, 클라이언트 디바이스(120a)는 슈퍼파일 콘텐츠에 대한 액세스를 취소한다. 예를 들어, 클라이언트 디바이스(120a)는 블록(716)에서 획득된 임의의 것과 같은 임의의 암호 키를 폐기할 수 있다. 클라이언트 디바이스(120a)는 또한, 사용자에게 콘텐츠를 제시하기 위해 메모리에 저장된 콘텐츠의 임의의 암호 해독된 사본을 삭제할 수 있다. 일부 예에서, 클라이언트 디바이스(120a)는 또한, 예를 들어 하드 디스크와 같은 장기 저장소로부터 슈퍼파일의 사본을 삭제할 수 있다.
이 예시적인 방법의 블록은 특정 순서로 수행되었지만, 블록은 상이한 순서로 수행될 수 있고 일부 블록은 전혀 수행되지 않을 수 있다는 것이 인식되어야 한다. 예를 들어, 어떠한 수정된 슈퍼파일 콘텐츠도 수신되지 않는 경우, 블록(722 및 724)이 생략될 수 있다. 유사하게, 어떠한 액세스 취소 메시지도 수신되지 않는 경우, 블록(726 및 728)은 생략될 수 있다. 덧붙여, 슈퍼파일이 여러 번 수정되는 경우, 블록(722 및 724)이 반복될 수 있다.
이제 도 8을 참조하면, 도 8은 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 방법(800)을 도시한다. 도 7에 도시된 예는 도 1에 도시된 예시적인 시스템(100)과 관련하여 논의될 것이지만, 본 개시에 따른 임의의 적합한 시스템이 이용될 수 있다.
블록(812)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(440) 또는 도 5의 블록(514 및 522)과 관련하여 위에서 논의된 바와 같이, 클라이언트 디바이스, 예를 들어 클라이언트 디바이스(120a)로부터 새로운 슈퍼파일의 식별을 수신한다.
블록(814)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(442) 또는 도 5의 블록(524)과 관련하여 위에서 설명된 바와 같이 블록체인 네트워크, 예를 들어 블록체인 네트워크(330)에 새로운 블록체인을 추가한다.
블록(816)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(446, 462) 또는 도 6의 블록(614)과 관련하여 위에서 설명된 바와 같이, 클라이언트 디바이스로부터 슈퍼파일 콘텐츠에 액세스하기 위한 요청을 수신한다.
블록(818 및 820)에서, 슈퍼파일 서버(110)는 슈퍼파일에 대한 액세스 레벨을 결정하고, 일반적으로 도 4의 항목(448, 464) 또는 도 6의 블록(632, 634)과 관련하여 위에서 논의된 바와 같이 액세스 정보를 제공한다.
블록(822)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(450) 또는 도 6의 블록(636)과 관련하여 위에서 설명된 바와 같이 클라이언트 디바이스로부터 사용 정보를 수신한다.
블록(824)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(466) 또는 도 6의 블록(638)과 관련하여 위에서 설명된 바와 같이 클라이언트 디바이스로부터 슈퍼파일의 콘텐츠에 대한 수정을 수신한다.
블록(826)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(468) 또는 도 6의 블록(640)과 관련하여 위에서 설명된 바와 같이 슈퍼파일과 연관된 블록체인에 새로운 블록을 추가한다.
블록(828)에서, 슈퍼파일 서버(110)는 일반적으로 도 4의 항목(470, 472) 또는 도 6의 블록(622, 638)과 관련하여 위에서 설명된 바와 같이, 슈퍼파일의 열린 사본을 갖는 클라이언트 디바이스에 슈퍼파일에 대한 변경을 배포한다.
블록(830)에서, 슈퍼파일 서버(110)는 슈퍼파일에 대한 액세스 레벨에 대한 수정을 수신한다. 예를 들어, 슈퍼파일의 소유자는 상이한 그룹의 사용자 또는 개별적인 사용자에 대한 액세스 레벨을 수정할 수 있다. 슈퍼파일 서버(110)는 이들 변경을 수신하고, 대응하는 레코드를 데이터 저장소(112)로 업데이트하거나, 또는 이는 업데이트된 권한을 반영하기 위해 슈퍼파일에 대응하는 블록체인에 새로운 블록을 추가할 수 있다.
블록(832)에서, 슈퍼파일 서버(110)는 슈퍼파일의 열린 사본을 갖는 클라이언트에게 명령어를 송신한다. 예를 들어, 액세스 레벨에 대한 수정이 한 명 이상의 사용자에 대한 액세스를 취소하는 경우, 슈퍼파일 서버(110)는 도 8의 항목(482, 484) 또는 도 7의 블록(726, 728)과 관련하여 위에서 설명된 바와 같이, 식별된 사용자 중 한 명이 슈퍼파일에 대한 액세스를 취소하도록 열린 슈퍼파일을 갖는 임의의 클라이언트 디바이스에 명령어를 송신한다. 액세스 레벨에 대한 수정이 액세스 레벨을 예를 들어, 편집자로부터 뷰어로 감소시키는 경우, 슈퍼파일 서버(110)는 대응하는 클라이언트로 하여금 사용자가 슈퍼파일 콘텐츠에 대한 추가적인 수정을 하거나 또는 저장하는 것을 방지하게 할 수 있는 대응하는 명령어를 송신할 수 있다. 덧붙여, 클라이언트 디바이스는 액세스 레벨에서의 변경의 통지를 사용자에게 제시할 수 있다. 유사하게, 액세스 레벨에 대한 수정이 사용자의 액세스 레벨을 예를 들어, 뷰어로부터 편집자로 상승시키는 경우, 클라이언트 디바이스는 사용자에게 액세스 레벨에서의 변경에 대한 통지를 제시할 수 있고, 변경을 편집하고, 이를 슈퍼파일 콘텐츠에 저장하는 것을 허용하기 위해 대응하는 애플리케이션에서의 옵션을 가능하게 할 수 있다.
이 예시적인 방법의 블록은 특정 순서로 수행되었지만, 블록은 상이한 순서로 수행될 수 있고 일부 블록은 전혀 수행되지 않을 수 있다는 것이 인식되어야 한다. 예를 들어, 수정된 슈퍼파일 콘텐츠가 수신되지 않는 경우, 블록(824-828)은 생략될 수 있다. 유사하게, 임의의 액세스 레벨에 대한 어떠한 액세스 변경도 수신되지 않는 경우, 블록(830 및 832)은 생략될 수 있다. 덧붙여, 블록(822-832) 중 하나 이상은 다양한 클라이언트 디바이스에 의해 취해진 행동에 기초하여 반복될 수 있다.
이제 도 9를 참조하면, 도 9는 본 개시에 따른 신뢰되지 않은 시스템 상의 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 예시적인 시스템 또는 방법에 사용하기에 적합한 예시적인 컴퓨팅 디바이스(900)를 도시한다. 예시적인 컴퓨팅 디바이스(900)는 하나 이상의 통신 버스(902)를 사용하여 메모리(920) 및 컴퓨팅 디바이스(900)의 다른 구성요소와 통신하는 프로세서(910)를 포함한다. 프로세서(910)는 메모리(920)에 저장된 프로세서-실행 가능 명령어를 실행하여, 도 5-8에 관련하여 위에서 설명된 예시적인 방법(500-800)의 일부 또는 전부와 같은 상이한 예에 따라, 비디오 웨비나 회의(video webinar meeting) 동안 참가자 상호작용을 중재하기 위한 하나 이상의 방법을 수행하도록 구성된다. 이 예에서 컴퓨팅 디바이스(900)는, 또한 사용자 입력을 받아들이기 위해 키보드, 마우스, 터치스크린, 마이크 등과 같은 하나 이상의 사용자 입력 디바이스(950)를 포함한다. 컴퓨팅 디바이스(900)는 또한, 사용자에게 시각적 출력을 제공하기 위한 디스플레이(940)를 포함한다.
컴퓨팅 디바이스(900)는 또한, 통신 인터페이스(940)를 포함한다. 일부 예에서, 통신 인터페이스(930)는 근거리 통신망(local area network, "LAN"); 인터넷과 같은 광역 통신망(wide area network, "WAN"); 대도시권 네트워크(metropolitan area network, "MAN"); 점-대-점 또는 피어-대-피어 연결 등을 포함하는 하나 이상의 네트워크를 사용하는 통신을 가능하게 할 수 있다. 다른 디바이스와의 통신은 임의의 적합한 네트워킹 프로토콜을 사용하여 달성될 수 있다. 예를 들어, 하나의 적합한 네트워킹 프로토콜은 인터넷 프로토콜(Internet Protocol, "IP"), 전송 제어 프로토콜(Transmission Control Protocol, "TCP"), 사용자 데이터그램 프로토콜(User Datagram Protocol, "UDP"), 또는 TCP/IP 또는 UDP/IP와 같은 이들의 조합을 포함할 수 있다.
본원에서의 방법 및 시스템의 일부 예는 다양한 머신에서 실행되는 소프트웨어의 관점에서 설명되지만, 방법 및 시스템은 또한, 본 개시에 따른 다양한 방법을 실행하기 위해 구체적으로 필드-프로그래머블 게이트 어레이(field-programmable gate array, FPGA)와 같은 구체적으로 구성된 하드웨어로 구현될 수 있다. 예를 들어, 예는 디지털 전자 회로로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 일 예에서, 디바이스는 프로세서 또는 프로세서들을 포함할 수 있다. 프로세서는 프로세서에 연결된 랜덤 액세스 메모리(RAM)와 같은 컴퓨터 판독 가능 매체를 포함한다. 프로세서는 하나 이상의 컴퓨터 프로그램을 실행하는 것과 같이, 메모리에 저장된 컴퓨터-실행 가능 프로그램 명령어를 실행한다. 이러한 프로세서는 마이크로프로세서, 디지털 신호 프로세서(DSP), 애플리케이션-특정 집적회로(application-specific integrated circuit, ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 및 상태 머신을 포함할 수 있다. 이러한 프로세서는 PLC, 프로그래머블 인터럽트 컨트롤러(programmable interrupt controllers, PIC), 프로그래머블 로직 디바이스(programmable logic devices, PLD), 프로그래머블 읽기-전용 메모리(programmable read-only memories, PROM), 전기적 프로그래머블 읽기-전용 메모리(electronically programmable read-only memories, EPROM 또는 EEPROM) 또는 다른 유사한 디바이스를 더 포함할 수 있다.
이러한 프로세서는 매체, 예를 들어, 프로세서에 의해 실행될 때, 프로세서로 하여금, 프로세서에 의해 수행되거나 보조되는, 본 개시에 따른 방법을 수행하게 할 수 있는 프로세서-실행 가능 명령어를 저장할 수 있는, 하나 이상의 비일시적 컴퓨터-판독가능 매체를 포함할 수 있거나, 또는 이와 통신할 수 있다. 컴퓨터-판독가능 매체의 예는 웹 서버 내의 프로세서와 같은 프로세서에 컴퓨터 판독 가능 명령어를 제공할 수 있는 전자, 광학, 자기 또는 다른 저장 디바이스를 포함할 수 있지만, 이에 제한되지 않는다. 비일시적 컴퓨터-판독가능 매체의 다른 예는 컴퓨터 프로세서가 판독할 수 있는 플로피 디스크, CD-ROM, 자기 디스크, 메모리 칩, ROM, RAM, ASIC, 구성된 프로세서, 모든 광학 매체, 모든 자기 테이프 또는 다른 자기 매체 또는 임의의 다른 매체를 포함하지만 이에 제한되지 않는다. 설명된 프로세서 및 처리는 하나 이상의 구조로 이루어질 수 있으며, 하나 이상의 구조를 통해 분산될 수 있다. 프로세서는 본 개시에 따른 방법(또는 방법의 일부)을 수행하기 위한 코드를 포함할 수 있다.
일부 예에 대한 전술한 설명은 예시 및 설명의 목적으로만 제시되었으며, 본 개시를 개시된 정확한 형태로 제한하거나 철저하게 하려는 것으로 의도되지 않는다. 본 개시의 사상 및 범주를 벗어나지 않고, 통상의 기술자에게 다수의 수정 및 적응이 명백할 것이다.
본원에서 예 또는 구현에 대한 참조는 예와 관련하여 설명된 특정한 피처, 구조, 동작 또는 다른 특성이 본 개시의 적어도 하나의 구현에 포함될 수 있다는 것을 의미한다. 본 개시는 이와 같이 설명된 특정 예 또는 구현으로 제한되지 않는다. "하나의 예에서", "예에서", "하나의 구현에서" 또는 "구현에서"의 문구의 출현 또는 명세서에서의 다양한 위치에서 동일한 구문의 변형은 동일한 예 또는 구현을 반드시 지칭하는 것은 아니다. 하나의 예 또는 구현에 관련하여 본 명세서에 설명된 임의의 특정 피처, 구조, 동작 또는 다른 특성은 임의의 다른 예 또는 구현과 관련하여 설명된 다른 피처, 구조, 동작 또는 다른 특성과 결합될 수 있다.
본원에서 "또는"이라는 단어를 사용하는 것은 포괄적 및 배타적 OR 조건을 커버하기 위한 것으로 의도된다. 즉, A 또는 B 또는 C는 다음의 대안적인 조합 중 임의의 것 또는 전부를, 특정 사용: A 단독; B 단독; C 단독; A 및 B 단독; A 및 C 단독; B 및 C 단독; 및 A 및 B 및 C에 대해 적절한 것으로 포함한다.

Claims (20)

  1. 방법으로서,
    클라이언트 컴퓨팅 디바이스에 의해, 상기 클라이언트 컴퓨팅 디바이스에서 메모리 디바이스에 저장된 슈퍼파일(superfile)을 열기 위한 요청을 수신하는 단계 - 상기 슈퍼파일은 암호화된 콘텐츠를 포함하고, 상기 요청은 사용자 크리덴셜 정보(user credential information)를 포함함 - ;
    상기 슈퍼파일을 열기 위한 상기 요청을 수신하는 것에 응답하여, 상기 클라이언트 컴퓨팅 디바이스에 의해, 상기 슈퍼파일에 액세스하기 위한 요청을 원격 서버에 전달하는 단계 - 상기 요청은 사용자 계정과 연관된 크리덴셜을 포함함 - ;
    상기 원격 서버로부터, 암호 정보를 수신하는 단계;
    상기 암호 정보를 사용하여, 상기 암호화된 콘텐츠를 암호 해독하는 단계;
    상기 암호 해독된 콘텐츠에 액세스하고 제시하는 단계; 및
    상기 암호 해독된 콘텐츠가 액세스되는 동안, 상기 원격 서버와의 통신을 유지하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 슈퍼파일이 열려 있는 동안 상기 슈퍼파일과 연관된 사용 정보를 제공하고 상기 원격 서버와의 상기 유지된 통신을 사용하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 사용 정보는 상기 암호 해독된 콘텐츠의 일부가 제시되거나 또는 사용자 입력이 상기 암호 해독된 콘텐츠와 연관되는 것을 나타내는, 방법.
  4. 제1항에 있어서, 상기 암호 해독된 콘텐츠가 액세스되는 동안:
    상기 원격 서버로부터 수정된 암호화된 콘텐츠를 수신하는 단계;
    상기 암호화된 콘텐츠를 상기 수정된 암호화된 콘텐츠로 대체하는 단계; 및
    상기 수정된 암호화된 콘텐츠를 제시하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서, 상기 암호 해독된 콘텐츠가 액세스되는 동안:
    상기 암호화된 콘텐츠에 대한 액세스 권한의 소실의 표시를 수신하는 단계;
    상기 암호 해독된 콘텐츠의 제시를 종료하는 단계; 및
    상기 암호 해독된 콘텐츠를 삭제하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서, 상기 암호 해독된 콘텐츠가 액세스되는 동안:
    상기 클라이언트 컴퓨팅 디바이스에 의해, 상기 암호 해독된 콘텐츠의 수정을 수신하는 단계;
    상기 수정을 기초로 상기 암호화된 콘텐츠를 업데이트하는 단계;
    상기 클라이언트 컴퓨팅 디바이스의 상기 메모리 디바이스에서 상기 암호화된 콘텐츠를 업데이트된 암호화된 콘텐츠로 대체하는 단계; 및
    상기 원격 서버에 상기 업데이트된 암호화된 콘텐츠를 제공하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서, 상기 암호 해독된 콘텐츠가 액세스되는 동안:
    상기 원격 서버에 대한 연결의 소실을 검출하는 단계;
    상기 암호 해독된 콘텐츠의 제시를 종료하는 단계; 및
    상기 암호 해독된 콘텐츠를 삭제하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서, 상기 암호 해독된 콘텐츠가 액세스되는 동안, 상기 원격 서버에 상기 암호화된 콘텐츠에 관련된 사용 통계를 제공하는 단계를 더 포함하는, 방법.
  9. 방법으로서,
    원격 클라이언트 디바이스로부터, 슈퍼파일 내의 암호화된 콘텐츠에 액세스하기 위한 요청을 수신하는 단계 - 상기 요청은 사용자 크리덴셜 정보를 포함하고, 상기 슈퍼파일은 상기 원격 클라이언트 디바이스의 메모리 디바이스에 저장되고 암호화된 콘텐츠를 포함함 - ;
    상기 암호화된 콘텐츠에 액세스하기 위한 허가 레벨을 결정하는 단계;
    상기 허가 레벨을 결정하는 것에 응답하여:
    상기 원격 클라이언트 디바이스에 암호 정보를 제공하는 단계; 및
    상기 원격 클라이언트 디바이스에서 상기 슈퍼파일이 열려있는 동안, 상기 암호화된 콘텐츠와 연관된 상기 원격 클라이언트 디바이스로부터 사용 정보를 수신하고 저장하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 사용 정보는 상기 슈퍼파일에서의 콘텐츠의 일부가 제시되거나, 또는 상기 슈퍼파일에서의 상기 콘텐츠와 연관된 사용자 입력이 제시되는 것을 나타내는, 방법.
  11. 제9항에 있어서, 상기 허가 레벨은 상기 암호화된 콘텐츠의 소유자 또는 상기 암호화된 콘텐츠의 허가된 뷰어 중 적어도 하나를 포함하는, 방법.
  12. 제9항에 있어서,
    상기 슈퍼파일과 연관된 수정된 콘텐츠를 수신하는 단계;
    상기 슈퍼파일의 열린 사본을 갖는 제2 원격 클라이언트 디바이스를 결정하는 단계; 및
    상기 제2 원격 클라이언트 디바이스에 업데이트된 슈퍼파일 정보를 전송하는 단계를 더 포함하고, 상기 업데이트된 슈퍼파일 정보는 상기 수정된 콘텐츠를 포함하는, 방법.
  13. 제12항에 있어서,
    상기 수정된 콘텐츠를 기초로 상기 슈퍼파일에 대응하는 블록체인에 대한 블록 레코드를 생성하는 단계; 및
    상기 블록체인에 상기 블록 레코드를 추가하는 단계를 더 포함하는, 방법.
  14. 제12항에 있어서,
    제3 원격 클라이언트 디바이스로부터, 상기 슈퍼파일의 사본 내의 암호화된 콘텐츠에 액세스하기 위한 요청을 수신하는 단계 - 상기 요청은 제2 사용자 크리덴셜 정보를 포함하고, 상기 슈퍼파일의 사본은 상기 제3 원격 클라이언트 디바이스의 제2 메모리 디바이스에 저장되고 상기 암호화된 콘텐츠를 포함함 - ;
    상기 암호화된 콘텐츠에 액세스하기 위한 허가 레벨을 결정하는 단계;
    상기 허가 레벨을 결정하는 것에 응답하여:
    상기 제3 원격 클라이언트 디바이스에 업데이트된 슈퍼파일 정보를 제공하는 단계 - 상기 업데이트된 슈퍼파일 정보는 상기 수정된 콘텐츠를 포함함 - ;
    상기 제3 원격 클라이언트 디바이스에 암호 정보를 제공하는 단계; 및
    상기 제3 원격 클라이언트 디바이스에서 상기 슈퍼파일이 열려있는 동안, 상기 수정된 콘텐츠와 연관된 상기 제3 원격 클라이언트 디바이스로부터 사용 정보를 수신하고 저장하는 단계를 더 포함하는, 방법.
  15. 제9항에 있어서,
    상기 슈퍼파일에 대한 하나 이상의 액세스 레벨에 대한 수정을 수신하는 단계;
    상기 슈퍼파일에 대한 상기 하나 이상의 액세스 레벨에 대한 상기 수정을 기초로, 상기 슈퍼파일의 열린 사본을 갖는 하나 이상의 클라이언트에 명령어를 송신하는 단계를 더 포함하는, 방법.
  16. 방법으로서,
    원격 클라이언트 디바이스로부터, 새로운 슈퍼파일의 생성의 표시를 수신하는 단계;
    상기 새로운 슈퍼파일과 연관된 데이터 저장소에 하나 이상의 레코드를 생성하는 단계;
    상기 하나 이상의 레코드에 하나 이상의 암호 키를 저장하는 단계 - 상기 하나 이상의 키 중 하나는 상기 슈퍼파일에서의 콘텐츠를 암호화하는 데 사용됨 - ; 및
    상기 슈퍼파일의 사본을 수신하고 저장하는 단계를 포함하는, 방법.
  17. 제16항에 있어서,
    상기 슈퍼파일과 연관된 하나 이상의 액세스 제한을 수신하는 단계; 및
    상기 하나 이상의 레코드에 상기 액세스 제한을 저장하는 단계를 더 포함하는, 방법.
  18. 제16항에 있어서,
    상기 새로운 슈퍼파일에 대응하는 새로운 블록체인을 생성하는 단계; 및
    상기 블록체인에 블록을 삽입하는 단계를 더 포함하고, 상기 블록은 상기 슈퍼파일의 사본을 포함하는, 방법.
  19. 제18항에 있어서, 상기 블록에 상기 슈퍼파일에 대한 하나 이상의 액세스 제한을 저장하는 단계를 더 포함하는, 방법.
  20. 제18항에 있어서, 상기 블록에 상기 슈퍼파일 또는 슈퍼파일 콘텐츠에 대한 하나 이상의 검사 값을 저장하는 단계를 더 포함하는, 방법.
KR1020237006378A 2020-07-24 2021-07-23 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법 KR20230062817A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063056288P 2020-07-24 2020-07-24
US63/056,288 2020-07-24
PCT/US2021/042881 WO2022020666A1 (en) 2020-07-24 2021-07-23 Systems and methods for remote ownership and content control of media files on untrusted systems

Publications (1)

Publication Number Publication Date
KR20230062817A true KR20230062817A (ko) 2023-05-09

Family

ID=79688328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237006378A KR20230062817A (ko) 2020-07-24 2021-07-23 신뢰되지 않은 시스템 상에서 미디어 파일의 원격 소유권 및 콘텐츠 제어를 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US11977644B2 (ko)
EP (1) EP4186187A4 (ko)
JP (1) JP2023535459A (ko)
KR (1) KR20230062817A (ko)
CN (1) CN116134784A (ko)
WO (1) WO2022020666A1 (ko)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077878A1 (en) * 2001-03-26 2002-10-03 Galois Connections Inc Crypto-pointers for secure data storage
US7978761B2 (en) * 2004-10-05 2011-07-12 Vectormax Corporation Method and system for loss-tolerant multimedia multicasting
US7784087B2 (en) * 2005-08-04 2010-08-24 Toshiba Corporation System and method for securely sharing electronic documents
JP2008217300A (ja) * 2007-03-02 2008-09-18 Hitachi Software Eng Co Ltd 生体情報付きファイル暗号化システム及び復号化システム、並びにその方法
US20080288629A1 (en) * 2007-05-17 2008-11-20 Fisher Iii William W Methods, media, and systems for tracking content usage over a network
FI20080534A0 (fi) * 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US10776103B2 (en) * 2011-12-19 2020-09-15 Majen Tech, LLC System, method, and computer program product for coordination among multiple devices
US8806200B2 (en) * 2012-11-30 2014-08-12 Prakash Baskaran Method and system for securing electronic data
US9608829B2 (en) * 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
JP6308441B2 (ja) * 2015-12-07 2018-04-11 コニカミノルタ株式会社 暗号化ファイル印刷システム及び暗号化ファイル印刷方法並びに暗号化ファイル印刷制御プログラム
WO2017120939A1 (zh) * 2016-01-15 2017-07-20 张添章 一种文件加密时的传送技术数据的方法及智能终端设备
US20170264428A1 (en) * 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
US10592639B2 (en) * 2016-09-06 2020-03-17 Intel Corporation Blockchain-based shadow images to facilitate copyright protection of digital content
US11258587B2 (en) * 2016-10-20 2022-02-22 Sony Corporation Blockchain-based digital rights management
US10686765B2 (en) * 2017-04-19 2020-06-16 International Business Machines Corporation Data access levels
US10509891B2 (en) * 2017-05-03 2019-12-17 Cisco Technology, Inc. Method and system for content and service sharing
US10412434B1 (en) * 2018-06-05 2019-09-10 Rovi Guides, Inc. Systems and methods for seamlessly connecting to a user's device to share and display a relevant media asset
CN110266660A (zh) * 2019-06-03 2019-09-20 上海金大师网络科技有限公司 基于epoll模型的jctp实现***、方法及介质
US11537733B2 (en) * 2020-07-03 2022-12-27 Huawei Technologies Co., Ltd. Database access control service in networks

Also Published As

Publication number Publication date
CN116134784A (zh) 2023-05-16
WO2022020666A1 (en) 2022-01-27
EP4186187A1 (en) 2023-05-31
JP2023535459A (ja) 2023-08-17
US20220027481A1 (en) 2022-01-27
US11977644B2 (en) 2024-05-07
EP4186187A4 (en) 2024-07-17

Similar Documents

Publication Publication Date Title
US10135767B2 (en) Method and system for sender-controlled messaging and content sharing
JP5357292B2 (ja) デジタル著作権管理エンジンのシステムおよび方法
US8842841B2 (en) Cryptographic method and system
JP5200204B2 (ja) 高信頼性システムを含む連合型デジタル権限管理機構
US11936716B2 (en) System and method for providing a secure network
JP4524124B2 (ja) ディジタル権利管理(drm)サーバのdrmアーキテクチャへのエンロール/サブエンロール
US20200287880A1 (en) Data encryption
US20180330112A1 (en) Media streaming
US20040255137A1 (en) Defending the name space
US20130067244A1 (en) Use of Media Storage Structure with Multiple Pieces of Content in a Content-Distribution System
JP2005506627A (ja) コンテンツ配布アプリケーションでのディジタル権利管理の方法およびシステム
JP2013513834A (ja) 信頼できるコンピューティングおよびデータサービスのための信頼できる拡張マークアップ言語
JP2006526851A (ja) 動的、分散的および協働的な環境におけるデータオブジェクトの管理
US10095848B2 (en) System, method and apparatus for securely distributing content
US20090119784A1 (en) Out of band license acquisition including content identification
US8495154B2 (en) Content usage tracking in superdistribution
AU2014274590B2 (en) Cryptographic Method and System
KR20230098156A (ko) 암호화된 파일 제어
KR101810904B1 (ko) 비디오 보호 시스템
US11977644B2 (en) Systems and methods for remote ownership and content control of media files on untrusted systems
US20240256680A1 (en) Remote ownership and content control of media files on untrusted systems
US20200242213A1 (en) Method and system for digital rights management
KR102538230B1 (ko) 콘텐츠 보안 방법 및 장치
JP4125454B2 (ja) オブジェクト連携装置
WO2022072624A1 (en) System and method for providing a secure network

Legal Events

Date Code Title Description
A201 Request for examination