KR20210141663A - 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리 - Google Patents

다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리 Download PDF

Info

Publication number
KR20210141663A
KR20210141663A KR1020217034167A KR20217034167A KR20210141663A KR 20210141663 A KR20210141663 A KR 20210141663A KR 1020217034167 A KR1020217034167 A KR 1020217034167A KR 20217034167 A KR20217034167 A KR 20217034167A KR 20210141663 A KR20210141663 A KR 20210141663A
Authority
KR
South Korea
Prior art keywords
content
client device
digital signature
server
resource locator
Prior art date
Application number
KR1020217034167A
Other languages
English (en)
Other versions
KR102638636B1 (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 구글 엘엘씨
Priority to KR1020247005319A priority Critical patent/KR20240024374A/ko
Publication of KR20210141663A publication Critical patent/KR20210141663A/ko
Application granted granted Critical
Publication of KR102638636B1 publication Critical patent/KR102638636B1/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/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
    • 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]
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/108Transfer of content, software, digital rights or licenses
    • G06F21/1083Partial license transfers
    • 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/108Transfer of content, software, digital rights or licenses
    • G06F21/1087Synchronisation
    • G06F2221/0784
    • G06F2221/0793

Abstract

클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청이 수신된다. 제1 요청은 클라이언트 디바이스가 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스에 의해 제공되는 리소스 로케이터를 포함한다. 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함한다. 클라이언트 디바이스로의 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생이 식별된다. 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명이 생성된다. 제1 디지털 서명 및 제3 디지털 서명을 포함하는 새로운 리소스 로케이터가 클라이언트 디바이스에 제공된다.

Description

다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리
본 개시내용의 양태들 및 실시예들은 콘텐츠 공유 플랫폼들에 관한 것으로, 보다 구체적으로는, 다수의 암호화 디지털 서명들을 사용하여 콘텐츠 액세스와 콘텐츠 전달의 인가(authorization)를 분리하기 위한 것에 관한 것이다.
인터넷을 통해 연결되는 콘텐츠 전달 플랫폼들은 사용자들이 서로 연결되고 정보를 공유할 수 있도록 한다. 많은 콘텐츠 전달 플랫폼들은 사용자들이 비디오 아이템들, 이미지 아이템들, 오디오 아이템들 등과 같은 콘텐츠를 업로드하고, 보고, 공유할 수 있게 하는 콘텐츠 공유 양태를 포함한다. 콘텐츠 전달 플랫폼의 다른 사용자들은 공유 콘텐츠에 댓글을 달고, 새로운 콘텐츠를 발견하고, 업데이트들을 찾고, 콘텐츠를 공유하고, 제공된 콘텐츠와 다른 방식으로 상호 작용할 수 있다. 공유 콘텐츠는 전문 콘텐츠 제작자들로부터의 콘텐츠, 예를 들어, 영화 클립들, TV 클립들 및 뮤직 비디오 아이템들뿐만 아니라, 아마추어 콘텐츠 제작자들로부터의 콘텐츠, 예를 들어, 비디오 블로깅 및 짧은 원본 비디오 아이템들을 포함할 수 있다.
본 개시내용의 양태는 방법으로서, 콘텐츠 배포 네트워크(content distribution network)(CDN)의 제1 서버에 의해, 클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신하는 단계 - 제1 요청은 클라이언트 디바이스가 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스에 의해 제공되는 리소스 로케이터(resource locator)를 포함하고, 리소스 로케이터는 요청된 콘텐츠를 클라이언트 디바이스에 전달하기 위해 제1 서버를 식별하고, 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함함 -; 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계; 이벤트의 발생을 식별하는 것에 응답하여, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하는 단계; 및 새로운 리소스 로케이터를 클라이언트 디바이스에 제공하는 단계 - 새로운 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함하고, 클라이언트 디바이스는 새로운 리소스 로케이터를 사용하여 콘텐츠에 액세스하도록 동작함 - 를 포함하는 방법을 제공한다.
본 개시 내용의 추가 양태는 시스템으로서, 메모리; 및 메모리에 커플링되는 프로세싱 디바이스를 포함하고, 프로세싱 디바이스는 본 명세서에서 설명되는 임의의 양태 또는 실시예에 따른 방법을 수행하는 시스템을 제공한다. 본 개시내용의 추가 양태는, 프로세싱 디바이스에 의한 실행에 응답하여, 프로세싱 디바이스로 하여금 본 명세서에서 설명되는 임의의 양태 또는 실시예에 따른 방법을 포함하는 동작들을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품(예를 들어, 유형의(tangible) 컴퓨터 판독 가능 매체 또는 반드시 비-일시적 방식으로 저장될 필요는 없이 다운로드될 수 있는 소프트웨어 제품)을 제공한다.
본 개시내용의 양태들 및 실시예들은 아래에서 제공되는 상세한 설명 및 본 개시내용의 다양한 양태들 및 실시예들의 첨부 도면들로부터 더 완전하게 이해될 것이지만, 본 개시내용을 특정 양태들 또는 실시예들로 제한하는 것으로 취해져서는 안되며, 설명 및 이해를 위한 것이다.
도 1은 본 개시내용의 실시예에 따라 예시적인 시스템 아키텍처를 예시한다.
도 2a는 본 개시내용의 실시예들에 따라 디지털 서명들을 사용하여 콘텐츠 배포 네트워크에 의해 클라이언트 디바이스로의 콘텐츠의 전달을 변경하기 위한 동작들의 다이어그램이다.
도 2b는 본 개시내용의 실시예들에 따라 디지털 서명들을 사용하여 콘텐츠 배포 네트워크에 의해 클라이언트 디바이스로의 콘텐츠의 전달을 변경하기 위한 동작들의 다이어그램이다.
도 3a는 본 개시내용의 실시예들에 따라 디지털 서명의 생성을 예시하는 다이어그램이다.
도 3b는 본 개시내용의 실시예들에 따라 디지털 서명의 검증을 예시하는 다이어그램이다.
도 4a 내지 도 4c는 본 개시내용의 실시예들에 따라 리소스 로케이터들을 예시하는 다이어그램들을 도시한다.
도 5는 본 개시내용의 실시예들에 따라 콘텐츠 배포 네트워크에 의해 전달되는 콘텐츠의 전달을 변경하기 위한 방법의 흐름도를 도시한다.
도 6은 본 개시내용의 실시예에 따라 예시적인 컴퓨터 시스템을 예시하는 블록도이다.
콘텐츠 공유 플랫폼(본 명세서에서 "콘텐츠 전달 플랫폼"으로도 지칭됨)은 비디오 아이템들, 오디오 아이템들 또는 게임 아이템들과 같은 콘텐츠를 사용자 디바이스들을 통해 사용자에게 제공할 수 있다. 사용자는 콘텐츠 공유 플랫폼과 연관된 사용자 계정에 로그인하여 콘텐츠 공유 플랫폼에 액세스하고 콘텐츠를 업로드 및/또는 소비할 수 있다. 콘텐츠 공유 플랫폼은 콘텐츠 배포 네트워크(CDN)(본 명세서에서 "콘텐츠 전달 네트워크"로도 지칭됨)를 사용하여 콘텐츠를 클라이언트 디바이스들에 전달할 수 있다. CDN은 콘텐츠의 전달에서 고가용성 및 고성능을 제공하기 위해 함께 작동하는 지리적으로 분산된 서버들의 네트워크를 포함할 수 있다. 예를 들어, 클라이언트 디바이스 A와 지리적으로 동일한 부근에 있는 CDN의 서버 A가 클라이언트 디바이스 A에 콘텐츠를 전달하기 위해 선택될 수 있다. 서버 A에 의해 전달되는 콘텐츠는 클라이언트 디바이스 A와 지리적으로 동일한 부근에 위치되지 않은 CDN의 다른 서버인 서버 B보다 빠르게 클라이언트 디바이스 A에 전달될 수 있다.
일부 시스템들에서, 사용자는 클라이언트 디바이스를 통해 콘텐츠 공유 플랫폼으로부터 콘텐츠를 요청한다. 인가 서비스를 사용하는 콘텐츠 공유 플랫폼은 사용자가 요청된 콘텐츠에 액세스할 수 있는 허가를 갖는지를 결정하기 위해 사용자와 연관된 사용자 계정을 인가할 수 있다. 사용자 계정이 콘텐츠에 액세스하도록 인가되는 경우, 콘텐츠 공유 플랫폼은 CDN으로부터 요청된 콘텐츠를 획득하기 위해 클라이언트 디바이스에 의해 사용될 수 있는 리소스 로케이터(예를 들어, 유니폼 리소스 로케이터(uniform resource locator)(URL))를 생성할 수 있다. 리소스 로케이터에 보안 레벨을 추가하기 위해, 콘텐츠 공유 플랫폼은 개인 키를 사용하여 암호화 디지털 서명(본 명세서에서 "디지털 서명"으로도 지칭됨)을 생성할 수 있다. 디지털 서명은 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가 및 요청된 콘텐츠의 전달의 인가와 연관될 수 있다. 디지털 서명은 리소스 로케이터에 추가할 수 있다. 디지털 서명은 서명 파라미터(signing parameter)들(예를 들어, 만료 파라미터, 비트 레이트 파라미터, 이벤트 식별자 파라미터 등)에 기초할 수 있으며, 이는 리소스 로케이터에 포함되며, CDN에 어떤 데이터가 서빙되고 어떻게 데이터가 서빙되는지를 나타내는 데 사용된다. 디지털 서명을 포함하는 리소스 로케이터는 클라이언트 디바이스에 전송될 수 있다. 요청된 콘텐츠를 획득하기 위해, 클라이언트 디바이스는 리소스 로케이터를 CDN에 전송할 수 있고, CDN은 리소스 로케이터의 디지털 서명을 검증할 수 있다. 디지털 서명이 검증되는 경우, CDN은 리소스 로케이터에서 식별되는 파라미터들(예를 들어, 낮은 보안 파라미터들은 서빙 머신, 권장 비트 레이트, 및 대체 프로토콜들이 허가되는지 여부를 포함할 수 있고, 높은 보안 파라미터들은 비디오 식별자, 비디오가 요청되거나 서빙될 수 있는 위치에 대한 제약들, 및 위치된 리소스가 만료되고 무효화되는 시기를 포함할 수 있음)에 따라 콘텐츠를 클라이언트 디바이스에 서빙할 수 있다. 디지털 서명이 검증되지 않은 경우, 리소스 로케이터는 손상될 수 있고, CDN은 콘텐츠를 클라이언트 디바이스에 전달하지 않는다. 디지털 서명은 엔티티가 리소스 로케이터의 파라미터들을 변경하거나 또는 CDN을 "스푸핑(spoof)"하여 콘텐츠를 전달할 수 없도록 콘텐츠 전달에 보안 레벨을 추가한다.
일부 상황들에서, CDN은 적법한 디지털 서명을 검증하고, 리소스 로케이터에서 식별된 서버를 결정하여, 콘텐츠를 클라이언트 디바이스에 전달해야 한다. 그러나, 클라이언트 디바이스로의 요청된 콘텐츠의 전달에 변경을 일으킬 수 있는 이벤트가 발생할 수 있다. 예를 들어, 리소스 로케이터는 요청된 콘텐츠를 클라이언트 디바이스에 전달하기 위한 서버로서 CDN의 서버 X를 식별할 수 있지만, 서버 X가 풀가동 중이고 콘텐츠를 클라이언트 디바이스에 전달하는 데 이용 가능하지 않을 수 있다. 한편, 리소스 로케이터에서 식별되지 않은 CDN의 서버 Y가 용량을 가질 수 있지만, CDN은 요청된 콘텐츠를 전달하기 위해 서버 Y를 재인가하도록 허가되지 않을 수 있는데, 왜냐하면, 예를 들어, CDN이 신뢰되지 않거나 또는 보안되지 않은 하드웨어 리소스들 상에서 실행될 수 있기 때문이다. 특히, CDN은 클라이언트 디바이스가 서버 Y로부터 콘텐츠를 수신하도록 리디렉션할 수 있는 새로운 리소스 로케이터를 생성할 인가를 갖지 않을 수 있다. 서버 Y로부터 요청된 콘텐츠를 전달하도록 CDN을 재인가하기 위해, 콘텐츠 공유 플랫폼은 새로운 디지털 서명을 생성하고 새로운 디지털 서명을 서버 Y를 전달 서버로서 식별하는 새로운 리소스 로케이터에 추가하는 것을 포함하는 재인가 동작을 수행해야 할 수 있다. 새로운 리소스 로케이터는 클라이언트 디바이스에 전송될 수 있고, 클라이언트 디바이스에 의해 서버 Y로부터 요청된 콘텐츠에 액세스하는 데 사용될 수 있다. 콘텐츠 공유 플랫폼에 새로운 디지털 서명이 있는 새로운 리소스 로케이터를 생성하도록 요청하면 CDN으로부터의 콘텐츠의 전달에 상당한 레이턴시(수백 밀리초)를 추가할 수 있다. 특히, 인증 서비스를 호스팅하고 있는 콘텐츠 공유 플랫폼의 서버가 콘텐츠의 전달의 변경을 요청하고 있는 CDN 서버로부터 물리적으로 멀리 떨어져 있을 수 있다. 또한, 재인가 동작들을 수행하면 콘텐츠 공유 플랫폼의 상당한 계산, 메모리 및 대역폭 리소스들이 소모된다.
본 개시내용의 양태들은 리소스 로케이터에 포함되는 적어도 2개의 디지털 서명을 사용함으로써 위에서 언급된 문제들 및 다른 문제들을 다룬다. 제1(높은 보안) 디지털 서명은 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관될 수 있다. 제2(낮은 보안) 디지털 서명은 클라이언트 디바이스로의 요청된 콘텐츠의 전달의 인가와 연관될 수 있다. 콘텐츠 공유 플랫폼은 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 모두 생성할 수 있다. CDN은 클라이언트 디바이스로의 요청된 콘텐츠의 전달의 인가와 연관된 새로운 낮은 보안 디지털 서명을 생성할 인가를 갖지만, 요청된 콘텐츠에 액세스하기 위한 인가와 연관된 새로운 높은 보안 디지털 서명을 생성할 인가는 갖지 않는다. CDN이 클라이언트 디바이스로의 요청된 콘텐츠의 전달에 변경을 일으킬 수 있는 이벤트를 식별하는 경우, CDN은, 예를 들어, 클라이언트 디바이스가 다른 CDN 서버로부터 요청된 콘텐츠를 수신하도록 리디렉션하기 위해 새로운 낮은 보안 디지털 서명 및 원래의 높은 보안 디지털 서명이 있는 새로운 리소스 로케이터를 생성할 수 있다.
실시예들에서, 사용자 계정과 연관된 클라이언트 디바이스는 콘텐츠에 대한 요청을 콘텐츠 공유 플랫폼에 전송할 수 있다. 콘텐츠 공유 플랫폼은 사용자 계정을 인가하고, 2개의 상이한 개인 키를 사용하여 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 생성할 수 있다. 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 포함하는 리소스 로케이터는 콘텐츠 공유 플랫폼에 의해 클라이언트 디바이스에 전송될 수 있다. 클라이언트 디바이스는 리소스 로케이터를 CDN으로 전송하여 요청된 콘텐츠를 획득할 수 있다. CDN은 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 검증할 수 있으며, 둘 다 검증되는 경우, 요청된 콘텐츠를 클라이언트 디바이스에 전송할 수 있다. 클라이언트 디바이스로의 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트가 (요청된 콘텐츠가 클라이언트 디바이스에 제공되기 전에) 발생하는 경우, CDN은 낮은 보안 파라미터들(예를 들어, 서빙 머신, 권장 비트 레이트, 및 클라이언트 디바이스와 통신하고 데이터를 클라이언트 디바이스에 서빙하도록 대체 프로토콜들이 허가되는지 여부) 중 하나 이상을 변경하고, 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 생성할 수 있다. CDN은 변경된 전달을 식별하는 새로운 리소스 로케이터를 생성하고, 새로운 리소스 로케이터에 원래의 높은 보안 디지털 서명 및 새로운 낮은 보안 디지털 서명을 포함할 수 있다. 그런 다음, 새로운 리소스 로케이터는 클라이언트 디바이스에 전송될 수 있다. 클라이언트 디바이스는 새로운 리소스 로케이터를 사용하여 요청된 콘텐츠에 액세스할 수 있다.
일부 실시예들에서, 높은 보안 디지털 서명은 높은 보안 파라미터들에 기초하여 생성될 수 있다. 낮은 보안 디지털 서명은 낮은 보안 파라미터들에 기초할 수 있다. 높은 보안 파라미터들과 높은 보안 디지털 서명은 콘텐츠 공유 플랫폼(예를 들어, 콘텐츠 공유 플랫폼의 데이터 인가 서비스)이 콘텐츠에 대한 액세스의 인가의 제어를 유지한다는 점에서 "더 높은 보안"이다. 콘텐츠에 대한 액세스를 제어하는 것은 콘텐츠의 전달을 제어하는 것보다 "더 높은" 우선 순위이다. 예를 들어, 악의적인 행위자가 콘텐츠에 액세스하기 위한 인가의 제어를 획득하는 경우, 콘텐츠 공유 플랫폼은 잠재적으로 복구할 수 없는 피해를 겪을 수 있다. 예를 들어, 악의적인 행위자가 콘텐츠의 전달의 제어를 획득하는 경우, 콘텐츠 공유 플랫폼은 일시적으로 손상될 수 있지만, 회복 불가능한 피해를 겪지는 않을 수 있다. 낮은 보안 파라미터들은 콘텐츠 공유 플랫폼과 콘텐츠 배포 네트워크가 콘텐츠 전달에 대한 인가의 제어를 공유한다는 의미에서, 그리고 낮은 보안 디지털 서명의 악의적인 사용으로 인해 콘텐츠 공유 플랫폼에 회복 불가능한 피해를 일으키지 않을 것이라는 의미에서 "더 낮은 보안"이다.
실시예들에서, 높은 보안 디지털 서명 및 낮은 보안 디지털 서명 둘 다의 사용은 콘텐츠 공유 플랫폼에 의해 제어되는 콘텐츠에 액세스하기 위한 인가를 유지하면서, CDN이 전달의 변경들을 인가할 수 있도록 더 큰 유연성을 제공한다. 또한, CDN이 요청된 콘텐츠의 전달의 변경을 인가할 수 있도록 하면 적어도 콘텐츠 공유 플랫폼이 재인가를 수행하도록 요청하지 않고 CDN이 전달의 변경을 재인가할 수 있기 때문에 클라이언트 디바이스로의 요청된 콘텐츠 전달의 레이턴시를 감소시킨다.
언급된 바와 같이, 본 개시내용의 실시예들에 의해 다루어지는 기술적 문제는 콘텐츠 공유 플랫폼에 요청된 콘텐츠의 전달의 변경을 재인가하도록 요청함으로써 야기되는 클라이언트 디바이스로의 콘텐츠 전달의 레이턴시이다. 예를 들어, 요청된 콘텐츠의 전달의 변경을 재인가하기 위해, 콘텐츠 공유 플랫폼은 후속 인가 동작을 수행하고, 다른 디지털 서명을 생성하고, 새로운 디지털 서명을 새로운 리소스 로케이터에 추가한다. 콘텐츠 공유 플랫폼은 재인가를 요청하는 CDN 서버로부터 멀리 떨어져 있을 수 있으며, 이로 인해 CDN으로부터의 콘텐츠의 전달에 상당한 레이턴시(수백 밀리초)가 추가될 수 있다.
또한 언급된 바와 같이, 본 개시내용의 실시예들에 의해 다루어지는 또 다른 기술적 문제는 CDN이 콘텐츠 액세스에 대한 인가 및 콘텐츠의 전달의 인가 둘 다와 연관된 단일 디지털 서명을 사용하여 인가를 수행하도록 허가함으로써 보안이 감소된다는 점이다. 예를 들어, 콘텐츠에 액세스하기 위한 인가 및 콘텐츠의 전달의 인가 둘 다에 단일 디지털 서명이 사용되는 경우에 CDN이 인가를 수행하도록 허가하면 콘텐츠 공유 플랫폼이 복구 불가능한 악의적인 공격들에 노출될 수 있다.
또한 언급된 바와 같이, 본 개시내용의 실시예들에 의해 다루어지는 또 다른 기술적 문제는 재인가 동작들의 수행에서 콘텐츠 공유 플랫폼에 의한 상당한 계산, 메모리 및 대역폭 리소스들의 소비이다.
위에서 식별된 기술적 문제들에 대한 기술적 솔루션은, CDN의 제1 서버에 의해, 클라이언트 디바이스로부터 콘텐츠에 대한 요청을 수신하는 단계 - 제1 요청은 클라이언트 디바이스가 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스에 의해 제공되는 리소스 로케이터를 포함하고, 리소스 로케이터는 요청된 콘텐츠를 클라이언트 디바이스에 전달하기 위해 제1 서버를 식별하고, 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함함 -; 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계; 이벤트의 발생을 식별하는 것에 응답하여, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하는 단계; 및 새로운 리소스 로케이터를 클라이언트 디바이스에 제공하는 단계 - 새로운 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함하고, 클라이언트 디바이스는 새로운 리소스 로케이터를 사용하여 콘텐츠에 액세스하도록 동작함 - 를 포함할 수 있다.
따라서, 기술적 효과는 콘텐츠 공유 플랫폼에 요청된 콘텐츠의 전달의 변경을 재인가하도록 요청함으로써 야기되는 클라이언트 디바이스로의 콘텐츠 전달의 레이턴시를 감소시키는 것을 포함할 수 있다.
추가적인 기술적 효과들은 리소스 로케이터에 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 제공함으로써 콘텐츠 전달의 보안을 향상시키는 것을 포함할 수 있다.
추가적인 기술적 효과들은 CDN이 요청된 콘텐츠의 전달의 변경들에 대한 인가를 수행하도록 함으로써 콘텐츠 공유 플랫폼에 의한 계산, 메모리 및 대역폭 리소스들의 소비를 감소시키는 것을 포함할 수 있다.
도 1은 본 개시내용의 일 실시예에 따라 예시적인 시스템 아키텍처(100)를 예시한다. 시스템 아키텍처(100)(본 명세서에서 "시스템"으로도 지칭됨)는 콘텐츠 공유 플랫폼(120)(본 명세서에서 "콘텐츠 배포 플랫폼"으로도 지칭됨), 데이터 저장소(106), 네트워크(104)에 연결되는 클라이언트 디바이스들(110A-110Z)(일반적으로 본 명세서에서 "클라이언트 디바이스(들)(110)"로도 지칭됨), 및 콘텐츠 배포 네트워크(CDN)(101)(본 명세서에서 "콘텐츠 전달 네트워크"로도 지칭됨)를 포함한다. CDN(101)은 복수의 서버 머신들(112A-112Z)(본 명세서에서 "서버(들)(112A-112Z)"로도 지칭됨)을 포함할 수 있다.
실시예들에서, 네트워크(104)는 공용 네트워크(예를 들어, 인터넷), 사설 네트워크(예를 들어, 근거리 네트워크(local area network)(LAN) 또는 광역 네트워크(wide area network)(WAN)), 유선 네트워크(예를 들어, 이더넷 네트워크), 무선 네트워크(예를 들어, 802.11 네트워크 또는 Wi-Fi 네트워크), 셀룰러 네트워크(예를 들어, 롱 텀 에볼루션(Long Term Evolution)(LTE) 네트워크), 라우터들, 허브들, 스위치들, 서버 컴퓨터들, 및/또는 이들의 조합을 포함할 수 있다.
실시예들에서, 데이터 저장소(106)는 (미디어 아이템과 같은) 콘텐츠 아이템들뿐만 아니라, 콘텐츠 아이템들에 태그를 지정하고, 이를 구성하고, 인덱싱하기 위한 데이터 구조들을 저장할 수 있는 영구 스토리지이다. 데이터 저장소(106)는 메인 메모리, 자기 또는 광 스토리지 기반 디스크들, 테이프들 또는 하드 드라이브들, NAS, SAN 등과 같은 하나 이상의 스토리지 디바이스에 의해 호스팅될 수 있다. 일부 실시예들에서, 데이터 저장소(106)는 네트워크-부착형 파일 서버일 수 있지만, 다른 실시예들에서, 데이터 저장소(106)는 콘텐츠 공유 플랫폼(120) 또는 네트워크(104)를 통해 콘텐츠 공유 플랫폼(120)에 커플링되는 하나 이상의 상이한 머신에 의해 호스팅될 수 있는 객체-지향 데이터베이스, 관계형 데이터베이스 등과 같은 일부 다른 타입들의 영구 스토리지일 수 있다.
클라이언트 디바이스들(110A-110Z)은 각각 개인용 컴퓨터(personal computer)들(PC들), 랩톱들, 휴대폰들, 스마트폰들, 태블릿 컴퓨터들, 넷북 컴퓨터들, 네트워크-연결 텔레비전들 등과 같은 컴퓨팅 디바이스들을 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스들(110A 내지 110Z)은 또한 "사용자 디바이스들"로도 지칭될 수 있다. 실시예들에서, 각각의 클라이언트 디바이스는 미디어 뷰어(111)를 포함한다. 일 실시예에서, 미디어 뷰어들(111)은 사용자들이 이미지들, 비디오 아이템들, 웹 페이지들, 문서들, 오디오 아이템들 등과 같은 콘텐츠를 재생하거나, 보거나, 또는 업로드할 수 있도록 하는 애플리케이션들일 수 있다. 예를 들어, 미디어 뷰어(111)는 웹 서버에 의해 서빙되는 콘텐츠(예를 들어, HTML(Hyper Text Markup Language) 페이지들과 같은 웹 페이지들, 디지털 미디어 아이템들 등)에 액세스하거나, 이를 리트리브하거나, 제시하거나, 내비게이팅할 수 있는 웹 브라우저일 수 있다. 미디어 뷰어(111)는 콘텐츠(예를 들어, 웹 페이지, 미디어 뷰어)를 사용자에게 렌더링하거나, 디스플레이하거나 제시할 수 있다. 미디어 뷰어(111)는 또한 웹 페이지(예를 들어, 온라인 판매자에 의해 판매되는 제품에 대한 정보를 제공할 수 있는 웹 페이지)에 임베딩되는 임베딩형 미디어 플레이어(예를 들어, Flash® 플레이어 또는 HTML5 플레이어)를 포함할 수 있다. 다른 예에서, 미디어 뷰어(111)는 사용자들이 디지털 미디어 아이템들(예를 들어, 디지털 비디오 아이템들, 디지털 이미지들, 전자 책들 등)을 재생할 수 있게 하는 독립형 애플리케이션(예를 들어, 모바일 애플리케이션, 또는 네이티브 애플리케이션)일 수 있다. 본 개시내용의 양태들에 따르면, 미디어 뷰어(111)는 사용자들이 콘텐츠 공유 플랫폼 상에서 공유하기 위해 콘텐츠를 기록, 편집, 및/또는 업로드하기 위한 콘텐츠 공유 플랫폼 애플리케이션일 수 있다. 이와 같이, 미디어 뷰어들(111)은 콘텐츠 공유 플랫폼(120)에 의해 클라이언트 디바이스들(110A-110Z)에 제공될 수 있다. 예를 들어, 미디어 뷰어들(111)은 콘텐츠 공유 플랫폼(120)에 의해 제공되는 웹 페이지에 임베딩되는 임베딩형 미디어 플레이어들일 수 있다. 다른 예에서, 미디어 뷰어들(111)은 콘텐츠 공유 플랫폼(120)으로부터 다운로드되는 애플리케이션들일 수 있다.
일 실시예에서, 콘텐츠 공유 플랫폼(120) 또는 서버 머신들(112A-112Z)은 하나 이상의 컴퓨팅 디바이스(랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크탑 컴퓨터 등), 데이터 저장소들(예를 들어, 하드 디스크들, 메모리들, 데이터베이스들), 네트워크들, 소프트웨어 컴포넌트들, 또는 사용자에게 미디어 아이템들에 대한 액세스를 제공하거나 또는 사용자에게 미디어 아이템들을 제공하는 데 사용될 수 있는 하드웨어 컴포넌트들일 수 있다. 예를 들어, 콘텐츠 공유 플랫폼(120)은 사용자가 미디어 아이템들을 소비하거나, 업로드하거나, 검색하거나, 승인하거나("좋아요"), 비승인하거나("싫어요"), 또는 이에 댓글을 달도록 허용할 수 있다. 콘텐츠 공유 플랫폼(120)은 또한 사용자에게 미디어 아이템들에 대한 액세스를 제공하는 데 사용될 수 있는 웹사이트(예를 들어, 웹페이지) 또는 애플리케이션 백-엔드 소프트웨어를 포함할 수 있다.
본 개시내용의 실시예들에서, "사용자"는 단일 개인으로서 표현될 수 있다. 그러나, 본 개시내용의 다른 실시예들은 사용자들의 세트 및/또는 자동화된 소스에 의해 제어되는 엔티티인 "사용자"를 포함한다. 예를 들어, 소셜 네트워크에서 커뮤니티로 연합된 개별 사용자들의 세트가 "사용자"로 간주될 수 있다. 다른 예에서, 자동화된 소비자는 콘텐츠 공유 플랫폼(120)의 토픽 채널과 같은 자동화된 수집 파이프라인일 수 있다.
콘텐츠 공유 플랫폼(120)은 다수의 채널들(예를 들어, 채널들 A 내지 Z로서, 이중 채널 A만이 도 1에 도시됨)을 포함할 수 있다. 채널은 공통 소스로부터 이용 가능한 데이터 콘텐츠, 또는 공통 주제, 테마 또는 내용을 갖는 데이터 콘텐츠일 수 있다. 데이터 콘텐츠는 사용자에 의해 선택된 디지털 콘텐츠, 사용자에 의해 이용 가능한 디지털 콘텐츠, 사용자에 의해 업로드된 디지털 콘텐츠, 콘텐츠 제공자에 의해 선택된 디지털 콘텐츠, 방송사에 의해 선택된 디지털 콘텐츠 등일 수 있다. 예를 들어, 채널 X는 비디오들 Y 및 Z를 포함할 수 있다. 채널은 채널 상에서 액션들을 수행할 수 있는 사용자인 소유자와 연관될 수 있다. 소유자가 채널 상에서 디지털 콘텐츠가 이용 가능하도록 하는 것, 소유자가 다른 채널과 연관된 디지털 콘텐츠를 선택하는 것(예를 들어, 좋아요하는 것), 소유자가 다른 채널과 연관된 디지털 콘텐츠에 댓글을 다는 것 등과 같은 소유자의 액션들에 기초하여 상이한 활동들이 채널과 연관될 수 있다. 채널과 연관된 활동들은 채널에 대한 활동 피드로 수집될 수 있다. 채널의 소유자가 아닌 사용자들은 관심 있는 하나 이상의 채널을 구독할 수 있다. "구독"의 개념은 "좋아요", "팔로잉", "친구 추가(friending)" 등으로도 지칭될 수 있다.
사용자가 채널을 구독하면, 채널의 활동 피드로부터의 정보가 사용자에게 제시될 수 있다. 사용자가 다수의 채널들을 구독하는 경우, 사용자가 구독하는 각각의 채널에 대한 활동 피드가 신디케이트된(syndicated) 활동 피드로 결합될 수 있다. 신디케이트된 활동 피드로부터의 정보가 사용자에게 제시될 수 있다. 채널들은 그들의 자체 피드들을 가질 수 있다. 예를 들어, 콘텐츠 공유 플랫폼 상에서 채널의 홈 페이지로 내비게이팅할 때, 해당 채널에 의해 생성된 피드 아이템들이 채널 홈 페이지 상에 보여질 수 있다. 사용자들은 신디케이트된 피드를 가질 수 있는데, 이는 적어도 사용자가 구독하는 모든 채널들로부터의 콘텐츠 아이템들의 서브세트를 포함하는 피드이다. 신디케이트된 피드들은 또한 사용자가 구독하지 않는 채널들로부터의 콘텐츠 아이템들도 포함할 수 있다. 예를 들어, 콘텐츠 공유 플랫폼(120) 또는 다른 소셜 네트워크들은 권장 콘텐츠 아이템들을 사용자의 신디케이트된 피드에 삽입할 수도 있고, 사용자의 관련된 연결과 연관된 콘텐츠 아이템들을 신디케이트된 피드에 삽입할 수 있다.
각각의 채널은 하나 이상의 미디어 아이템(121)을 포함할 수 있다. 미디어 아이템(121)의 예들은 디지털 비디오, 디지털 영화들, 디지털 사진들, 디지털 음악, 오디오 콘텐츠, 멜로디들, 웹사이트 콘텐츠, 소셜 미디어 업데이트들, 전자 책들(이북들), 전자 잡지들, 디지털 신문들, 디지털 오디오 북들, 전자 저널들, 웹 블로그들, RSS(real simple syndication) 피드들, 전자 만화책들, 소프트웨어 애플리케이션들 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서, 미디어 아이템(121)은 콘텐츠 또는 콘텐츠 아이템으로도 지칭된다.
제한이 아닌 간결함과 단순함을 위해, 비디오 아이템, 오디오 아이템, 또는 게임 아이템이 이 문서 전체에 걸쳐 미디어 아이템(121)의 예로서 사용된다. 본 명세서에서 사용되는 바와 같이, "미디어", "미디어 아이템", "온라인 미디어 아이템", "디지털 미디어", "디지털 미디어 아이템", "콘텐츠" 및 "콘텐츠 아이템"은 디지털 미디어 아이템을 엔티티에 제시하도록 구성되는 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일 실시예에서, 콘텐츠 공유 플랫폼(120)은 데이터 저장소(106)를 사용하여 미디어 아이템들(121)을 저장할 수 있다. 다른 실시예에서, 콘텐츠 공유 플랫폼(120)은 데이터 저장소(106)를 사용하여 비디오 아이템들 또는 지문들을 하나 이상의 포맷의 전자 파일들로서 저장할 수 있다.
일 실시예에서, 미디어 아이템들(121)은 비디오 아이템들이다. 비디오 아이템은 모션 중인 장면을 표현하는 순차적인 비디오 프레임들(예를 들어, 이미지 프레임들)의 세트이다. 예를 들어, 일련의 순차적인 비디오 프레임들은 연속적으로 캡처될 수도 있고 또는 나중에 애니메이션을 생성하기 위해 재구성될 수 있다. 비디오 아이템들은 아날로그, 디지털, 2차원 및 3차원 비디오를 포함하되, 이에 제한되지 않는 다양한 포맷들로 제시될 수 있다. 또한, 비디오 아이템들은 영화들, 비디오 클립들 또는 시퀀스로 디스플레이될 애니메이션된 이미지들의 임의의 세트를 포함할 수 있다. 또한, 비디오 아이템은 비디오 컴포넌트 및 오디오 컴포넌트를 포함하는 비디오 파일로서 저장될 수 있다. 비디오 컴포넌트는 비디오 코딩 포맷 또는 이미지 코딩 포맷(예를 들어, H.264 (MPEG-4 AVC), H.264 MPEG-4 Part 2, GIF(Graphic Interchange Format), WebP 등)의 비디오 데이터를 지칭할 수 있다. 오디오 컴포넌트는 오디오 코딩 포맷(예를 들어, AAC(advanced audio coding), MP3 등)의 오디오 데이터를 지칭할 수 있다. GIF는 이미지 파일(예를 들어, .gif 파일)로서 저장될 수도 있고, 또는 애니메이션된 GIF(예를 들어, GIF89a 포맷)로 일련의 이미지들로서 저장될 수도 있다는 점에 유의할 수 있다. H.264는, 예를 들어, 비디오 콘텐츠의 기록, 압축 또는 배포를 위한 블록-지향 모션-보상-기반 비디오 압축 표준인 비디오 코딩 포맷일 수 있다는 점에 유의할 수 있다.
일부 실시예들에서, 미디어 아이템은 클라이언트 디바이스들(110A-110Z) 중 하나 이상에 대한 라이브 스트림과 같이 스트리밍될 수 있다. "스트리밍되는(streamed)" 또는 "스트리밍하는(streaming)"은 미디어 아이템과 같은 콘텐츠의 송신 또는 브로드캐스트를 지칭하며, 여기서 미디어 아이템의 수신된 부분들은 (기술적 제한들 내에서) 수신 즉시 또는 미디어 콘텐츠의 다른 부분들이 전달되고 있는 동안, 전체 미디어 아이템이 수신 디바이스에 의해 수신되지 않았어도, 수신 디바이스에 의해 재생될 수 있다는 점에 유의할 수 있다. "스트림"은 스트리밍되거나 또는 스트리밍되고 있는 미디어 아이템과 같은 콘텐츠를 지칭할 수 있다. 라이브-스트림 미디어 아이템은 라이브 이벤트의 라이브 브로드캐스트 또는 송신을 지칭할 수 있으며, 여기서 이벤트가 수신 디바이스에 발생함에 따라, 미디어 아이템은 동시에 적어도 부분적으로 송신되고, 미디어 아이템은 전체적으로 이용 가능하지 않다.
실시예들에서, 콘텐츠 공유 플랫폼(120)은 사용자들이 미디어 아이템들을 포함하는 플레이리스트들(예를 들어, 미디어 아이템들(121)을 포함하는 플레이리스트 A-Z)을 생성하거나, 공유하거나, 보거나 또는 사용하는 것을 허용할 수 있다. 플레이리스트는 사용자 상호 작용 없이 특정 순서로 차례로 재생하도록 구성되는 미디어 아이템들의 모음을 지칭한다. 실시예들에서, 콘텐츠 공유 플랫폼(120)은 사용자를 대신하여 플레이리스트를 유지할 수 있다. 실시예들에서, 콘텐츠 공유 플랫폼(120)의 플레이리스트 피처는 사용자들이 재생을 위해 자신들의 즐겨찾기 미디어 아이템들을 단일 위치에 함께 그룹화할 수 있게 한다. 실시예들에서, 콘텐츠 공유 플랫폼(120)은 재생 또는 디스플레이를 위해 플레이리스트 상의 미디어 아이템을 클라이언트 디바이스(110)에 전송할 수 있다. 예를 들어, 미디어 뷰어(111)는 미디어 아이템들이 플레이리스트 상에 나열되는 순서대로 플레이리스트 상의 미디어 아이템들을 재생하는데 사용될 수 있다. 다른 예에서, 사용자는 플레이리스트 상의 미디어 아이템들 간에 전환할 수 있다. 또 다른 예에서, 사용자는 플레이리스트 상의 다음 미디어 아이템이 재생될 때까지 대기할 수도 있고, 또는 재생을 위해 플레이리스트의 특정 미디어 아이템을 선택할 수도 있다.
실시예들에서, 사용자는 사용자 계정을 통해 콘텐츠 공유 플랫폼(120)에 액세스할 수 있다. 사용자는 클라이언트 디바이스(110) 상의 애플리케이션(예를 들어, 미디어 뷰어(111))을 통해 사용자 계정 정보(예를 들어, 사용자 이름 및 비밀번호)를 제공함으로써 사용자 계정에 액세스(예를 들어, 로그인)할 수 있다. 일부 실시예들에서, 사용자 계정은 단일 사용자와 연관될 수 있다. 다른 실시예들에서, 사용자 계정은 공유 계정(예를 들어, 다수의 사용자들에 의해 공유되는 가족 계정)(본 명세서에서 "공유 사용자 계정"으로도 지칭됨)일 수 있다. 공유 계정은 각각이 상이한 사용자와 연관된 다수의 사용자 프로파일들을 가질 수 있다. 다수의 사용자들은 동일한 계정 정보 또는 상이한 계정 정보를 사용하여 공유 계정에 로그인할 수 있다. 일부 실시예들에서, 공유 계정의 다수의 사용자들은 공유 계정의 상이한 사용자 프로파일들에 기초하여 구별될 수 있다.
일부 실시예들에서, 데이터 인가 서비스(122)(본 명세서에서 "코어 데이터 서비스" 또는 "데이터 인가 소스(authorizing data source)"로도 지칭됨)는 사용자 계정이 요청된 콘텐츠를 획득하는 것이 허가되도록 사용자 계정을 인가할 수 있다. 실시예들에서, 데이터 인가 서비스(122)는 요청된 콘텐츠에 대한 사용자 계정(예를 들어, 사용자 계정과 연관된 클라이언트 디바이스) 액세스를 인가하거나, 클라이언트 디바이스로의 요청된 콘텐츠의 전달을 인가하거나, 또는 둘 다일 수 있다. 요청된 콘텐츠에 액세스하기 위한 사용자 계정의 인가는 어떤 콘텐츠에 액세스될지 및 콘텐츠에 액세스하는 것이 허가되는 사람을 인가하는 것을 포함할 수 있다. 콘텐츠의 전달의 인가는 콘텐츠가 전달되는 방식을 인가하는 것을 포함할 수 있다.
일부 실시예들에서, 데이터 인가 서비스는 사용자 계정을 인가하기 위해 사용자 계정 정보를 사용할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(110) 또는 클라이언트 디바이스(110)의 애플리케이션과 연관된 쿠키는 사용자 계정을 인가하는 데 사용될 수 있다. 쿠키는 특정 클라이언트 디바이스 또는 애플리케이션(예를 들어, 브라우저)에 특정한 일부 양의 데이터를 보유하는 클라이언트 디바이스(110)에서 저장되는 파일을 지칭할 수 있다. 예를 들어, 사용자는 사용자 계정 정보를 사용하여 콘텐츠 공유 플랫폼(120)에 로그인할 수 있다. 사용자 계정을 인가하는 것에 응답하여, 협업 플랫폼(collaboration platform)(120)은 쿠키를 전송할 수 있다. 협업 플랫폼(120)에 대한 후속 요청들에서, 클라이언트 디바이스는 요청들에 쿠키를 포함할 수 있다. 쿠키는 사용자 계정을 인가하는 데 사용할 수 있다. 일부 실시예들에서, 쿠키는 계정 정보의 암호화된 버전을 포함하는 키-값 쌍을 포함할 수 있다.
일부 실시예들에서, 데이터 인가 서비스(122)는 콘텐츠 공유 플랫폼(120)의 일부이다. 일부 실시예들에서, 데이터 인가 서비스(122)는 콘텐츠 공유 플랫폼(120)의 일부가 아니고, 콘텐츠 공유 플랫폼(120)과 상이한 서버 머신 상에서 호스팅된다. 다른 실시예들에서, 데이터 인가 서비스(122)는 제3자에 의해 제공되는 인가 서비스와 같은 외부 서비스일 수 있다.
위에서 언급된 바와 같이, 콘텐츠 배포 네트워크(CDN)(101)는 서버 머신들(112A-112Z)(일반적으로 본 명세서에서 "서버 머신(들)(112)" 또는 "서버(들)(112)"로 지칭됨)로서 표현되는 하나 이상의 노드를 포함할 수 있다. 실시예들에서, 콘텐츠 배포 네트워크(101)는 콘텐츠의 빠른 전달을 제공하기 위해 함께 작동하는 지리적으로 분산된 서버들의 네트워크를 포함한다. 서버들의 네트워크는 일부 경우들에서 클라이언트 디바이스들(110)에 대한 근접성에 기초하여 콘텐츠 또는 서비스들을 배포함으로써 고가용성 및 고성능을 제공하기 위해 지리적으로 분산된다. CDN 서버가 클라이언트 디바이스(110)에 가까울수록, 콘텐츠는 더 빨리 클라이언트 디바이스(110)에 전달될 수 있다.
예를 들어, 상이한 서버 머신들(112A-112Z)은 특정 국가 내에서 또는 상이한 국가들에 걸쳐 지리적으로 분산될 수 있다. 영국에 위치되는 클라이언트 디바이스(110A)를 사용하는 사용자 A는 콘텐츠 공유 플랫폼(120)에 의해 호스팅되는 콘텐츠를 획득하도록 요청할 수 있다. 요청은 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122)에 의해 수신될 수 있고, 사용자 A와 연관된 사용자 계정은 요청된 콘텐츠를 획득하도록 인가될 수 있다. 인가에 후속하여, 콘텐츠 공유 플랫폼(120)은 유니폼 리소스 로케이터(URL)와 같은 리소스 로케이터를 클라이언트 디바이스(110A)에 전송할 수 있다. 리소스 로케이터는 컴퓨터 네트워크 상의 리소스(예를 들어, 콘텐츠)의 위치 및 리소스를 리트리브하기 위한 메커니즘을 지정하는 참조를 지칭할 수 있다. 리소스 로케이터는 클라이언트 디바이스(110A)가 클라이언트 디바이스(110A)에 지리적으로 근접하게 위치되는 콘텐츠 배포 네트워크(101)의 서버 머신(112)으로부터 콘텐츠를 획득하도록 지시할 수 있다. 예를 들어, 리소스 로케이터는 클라이언트 디바이스(110A)가 영국에도 위치되는 콘텐츠 배포 네트워크(101)의 특정 서버 머신(112)으로부터 요청된 콘텐츠를 획득하도록 지시할 수 있다. 다른 예에서, 미국 서부 해안에 위치되는 클라이언트 디바이스(110B)를 사용하는 다른 사용자 B는 사용자 A와 동일한 콘텐츠를 획득하도록 요청한다. 요청은 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122)에 의해 수신될 수 있고, 사용자 B와 연관된 사용자 계정은 요청된 콘텐츠를 획득하도록 인가될 수 있다. 인가에 후속하여, 콘텐츠 공유 플랫폼(120)은 리소스 로케이터를 클라이언트 디바이스(110B)에 전송할 수 있다. 리소스 로케이터는 클라이언트 디바이스(110B)가 클라이언트 디바이스(110B)에 지리적으로 근접하게 위치되는 콘텐츠 배포 네트워크(101)의 서버 머신(112)으로부터 콘텐츠를 획득하도록 지시할 수 있다. 예를 들어, 리소스 로케이터는 클라이언트 디바이스(110B)가 미국 서부 해안에 위치되는 콘텐츠 배포 네트워크(101)의 서버 머신(112)으로부터 요청된 콘텐츠를 획득하도록 지시할 수 있다.
일부 실시예들에서, 콘텐츠 배포 네트워크(101)는 콘텐츠 공유 플랫폼(120)의 일부이다. 다른 실시예들에서, 콘텐츠 배포 네트워크(101)는 콘텐츠 공유 플랫폼(120)에 CDN 서비스들을 제공하는 제3자 플랫폼이다. 다른 실시예들에서, 콘텐츠 배포 네트워크(101)의 일부는 콘텐츠 공유 플랫폼(120)에 의해 운영될 수 있고, 콘텐츠 배포 네트워크(101)의 다른 부분은 제3자에 의해 운영될 수 있다. 실시예들에서, 콘텐츠 배포 네트워크(101)는 데이터 저장소(114)와 같은 데이터 저장소를 포함한다. 데이터 저장소(114)는 데이터 저장소(106)와 유사할 수 있다. 데이터 저장소는 미디어 콘텐츠와 같은 콘텐츠에 대한 데이터 파일들(116)을 포함할 수 있다. 데이터 저장소(106)는 또한 하나 이상의 공개 키 또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키(117)를 포함할 수 있다. 인가 모듈(authorization module)(151)은 본 명세서에서 설명되는 개시내용의 양태들을 수행할 수 있다.
일반적으로, 콘텐츠 공유 플랫폼(120) 또는 콘텐츠 배포 네트워크(101)에 의해 수행되는 것으로 일 실시예에서 설명되는 기능들은 또한, 적절한 경우, 다른 실시예들에서 클라이언트 디바이스들(110A 내지 110Z)에 의해 수행될 수 있다. 또한, 특정 컴포넌트에 부여되는 기능은 함께 작동하는 상이한 또는 다수의 컴포넌트들에 의해 수행될 수 있다. 콘텐츠 공유 플랫폼(120) 또는 콘텐츠 배포 네트워크(101)는 또한 적절한 애플리케이션 프로그래밍 인터페이스들을 통해 다른 시스템들 또는 디바이스들에 제공되는 서비스로서 액세스될 수 있으며, 따라서 웹사이트들에서의 사용에 제한되지 않는다.
본 개시내용의 실시예들은 콘텐츠 공유 플랫폼, 및 콘텐츠 공유 플랫폼 상의 콘텐츠 아이템의 소셜 네트워크 공유를 촉진하는 측면에서 논의되지만, 실시예들은 또한 일반적으로 사용자들 또는 콘텐츠 전달 플랫폼 간의 연결들을 제공하는 임의의 타입의 소셜 네트워크에 적용될 수 있다. 본 개시내용의 구현들은 사용자들에게 채널 구독들을 제공하는 콘텐츠 공유 플랫폼들에 제한되지 않는다.
본 명세서에서 논의되는 시스템들이 사용자들에 대한 개인 정보를 수집하거나 또는 개인 정보를 사용할 수 있는 상황들에서, 사용자들에게는 콘텐츠 공유 플랫폼(120)이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호도들 또는 사용자의 현재 위치에 대한 정보)를 수집할지 여부를 제어하거나, 사용자와 더 관련이 있을 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 수신하는 방법을 제어하기 위한 기회가 제공될 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 개인적으로 식별 가능한 정보가 제거되도록 하나 이상의 방식으로 취급될 수 있다. 예를 들어, 사용자의 아이덴티티가 사용자에 대한 개인적으로 식별 가능한 정보가 결정될 수 없도록 취급될 수 있고, 사용자의 지리적 위치가 사용자의 특정 위치가 결정될 수 없도록 (도시, 우편 번호 또는 주 레벨과 같이) 위치 정보가 획득되는 곳에서 일반화될 수 있다. 따라서, 사용자는 사용자에 대한 정보가 어떻게 수집되고 콘텐츠 공유 플랫폼(120)에 의해 어떻게 사용되는지에 대한 제어를 가질 수 있다.
도 2a는 본 개시내용의 실시예들에 따라 디지털 서명들을 사용하여 콘텐츠 배포 네트워크에 의해 클라이언트 디바이스로의 콘텐츠의 전달을 변경하기 위한 동작들의 다이어그램이다. 시스템(200)은 도 1의 시스템 아키텍처(100)와 유사한 컴포넌트들을 포함할 수 있다. 도 1의 컴포넌트들은 도 2a를 설명하는 것을 돕기 위해 사용될 수 있음에 유의할 수 있다. 제한이 아닌 예시의 목적들을 위해, 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122), 콘텐츠 배포 네트워크(101)의 서버 머신(112A), 콘텐츠 배포 네트워크(101)의 서버 머신(112B), 또는 클라이언트 디바이스(110A)에 의해 수행되는 것으로 설명되는 시스템과 관련된 동작들(200)은 달리 설명되지 않는 한 디바이스의 임의의 컴포넌트에 의해 수행될 수 있다. 도 2a와 관련하여 설명되는 동작들은 제한이 아닌 예시를 위해 순차적으로 수행되는 것으로 도시되어 있다. 동작들은 임의의 순서로 수행될 수 있고, 동작들 중 임의의 동작은 하나 이상의 다른 동작과 동시에 수행될 수 있음에 유의할 수 있다. 일부 구현들에서, 동일하거나, 상이하거나, 더 적거나, 더 많은 수의 동작들이 임의의 순서로 수행될 수 있다. 도 2a는 전달의 변경이 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버를 변경하는 경우에 콘텐츠의 전달을 변경하기 위한 동작들을 예시한다.
동작(202)에서, 클라이언트 디바이스(110A)는 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122)에 콘텐츠를 획득하기 위한 요청을 전송한다. 일부 실시예들에서, 콘텐츠는 비디오 아이템을 포함한다. 예를 들어, 클라이언트 디바이스(110A)의 사용자는 콘텐츠 공유 플랫폼(120)에 의해 호스팅되는 비디오 아이템을 재생하도록 요청할 수 있다. 일부 실시예들에서, 사용자는 브라우저 또는 네이티브 애플리케이션(native application)과 같은 애플리케이션을 사용하여 콘텐츠 공유 플랫폼(120)으로부터 콘텐츠를 요청할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(110A)로부터 데이터 인가 서비스(122)로의 요청은 요청된 콘텐츠를 식별할 수 있다. 예를 들어, 요청은 요청된 콘텐츠를 식별하는 콘텐츠 식별자를 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(110A)로부터 데이터 인가 서비스(122)로의 요청은 수신될 데이터의 포맷을 포함할 수 있다. 예를 들어, 요청은 클라이언트 디바이스(110A)에서 미디어 뷰어(111)와 호환되는 비디오 아이템의 포맷을 포함할 수 있다. 일부 실시예들에서, 요청은 비디오 아이템과 같은 콘텐츠가 재생될 미디어 뷰어(111)에 관한 추가 정보(예를 들어, 모델 등)를 포함할 수 있다. 일부 실시예들에서, 요청은 콘텐츠를 획득하려고 시도하는 클라이언트 디바이스, 사용자 또는 사용자 계정의 식별자들을 포함할 수 있다. 예를 들어, 사용자 요청은 콘텐츠 획득을 요청하는 사용자 계정과 연관된 사용자 이름 및 비밀번호를 식별할 수 있다. 다른 예에서, 요청은 클라이언트 디바이스(110A) 또는 사용자 디바이스의 애플리케이션을 식별하는 쿠키를 포함할 수 있으며, 이는 특정 사용자 계정을 식별하는 데 사용될 수 있다.
동작(204)에서, 데이터 인가 서비스(122)는 요청을 인가할 수 있다. 요청을 인가하기 위해, 데이터 인가 서비스(122)는 클라이언트 디바이스(110A), 사용자 또는 사용자 계정 중 적어도 하나가 콘텐츠를 획득하도록 허가된다고 결정한다. 일부 실시예들에서, 요청은 콘텐츠 획득을 요청하는 사용자 계정의 계정 정보를 식별할 수 있다. 예를 들어, 계정 정보는 쿠키로 암호화될 수 있다. 다른 예에서, 계정 정보는 사용자에 의해 입력되고 요청에 제공될 수 있다. 일부 실시예들에서, 사용자 이름 및 비밀번호와 같은 계정 정보는 계정 정보(예를 들어, 수신된 사용자 이름 및 비밀번호)를 계정 정보의 저장된 레코드와 비교함으로써 데이터 인가 서비스(122)에 의해 인증(authenticate)될 수 있다. 요청의 계정 정보가 레코드의 계정 정보와 매칭되는 경우, 데이터 인가 서비스(122)는 특정 사용자 계정이 인증된다고 결정할 수 있다. 인증된 사용자 계정이 요청된 콘텐츠에 대한 액세스 권한(access privilege)들을 갖는 경우, 데이터 인가 서비스(122)는 요청된 콘텐츠를 획득하기 위해 사용자 계정을 인가할 수 있다. 예를 들어, 레코드는 특정 사용자 계정과 연관된 액세스 권한들을 식별할 수 있다. 사용자 계정이 요청된 콘텐츠에 대한 액세스 권한들을 가지고 있는 경우, 데이터 인가 서비스(122)가 요청을 인가할 수 있다.
일부 실시예들에서, 데이터 인가 서비스(122)는 요청을 인가하지 않는다. 예를 들어, 사용자 계정 정보는 인증될 수 있지만, 특정 사용자 계정은 요청된 콘텐츠에 대한 액세스 권한들을 갖지 않을 수 있다. 실시예들에서, 데이터 인가 서비스(122)가 콘텐츠를 획득하기 위한 요청을 인가하지 않는 경우, 데이터 인가 서비스(122)는 요청된 콘텐츠를 획득하기 위한 인가가 승인(grant)되지 않았음을 나타내는 메시지를 클라이언트 디바이스(110A)에 전송할 수 있다. 실시예에서, 데이터 인가 서비스(122)가 콘텐츠를 획득하기 위한 요청을 인가하지 않는 경우, 콘텐츠 공유 플랫폼(120)은 새로운 로그인 정보 또는 추가 정보를 요청하는 메시지를 클라이언트 디바이스(110A)에 전송할 수 있다.
실시예들에서, 데이터 인가 서비스(122)가 콘텐츠를 획득하기 위한 요청을 인가하는 경우, 데이터 인가 서비스(122)는 클라이언트 디바이스(110A)가 CDN으로부터 요청된 콘텐츠를 획득하도록 인가하기 위한 리소스 로케이터를 생성한다. 실시예들에서, 리소스 로케이터는 요청된 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 서버를 식별할 수 있다. 예를 들어, 리소스 로케이터는 요청된 콘텐츠를 획득하기 위해 액세스될 수 있는 특정 서버(예를 들어, 서버(112A))를 식별하는 호스트 이름을 포함할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(122)는 높은 보안 개인 키를 사용하여 높은 보안 디지털 서명을 생성하고, 낮은 보안 개인 키를 사용하여 낮은 보안 디지털 서명을 생성할 수 있다. 실시예들에서, 높은 보안 개인 키와 낮은 보안 개인 키는 상이한 개인 키들이다. 실시예들에서, 높은 보안 디지털 서명은 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스(110A)의 인가와 연관된다. 낮은 보안 디지털 서명은 클라이언트 디바이스로의 요청된 콘텐츠의 전달의 인가와 연관된다. 실시예들에서, 높은 보안 개인 키 및 낮은 보안 개인 키는 콘텐츠 공유 플랫폼(120)에 의해, 구체적으로는, 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122)에 의해 액세스 가능하다(이에 알려져 있다). 높은 보안 개인 키는 콘텐츠 배포 네트워크(101)에 의해 액세스 가능하지 않지만, 낮은 보안 개인 키는 콘텐츠 배포 네트워크(101)에 의해 액세스 가능하다. 실시예들에서, 낮은 보안 개인 키의 사본이 콘텐츠 공유 플랫폼(120)에 의해 콘텐츠 배포 네트워크(101)에 제공된다. 디지털 서명들의 생성은 도 3a와 관련하여 추가로 설명된다. 데이터 인가 서비스(122)에 의해 생성된 리소스 로케이터의 예는 도 4a와 관련하여 설명된다.
일부 실시예들에서, 리소스 로케이터는 낮은 보안 파라미터들 및 낮은 보안 파라미터들과 연관된 값들을 포함할 수 있다. 일부 실시예들에서, 낮은 보안 디지털 서명을 생성하기 위해, 낮은 보안 파라미터들과 연관된 값들이 연쇄(concatenate)될 수 있다. 해싱 알고리즘이 연쇄된 스트링에 적용되어 해시 값을 생성할 수 있다. 낮은 보안 개인 키는 낮은 보안 디지털 서명을 생성하기 위해 해시 값(예를 들어, 낮은 보안 해시 값)에 적용될 수 있다.
일부 실시예들에서, 리소스 로케이터는 높은 보안 파라미터들 및 높은 보안 파라미터들과 연관된 값들을 포함할 수 있다. 일부 실시예들에서, 높은 보안 디지털 서명을 생성하기 위해, 높은 보안 파라미터와 연관된 값들이 연쇄될 수 있다. 해싱 알고리즘이 연쇄된 스트링에 적용되어 해시 값을 생성할 수 있다. 높은 보안 개인 키는 높은 보안 디지털 서명을 생성하기 위해 해시 값(예를 들어, 높은 보안 해시 값)에 적용될 수 있다. 낮은 보안 파라미터들 및 높은 보안 파라미터들은 적어도 도 4a 내지 도 4c와 관련하여 추가로 설명된다.
동작(208)에서, 사용자 계정이 인가되는 경우, 데이터 인가 서비스(122)는 콘텐츠에 대한 요청(예를 들어, 동작(202))에 대한 응답을 클라이언트 디바이스(110A)에 전송한다. 일부 실시예들에서, 응답은 클라이언트 디바이스(110A)에 콘텐츠를 전달할 콘텐츠 배포 네트워크(101)의 서버(112A)를 식별하는 리소스 로케이터를 포함할 수 있다. 일부 실시예들에서, 리소스 로케이터는 또한 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스(110A)의 인가와 연관되는 높은 보안 디지털 서명, 및 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 전달의 인가와 연관되는 낮은 보안 디지털 서명을 포함할 수 있다. 일부 실시예들에서, 응답은 콘텐츠 식별자 또는 계정 정보 중 하나 이상을 포함할 수 있다. 일부 실시예들에서, 리소스 로케이터는 HTTP(HyperText Transfer Protocol) 응답에 포함될 수 있다.
동작(208)의 대안적인 실시예에서, 사용자 계정이 인가되는 경우, 데이터 인가 서비스(122)는 또한 콘텐츠에 대한 요청(예를 들어, 동작(202))에 대한 응답을 클라이언트 디바이스(110A)에 전송하지만, 응답은 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 서버(112A)를 식별하지 않는다. 실시예들에서, 응답은 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 포함한다. 일부 실시예들에서, 응답은 매니페스트 서버(manifest server)를 식별한다. 실시예들에서, 매니페스트 서버는 콘텐츠 배포 네트워크(101) 또는 콘텐츠 공유 플랫폼(120)의 일부이다. 클라이언트 디바이스(110A)는 매니페스트 서버를 식별하는 응답을 수신하고, 콘텐츠에 대한 또 다른 요청을 매니페스트 서버에 전송한다. 실시예들에서, 매니페스트 서버에 대한 콘텐츠 요청은 콘텐츠 식별자를 포함할 수 있다. 실시예들에서, 매니페스트 서버에 대한 콘텐츠 요청은 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 포함할 수 있다. 실시예들에서, 매니페스트 서버는 높은 보안 디지털 서명 또는 낮은 보안 디지털 서명 중 하나 이상을 검증할 수 있다. 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되는 경우, 매니페스트 서버는 리소스 로케이터(예를 들어, 매니페스트 파일)를 생성할 수 있다.
실시예들에서, 매니페스트 서버에 의해 생성된 리소스 로케이터는 동작(208)과 관련하여 위에서 설명된 리소스 로케이터와 동일하거나 유사할 수 있다. 예를 들어, 매니페스트 서버에 의해 생성된 리소스 로케이터는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 서버(112A)를 식별할 수 있다. 일부 실시예들에서, 리소스 로케이터는 또한 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스(110A)의 인가와 연관되는 높은 보안 디지털 서명, 및 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 전달의 인가와 연관되는 낮은 보안 디지털 서명을 포함할 수 있다. 리소스 로케이터를 생성할 때, 매니페스트 서버는 높은 보안 디지털 서명, 낮은 보안 디지털 서명 및 임의의 기타 관련 데이터(예를 들어, 높은 보안 파라미터들 및 값들 및 낮은 보안 파라미터들 및 값들)의 사본을 사용할 수 있으며, 리소스 로케이터에 정보의 사본을 포함할 수 있다. 매니페스트 서버에 의해 생성된 리소스 로케이터는 클라이언트 디바이스(110A)에 전송될 수 있다. 클라이언트 디바이스(110A)는 리소스 로케이터를 CDN의 서버(112A)와 같은 CDN에 전송한다(예를 들어, 동작(210)).
동작(210)에서, 클라이언트 디바이스(110A)는 데이터 인가 서비스(122)로부터 획득된 리소스 로케이터를 사용하여 콘텐츠를 요청한다. 예를 들어, 클라이언트 디바이스(110A)는 리소스 로케이터를 사용하여 HTTP 요청을 전송할 수 있다. 실시예들에서, 요청은 콘텐츠 배포 네트워크(101)의 서버(112A)와 같은 CDN에 전송될 수 있다. 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 클라이언트 디바이스(110A)로부터 요청을 수신한다. 요청은 위에서 설명된 리소스 로케이터를 포함한다. 일부 실시예들에서, 서버(112A)는 다운될 수 있고, 요청은 콘텐츠 배포 네트워크(101)의 다른 서버에 의해 수신된다. 예를 들어, 서버(112A) 이외의 다른 서버도 본 명세서에서 설명되는 동작들을 수행할 수 있다.
동작(212)에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 높은 보안 공개 키를 사용하여 높은 보안 디지털 서명을 검증하고, 낮은 보안 공개 키를 사용하여 낮은 보안 디지털 서명을 검증한다. 실시예들에서, 높은 보안 공개 키와 낮은 보안 공개 키는 상이한 공개 키들이다. 디지털 서명들의 검증은 도 3b와 관련하여 추가로 설명된다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 검증한다. 다른 실시예들에서는, 콘텐츠 배포 네트워크(101)의 다른 서버(예를 들어, 검증 서버)가 높은 보안 디지털 서명 및 낮은 보안 디지털 서명을 검증할 수 있다.
동작(214)에서, 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되는 경우, 콘텐츠 배포 네트워크(101)의 서버(112A)는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 수 있다. 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되지 않은 경우, 서버(112A)는 콘텐츠를 클라이언트 디바이스(110A)에 전달하지 않는다. 일부 실시예들에서, 서버(112A)는 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되었음에도 불구하고 콘텐츠를 클라이언트 디바이스(110A)에 전달할 수 없다. 예를 들어, 서버(112A)는 클라이언트 디바이스(110A)로의 콘텐츠의 전달을 시작하기 전에 (동작(216)에서 설명되는 바와 같이) 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별할 수 있다.
동작(216)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별한다. 일부 실시예들에서, 전달의 변경은 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버를 변경한다. 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버를 변경하는 전달의 변경이 도 2a와 관련하여 설명된다. 일부 실시예들에서, 전달의 변경은 콘텐츠 배포 네트워크(101)의 동일한 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경한다. 동일한 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경하는 전달의 변경이 도 2b와 관련하여 설명된다.
일부 실시예들에서, 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 것은 콘텐츠 배포 네트워크(101)의 다른 서버인 서버(112B)가 콘텐츠를 클라이언트 디바이스(110A)에 전달할 것이라고 결정하는 것을 포함한다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 서버(112A)가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 데 이용 가능하지 않다고(예를 들어, 콘텐츠에 대한 요청을 서빙할 수 없다고) 결정한다. 일부 실시예들에서는, 콘텐츠 배포 네트워크(101)의 다른 서버가 서버(112A)가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 데 이용 가능하지 않다고 결정한다. 서버(112A)가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 데 이용 가능하지 않다고 결정하는 것에 응답하여, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A) 또는 다른 서버)는 콘텐츠 배포 네트워크(101)의 서버(112B)와 같은 다른 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달할 것이라고 결정한다.
실시예들에서, 서버(112A)는 임의의 수의 이유들로 인해 콘텐츠를 클라이언트 디바이스(110A)에 전달하는데 이용 가능하지 않을 수 있다(예를 들어, 콘텐츠에 대한 요청을 서빙할 수 없다). 예를 들어, 서버(112A)는 서버가 과부하 상태에 가깝거나 과부하 상태에 있다고 결정할 수 있다. 과부하 상태는 서버(112A)의 하나 이상의 리소스가 거의 풀 가동 중이거나 풀 가동 중임을 나타낼 수 있다. 과부하 상태는 현재 계산 리소스 사용량, 현재 대역폭 사용량 또는 현재 서빙되는 콘텐츠 요청들의 수 중 하나 이상이 임계값을 초과하는지 여부를 결정하는 것을 포함하는 하나 이상의 팩터에 의해 결정될 수 있다. 서버(112A)가 과부하 상태에 가깝다고 결정하는 경우, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 클라이언트들을 콘텐츠 배포 네트워크(101)의 다른 서버들로 리디렉션할 수 있다. 다른 예에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 특정 서버(112A)로부터 콘텐츠를 서빙하는 것이 효율적이지 않다고 결정할 수 있다. 예를 들어, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 콘텐츠가 특정 서버(112A)에서 불충분하게 인기가 있고 콘텐츠가 더 큰 용량을 갖는 콘텐츠 배포 네트워크(101)의 다른 서버에 의해 서빙되는 경우에 더 효율적일 것이라고 결정할 수 있다. 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))가 특정 서버(112A)로부터 콘텐츠를 서빙하는 것이 효율적이지 않다고 결정하는 경우, 서버는 요청된 콘텐츠의 전달을 위해 클라이언트 디바이스(110A)를 콘텐츠 배포 네트워크(101)의 다른 서버들로 리디렉션할 수 있다.
동작(218)에서, 이벤트의 발생을 식별하는 것에 응답하여, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 생성한다. 일부 실시예들에서, 새로운 낮은 보안 디지털 서명은 개인 키를 사용하여 생성된다. 일부 실시예들에서, 낮은 보안 디지털 서명을 생성하기 위해 콘텐츠 배포 네트워크(101)에 의해 사용되는 개인 키는 데이터 인가 서비스(122)가 초기 낮은 보안 디지털 서명을 생성하는 데 사용한 낮은 보안 개인 키의 사본이다(예를 들어, 동작(206)).
일부 실시예들에서, 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 생성하기 위해, 콘텐츠 배포 네트워크(101)는 낮은 보안 파라미터들과 연관된 값들을 조정한다. 새로운 낮은 보안 디지털 서명은 낮은 보안 파라미터들과 연관된 조정된 값들 및 낮은 보안 개인 키를 사용하여 생성된다.
동작(220)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 새로운 리소스 로케이터를 생성한다. 위에서 언급된 바와 같이, 일부 실시예들에서, 전달의 변경은 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버를 변경한다. 일부 실시예들에서, 새로운 리소스 로케이터는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 다른 서버(예를 들어, 서버(112B))를 식별한다. 실시예들에서, 새로운 리소스 로케이터는 데이터 인가 서비스(122)에 의해 원래 생성된 높은 보안 디지털 서명 및 콘텐츠 배포 네트워크(101)에 의해 생성되는 새로운 낮은 보안 디지털 서명의 사본을 포함할 수 있다. 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버를 변경하는 전달의 변경을 결정하는 것에 응답하여 생성되는 새로운 리소스 로케이터의 예가 도 4b와 관련하여 추가로 설명된다.
동작(222)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 새로운 리소스 로케이터를 클라이언트 디바이스(110A)에 제공한다. 일부 실시예들에서, 새로운 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스(110A)의 인가와 연관된 높은 보안 디지털 서명, 및 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 포함한다. 일부 실시예들에서, 새로운 리소스 로케이터는 HTTP 리다이렉트 요청(redirect request)을 사용하여 전송될 수 있다. 일부 실시예들에서는, 매니페스트 서버가 동작(208)과 관련하여 설명된 바와 같이 동작(222)에서 유사한 방식으로 사용될 수 있다는 점에 유의할 수 있다.
동작(224)에서, 클라이언트 디바이스(110A)는 콘텐츠 배포 네트워크(101)로부터 획득된 새로운 리소스 로케이터를 사용하여 콘텐츠에 액세스하도록 요청한다. 위에서 언급된 바와 같이, 요청은 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 다른 서버인 서버(112B)를 식별한다. 실시예들에서, 클라이언트 디바이스(110A)는 새로운 리소스 로케이터를 포함하는 HTTP 요청을 전송할 수 있다. 요청은 콘텐츠 배포 네트워크(101)의 서버(112B)에 전송될 수 있다. 실시예들에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112B))는 클라이언트 디바이스(110A)로부터 요청을 수신한다. 요청은 본 명세서에서 설명된 바와 같이 새로운 리소스 로케이터를 포함한다.
동작(226)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112B))는 높은 보안 공개 키를 사용하여 높은 보안 디지털 서명을, 낮은 보안 공개 키를 사용하여 새로운 낮은 보안 디지털 서명을 검증한다. 디지털 서명의 유효성 검증은 도 3b와 관련하여 추가로 설명된다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112B)는 높은 보안 디지털 서명 또는 낮은 보안 디지털 서명 중 하나 이상을 검증한다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)의 다른 서버(예를 들어, 검증 서버)는 높은 보안 디지털 서명 또는 낮은 보안 디지털 서명 중 하나 이상을 검증할 수 있다.
동작(228)에서, 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되는 경우, 콘텐츠 배포 네트워크(101)의 서버(112B)는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 수 있다. 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되지 않은 경우, 서버(112B)는 콘텐츠를 클라이언트 디바이스(110A)에 전달하지 않는다.
일부 실시예들에서, 동작들의 일부 또는 그 이상이 반복될 수 있다. 예를 들어, 서버(112B)가 새로운 리소스 로케이터를 사용하여 콘텐츠에 대한 요청을 수신하는 것에 후속하여, 콘텐츠 배포 네트워크(101)는 요청된 콘텐츠의 전달의 다른 변경을 나타내는 이벤트의 발생을 식별할 수 있다. 콘텐츠 배포 네트워크(101)는 또 다른 낮은 보안 디지털 서명을 생성하고, 또 다른 리소스 로케이터 등을 생성할 수 있다. 본 명세서에서 설명되는 하나 이상의 동작은 반복될 수 있다.
도 2b는 본 개시내용의 실시예들에 따라 디지털 서명들을 사용하여 콘텐츠 배포 네트워크에 의해 클라이언트 디바이스로의 콘텐츠의 전달을 변경하기 위한 동작들의 다이어그램이다. 시스템(250)은 도 1 및 도 2a의 시스템 아키텍처(100)와 유사한 컴포넌트들을 포함할 수 있다. 도 1 및 도 2a의 컴포넌트들은 도 2b를 설명하는 것을 돕기 위해 사용될 수 있음에 유의할 수 있다. 제한이 아닌 예시의 목적들을 위해, 콘텐츠 공유 플랫폼(120)의 데이터 인가 서비스(122), 콘텐츠 배포 네트워크(101)의 서버 머신(112A), 또는 클라이언트 디바이스(110A)에 의해 수행되는 것으로 설명되는 시스템(250)과 관련된 동작들은 달리 설명되지 않는 한 이들의 임의의 컴포넌트에 의해 수행될 수 있다. 도 2b와 관련하여 설명되는 동작들은 제한이 아닌 예시를 위해 순차적으로 수행되는 것으로 도시되어 있다. 동작들은 임의의 순서로 수행될 수 있고, 동작들 중 임의의 동작은 하나 이상의 다른 동작과 동시에 수행될 수 있음에 유의할 수 있다. 일부 구현들에서, 동일하거나, 상이하거나, 더 적거나, 더 많은 수의 동작들이 임의의 순서로 수행될 수 있다.
도 2b는 전달의 변경이 동일한 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경하는 경우에 콘텐츠의 전달을 변경하기 위한 동작들을 예시한다. 도 2b에 예시되는 동작들 중 일부는 도 2a와 동일하다는 점에 유의할 수 있다. 명료함을 위해, 도 2a와 동일한 도 2b의 동작들은 다시 설명되지 않을 것이며, 도 2b의 동일한 동작들인 도 2a의 동작들에 대한 설명은 도 2b의 대응하는 동작들을 설명하는데 사용될 수 있다. 도 2a와 다른 도 2b와 관련된 동작들은 번호가 다시 매겨지고 도 2b와 관련하여 추가로 설명된다.
동작(252)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별한다. 일부 실시예들에서, 전달의 변경은 콘텐츠 배포 네트워크(101)의 동일한 서버(112A)가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경한다.
실시예들에서, 콘텐츠 배포 네트워크(101)는 서버(112A)에 의한 요청된 콘텐츠의 전달이 변경되어야 한다고 결정한다. 일부 실시예들에서, 서버(112A)에 의한 요청된 콘텐츠의 전달의 변경을 결정하는 것은, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))에 의해, 콘텐츠가 클라이언트 디바이스(110A)에 전달되어야 하는 비트 레이트의 변경을 결정하는 것을 포함한다. 예를 들어, 콘텐츠 배포 네트워크(101)는 클라이언트 디바이스(110A)에 의해 액세스되는 네트워크 연결에 대한 정보를 수신할 수 있다. 콘텐츠 배포 네트워크(101)는 클라이언트 디바이스(110A)가 임계 비트 레이트를 초과하는 특히 빠른 네트워크 연결 상에 있다고 결정할 수 있다. 네트워크 연결이 임계 비트 레이트를 초과하는 경우, 콘텐츠 배포 네트워크(101)는 콘텐츠가 클라이언트 디바이스(110A)에 전달되어야 하는 비트 레이트를 증가시킬 수 있다. 네트워크 연결이 임계 비트 레이트 미만인 경우, 콘텐츠 배포 네트워크(101)는 전달 비트 레이트를 동일하게 유지하거나 또는 전달 비트 레이트를 감소시킬 수 있다. 비트 레이트는 리소스 로케이터의 일부인 낮은 보안 파라미터들 중 하나일 수 있다는 점에 유의할 수 있다. 콘텐츠 배포 네트워크(101)는 낮은 보안 파라미터들(그러나, 높은 보안 파라미터들은 아님) 중 하나 이상을 변경할 수 있다는 점에 추가로 유의할 수 있다. 비트 레이트를 변경하는 것은 제한이 아닌 예시의 목적들을 위해 제공되며, 콘텐츠가 클라이언트 디바이스(110A)에 전달되는 방법의 변경의 예를 설명한다. 콘텐츠가 클라이언트 디바이스(110A)에 전달되는 방법들의 다른 가능한 예들은 해상도 변경들, 포맷 변경들 등을 포함하지만, 이에 제한되지 않는다.
동작(254)에서, 이벤트의 발생을 식별하는 것에 응답하여, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 생성한다. 일부 실시예들에서, 새로운 낮은 보안 디지털 서명은 개인 키를 사용하여 생성된다. 일부 실시예들에서, 낮은 보안 디지털 서명을 생성하기 위해 콘텐츠 배포 네트워크(101)에 의해 사용되는 개인 키는 데이터 인가 서비스(122)가 초기 낮은 보안 디지털 서명을 생성하는 데 사용한 낮은 보안 개인 키의 사본이다(예를 들어, 동작(206)).
일부 실시예들에서, 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 생성하기 위해, 콘텐츠 배포 네트워크(101)는 낮은 보안 파라미터들과 연관된 값들을 조정한다. 새로운 낮은 보안 디지털 서명은 낮은 보안 파라미터들과 연관된 조정된 값들 및 낮은 보안 개인 키를 사용하여 생성된다. 일부 실시예들에서, 콘텐츠가 클라이언트 디바이스(110A)에 전달되어야 하는 비트 레이트의 변경을 결정하는 것에 응답하여, 콘텐츠 배포 네트워크(101)는 동작(210)에서 수신된 리소스 로케이터의 낮은 보안 파라미터들의 비트 레이트 파라미터를 조정한다.
동작(256)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 새로운 리소스 로케이터를 생성한다. 일부 실시예들에서, 새로운 리소스 로케이터는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 동일한 서버(예를 들어, 서버(112A))를 식별한다. 실시예들에서, 새로운 리소스 로케이터는 데이터 인가 서비스(122)에 의해 원래 생성된 높은 보안 디지털 서명 및 콘텐츠 배포 네트워크(101)에 의해 생성되는 새로운 낮은 보안 디지털 서명의 사본을 포함할 수 있다. 콘텐츠 배포 네트워크(101)의 동일한 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경하는 전달의 변경을 결정하는 것에 응답하여 생성되는 새로운 리소스 로케이터의 예가 도 4c와 관련하여 추가로 설명된다.
동작(258)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 새로운 리소스 로케이터를 클라이언트 디바이스(110A)에 제공한다. 일부 실시예들에서, 새로운 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스(110A)의 인가와 연관된 높은 보안 디지털 서명, 및 클라이언트 디바이스(110A)에 의한 액세스를 위해 요청된 콘텐츠의 변경된 전달과 연관된 새로운 낮은 보안 디지털 서명을 포함한다. 일부 실시예들에서, 새로운 리소스 로케이터는 HTTP 자체-리다이렉트 요청(self-redirect request)을 사용하여 전송될 수 있다. 일부 실시예들에서는, 매니페스트 서버가 동작(208)과 관련하여 설명된 바와 같이 동작(258)에서 유사한 방식으로 사용될 수 있다는 점에 유의할 수 있다.
동작(260)에서, 클라이언트 디바이스(110A)는 콘텐츠 배포 네트워크(101)로부터 획득된 새로운 리소스 로케이터를 사용하여 콘텐츠에 액세스하도록 요청한다. 위에서 언급된 바와 같이, 요청은 콘텐츠를 클라이언트 디바이스(110A)에 전달할 콘텐츠 배포 네트워크(101)의 동일한 서버인 서버(112A)를 식별한다. 실시예들에서, 클라이언트 디바이스(110A)는 새로운 리소스 로케이터를 포함하는 HTTP 요청을 전송할 수 있다. 요청은 콘텐츠 배포 네트워크(101)의 서버(112A)에 전송될 수 있다. 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 클라이언트 디바이스(110A)로부터 요청을 수신한다. 요청은 본 명세서에서 설명되는 바와 같이 새로운 리소스 로케이터를 포함한다.
동작(262)에서, 콘텐츠 배포 네트워크(101)(예를 들어, 서버(112A))는 높은 보안 공개 키를 사용하여 높은 보안 디지털 서명을, 낮은 보안 공개 키를 사용하여 새로운 낮은 보안 디지털 서명을 검증한다. 디지털 서명들의 검증은 도 3b와 관련하여 추가로 설명된다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)의 서버(112A)는 높은 보안 디지털 서명 또는 낮은 보안 디지털 서명 중 하나 이상을 검증한다. 일부 실시예들에서는, 콘텐츠 배포 네트워크(101)의 다른 서버(예를 들어, 검증 서버)가 높은 보안 디지털 서명 또는 낮은 보안 디지털 서명 중 하나 이상을 검증할 수 있다.
동작(264)에서, 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되는 경우, 콘텐츠 배포 네트워크(101)의 서버(112A)는 콘텐츠를 클라이언트 디바이스(110A)에 전달할 수 있다. 높은 보안 디지털 서명 및 낮은 보안 디지털 서명이 검증되지 않은 경우, 서버(112A)는 콘텐츠를 클라이언트 디바이스(110A)에 전달하지 않는다.
일부 실시예들에서, 동작들의 일부 또는 그 이상이 반복될 수 있다. 예를 들어, 서버(112A)가 새로운 리소스 로케이터를 사용하여 콘텐츠에 대한 요청을 수신하는 것에 후속하여, 콘텐츠 배포 네트워크(101)는 요청된 콘텐츠의 전달의 다른 변경을 나타내는 이벤트의 발생을 식별할 수 있다. 콘텐츠 배포 네트워크(101)는 또 다른 낮은 보안 디지털 서명을 생성하고, 또 다른 리소스 로케이터를 생성하고, 기타 등등 마찬가지일 수 있다.
일부 실시예들에서, 전달의 변경은 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 콘텐츠 배포 네트워크(101)의 서버, 및 콘텐츠 배포 네트워크(101)의 상이한 서버가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경할 수 있다는 점에 유의할 수 있다. 낮은 보안 파라미터들(예를 들어, 비트 레이트 파라미터)의 값들의 변경들에 기초하여 새로운 낮은 보안 디지털 서명이 생성될 수 있다. 새로운 리소스 로케이터는 콘텐츠 배포 네트워크(101)의 새로운 서버(예를 들어, 서버(112B)), 및 콘텐츠의 전달이 변경되어야 하는 방법(예를 들어, 비트 레이트 증가)을 나타내는 낮은 보안 파라미터들의 값들을 식별할 수 있다. 새로운 리소스 로케이터의 높은 보안 디지털 서명 및 낮은 보안 디지털 서명의 검증은 본 명세서에서 설명되는 것과 유사할 수 있다.
도 3a는 본 개시내용의 실시예들에 따라 디지털 서명의 생성을 예시하는 다이어그램이다. 다이어그램(300)은 텍스트(302)를 도시한다. 텍스트(302)는 텍스트 스트링일 수 있다. 일부 실시예들에서, 텍스트 스트링은 낮은 보안 파라미터들과 연관된 연쇄된 값들을 포함할 수 있다. 일부 실시예들에서, 텍스트 스트링은 높은 보안 파라미터들과 연관된 연쇄된 값들을 포함할 수 있다. 일부 실시예들에서, 낮은 보안 파라미터들과 연관된 값들 또는 높은 보안 파라미터들과 연관된 값들은 연쇄 이전에 해시되어(예를 들어, 해싱 알고리즘을 적용하여), 텍스트 스트링이 낮은 보안 파라미터들 또는 높은 보안 파라미터들의 일련의 연쇄된 해시된 값들이 되도록 할 수 있다. 낮은 보안 디지털 서명 및 높은 보안 디지털 서명은 도 3a와 관련하여 설명된 것과 유사한 방식으로 생성될 수 있다는 점에 유의할 수 있다.
동작(304)에서, 해싱 알고리즘이 텍스트(302)에 적용되어 해시 값(306)을 생성할 수 있다. ECDS(Elliptic Curve Digital Signature) 알고리즘과 같은 임의의 수의 해시 알고리즘들이 사용될 수 있다.
동작(308)에서, 해시 값(306)은 개인 키를 사용하여 암호화되어 디지털 서명(310)을 생성할 수 있다. 개인 키는 일부 코드 또는 랜덤하게 생성된 숫자를 포함할 수 있다. 개인 키는 공개 키와 쌍을 이룬다. 공개 키는 개인 키로부터 도출될 수 있다. 개인 키(또는 공개 키)는 알고리즘들(예를 들어, 암호(cipher))과 함께 사용되어 텍스트 암호화(encryption) 또는 복호화(decryption)를 제공할 수 있다. 공개 키는 많은 사람들이 이용 가능하며, 온라인 디렉토리 상에서 이용 가능해질 수 있다. 개인 키는 암호화된 콘텐츠의 발신자 및 개인 키가 공유되는 엔티티들에 이용 가능해진다.
실시예들에서, 리소스 로케이터(312)는 디지털 서명(310)뿐만 아니라 디지털 서명(310)을 생성하는 데 사용된 텍스트(302)를 포함할 수 있다. 실시예들에서, 리소스 로케이터는 높은 보안 디지털 서명 및 낮은 보안 디지털 서명과 같은 2개의 디지털 서명을 포함할 수 있다. 단일 디지털 서명(310)의 생성은 제한이 아닌 예시의 목적들로 도시되어 있다. 도 3a와 관련하여 설명된 것과 유사한 동작들을 사용하여 높은 보안 디지털 서명, 낮은 보안 디지털 서명 또는 둘 다를 생성할 수 있다. 리소스 로케이터들은 도 4a 내지 도 4c와 관련하여 추가로 설명된다.
도 3b는 본 개시내용의 실시예들에 따라 디지털 서명의 검증을 예시하는 다이어그램이다. 디지털 서명을 검증하는 것은 리소스 로케이터의 콘텐츠와 같은 디지털 데이터의 진위(authenticity)를 확인하기 위한 동작이다. 디지털 서명을 검증하는 것은 디지털 데이터가 알려진 발신자에 의해 생성되었고(인증(authentication)), 발신자가 디지털 데이터를 전송한 것을 부인할 수 없으며(부인-방지(non-repudiation)), 디지털 데이터가 전송 중에 변경되지 않았다(무결성(integrity))는 것에 대한 보증들을 수신자에게 제공할 수 있다. 낮은 보안 디지털 서명 및 높은 보안 디지털 서명은 도 3b와 관련하여 설명된 것과 유사한 방식으로 검증될 수 있다는 점에 유의할 수 있다.
다이어그램(330)은 리소스 로케이터(312)를 도시한다. 리소스 로케이터는 텍스트(302) 및 디지털 서명(310)을 포함한다. 동작(304)에서, 해싱 알고리즘이 텍스트(302)에 적용되어 해시 값(336)을 생성할 수 있다. 해싱 알고리즘은 도 3a에서 예시된 바와 같은 디지털 서명을 생성하는 데 사용되는 것과 동일한 해싱 알고리즘일 수 있다.
동작(332)에서, 디지털 서명(310)은 공개 키를 사용하여 복호화되어 해시 값(334)을 생성할 수 있다. 공개 키는 도 3a에서 예시된 바와 같이 개인 키와 쌍을 이룰 수 있다.
동작(338)에서, 해시 값(336)과 해시 값(334)은 비교기에 의해 비교될 수 있다. 해시 값(336)과 해시 값(334)은 매칭되거나 또는 매칭되지 않는다. 동작(340)에서, 해시 값(336)과 해시 값(334)이 매칭되는 경우, 디지털 서명(310)은 검증된다. 해시 값(336)과 해시 값(334)이 매칭되지 않는 경우, 디지털 서명(310)은 검증되지 않는다. 단일 디지털 서명(310)의 검증은 제한이 아닌 예시의 목적들을 위해 도시되어 있다. 도 3b와 관련하여 설명된 것과 유사한 동작들을 사용하여 높은 보안 디지털 서명, 낮은 보안 디지털 서명 또는 둘 다를 검증할 수 있다.
도 4a 내지 도 4c는 본 개시내용의 실시예들에 따라 리소스 로케이터들을 예시하는 다이어그램들을 도시한다. 리소스 로케이터(400)는 데이터 인가 서비스(122)에 의해 생성될 수 있는 로케이터를 예시한다. 도 4a의 리소스 로케이터(400)는 하나 이상의 부분을 포함할 수 있다. 일부 실시예들에서, 리소스 로케이터(400)는 부분(402)을 포함한다. 부분(402)은 리소스 로케이터(400)의 프로토콜을 식별할 수 있다. 현재 예에서, 리소스 로케이터(400)의 프로토콜은 HTTPS(Hyper Text Transfer Protocol Secure)이다.
실시예들에서, 리소스 로케이터(400)는 도메인 이름을 나타내는 부분(404)을 포함한다. 일부 실시예들에서, 도메인 이름은 요청 디바이스(예를 들어, 클라이언트 디바이스(110A))에 콘텐츠를 전달할 특정 서버(예를 들어, 콘텐츠 배포 네트워크(101)의 서버(112A))를 식별할 수 있다. 현재 예에서, 부분(404)에 나타내어지는 디바이스는 콘텐츠 배포 네트워크(101)의 서버(112A)이다.
일부 실시예들에서, 리소스 로케이터(400)는 높은 보안 파라미터들 및 높은 보안 파라미터의 값들을 식별하는 부분(406)을 포함한다. 현재 예에서, 부분(406)은 Value 1과 연관되는 높은 보안 파라미터 A, Value 2와 연관되는 높은 보안 파라미터 B 등을 도시한다. 일부 실시예들에서, 부분(406)은 낮은 보안 파라미터들 및 낮은 보안 파라미터들의 값들을 식별한다. 현재 예에서, 부분(406)은 Value 4와 연관되는 낮은 보안 파라미터 X, Value 5와 연관되는 낮은 보안 파라미터 Y 등을 도시한다. 일부 실시예들에서, 높은 보안 파라미터들, 낮은 보안 파라미터들, 또는 둘 다와 연관된 값들은 파라미터들과 연관된 비-해싱된 값들에 해싱 함수를 적용함으로써 생성된 해싱된 값들이다. 일부 실시예들에서, 높은 보안 파라미터들은 낮은 보안 파라미터들과 상이하다.
일부 실시예들에서, 리소스 로케이터(400)는 리소스 로케이터(400)에서 식별된 높은 보안 디지털 서명의 생성에 포함된 높은 보안 파라미터들을 식별하는 부분(408)을 포함한다. 일부 실시예들에서, 부분(408)은 높은 보안 디지털 서명의 생성에 사용된 높은 보안 파라미터들의 시퀀스를 식별한다. 현재 예에서는, 높은 보안 파라미터들 A, B 등이 높은 보안 디지털 서명을 생성하는 데 사용되었다. 시퀀스는 높은 보안 파라미터 A 다음에 높은 보안 파라미터 B가 오는 식 등등이다. 일부 예들에서는, 높은 보안 파라미터들 A, B 등을 사용하여 높은 보안 디지털 서명을 생성하기 위해, 높은 보안 파라미터들과 연관된 값들이 연쇄된다. 높은 보안 파라미터들 A, B 등의 값들은 부분(408)의 높은 보안 파라미터들에 의해 식별된 순서로 연쇄될 수 있다. 예를 들어, Value A는 Value B와 연쇄될 수 있고, Value B는 부분(408)에서 식별된 높은 보안 파라미터들의 시퀀스에서 다음 높은 보안 파라미터와 연관된 다른 값과 연쇄될 수 있다.
일부 실시예들에서, 리소스 로케이터(400)는 높은 보안 디지털 서명인 부분(410)을 포함한다. 현재 예에서, 높은 보안 디지털 서명은 리소스 로케이터(400)의 부분(406) 및 부분(408)에 의해 식별된 바와 같은 높은 보안 파라미터들에 기초하여 생성된 높은 보안 디지털 서명 #1로서 도시된다. 일부 실시예들에서, 콘텐츠 공유 플랫폼(120)은 높은 보안 디지털 서명을 생성한다.
일부 실시예들에서, 리소스 로케이터(400)는 낮은 보안 디지털 서명의 생성에 포함된 낮은 보안 파라미터들을 식별하는 부분(412)을 포함한다. 일부 실시예들에서, 부분(412)은 낮은 보안 디지털 서명의 생성에 사용된 낮은 보안 파라미터들의 시퀀스를 식별한다. 현재 예에서, 낮은 보안 파라미터들 X, Y 등은 낮은 보안 디지털 서명을 생성하는 데 사용되었다. 시퀀스는 낮은 보안 파라미터 X 다음에 낮은 보안 파라미터 Y가 오는 식 등등이다. 낮은 보안 디지털 서명의 생성은 높은 보안 디지털 서명의 생성과 관련하여 위에서 설명된 바와 유사하다.
일부 실시예들에서, 리소스 로케이터(400)는 낮은 보안 디지털 서명인 부분(414)을 포함한다. 현재 예에서, 낮은 보안 디지털 서명은 리소스 로케이터(400)의 부분(406) 및 부분(412)에 의해 식별된 바와 같은 낮은 보안 파라미터들에 기초하여 생성된 낮은 보안 디지털 서명 #2로서 도시된다. 리소스 로케이터(400)의 낮은 보안 디지털 서명은 콘텐츠 공유 플랫폼(120)에 의해 생성되었다.
도 4b의 리소스 로케이터(430)는 하나 이상의 부분을 포함할 수 있다. 일부 실시예들에서, 리소스 로케이터(430)는 콘텐츠 배포 네트워크(101)에 의해 생성되는 리소스 로케이터를 예시할 수 있다. 일부 실시예들에서, 리소스 로케이터(430)는 콘텐츠 배포 네트워크(101)가 콘텐츠 배포 네트워크(101)의 서버(112A)로부터 서버(112B)로 클라이언트 디바이스(110A)로의 콘텐츠의 전달을 변경하기 위해 생성하는 리소스 로케이터를 표현할 수 있다. 리소스 로케이터(430)의 많은 부분들의 콘텐츠는 리소스 로케이터(400)와 유사하다는 점에 유의할 수 있다. 리소스 로케이터(400)와 동일한 콘텐츠를 갖는 리소스 로케이터(430)의 부분들은 동일한 식별 번호들을 갖고 도 4a와 관련하여 위에서 설명된다는 점에 추가로 유의할 수 있다. 명료함을 위해, 새로운 콘텐츠를 갖는 리소스 로케이터(430)의 부분들이 도 4b와 관련하여 설명된다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)는 새로운 리소스 로케이터(430)를 생성하기 위해 리소스 로케이터(400)의 부분들 중 일부의 것의 콘텐츠 중 일부를 변경한다. 변경된 콘텐츠는 명료함을 위해 굵게 표시된다.
실시예들에서, 리소스 로케이터(430)는 리소스 로케이터(400)의 부분(404)과 유사한 부분(434)을 포함한다. 부분(434)은 리소스 로케이터(430)의 도메인 이름을 나타낸다. 일부 실시예들에서, 도메인 이름은 클라이언트 디바이스(110A)와 같은 요청 디바이스에 콘텐츠를 전달할 특정 서버, 예를 들어, 서버(112B)를 식별할 수 있다. 현재 예에서, 부분(434)에 나타내어지는 서버는 콘텐츠 배포 네트워크(101)의 서버(112B)이다. 예시된 바와 같이, 콘텐츠 배포 네트워크(101)는 콘텐츠를 전달할 서버를 콘텐츠 배포 네트워크(101)의 서버(112A)(부분(404) 참조)로부터 서버(112B)로 변경하였다.
일부 실시예들에서, 리소스 로케이터는 리소스 로케이터(400)의 부분(406)과 유사한 부분(436)을 포함한다. 부분(436)은 높은 보안 파라미터들 및 높은 보안 파라미터들의 값들을 식별한다. 현재 예에서, 부분(436)은 Value 1과 연관되는 높은 보안 파라미터 A, Value 2와 연관되는 높은 보안 파라미터 B 등을 도시한다. 높은 보안 파라미터들 및 값들은 리소스 로케이터(400)로부터 리소스 로케이터(430)로 변경되지 않았다. 실시예들에서, 콘텐츠 배포 네트워크(101)는 높은 보안 디지털 서명을 변경할 권한(authority)을 갖지 않고, 높은 보안 파라미터들 및 높은 보안 파라미터들의 연관된 값들을 변경하지 않는다. 예를 들어, 콘텐츠 배포 네트워크(101)가 높은 보안 파라미터들의 값들을 변경한 경우, 콘텐츠 배포 네트워크(101)는 새로운 높은 보안 디지털 서명을 생성하기 위한 개인 키를 갖지 않을 것이며, 따라서, 높은 보안 파라미터들에 대한 새로운 값들을 갖는 임의의 리소스 로케이터는 콘텐츠 배포 네트워크(101)에 의해 검증되지 않을 수 있다.
일부 실시예들에서, 부분(436)은 낮은 보안 파라미터들 및 낮은 보안 파라미터들의 값들을 식별한다. 현재 예에서, 부분(436)은 Value 6과 연관되는 낮은 보안 파라미터 X, Value 7과 연관되는 낮은 보안 파라미터 Y 등을 도시한다. 콘텐츠 배포 네트워크(101)는 낮은 보안 파라미터들 중 하나 이상의 것의 값들을 변경하였다.
일부 실시예들에서, 리소스 로케이터(430)는 리소스 로케이터(400)의 부분(414)과 유사한 부분(444)을 포함한다. 부분(444)은 낮은 보안 디지털 서명이다. 현재 예에서, 낮은 보안 디지털 서명은 낮은 보안 디지털 서명 #3으로서 도시된다. 낮은 보안 디지털 서명은 리소스 로케이터(430)의 부분(436) 및 부분(412)에 의해 식별된 바와 같은 낮은 보안 파라미터들에 기초하여 생성된다. 예를 들어, 부분(436)의 낮은 보안 파라미터들의 새로운 값들은 본 명세서에서 설명된 바와 같이 낮은 보안 디지털 서명을 생성하는 데 사용된다. 실시예들에서, 콘텐츠 배포 네트워크(101)는 새로운 낮은 보안 디지털 서명을 생성하였다.
도 4c의 리소스 로케이터(460)는 하나 이상의 부분을 포함할 수 있다. 일부 실시예들에서, 리소스 로케이터(460)는 콘텐츠 배포 네트워크(101)에 의해 생성되는 리소스 로케이터를 예시할 수 있다. 일부 실시예들에서, 리소스 로케이터(460)는 콘텐츠 배포 네트워크(101)가 동일한 서버(예를 들어, 서버(112A))가 콘텐츠를 클라이언트 디바이스(110A)에 전달하는 방법을 변경하기 위해 생성하는 리소스 로케이터를 표현할 수 있다. 리소스 로케이터(460)의 많은 부분들의 콘텐츠는 리소스 로케이터(400)와 유사하다는 점에 유의할 수 있다. 리소스 로케이터(400)와 동일한 콘텐츠를 갖는 리소스 로케이터(460)의 부분들은 동일한 식별 번호들을 갖고 도 4a와 관련하여 위에서 설명된다는 점에 추가로 유의할 수 있다. 명료함을 위해, 새로운 콘텐츠를 갖는 리소스 로케이터(460)의 부분들이 도 4c와 관련하여 설명된다. 일부 실시예들에서, 콘텐츠 배포 네트워크(101)는 새로운 리소스 로케이터(460)를 생성하기 위해 리소스 로케이터(400)의 부분들 중 일부의 것의 콘텐츠 중 일부를 변경한다. 변경된 콘텐츠는 명료함을 위해 굵게 표시된다.
일부 실시예들에서, 리소스 로케이터(460)는 리소스 로케이터(400)의 부분(406)과 유사한 부분(466)을 포함한다. 부분(466)은 높은 보안 파라미터들 및 높은 보안 파라미터들의 값들을 식별한다. 현재 예에서, 부분(466)은 Value 1과 연관되는 높은 보안 파라미터 A, Value 2와 연관되는 높은 보안 파라미터 B 등을 도시한다. 높은 보안 파라미터들 및 값들은 리소스 로케이터(400)로부터 리소스 로케이터(460)로 변경되지 않았다. 실시예들에서, 콘텐츠 배포 네트워크(101)는 높은 보안 디지털 서명을 변경할 권한을 갖지 않고, 높은 보안 파라미터들 및 높은 보안 파라미터들의 연관된 값들을 변경하지 않는다.
일부 실시예들에서, 부분(466)은 낮은 보안 파라미터들 및 낮은 보안 파라미터들의 값들을 식별한다. 현재 예에서, 부분(466)은 Value 8과 연관되는 낮은 보안 파라미터 X, Value 9와 연관되는 낮은 보안 파라미터 Y 등을 도시한다. 콘텐츠 배포 네트워크(101)는 낮은 보안 파라미터들 중 하나 이상의 것의 값들을 변경하였다. 낮은 보안 파라미터들의 값들은 요청된 콘텐츠의 전달이 변경되는 방법을 반영하도록 변경되었다.
일부 실시예들에서, 리소스 로케이터(460)는 리소스 로케이터(400)의 부분(414)과 유사한 부분(474)을 포함한다. 부분(474)은 낮은 보안 디지털 서명이다. 현재 예에서, 낮은 보안 디지털 서명은 낮은 보안 디지털 서명 #4로서 도시된다. 낮은 보안 디지털 서명 #4는 리소스 로케이터(460)의 부분(466) 및 부분(412)에 의해 식별되는 낮은 보안 파라미터들을 사용하여 생성된다. 예를 들어, 부분(466)의 낮은 보안 파라미터들의 새로운 값들은 본 명세서에서 설명되는 바와 같이 낮은 보안 디지털 서명(예를 들어, 낮은 보안 디지털 서명 #4)을 생성하는 데 사용된다.
도 5는 본 개시내용의 실시예들에 따라 콘텐츠 배포 네트워크에 의해 전달되는 콘텐츠의 전달을 변경하기 위한 방법(500)의 흐름도를 도시한다. 방법은 하드웨어(회로망, 전용 로직 등), 소프트웨어(예를 들어, 프로세싱 디바이스 상에서 실행되는 명령어들), 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. 일부 실시예들에서, 방법(500)의 일부 또는 모든 동작들은 도 1의 시스템(100)의 하나 이상의 컴포넌트에 의해 수행될 수 있다. 다른 실시예들에서, 방법(500)의 하나 이상의 동작은 도 1 및 도 2와 관련하여 설명된 바와 같이 콘텐츠 배포 네트워크(101)의 인가 모듈에 의해 수행될 수 있다. 도 1 및 도 2와 관련하여 설명된 컴포넌트들은 도 5의 양태들을 예시하는 데 사용될 수 있다는 점에 유의할 수 있다.
블록(502)에서, 방법(500)을 구현하는 프로세싱 로직은 클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신한다. 실시예들에서, 콘텐츠에 대한 요청은 콘텐츠 배포 네트워크(101)의 제1 서버에 의해 수신된다. 실시예들에서, 제1 요청은 클라이언트 디바이스가 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스(122)에 의해 제공되는 리소스 로케이터를 포함한다. 실시예들에서, 리소스 로케이터는 요청된 콘텐츠를 클라이언트 디바이스에 전달하기 위해 제1 서버를 식별한다. 실시예들에서, 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명(예를 들어, 높은 보안 디지털 서명) 및 클라이언트 디바이스에 의한 액세스르 위해 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명(예를 들어, 낮은 보안 디지털 서명)을 포함한다. 일부 실시예들에서, 요청된 콘텐츠는 비디오 아이템을 포함한다.
일부 실시예들에서, 제1 디지털 서명은 제1 개인 키(예를 들어, 높은 보안 개인 키)로부터 데이터 인가 서비스(122)에 의해 생성되고, 제2 디지털 서명은 제2 개인 키(예를 들어, 낮은 보안 개인 키)로부터 데이터 인가 서비스(122)에 의해 생성된다. 제1 개인 키와 제2 개인 키는 상이한 개인 키들이다. 실시예들에서, 제1 개인 키 및 제2 개인 키는 데이터 인가 서비스(122)에 의해 액세스 가능하다. 실시예들에서, 제2 개인 키는 콘텐츠 배포 네트워크(101)에 의해 액세스 가능하지만, 제1 개인 키는 액세스 가능하지 않다.
일부 실시예들에서, 제1 요청은 제1 디지털 서명과 연관된 제1 파라미터들(예를 들어, 높은 보안 파라미터들) 및 제2 디지털 서명과 연관된 제2 파라미터들(예를 들어, 낮은 보안 파라미터들)을 포함한다. 제1 디지털 서명은 제1 파라미터들에 기초하여 생성되고, 제2 디지털 서명은 제2 파라미터들에 기초하여 생성된다.
일부 실시예들에서, 클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신하는 것에 응답하여, 프로세싱 로직은 제1 요청과 연관된 제1 디지털 서명 및 제2 디지털 서명을 검증한다. 제1 디지털 서명 및 제2 디지털 서명을 검증하는 것에 응답하여, 프로세싱 로직은 사용자에 의한 소비를 위해 콘텐츠 배포 네트워크(101)의 제1 서버로부터 클라이언트 디바이스로 콘텐츠를 전달한다.
블록(504)에서, 프로세싱 로직은 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별한다.
일부 실시예들에서, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하기 위해, 프로세싱 로직은 콘텐츠 배포 네트워크(101)의 제2 서버가 콘텐츠를 클라이언트 디바이스에 전달할 것이라고 결정한다. 일부 실시예들에서, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달 변경을 나타내는 이벤트의 발생을 식별하기 위해, 프로세싱 로직은 콘텐츠 배포 네트워크(101)의 제1 서버가 콘텐츠를 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정한다. 제2 서버가 콘텐츠를 클라이언트 디바이스에 전달할 것이라고 결정하는 동작은 제1 서버가 콘텐츠를 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 동작에 응답한다.
일부 실시예들에서, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하기 위해, 프로세싱 로직은 제1 서버에 의한 요청된 콘텐츠의 전달이 변경되어야 한다고 결정한다. 실시예들에서, 제1 서버에 의한 요청된 콘텐츠의 전달이 변경되어야 한다고 결정하기 위해, 프로세싱 로직은 콘텐츠가 클라이언트 디바이스에 전달되어야 하는 비트 레이트의 변경을 결정한다. 콘텐츠가 클라이언트 디바이스에 전달되어야 하는 비트 레이트의 변경을 결정하는 것에 응답하여, 프로세싱 로직은 제2 파라미터들(예를 들어, 낮은 보안 파라미터들)의 비트 레이트 파라미터를 조정한다.
동작(506)에서, 이벤트의 발생을 식별하는 것에 응답하여, 프로세싱 로직은 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경과 연관된 제3 디지털 서명(예를 들어, 새로운 낮은 보안 디지털 서명)을 생성한다. 실시예들에서, 클라이언트 디바이스에 의한 액세스를 위해 요청된 콘텐츠의 전달의 변경과 연관된 제3 디지털 서명을 생성하기 위해, 프로세싱 로직은 제2 파라미터들(예를 들어, 낮은 보안 파라미터들)과 연관된 값들을 조정한다. 제3 디지털 서명은 제2 파라미터들과 연관된 조정된 값들 및 제2 개인 키를 사용하여 콘텐츠 배포 네트워크(101)에 의해 생성된다.
동작(508)에서, 프로세싱 로직은 새로운 리소스 로케이터를 클라이언트 디바이스에 제공한다. 실시예들에서, 새로운 리소스 로케이터는 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명(예를 들어, 데이터 인가 서비스(122)로부터 수신됨) 및 클라이언트 디바이스에 의한 액세스를 위한 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함한다.
동작(510)에서, 프로세싱 로직은 클라이언트 디바이스로부터 콘텐츠에 대한 다른 요청(예를 들어, 제2 요청 또는 제3 요청)을 수신한다. 요청은 콘텐츠 배포 네트워크(101)에 의해 생성된 새로운 리소스 로케이터를 포함한다. 새로운 리소스 로케이터는 제1 디지털 서명 및 제3 디지털 서명(예를 들어, 새로운 낮은 보안 디지털 서명)을 포함한다. 일부 실시예들에서, 요청(예를 들어, 제2 요청)은 상이한 서버가 콘텐츠를 클라이언트 디바이스(110)에 전달할 것을 요청할 수 있다. 일부 실시예들에서, 요청(예를 들어, 제3 요청)은 동일한 서버가 콘텐츠를 클라이언트 디바이스에 전달할 것을 요청할 수 있지만, 콘텐츠가 클라이언트 디바이스에 전달되는 방법(예를 들어, 방식)에 대한 변경을 요청할 수 있다. 다른 실시예들에서, 요청은 상이한 서버가 콘텐츠를 클라이언트 디바이스에 전달할 것을 요청하고, 콘텐츠가 클라이언트 디바이스에 전달되는 방법에 대한 변경을 요청한다.
동작(512)에서, 프로세싱 로직은 요청과 연관된 제1 디지털 서명 및 제3 디지털 서명을 검증한다.
동작(514)에서, 제1 디지털 서명 및 제3 디지털 서명을 검증하는 것에 응답하여, 프로세싱 로직은 콘텐츠를 클라이언트 디바이스에 전달한다. 실시예들에서, 새로운 리소스 로케이터가 새로운 서버를 식별하는 경우, 프로세싱 로직은 사용자에 의한 소비를 위해 콘텐츠 배포 네트워크(101)의 새로운 서버로부터 클라이언트 디바이스로 콘텐츠를 전달한다. 실시예들에서, 새로운 리소스 로케이터가 동일한 서버를 식별하지만, 콘텐츠가 클라이언트 디바이스에 전달되는 방법을 변경하는 경우, 프로세싱 로직은 새로운 리소스 로케이터에 의해 설명된 방식으로 콘텐츠 배포 네트워크(101)의 제1 서버로부터의 콘텐츠의 전달을 변경한다.
도 6은 본 개시내용의 실시예에 따라 예시적인 컴퓨터 시스템(600)을 예시하는 블록도이다. 컴퓨터 시스템(600)은 머신으로 하여금 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하게 하는 하나 이상의 명령어 세트를 실행한다. 명령어 세트, 명령어들 등은, 컴퓨터 시스템(600)을 실행할 때, 컴퓨터 시스템(600)으로 하여금 인가 모듈(151)의 하나 이상의 동작을 수행하게 하는 명령어들을 지칭할 수 있다. 머신은 클라이언트-서버 네트워크 환경에서는 서버 또는 클라이언트 디바이스의 용량으로, 또는 피어-투-피어(또는 분산) 네트워크 환경에서는 피어 머신으로서 동작할 수 있다. 머신은 개인용 컴퓨터(personal computer)(PC), 태블릿 PC, 셋톱 박스(set-top box)(STB), 개인 휴대 정보 단말기(personal digital assistant)(PDA), 휴대 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 머신에 의해 취해질 액션들을 지정하는 명령어 세트를 (순차적으로든 또는 다른 방식으로든) 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신만이 예시되어 있지만, "머신"이라는 용어는 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위해 명령어 세트들을 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합도 포함하는 것으로 간주되어야 한다.
컴퓨터 시스템(600)은 프로세싱 디바이스(602), 메인 메모리(604)(예를 들어, 판독 전용 메모리(read-only memory)(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM), 예를 들어, 동기식 DRAM(synchronous DRAM)(SDRAM) 또는 램버스 DRAM(Rambus DRAM)(RDRAM) 등), 정적 메모리(606)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(static random access memory)(SRAM) 등) 및 데이터 스토리지 디바이스(616)를 포함하며, 이들은 버스(608)를 통해 서로 통신한다.
프로세싱 디바이스(602)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 범용 프로세싱 디바이스를 나타낸다. 보다 구체적으로, 프로세싱 디바이스(602)는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세싱 디바이스 또는 명령어 세트들의 조합을 구현하는 프로세싱 디바이스일 수 있다. 프로세싱 디바이스(602)는 또한 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그램 가능 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 프로세싱 디바이스일 수 있다. 프로세싱 디바이스(602)는 본 명세서에서 논의된 동작들을 수행하기 위한 시스템 아키텍처(100) 및 인가 모듈(151)의 명령어들을 실행하도록 구성된다.
컴퓨터 시스템(600)은 근거리 통신망(local area network)(LAN), 인트라넷, 엑스트라넷, 또는 인터넷과 같은 네트워크(618)를 통해 다른 머신들과의 통신을 제공하는 네트워크 인터페이스 디바이스(622)를 추가로 포함할 수 있다. 컴퓨터 시스템(600)은 또한 디스플레이 디바이스(610)(예를 들어, 액정 디스플레이(liquid crystal display)(LCD) 또는 음극선관(cathode ray tube)(CRT)), 영숫자 입력 디바이스(612)(예를 들어, 키보드), 커서 제어 디바이스(614)(예를 들어, 마우스) 및 신호 생성 디바이스(620)(예를 들어, 스피커)를 포함할 수도 있다.
데이터 스토리지 디바이스(616)는 시스템 아키텍처(100) 또는 본 명세서에서 설명된 방법론들 또는 기능들 중 임의의 하나 이상을 구체화하는 인가 모듈(151)의 명령어 세트들이 저장되는 비-일시적 컴퓨터 판독 가능 저장 매체(624)를 포함할 수 있다. 시스템 아키텍처(100) 또는 인가 모듈(151)의 명령어 세트들은 또한 컴퓨터 시스템(600), 메인 메모리(604) 및 컴퓨터 판독 가능 저장 매체를 구성하는 프로세싱 디바이스(602)에 의한 그 실행 동안 메인 메모리(604) 및/또는 프로세싱 디바이스(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 명령어 세트들은 네트워크 인터페이스 디바이스(622)를 통해 네트워크(618)를 통해 추가로 송신 또는 수신될 수 있다.
컴퓨터 판독 가능 저장 매체(624)의 예가 단일 매체로서 도시되어 있지만, "컴퓨터 판독 가능 저장 매체"라는 용어는 명령어 세트들을 저장하는 단일 매체 또는 다수의 매체(예를 들어, 중앙 집중식 또는 분산 데이터베이스, 및/또는 연관된 캐시들 및 서버들)를 포함할 수 있다. "컴퓨터 판독 가능 저장 매체"라는 용어는 머신에 의한 실행을 위한 명령어 세트를 저장, 인코딩 또는 운반할 수 있고 머신으로 하여금 본 개시내용의 방법론들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함할 수 있다. "컴퓨터 판독 가능 저장 매체"라는 용어는 솔리드 스테이트 메모리, 광학 매체 및 자기 매체를 포함할 수 있지만, 이에 제한되지 않는다.
전술한 설명에서, 많은 세부사항들이 설명된다. 그러나, 본 개시내용의 이점을 갖는 본 기술분야의 통상의 기술자에게, 본 개시내용이 이러한 특정 세부사항 들없이 실시될 수 있음이 명백할 것이다. 일부 경우들에서는, 본 개시내용을 모호하게 하는 것을 피하기 위해 잘 알려진 구조들 및 디바이스들이 상세하기보다는 블록도 형태로 도시된다.
상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트에 대한 연산들의 알고리즘들 및 심볼 표현들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 데이터 프로세싱 기술 분야의 통상의 기술자에 의해 자신의 작업 내용을 기술 분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 사용되는 수단이다. 알고리즘은 본 명세서에서 일반적으로 원하는 결과로 이어지는 동작들의 자체-일관된 시퀀스로 간주된다. 동작들은 물리량들의 물리적 조작들을 필요로 하는 것들이다. 대개, 반드시 그런 것은 아니지만, 이러한 양들은 저장, 전송, 결합, 비교 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 주로 일반적인 사용을 이유로, 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때때로 편리한 것으로 입증되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 수량들과 연관되어야 하고 단지 이러한 수량들에 적용되는 편리한 라벨들일 뿐이라는 것을 염두에 둘 수 있다. 달리 구체적으로 언급되지 않는 한, 설명 전체에서 "생성", "제공", "조정", "수신", "취소" 등과 같은 용어들을 활용하는 논의들은 컴퓨터 시스템 메모리들 또는 레지스터들 내에서 물리적(예를 들어, 전자) 수량들로서 표현되는 데이터를 조작하고 컴퓨터 시스템 메모리들 또는 레지스터들 또는 기타 이러한 정보 스토리지, 송신 또는 디스플레이 디바이스들 내에서 물리적 수량들로서 유사하게 표현되는 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션들 및 프로세스들을 지칭한다는 것이 이해될 수 있다.
본 개시내용은 또한 본 명세서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 요구되는 목적들에 따라 구체적으로 구성되거나, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 플로피 디스크, 광학 디스크, 콤팩트 디스크 판독 전용 메모리(compact disc read-only memory)(CD-ROM), 자기-광 디스크, 판독 전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random access memory)(RAM), 소거 가능한 프로그래밍 가능한 판독 전용 메모리(erasable programmable read-only memory)(EPROM), 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 자기 또는 광학 카드, 또는 전자 명령어들을 저장하기에 적절한 임의의 타입의 매체를 포함하는 임의의 타입의 디스크와 같되, 이에 제한되지 않는 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
"예시" 또는 "예시적인"이라는 단어들은 본 명세서에서 예, 사례 또는 예시로서 역할하는 것을 의미하기 위해 사용된다. 본 명세서에서 "예시" 또는 "예시적인"으로서 설명된 임의의 양태 또는 설계는 다른 양태들 또는 설계들에 비해 선호되거나 유리한 것으로 해석되어서는 안 된다. 오히려, "예시" 또는 "예시적인"이라는 단어들의 사용은 개념들을 구체적인 방식으로 제시하도록 의도된다. 본 출원에서 사용된 바와 같이, "또는"이라는 용어는 배타적인 "또는"이 아니라 포괄적인 "또는"을 의미하도록 의도된다. 즉, 달리 명시되지 않거나 문맥상 명확하지 않는 한, "X는 A 또는 B를 포함한다"는 자연적인 포함 순열들 중 임의의 것을 의미하도록 의도된다. 즉, X가 A를 포함하는 경우; X가 B를 포함하는 경우; 또는 X가 A와 B를 모두 포함하는 경우, "X는 A 또는 B를 포함한다"가 전술한 사례들 중 임의의 것 하에서 충족된다. 또한, 본 출원 및 첨부된 청구범위에서 사용된 관사들("a" 및 "an")은 달리 명시되지 않거나 문맥상 단수 형태로 지시되지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석될 수 있다. 또한, 전반에 걸쳐 "실시예" 또는 "일 실시예" 또는 "구현" 또는 "일 구현"이라는 용어의 사용은 동일한 실시예 또는 구현과 같이 기술되지 않는 한 이를 의미하도록 의도되지 않는다. 본 명세서에서 사용된 용어 "제1", "제2", "제3", "제4" 등의 용어들은 상이한 요소들을 구별하기 위한 라벨들로서 의미되며, 그들의 숫자 지정에 따라 반드시 서수적 의미를 갖지 않을 수 있다.
설명의 단순함을 위해, 본 명세서의 방법들은 일련의 액트(act)들 또는 동작들로서 도시되고 설명된다. 그러나, 본 개시내용에 따른 액트들은 다양한 순서들로 및/또는 동시에, 그리고 본 명세서에서 제시 및 설명되지 않은 다른 액트들과 함께 발생할 수 있다. 또한, 예시된 모든 액트들이 개시된 대상에 따른 방법들을 구현하는 데 필요한 것은 아닐 수 있다. 또한, 본 기술분야의 통상의 기술자는 방법들이 상태 다이어그램 또는 이벤트들을 통해 일련의 상호 관련된 상태들로서 대안적으로 표현될 수 있음을 이해하고 인식할 것이다. 또한, 본 명세서에 개시된 방법들은 이러한 방법들을 컴퓨팅 디바이스들로 운반하고 전달하는 것을 용이하게 하기 위해 제조물 상에 저장될 수 있다는 것이 이해되어야 한다. 본 명세서에 사용된 바와 같이, 제조물이라는 용어는 임의의 컴퓨터 판독 가능 디바이스 또는 저장 매체로부터 액세스 가능한 컴퓨터 프로그램을 포함하도록 의도된다.
추가 실시예들에서, 전술한 실시예들의 동작들을 수행하기 위한 하나 이상의 프로세싱 디바이스가 개시된다. 추가적으로, 본 개시내용의 실시예들에서, 비-일시적 컴퓨터 판독 가능 저장 매체는 설명된 실시예들의 동작들을 수행하기 위한 명령어들을 저장한다. 또한, 다른 실시예들에서, 설명된 실시예들의 동작들을 수행하기 위한 시스템들이 또한 개시된다.
위의 설명은 예시를 위한 것으로 의도되며, 제한적인 것이 아님을 이해해야 한다. 다른 실시예들은 위의 설명을 읽고 이해하면 본 기술분야의 통상의 기술자에게 자명할 것이다. 따라서, 본 개시내용의 범위는 첨부된 청구범위를 참조하여 이러한 청구범위가 부여되는 균등물들의 전체 범위와 함께 결정될 수 있다.

Claims (20)

  1. 방법으로서,
    프로세싱 디바이스에 의해, 클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신하는 단계 - 상기 제1 요청은 상기 클라이언트 디바이스가 상기 요청된 콘텐츠를 획득하도록 인가(authorize)하기 위해 데이터 인가 서비스(authorizing data service)에 의해 제공되는 리소스 로케이터(resource locator)를 포함하고, 상기 리소스 로케이터는 상기 요청된 콘텐츠를 상기 클라이언트 디바이스에 전달하기 위해 콘텐츠 배포 네트워크(content distribution network)(CDN)의 제1 서버를 식별하고, 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함함 -;
    상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계;
    상기 이벤트의 발생을 식별하는 것에 응답하여, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하는 단계; 및
    새로운 리소스 로케이터를 상기 클라이언트 디바이스에 제공하는 단계 - 상기 새로운 리소스 로케이터는 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함하고, 상기 클라이언트 디바이스는 상기 새로운 리소스 로케이터를 사용하여 상기 콘텐츠에 액세스하도록 동작함 -
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 디지털 서명은 제1 개인 키로부터 생성되고, 상기 제2 디지털 서명은 제2 개인 키로부터 생성되며, 상기 제1 개인 키와 상기 제2 개인 키는 상이한 개인 키들이고, 상기 제1 개인 키 및 상기 제2 개인 키는 상기 데이터 인가 서비스에 의해 액세스 가능하고, 상기 CDN에 의해 상기 제2 개인 키는 액세스 가능하지만 상기 제1 개인 키는 액세스 가능하지 않은, 방법.
  3. 제2항에 있어서, 상기 제1 요청은 상기 제1 디지털 서명과 연관된 제1 파라미터들 및 상기 제2 디지털 서명과 연관된 제2 파라미터들을 추가로 포함하고, 상기 제1 디지털 서명은 상기 제1 파라미터들에 기초하여 생성되고 상기 제2 디지털 서명은 상기 제2 파라미터들에 기초하여 생성되는, 방법.
  4. 제3항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하는 단계는,
    상기 CDN에 의해, 상기 제2 파라미터들과 연관된 값들을 조정하는 단계 - 상기 제3 디지털 서명은 상기 제2 파라미터들과 연관된 조정된 값들 및 상기 제2 개인 키를 사용하여 상기 CDN에 의해 생성됨 -
    를 포함하는, 방법.
  5. 제1항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계는,
    상기 CDN의 제2 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달할 것이라고 결정하는 단계 - 상기 새로운 리소스 로케이터는 상기 CDN의 해당 제2 서버를 식별함 -
    를 포함하는, 방법.
  6. 제5항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계는,
    상기 CDN의 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 단계 - 상기 제2 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달할 것이라고 결정하는 단계는 상기 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 단계에 응답함 -
    를 추가로 포함하는, 방법.
  7. 제5항에 있어서,
    상기 CDN의 제2 서버에 의해, 상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 제2 요청을 수신하는 단계 - 상기 제2 요청은 상기 새로운 리소스 로케이터를 포함함 -;
    상기 제2 요청과 연관된 제1 디지털 서명 및 제3 디지털 서명을 검증(validating)하는 단계; 및
    상기 제1 디지털 서명 및 상기 제3 디지털 서명을 검증하는 것에 응답하여, 사용자에 의한 소비를 위해 상기 CDN의 제2 서버로부터 상기 클라이언트 디바이스로 상기 콘텐츠를 전달하는 단계
    를 추가로 포함하는, 방법.
  8. 제1항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 단계는,
    상기 제1 서버에 의한 상기 요청된 콘텐츠의 전달이 변경되어야 한다고 결정하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서, 상기 제1 서버에 의한 상기 요청된 콘텐츠의 전달이 변경되어야 한다고 결정하는 단계는,
    상기 콘텐츠가 상기 클라이언트 디바이스에 전달되어야 하는 비트 레이트의 변경을 결정하는 단계; 및
    상기 콘텐츠가 상기 클라이언트 디바이스에 전달되어야 하는 비트 레이트의 변경을 결정하는 것에 응답하여, 비트 레이트 파라미터를 조정하는 단계 - 상기 제3 디지털 서명은 상기 조정된 비트 레이트 파라미터를 사용하여 생성됨 -
    를 추가로 포함하는, 방법.
  10. 제8항에 있어서,
    상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 제3 요청을 수신하는 단계 - 상기 제3 요청은 상기 새로운 리소스 로케이터를 포함함 -;
    상기 제3 요청과 연관된 제1 디지털 서명 및 제3 디지털 서명을 검증하는 단계; 및
    상기 제1 디지털 서명 및 상기 제3 디지털 서명을 검증하는 것에 응답하여, 상기 제3 요청을 고려하여 상기 CDN의 제1 서버로부터 상기 콘텐츠의 전달을 변경하는 단계
    를 추가로 포함하는, 방법.
  11. 제1항에 있어서,
    상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 제1 요청을 수신하는 것에 응답하여, 상기 제1 요청과 연관된 제1 디지털 서명 및 제2 디지털 서명을 검증하는 단계; 및
    상기 제1 디지털 서명 및 상기 제2 디지털 서명을 검증하는 것에 응답하여, 사용자에 의한 소비를 위해 상기 CDN의 제1 서버로부터 상기 클라이언트 디바이스로 상기 콘텐츠를 전달하는 단계
    를 추가로 포함하는, 방법.
  12. 제1항에 있어서, 상기 콘텐츠는 비디오 아이템을 포함하는, 방법.
  13. 시스템으로서
    메모리; 및
    상기 메모리에 커플링되는 프로세싱 디바이스
    를 포함하고,
    상기 프로세싱 디바이스는,
    클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신하고 - 상기 제1 요청은 상기 클라이언트 디바이스가 상기 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스에 의해 제공되는 리소스 로케이터를 포함하고, 상기 리소스 로케이터는 상기 요청된 콘텐츠를 상기 클라이언트 디바이스에 전달하기 위해 콘텐츠 배포 네트워크(CDN)의 제1 서버를 식별하고, 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함함 -,
    상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하고,
    상기 이벤트의 발생을 식별하는 것에 응답하여, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하고,
    새로운 리소스 로케이터를 상기 클라이언트 디바이스에 제공하는 - 상기 새로운 리소스 로케이터는 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함하고, 상기 클라이언트 디바이스는 상기 새로운 리소스 로케이터를 사용하여 상기 콘텐츠에 액세스하도록 동작함 -
    시스템.
  14. 제13항에 있어서, 상기 제1 디지털 서명은 제1 개인 키로부터 생성되고, 상기 제2 디지털 서명은 제2 개인 키로부터 생성되며, 상기 제1 개인 키와 상기 제2 개인 키는 상이한 개인 키들이고, 상기 제1 개인 키 및 상기 제2 개인 키는 상기 데이터 인가 서비스에 의해 액세스 가능하고, 상기 CDN에 의해 상기 제2 개인 키는 액세스 가능하지만 상기 제1 개인 키는 액세스 가능하지 않은, 시스템.
  15. 제13항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하기 위해,
    상기 프로세싱 디바이스는,
    상기 CDN의 제2 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달할 것이라고 결정하도록 - 상기 새로운 리소스 로케이터는 상기 CDN의 해당 제2 서버를 식별함 -
    동작하는, 시스템.
  16. 제15항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하기 위해,
    상기 프로세싱 디바이스는,
    상기 CDN의 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하도록 - 상기 제2 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달할 것이라고 결정하는 것은 상기 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 것에 응답함 -
    추가로 동작하는, 시스템.
  17. 제15항에 있어서, 상기 프로세싱 디바이스는,
    상기 CDN의 제2 서버에 의해, 상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 제2 요청을 수신하고 - 상기 제2 요청은 상기 새로운 리소스 로케이터를 포함함 -,
    상기 제2 요청과 연관된 제1 디지털 서명 및 제3 디지털 서명을 검증하고,
    상기 제1 디지털 서명 및 상기 제3 디지털 서명을 검증하는 것에 응답하여, 사용자에 의한 소비를 위해 상기 CDN의 제2 서버로부터 상기 클라이언트 디바이스로 상기 콘텐츠를 전달하도록
    추가로 동작하는, 시스템.
  18. 프로세싱 디바이스에 의한 실행에 응답하여, 상기 프로세싱 디바이스로 하여금 동작들을 수행하게 하는 명령어들을 포함하는 비-일시적 컴퓨터 판독 가능 매체로서,
    상기 동작들은,
    프로세싱 디바이스에 의해, 클라이언트 디바이스로부터 콘텐츠에 대한 제1 요청을 수신하는 동작 - 상기 제1 요청은 상기 클라이언트 디바이스가 상기 요청된 콘텐츠를 획득하도록 인가하기 위해 데이터 인가 서비스에 의해 제공되는 리소스 로케이터를 포함하고, 상기 리소스 로케이터는 상기 요청된 콘텐츠를 상기 클라이언트 디바이스에 전달하기 위해 콘텐츠 배포 네트워크(CDN)의 제1 서버를 식별하고, 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 인가와 연관된 제2 디지털 서명을 포함함 -;
    상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 동작;
    상기 이벤트의 발생을 식별하는 것에 응답하여, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 생성하는 동작; 및
    새로운 리소스 로케이터를 상기 클라이언트 디바이스에 제공하는 동작 - 상기 새로운 리소스 로케이터는 상기 요청된 콘텐츠에 액세스하기 위한 클라이언트 디바이스의 인가와 연관된 제1 디지털 서명, 및 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 변경된 전달과 연관된 제3 디지털 서명을 포함하고, 상기 클라이언트 디바이스는 상기 새로운 리소스 로케이터를 사용하여 상기 콘텐츠에 액세스하도록 동작함 -
    을 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  19. 제18항에 있어서, 상기 클라이언트 디바이스에 의한 액세스를 위해 상기 요청된 콘텐츠의 전달의 변경을 나타내는 이벤트의 발생을 식별하는 동작은,
    상기 CDN의 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 동작; 및
    상기 제1 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달하는 데 이용 가능하지 않다고 결정하는 동작에 응답하여, 상기 CDN의 제2 서버가 상기 콘텐츠를 상기 클라이언트 디바이스에 전달할 것이라고 결정하는 동작 - 상기 새로운 리소스 로케이터는 상기 CDN의 해당 제2 서버를 식별함 -
    을 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  20. 제19항에 있어서,
    상기 CDN의 제2 서버에 의해, 상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 제2 요청을 수신하는 동작 - 상기 제2 요청은 상기 새로운 리소스 로케이터를 포함함 -;
    상기 제2 요청과 연관된 제1 디지털 서명 및 제3 디지털 서명을 검증하는 동작; 및
    상기 제1 디지털 서명 및 상기 제3 디지털 서명을 검증하는 것에 응답하여, 사용자에 의한 소비를 위해 상기 CDN의 제2 서버로부터 상기 클라이언트 디바이스로 상기 콘텐츠를 전달하는 동작
    을 추가로 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
KR1020217034167A 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리 KR102638636B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247005319A KR20240024374A (ko) 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/024103 WO2020197545A1 (en) 2019-03-26 2019-03-26 Separating the authorization of content access and content delivery using multiple cryptographic digital signatures

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247005319A Division KR20240024374A (ko) 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리

Publications (2)

Publication Number Publication Date
KR20210141663A true KR20210141663A (ko) 2021-11-23
KR102638636B1 KR102638636B1 (ko) 2024-02-21

Family

ID=66102774

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217034167A KR102638636B1 (ko) 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리
KR1020247005319A KR20240024374A (ko) 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247005319A KR20240024374A (ko) 2019-03-26 2019-03-26 다수의 암호화 디지털 서명들을 사용한 콘텐츠 액세스와 콘텐츠 전달의 인가 분리

Country Status (6)

Country Link
US (1) US20220166633A1 (ko)
EP (2) EP3948593B1 (ko)
JP (2) JP7210769B2 (ko)
KR (2) KR102638636B1 (ko)
CN (1) CN113678126A (ko)
WO (1) WO2020197545A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11553054B2 (en) * 2020-04-30 2023-01-10 The Nielsen Company (Us), Llc Measurement of internet media consumption
US11677567B2 (en) * 2021-01-05 2023-06-13 Citrix Systems, Inc. Validating shared files

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036529A (ko) * 2008-06-06 2011-04-07 마이크로소프트 코포레이션 콘텐츠 공유를 위한 임시 도메인 멤버십
US20140359064A1 (en) * 2011-12-16 2014-12-04 British Telecommunications Public Limited Company Proxy server operation
US20170134356A1 (en) * 2013-01-17 2017-05-11 Intel IP Corporation Content url authentication for dash
US20170195340A1 (en) * 2014-03-24 2017-07-06 Futurewei Technologies, Inc. System and Method for Partial URL Signing With Applications to Dynamic Adaptive Streaming
KR20180135446A (ko) * 2016-04-15 2018-12-20 퀄컴 인코포레이티드 콘텐츠 전달 네트워크에서 보안 콘텐츠 송신들을 관리하는 기법들

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629150B1 (en) * 1999-06-18 2003-09-30 Intel Corporation Platform and method for creating and using a digital container
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
EP1278112B1 (en) * 2001-07-12 2003-05-28 Castify Networks SA A process for providing access of a client to a content provider server under control of a resource locator server
JP2004280401A (ja) * 2003-03-14 2004-10-07 Toshiba Corp コンテンツ配信システム、装置及びプログラム
JP2005027009A (ja) * 2003-07-02 2005-01-27 Matsushita Electric Ind Co Ltd 映像サーバ及び映像配信ネットワークシステム
JP4701172B2 (ja) * 2003-07-29 2011-06-15 トムソン ライセンシング リダイレクトを使用してネットワークへのアクセスを制御するシステム及び方法
JP4769051B2 (ja) * 2005-09-09 2011-09-07 Kddi株式会社 サービス提供システム、装置、プログラム及び方法
EP2319229B1 (en) * 2008-08-26 2018-09-12 British Telecommunications public limited company Operation of a content distribution network
WO2011073560A1 (fr) * 2009-12-18 2011-06-23 France Telecom Acces a un reseau de distribution de contenu numerique
PL2798816T3 (pl) * 2011-12-29 2016-11-30 Inicjowane sieciowo sterowanie strumieniowego przesyłania zawartości
CN104283845B (zh) * 2013-07-03 2017-10-27 中国电信股份有限公司 防盗链方法和系统以及cdn服务器和客户端
WO2015066066A1 (en) * 2013-10-28 2015-05-07 Futurewei Technologies, Inc. System and method for signaling and verifying url signatures for both url authentication and url-based content access authorization in adaptive streaming
US11290755B2 (en) * 2017-01-10 2022-03-29 Qualcomm Incorporated Signaling data for prefetching support for streaming media data
US10333716B2 (en) * 2017-01-17 2019-06-25 Go Daddy Operating Company, LLC Script verification using a digital signature
US10812353B2 (en) * 2017-06-26 2020-10-20 Netskope, Inc. Aggregate network traffic monitoring
CN107172220A (zh) * 2017-07-26 2017-09-15 上海鋆创信息技术有限公司 多cdn服务的切换调度方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110036529A (ko) * 2008-06-06 2011-04-07 마이크로소프트 코포레이션 콘텐츠 공유를 위한 임시 도메인 멤버십
US20140359064A1 (en) * 2011-12-16 2014-12-04 British Telecommunications Public Limited Company Proxy server operation
US20170134356A1 (en) * 2013-01-17 2017-05-11 Intel IP Corporation Content url authentication for dash
US20170195340A1 (en) * 2014-03-24 2017-07-06 Futurewei Technologies, Inc. System and Method for Partial URL Signing With Applications to Dynamic Adaptive Streaming
KR20180135446A (ko) * 2016-04-15 2018-12-20 퀄컴 인코포레이티드 콘텐츠 전달 네트워크에서 보안 콘텐츠 송신들을 관리하는 기법들

Also Published As

Publication number Publication date
JP7210769B2 (ja) 2023-01-23
EP4202734A1 (en) 2023-06-28
CN113678126A (zh) 2021-11-19
EP3948593A1 (en) 2022-02-09
US20220166633A1 (en) 2022-05-26
JP2023041702A (ja) 2023-03-24
KR102638636B1 (ko) 2024-02-21
JP2022528639A (ja) 2022-06-15
KR20240024374A (ko) 2024-02-23
EP3948593B1 (en) 2023-05-03
WO2020197545A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
AU2015218600B2 (en) Transferring authorization from an authenticated device to an unauthenticated device
US20160063223A1 (en) Distributing protected content
US11025432B2 (en) Access control technology for peer-to-peer sharing
JP2023041702A (ja) 複数の暗号学的デジタル署名を使用したコンテンツアクセスおよびコンテンツ配信の認可の分離
AU2014305015A1 (en) Extensible media format system and methods of use
US11157633B1 (en) Digital content delivery system
US20210374211A1 (en) Drm sharing and playback service specification selection
US11606590B2 (en) Systems and methods to deliver content during client authentication process in a distributed computing system
US20220286300A1 (en) Systems and methods to evaluate client device trust in a distributed computing system
US20230137767A1 (en) Using co-located secondary devices to protect against cookie theft

Legal Events

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