KR101730754B1 - 안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환 - Google Patents

안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환 Download PDF

Info

Publication number
KR101730754B1
KR101730754B1 KR1020157028627A KR20157028627A KR101730754B1 KR 101730754 B1 KR101730754 B1 KR 101730754B1 KR 1020157028627 A KR1020157028627 A KR 1020157028627A KR 20157028627 A KR20157028627 A KR 20157028627A KR 101730754 B1 KR101730754 B1 KR 101730754B1
Authority
KR
South Korea
Prior art keywords
dtcp
encrypted
transport stream
chunks
chunk
Prior art date
Application number
KR1020157028627A
Other languages
English (en)
Other versions
KR20150131191A (ko
Inventor
폴 모로니
Original Assignee
제너럴 인스트루먼트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제너럴 인스트루먼트 코포레이션 filed Critical 제너럴 인스트루먼트 코포레이션
Publication of KR20150131191A publication Critical patent/KR20150131191A/ko
Application granted granted Critical
Publication of KR101730754B1 publication Critical patent/KR101730754B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • 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]
    • 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/1012Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to domains
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2351Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving encryption of additional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23895Multiplex stream processing, e.g. multiplex stream encrypting involving multiplex stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4346Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream involving stuffing data, e.g. packets or bytes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4353Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • H04N21/43853Multiplex stream processing, e.g. multiplex stream decrypting involving multiplex stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4408Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • H04N21/63345Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates

Abstract

DTCP-IP 전송 스트림을 HLS 형식으로 변환하기 위한 프로세스로서, DTCP 프레임들을 포함하는 암호화된 DTCP-IP 전송 스트림을 소스 장치로부터 이차 장치에서 수신하는 단계 - 상기 복수의 DTCP 프레임 각각은 암호화된 16 바이트 부분을 포함함 -, 상기 암호화된 16 바이트 부분들을 청크로 그룹화함으로써 청크들을 형성하는 단계, 각 청크의 끝에 HLS 패딩 바이트들을 부가하고 HLS 패딩 바이트들을 암호화하여 암호화된 청크를 형성하는 단계, 상기 암호화된 청크들 각각과 재생 목록을 상기 이차 장치에 있는 미디어 프록시 서버로 로딩하는 단계, DTCP 키를 보안 프록시 서버로 로딩하는 단계, 및 상기 재생 목록, 상기 암호화된 청크들 각각과, 상기 DTCP 키를 상기 이차 장치상의 고유한 미디어 플레이어에 제공하여, 상기 고유한 미디어 플레이어가 상기 재생 목록을 따라 상기 DTCP 키를 이용하여 상기 암호화된 HLS 청크들을 암호 해독하고 상기 청크들을 재생하게 하는 단계를 포함하는, 프로세스.

Description

안전한 미디어 재생을 위한 DLNA/DTCP 스트림 변환{DLNA/DTCP STREAM CONVERSION FOR SECURE MEDIA PLAYBACK}
우선권 주장
이 출원은 35 U.S.C. §119(e)의 규정에 따라 2013년 3월 15일에 출원된 선행 출원된 미국 특허 가출원 제61/801216호와, 2013년 4월 29일에 출원된 선행 출원된 미국 특허 가출원 제61/817115호에 기초하여 우선권을 주장하며, 이들 양자는 이로써 참고로 포함된다.
기술분야
본 개시 내용은 디지털 비디오 녹화와 스트리밍의 분야에 관한 것이며, 특히 디지털 비디오 레코더로부터 모바일 장치로 미디어 콘텐츠를 안전하게 스트리밍하기 위한 시스템에 관한 것이다.
소비자들은 휴대폰이나 태블릿 컴퓨터와 같이 텔레비전이 아닌 장치들에서 그 장치로 인터넷을 통하여 미디어 콘텐츠를 스트리밍하거나 미디어 콘텐츠를 다운로딩하는 것에 의해 온디맨드로 미디어 콘텐츠를 즐기게 되었다. 소비자들은 또한 텔레비전 방송들을 실시간으로 시청하거나 또는 방송들이 녹화되어 나중에 시청될 수 있는 디지털 비디오 레코더(DVR)들을 통하여 시청하는 것을 즐긴다.
그러나, 디지털 저작권 관리에 관한 우려 때문에 하나의 장치로부터 녹화된 콘텐츠가 다른 장치로 스트리밍되거나 다운로딩되는 것을 허용함으로써 2개의 미디어 소비 모델을 합병하는 것은 최근에야 흔한 일이 되었다. 예를 들어, 케이블 박스 또는 DVR들과 같은 장비는 최근에야 미디어 콘텐츠, 실시간 방송이나 녹화된 콘텐츠가 텔레비전이 아닌 장치들로 스트리밍되거나 다운로딩되는 것을 허용하였다. 많은 소비자들이 집에 있지 않으면서도 이동하는 중에 자신의 휴대폰에서 특정 프로그램을 시청하고 싶은 경우와 같이, 텔레비전이 아닌 장치에서 텔레비전 생방송을 시청할지 녹화 방송을 시청할지를 선택할 수 있는 융통성을 즐기겠지만, 대부분의 케이블 박스 및 DVR들은 미디어 콘텐츠의 무단 복제나 전송을 방지하기 위해 그들의 콘텐츠를 암호화하거나 다른 디지털 저작권 관리 스킴들을 준비해 두고 있다.
미디어 콘텐츠의 무제한 복제를 허용하지 않고, 하나의 장치로부터 복제 보호된 콘텐츠가 이차 장치에서 허가를 받고 액세스될 수 있게 하는 일부 시스템들이 개발되고 있다. 예를 들어, DTCP-IP(Digital Transmission Content Protection over Internet Protocol)은 미디어 콘텐츠가 데이터 연결을 통하여 하나의 디바이스에서 다른 디바이스로 이동할 때 미디어 콘텐츠의 복제 보호를 제공하는 스킴이다. DTCP-IP 시스템에서는, 소비자가 텔레비전 콘텐츠를 DVR에 녹화하고, 이어서 콘텐츠의 복제 보호를 유지하고 무단 복제를 방지하면서 녹화된 콘텐츠를 무선 인터넷 연결을 통하여 스마트폰이나 다른 장치로 스트리밍할 수 있다.
장치 또는 운영 체제는 시스템의 사용자들, 다른 애플리케이션들, 또는 다른 부분들이 암호 해독된 미디어 전송 스트림들에 액세스하는 것은 허용하지 않고 클라이언트 애플리케이션이 미디어 전송 스트림들을 처리하는 것을 허용할 정도로 안전하다면 DTCP-IP와 호환될 수 있다. 비제한적인 예로서, DTCP-IP는 iPhone® 및 iPad®와 같이 iOS®를 실행하는 Apple® 장치들에서 구현될 수 있는데, 그 이유는 그것들은 안전한 부팅 체인을 가지고 있고, 서명된 코드를 가지고 있고, ROT(root of trust)를 가진 안전한 HTTP 라이브 스트리밍(HLS) 플레이어를 고유하게 가지고 있고, 안전한 ROT, 장치 인증서, 및 안전한 RSA 아이덴티티와 같은 개인 키에 대한 난독화 및 화이트 박스 보호와 함께 안전한 소프트웨어 개발 키트(SDK)의 링크(linking)를 허용하기 때문이다.
필요한 것은 소스 장치로부터 원격 장치에 수신된 DTCP-IP 미디어 스트림을, 원격 장치의 다른 구성 요소들이 미디어 스트림에 액세스하는 것은 허용하지 않고, 원격 장치상의 고유한 미디어 플레이어에 의해 판독 가능한 형식으로 변환하는 프로세스이다. DTCP-IP 미디어 스트림은 원격 장치의 고유한 미디어 플레이어에 의해 재생될 수 있도록 암호 해독되고, 청크화되고, 재암호화될 수 있거나, DTCP-IP 미디어 스트림은 HLS 패딩 바이트들을 부가하고/하거나 DTCP-IP 패딩 바이트들을 HLS 패딩 바이트들로 대체하는 것으로 암호 해독 없이 청크들로 나누어질 수 있다.
일 실시예에서, 본 개시 내용은 DTCP-IP 전송 스트림을 HLS 형식으로 변환하기 위한 프로세스를 제공하며, 이 프로세스는 암호화된 DTCP-IP 전송 스트림을 소스 장치로부터 이차 장치에서 수신하는 단계 - 상기 암호화된 DTCP-IP 전송 스트림은 복수의 DTCP 프레임을 포함하고, 이 복수의 DTCP 프레임 각각은 복수의 암호화된 16 바이트 부분을 포함함 -, 상기 복수의 DTCP 프레임 중 하나로부터, 그것의 복수의 암호화된 16 바이트 부분 중 몇 개를 청크로 그룹화함으로써 청크들을 형성하는 단계, 상기 청크의 끝에 HLS 패딩 바이트들을 부가하고 그 HLS 패딩 바이트들을 암호화하여, 상기 청크와 상기 암호화된 HLS 패딩 바이트들이 암호화된 HLS 청크를 형성하게 하는 단계, 상기 암호화된 HLS 청크들 각각과, 상기 암호화된 HLS 청크들의 재생 목록을 상기 이차 장치에 있는 미디어 프록시 서버로 로딩하는 단계, DTCP 키를 상기 이차 장치에 있는 보안 프록시 서버로 로딩하는 단계 - 상기 DTCP 키는 상기 소스 장치로부터 획득된 정보로부터 유도된 것임 -, 상기 재생 목록, 상기 암호화된 HLS 청크들 각각과, 상기 DTCP 키를 상기 이차 장치상의 고유한 미디어 플레이어에 제공하여, 상기 고유한 미디어 플레이어가 상기 재생 목록을 따라 상기 DTCP 키를 이용하여 상기 암호화된 HLS 청크들을 암호 해독하고 상기 HLS 청크들을 재생하게 하는 단계를 포함한다.
본 발명의 추가 상세들이 첨부 도면들을 이용하여 설명된다.
도 1은 네트워크를 통하여 소스 장치로부터 하나 이상의 이차 장치로 미디어 콘텐츠를 제공하기 위한 시스템을 묘사한다.
도 2는 소스 장치의 예시적인 실시예를 묘사한다.
도 3은 이차 장치의 예시적인 실시예를 묘사한다.
도 4는 전송 스트림을 수신하고 그것을 이차 장치상의 미디어 플레이어에서의 재생을 위해 변환하기 위한 제1 프로세스를 묘사한다.
도 5는 수신된 전송 스트림을 미디어 플레이어에서 재생 가능한 형식으로 변환하는 동안에 도 4의 단계들 동안에 사용되는 요소들을 묘사한다.
도 6a는 소스 장치의 DTCP-IP 모듈에 의해 암호화된 후의 미디어 콘텐츠의 예시적인 부분들을 묘사한다.
도 6b는 전송 스트림의 캡슐화 동안에 생성된 DTCP 프레임의 예시적인 실시예를 묘사한다.
도 7은 전송 스트림을 수신하고 이차 장치상의 미디어 플레이어에서의 재생을 위해 변환하기 위한 제2 프로세스를 묘사한다.
도 8a는 DTCP 프레임을 HLS 패딩 바이트들을 포함하는 암호화된 청크들로 변환하는 것을 묘사한다.
도 8b는 DTCP 페이로드의 최종 부분으로부터 생성된 청크 내의 DTCP 패딩 바이트들을 HLS 패딩 바이트들로 대체하여 암호화된 청크를 형성하는 것을 묘사한다.
도 1은 네트워크(104)를 통하여 소스 장치(100)로부터 하나 이상의 이차 장치(102)로 미디어 콘텐츠를 제공하기 위한 시스템을 묘사한다. 소스 장치(100)는 미디어 콘텐츠를 수신하고/하거나 저장하는 DVR, 케이블 박스, 홈 미디어 서버, 또는 임의의 다른 소스일 수 있다. 소스 장치(100)는 무선 또는 유선 데이터 연결, 인터넷 연결, 및/또는 로컬 네트워크와 같은 네트워크(104)를 통하여 미디어 콘텐츠를 수신하고/하거나 하나 이상의 이차 장치(102)에서의 시청을 위해 준비할 수 있다. 이차 장치(102)는 모바일 장치, 예를 들어 스마트폰, 태블릿 컴퓨터, 컴퓨터, 또는 임의의 다른 장치일 수 있다. 일부 실시예들에서, 소스 장치(100)는 추가로 및/또는 대안으로 미디어 콘텐츠를 하나 이상의 텔레비전(106) 또는 모니터에서의 시청을 위해 동축 케이블 또는 HDMI 케이블과 같은 소스 장치와 텔레비전(106) 간의 직접 연결(108)을 통하여 제공할 수 있다.
도 2는 소스 장치(100)의 예시적인 실시예를 묘사한다. 일부 실시예들에서, 소스 장치(100)는 하나 이상의 튜너(202), 트랜스코더(204), 저장 장치(206), DTCP-IP 모듈(208), 및/또는 미디어 서버(210)를 포함할 수 있다.
튜너(202)는 케이블 또는 위성 연결을 통하여 수신된 텔레비전 방송과 같은 미디어 콘텐츠를 수신하도록 구성될 수 있다. 튜너(202)에 의해 수신된 미디어 콘텐츠는 트랜스코더(204)에 의해 녹화물로서 저장 장치(206)에 저장될 수 있는 디지털 형식으로 트랜스코딩될 수 있다. 저장 장치(206)는 메모리, 예를 들어 하드 드라이브, 플래시 메모리, 랜덤 액세스 메모리, 또는 임의의 다른 유형의 메모리일 수 있다. 일부 상황들 및/또는 실시예들에서, 녹화된 미디어 콘텐츠는 녹화되자마자 시청될 수 있으며, 그것을 시청자는 녹화된 미디어 콘텐츠가 일지 중지되거나 되감아지는 것을 허용하는 실질적으로 생방송으로 인지할 수 있다. 다른 상황들 및/또는 실시예들에서, 녹화된 미디어 콘텐츠는, 라이브 시청, 일시 중지, 되감기, 및/또는 빨리 감기를 위한 옵션들과 함께, 나중에 시청될 수 있다. 녹화된 미디어 콘텐츠는 소스 장치(100)에 직접 연결된 텔레비전(106)에서, 또는 아래에 설명되는 바와 같이 네트워크(104)를 통하여 소스 장치(100)와 통신하는 텔레비전이 아닌 이차 장치(102)에서 시청될 수 있다. 그러나 일부 실시예들에서 저장 장치(206)는 옵션이거나 임시 버퍼일 수 있으며, 따라서 튜너(202)에서 수신된 비디오 콘텐츠가 DTCP-IP 모듈(208)에 바로 전달된다.
이차 장치(102)에서의 시청을 위해, 녹화된 미디어 콘텐츠는 저장 장치(206)로부터 검색되어 DTCP-IP 모듈(208)에 전달될 수 있으며, 후자는 DTCP-IP(Digital Transmission Content Protection over Internet Protocol) 스킴을 이용하여 미디어 콘텐츠를 암호화할 수 있다. DTCP-IP 스킴은 녹화 방송과 같은 미디어 콘텐츠가 데이터 연결을 통하여 하나의 장치로부터 다른 장치로 전송될 때, 미디어 콘텐츠의 복제 보호를 제공할 수 있다. DTCP-IP 모듈(208)은 미디어 콘텐츠를 DTCP 키(212)를 이용해 암호화할 수 있다. DTCP-IP 모듈(208)은 DTCP 키(212)에 관한 정보를 하나 이상의 이차 장치(102)에 제공할 수 있고 그 정보로부터 이차 장치(102)는, 아래에 설명되는 바와 같이, DTCP 키(212)를 유도할 수 있다. DTCP-IP 모듈(208)은 또한 암호화된 DTCP-IP 방송을 컨테이너 형식을 이용하여 전송 스트림(214)으로 캡슐화할 수 있다. 비제한적인 예로서, DTCP-IP 방송은 MPEG 전송 스트림으로 캡슐화될 수 있다. DTCP-IP 모듈(208)에 의한 미디어 콘텐츠의 암호화 및 전송 스트림(214)으로의 캡슐화는 아래에 도 6에 관련하여 더 설명될 것이다.
DTCP-IP 모듈(208)에 의해 암호화되고 캡슐화된 전송 스트림은 미디어 서버(210)에 전달될 수 있다. 미디어 서버(210)는, 이차 장치(102)로부터 요청을 수신하면, 전송 스트림(214)을 네트워크(104), 예를 들어 인터넷, 로컬 유선 또는 무선 데이터 네트워크, 또는 임의의 다른 네트워크를 통하여 요청하는 이차 장치(102)에 배포할 수 있다. 비제한적인 예로서, 미디어 서버(210)는 디지털 리빙 네트워크 얼라이언스(Digital Living Network Alliance)에 의해 인증된 서버(DLNA 서버)일 수 있다.
도 3은 이차 장치(102)의 예시적인 실시예를 묘사한다. 이차 장치(102)는 처리 블록(302), DTCP-IP 보안 블록(304), 보충 보안 블록(306), 미디어 프록시 서버(308), 보안 프록시 서버(310), 및/또는 미디어 플레이어(312)를 포함할 수 있다. 일부 실시예들에서, 처리 블록(302), DTCP-IP 보안 블록(304), 보충 보안 블록(306), 미디어 프록시 서버(308), 및 보안 프록시 서버(310)는 이차 장치(102)에서 실행중인 클라이언트 애플리케이션(314)에 의해 제공되고/되거나 후자의 안에서 동작할 수 있는 반면, 미디어 플레이어(312)는, 도 2에 도시된 바와 같이, 이차 장치의 운영 체제에 고유한 안전한 미디어 플레이어일 수 있다. 비제한적인 예로서, 일부 Apple® 장치들에 의해 사용되는 iOS® 운영 체제는 미디어 플레이어(312)로서 이용될 수 있는 고유한 안전한 HTTP 라이브 스트리밍(HLS) 플레이어를 가지고 있을 수 있다. 일부 실시예들에서, 클라이언트 애플리케이션(314)은 아래에 설명되는 바와 같이 미디어 플레이어(312)를 제외하고, 이차 장치(102)의 다른 하드웨어 또는 소프트웨어 구성 요소들에게는 대부분의 데이터에 대한 액세스를 제공하지 않고 해당 데이터가 클라이언트 애플리케이션(314) 안에서 처리되고 유지되는 안전한 방식으로 실행될 수 있다. 비제한적인 예로서, 일부 Apple® 장치들에 의해 사용되는 iOS® 운영 체제는 클라이언트 애플리케이션(314)을 안전하게 실행하는 데 도움을 줄 수 있는 안전한 부팅 체인, 서명된 코드, 안전한 RSA 아이덴티티, 및 장치 인증서들과 같은 요소들을 포함한다.
도 4는 전송 스트림(214)을 수신하고 그것을 이차 장치(102)상의 미디어 플레이어(312)에서의 재생을 위해 변환하기 위한 제1 프로세스를 묘사한다. 도 5는 수신된 전송 스트림(214)을 미디어 플레이어(312)에서 재생 가능한 형식으로 변환하는 동안에 도 4의 단계들 동안에 사용되는 요소들을 묘사한다.
단계 402에서, 이차 장치(102)에서 실행중인 클라이언트 애플리케이션(314)이 네트워크(104)를 통하여 소스 장치(100)상의 미디어 서버(210)에게 전송 스트림(214)을 요청할 수 있다. 위에 설명한 바와 같이, 전송 스트림(214)은 DTCP-IP 모듈(208)에 의해 DTCP 키(212)를 이용하여 DTCP-IP 복제 보호 스킴으로 암호화되었다. 전송 스트림(214)는 또한 DTCP-IP 모듈(208)에 의해 MPEG 전송 스트림을 위한 DTCP 컨테이너와 같이 컨테이너 형식으로 캡슐되었을 수 있다.
단계 404에서, 클라이언트 애플리케이션(314) 내의 처리 블록(302)은 네트워크(104)를 통하여 미디어 서버(210)로부터 요청된 전송 스트림(214)을 수신할 수 있다. 일부 실시예들에서, 클라이언트 애플리케이션(314)은 처리를 시작하기 위해 충분한 데이터가 수신될 때까지 전송 스트림(214)을 수신되는 대로 버퍼링할 수 있다. 일부 실시예들에서, 처리 블록(302)은 또한 전송 스트림(214)을 캡슐화 해제(de-encapsulate)할 수 있다.
단계 406에서, 처리 블록(302)은 전송 스트림(214)을, 소스 장치의 DTCP-IP 모듈(208)이 이전에 그것을 암호화하기 위해 이용한 DTCP 키(212)를 이용하여 암호 해독할 수 있고, 따라서 전송 스트림(214)은, 도 5에 도시된 바와 같이, 분명한(clear), 암호화되지 않은 전송 스트림(500)으로 암호 해독된다. 처리 블록(302)은 이차 장치(102)에 있는 DTCP-IP 보안 블록(304)으로부터 DTCP 키(212)를 획득할 수 있다. DTCP-IP 보안 블록(304)은 이전에 소스 장치(100)로부터 클라이언트 애플리케이션(314) 내에서 DTCP 키(212)를 유도하거나 재구성하기에 충분한 DTCP 키(212)에 관한 정보를 획득하였을 수 있다.
일부 실시예들에서, 특정 소스 장치(100) 내의 DTCP-IP 모듈(208)에 의해 미디어 스트림들을 암호화하는 데 사용되는 DTCP 키(212)에 관한 정보는 그 특정 소스 장치(100)로부터의 스트림들에 액세스할 권한을 부여받은 각각의 이차 장치(102) 내의 DTCP-IP 보안 블록(304)에 배포될 수 있고, 따라서 DTCP-IP 보안 블록(304) 또는 클라이언트 애플리케이션(314)의 다른 부분은 DTCP 키(212)를 유도하거나 재구성할 수 있다. 일부 실시예들에서, 이차 장치(102) 및/또는 클라이언트 애플리케이션(314)은 그 이차 장치(102) 및/또는 클라이언트 애플리케이션(314)을 권한 부여 식별자(authorization identifier), 예를 들어 가입자 계정, 사용자 식별자, 멤버 식별자, 또는 임의의 다른 식별자와 관련시킴으로써 특정 소스 장치(100)로부터의 스트림들에 액세스할 권한을 부여받을 수 있다. 비제한적인 예로서, 케이블 텔레비전 서비스의 가입자가 소스 장치(100)를 가입자의 집에 있는 텔레비전(106)에 연결된 케이블 박스 및/또는 DVR로서 설치할 수 있고, 소스 장치(100) 내의 DTCP-IP 모듈(208)은 가입자의 계정에 링크될 수 있다. 케이블 가입자는 또한 스마트폰과 같은 이차 장치(102)상의 클라이언트 애플리케이션(314)을 통하여 자신의 계정에 서명하여 그 이차 장치(102)에게 자신의 계정에 링크된 소스 장치(100)로부터의 스트림들을 수신할 권한을 부여할 수 있는데, 그 이유는 둘 다 가입자의 계정에 링크되어 있기 때문이다. 이 예에서, 가입자의 소스 장치(100) 내의 DTCP-IP 모듈(208)에 의해 사용되는 DTCP 키(212)에 관한 정보는 그 가입자와 관련된 각각의 이차 장치(102) 내의 DTCP-IP 보안 블록들(304)에 배포될 수 있으며, 따라서 그 가입자와 관련된 임의의 이차 장치(102)는 DTCP 키(212)를 유도하고 그 가입자와 관련된 소스 장치(100)에 의해 암호화된 콘텐츠를 암호 해독할 수 있다.
단계 408에서, 분명한 전송 스트림(500)이 처리되고 청크들(502)로 나누어진다. 일부 실시예들에서, 청크들(502)은 실질적으로 동일한 시간 길이의 분명한 전송 스트림(500)의 세그먼트들일 수 있다. 비제한적인 예로서, 일부 실시예들에서 각각의 청크(502)는 분명한 전송 스트림(500)의 실질적으로 5초 길이의 부분일 수 있다. 다른 실시예들에서, 각각의 청크(502)는 실질적으로 1초 길이, 10초 길이, 또는 임의의 다른 원하는 시간 길이의 분명한 전송 스트림(500)의 부분일 수 있다.
일부 실시예들에서, 분명한 전송 스트림(500)을 청크들(502)로 나누기 전에, 분명한 전송 스트림(500) 내의 PCR(Program Clock Reference)들을 찾기 위해 분명한 전송 스트림(500)을 처리할 수 있다. 클라이언트 애플리케이션(314)은 그것의 PAT(Program Association Table) 및 PMT(Program Map Tables)의 PID(Packet Identifier)들뿐만 아니라 그것의 PCR(Program Clock Reference)들을 찾아 분명한 전송 스트림(500)을 검사할 수 있다. PAT(Program Association Table)는 분명한 전송 스트림(500)에서 사용 가능한 모든 프로그램을 목록화할 수 있다. 각각의 PMT(Program Map Table)는 PAT(Program Association Table)에 목록화된 단일 프로그램에 관한 정보를 기술할 수 있다. PCR(Program Clock Reference)들은 분명한 전송 스트림(500)에 전반적으로 포함될 수 있으며, 따라서 분명한 전송 스트림(500)의 상이한 구성 요소들이 동기화될 수 있다. 비제한적인 예로서, PCR들은 분명한 전송 스트림(500) 내에 적어도 100ms마다 포함될 수 있으며, 따라서 분명한 전송 스트림(500) 내의 오디오 및 비디오 트랙들은 PCR들에 따라 동기화될 수 있다. 일부 실시예들에서, 분명한 전송 스트림(500)의 PCR들은, 적어도 부분적으로, 그것을 실질적으로 동일한 시간 길이의 청크들(502)로 나누는 데 이용될 수 있는데, 그 이유는 PCR들이 분명한 전송 스트림(500)에 전반적으로 규칙적인 간격을 두고 나타나기 때문이다. 비제한적인 예로서, PCR들은 분명한 전송 스트림의 비트레이트를 추정하는 데 이용될 수 있으며, 따라서 각 청크(502)에 몇 개의 비트가 포함되어야 하는지를 결정하는 데 이용될 수 있다.
대안의 실시예들에서, 분명한 전송 스트림(500)을 처리하고 청크화하는 것은 PCR들을 찾아 분명한 전송 스트림(500)을 검사하지 않고 수행될 수 있다. 비제한적인 예로서, 일부 실시예들에서 클라이언트 애플리케이션(314)은 분명한 전송 스트림(500)의 비트레이트를 결정하거나 통보받을 수 있다. 클라이언트 애플리케이션(314)이 분명한 전송 스트림(500)이 일정한 비트레이트를 가지고 있는 것을 결정하거나 통보받는 상황들에서, 클라이언트 애플리케이션(314)은 분명한 전송 스트림(500)을, 비트들을 카운트하고 동일한 데이터 사이즈의 청크들(502)을 생성함으로써 실질적으로 동일한 시간 길이의 청크들(502)로 나눌 수 있다. 비트레이트가 가변적이지만 분명한 전송 스트림(500)의 일부 또는 전부로부터 평균 비트레이트가 결정될 수 있는 다른 상황들에서, 평균 비트레이트에 따라 실질적으로 동일한 시간 길이를 추정함으로써 실질적으로 동일한 시간 길이의 청크들(502)이 생성될 수 있다. 비제한적인 예로서, 처음 10초와 같이, 분명한 전송 스트림의 시작 부분을 검사하여 그것의 평균 비트레이트를 구할 수 있고, 그 평균 비트레이트는 분명한 전송 스트림(500)의 나머지에 대한 추정 평균 비트레이트로서 이용될 수 있다. 비제한적인 예로서, 평균 비트레이트는 분명한 전송 스트림(500)의 총 데이터 사이즈를 그것의 총 지속 기간으로 나누는 것에 의해 추정될 수 있다. 평균 비트레이트가 이용되는 이러한 상황들 중 일부에서, 청크들(502)에 대한 시간 길이는 다른 실시예들에서보다 더 긴 것으로 선택될 수 있는데, 그 이유는 더 긴 청크들(502)이 일부 경우에 평균 전체 비트레이트에 더 가까워질 가능성이 더 많을 수 있기 때문이다. 또 다른 실시예들, 특히 타이밍이 서버에 의해 거의 정확하게 구동되는 실시예들에서는, 실시간으로, 클록이 미리 선택된 시간 간격들을 타이밍하는 데 사용될 수 있고, 각각의 시간 간격에서 분명한 전송 스트림(500)으로부터 청크(502)가 쪼개져 나올 수 있다.
단계 410에서, 청크들(502)이 단계 408 동안에 생성될 때 청크들(502)의 아이덴티티 및 시퀀스를 기술하는 재생 목록(504)이 생성될 수 있고, 이 재생 목록(504)은 이차 장치(102) 내의 미디어 프록시 서버(308)에 저장될 수 있다. 미디어 프록시 서버(308)는 이차 장치(102) 내의 로컬 HTTP 프록시 서버일 수 있다. 일부 실시예들에서, 재생 목록(504)은 청크들(502)을 기술하는 정보를 포함하는 롤링(rolling) .m3u, .m3u8, 또는 다른 유형의 재생 목록일 수 있다. 일부 실시예들에서, 재생 목록(504)은 청크들(502)의 지속 기간을 기술하는 EXT-INF 태그를 더 포함할 수 있다. 비제한적인 예로서, 각 청크(502)의 길이가 10초로 설정되었을 때, 재생 목록(504)의 EXT-INF는 10초로 설정될 수 있다. 위에 설명한 바와 같이, EXT-INF 태그에 의해 기술된 청크들(502)의 지속 기간은 PCR들을 이용하고, 일정한 비트레이트의 분명한 전송 스트림(500) 내의 비트들을 카운트하고, 분명한 전송 스트림(500)에 대한 평균 비트레이트를 구한 후에 비트들을 카운트하고, 그리고/또는 실시간 클록을 이용하여 분명한 전송 스트림(500) 내의 미리 정해진 시간 간격을 두고 청크들(502)을 나누는 것에 의해 결정될 수 있다.
단계 412에서, 처리 블록(302)은 각 청크(502)를 청크 키(506)를 이용해 암호화된 청크(508)로 암호화하고, 이어서 각각의 암호화된 청크(508)를 미디어 프록시 서버(308)에 저장할 수 있다. 일부 실시예들에서, 각 청크(502)는 동일한 청크 키(506)를 이용해 암호화될 수 있는 반면, 다른 실시예들에서는 상이한 청크 키들(506)의 시퀀스가 각 청크(502)를 암호화하는 데 이용될 수 있다. 일부 실시예들에서, 청크들(502)을 암호화하는 데 이용되는 하나 이상의 청크 키(506)는, 보충 보안 블록(306) 또는 DTCP-IP 보안 블록(304)에 의해 처리 블록(302)에 제공된, 그리고/또는 처리 블록(302)에 의해 생성된 청크 키(506)와 같은, DTCP 키(212)와 다를 수 있다. 비제한적인 예로서, 보충 보안 블록(306)은 하나 이상의 새로운 키를 생성하여 청크 키들(506)로서 이용을 위해 처리 블록(302)에 제공할 수 있다. 대안의 실시예들에서, 청크 키(506)는 DTCP 키(212)와 동일할 수 있다. 비제한적인 예들로서, 처리 블록(302)은 단계 406에서 청크 키(506)로서 획득한 DTCP 키(212)의 사본을 재사용할 수 있거나, DTCP-IP 보안 블록(304)은 소스 장치(100)로부터 획득한 DTCP 키(212)를 보충 보안 블록(306)에 제공하였을 수 있고, 따라서 DTCP 키(212)는 청크들(502)을 암호화된 청크들(508)로 암호화하기 위한 청크 키(506)로서 이용되도록 단계 412 동안에 보충 보안 블록(306)으로부터 처리 블록(302)으로 제공될 수 있다. 일부 실시예들에서, 처리 블록(302)은 추가로 복제 제어 정보(CCI), 권리 정보, 및/또는 출력 제어, 예를 들어 DTCP-IP 보안 블록(304)으로부터 수신된 CCI를 처리할 수 있다.
단계 414에서, 단계 412 동안에 청크들(502)을 암호화하는 데 이용되는 하나 이상의 청크 키(506)는 이차 장치(102) 내의 보안 프록시 서버(310)에 호스팅될 수 있다. 보안 프록시 서버(310)는, 미디어 프록시 서버(308)와 유사하게, 이차 장치(102) 내의 로컬 HTTP 프록시 서버일 수 있다. 보충 보안 블록(306)은 단계 412 동안 사용을 위해 청크 키들(506)을 처리 블록(302)에 제공하는 것 외에 하나 이상의 청크 키(506)를 보안 프록시 서버(310)에 제공할 수 있다. 대안의 실시예들에서, 처리 블록(302)은 청크들(502)을 암호화하는 데 사용한 청크 키들(506)을 보안 프록시 서버(310)에 제공할 수 있다.
단계 416에서, 미디어 플레이어(312)는 소스 장치(100)로부터 수신된 미디어 콘텐츠를 재생할 수 있다. 미디어 플레이어(312)는 미디어 프록시 서버(308)와 보안 프록시 서버(310) 양쪽 모두와 통신할 수 있다. 미디어 플레이어(312)는 미디어 프록시 서버(308)에 저장된 재생 목록(504)을 이용하여 어느 청크들(502)이 재생되어야 하고/하거나 어떤 순서로 재생되어야 하는지를 결정할 수 있다. 미디어 플레이어(312)는 미디어 프록시 서버(308)로부터 재생 목록(504)에 의해 기술된 청크들(502)에 대응하는 암호화된 청크들(508)을 획득할 수 있다. 이어서 미디어 플레이어(312)는 각각의 암호화된 청크(508)에 대한 적절한 청크 키(506)를 획득할 수 있고, 그 청크 키(506)를 이용하여 암호화된 청크(508)를 암호화되지 않은 청크(502)로 암호 해독할 수 있다. 이어서 암호화되지 않은 청크(502)는 이차 장치에서 비디오로서 재생되고 표시될 수 있다. 미디어 플레이어(312)는 재생 목록(504) 내의 각각의 후속 청크(502)에 대해 이러한 처리를 계속하여 요청된 미디어 콘텐츠의 일부 또는 전부를 재생할 수 있다.
일부 실시예들에서, 미디어 플레이어(312)와 보안 프록시 서버(310) 사이에 양방향(2-way) SSL 연결이 존재할 수 있고, 따라서 각각의 청크 키(506)가 미디어 플레이어(312)에 안전하게 전달될 수 있다. 일부 실시예들에서, 미디어 플레이어(312)와 보안 프록시 서버(310) 사이의 양방향 SSL 연결은 또한 보안 프록시 서버(310)가 이차 장치(102)에 의해 유지된 장치 인증서를 확인하는 것을, 그리고 미디어 플레이어(312)가 보안 프록시 서버(310)에 의해 유지된 인증서를 확인하는 것을 허용할 수 있다.
일부 실시예들에서, 재생 목록(504)은 청크(502)가 생성되고/되거나 청크(502)를 암호화된 청크(508)로 암호화하는 프로세스가 시작되자마자 각 청크(502)에 관한 데이터를 포함할 수 있으며, 따라서 미디어 플레이어(312)는 가능한 한 빨리 청크(502)를 인지하고 청크(502)의 재생을 시작할 수 있다. 유사하게, 일부 실시예들에서 암호화된 청크(508)는 작은 단편들로 미디어 프록시 서버(308) 및/또는 미디어 플레이어(312)에 전송될 수 있고, 따라서 암호화된 청크들(508)의 암호 해독 및 재생은 첫 번째 단편이 미디어 플레이어(312)에 의해 수신되자마자 시작될 수 있다. 미디어 콘텐츠가 미리 녹화되었고 소스 장치(100)에서의 미디어 콘텐츠의 트랜스코딩이 실시간보다 빠르게 발생할 수 있는 일부 상황들에서, 이차 장치(102)는 청크들(502)이 가능한 한 빨리 생성, 암호화, 전송, 및 암호 해독되게 하여 가능한 빨리 재생을 시작하기 위해 전송 스트림(214)의 처음 부분을 실시간보다 빠른 속도로 로딩하려고 시도할 수 있다.
도 6a는 소스 장치(100)의 DTCP-IP 모듈(208)에 의해 암호화된 후의 미디어 콘텐츠의 예시적인 부분들(600)을 묘사한다. 도 6b는 전송 스트림(214)의 캡슐화 동안에 생성된 DTCP 프레임(604)의 예시적인 실시예를 묘사한다.
일부 실시예들에서, 소스 장치(100)에서 미디어 콘텐츠를 암호화된 전송 스트림(214)으로 초기 암호화하는 것은, 도 6a에 도시된 바와 같이, DTCP-IP 모듈(208)에 의해 미리 정해진 사이즈의 미디어 콘텐츠의 부분들(600)을 순차적으로 암호화하는 것에 의해 수행될 수 있다. 비제한적인 예로서, DTCP-IP 모듈(208)은 미디어 콘텐츠를 AES-CBC(Advanced Encryption Standard - Cipher-Block Chaining)에 따라 암호화할 수 있는데, 여기서 부분들(600)의 미리 정해진 사이즈는 16 바이트이다. 대안의 실시예들에서는 부분들(600)에 대해 임의의 다른 미리 정해진 사이즈가 이용될 수 있지만 간략화를 위해 이 개시 내용은 AES-CBC에서 사용되는 것으로 16 바이트를 가진 부분들(600)을 언급할 것이다.
각각의 부분(600)은 DTCP 키(212) 외에 초기화 벡터(IV)(602)를 이용하여 암호화될 수 있다. 첫 번째 부분(600)은 유도된 IV(602)를 이용하여 암호화될 수 있지만, 첫 번째 부분(600)이 암호화되면, 이전의 암호화된 부분(600)은 다음 부분(600)을 암호화하기 위한 IV(602)로서 이용될 수 있다. 비제한적인 예로서, AES-CBC 스킴에서, 미디어 콘텐츠의 16 바이트 부분(600)이 암호화되면, 그 암호화된 16 바이트 부분(600)은 미디어 콘텐츠의 다음 16 바이트를 암호화하기 위한 IV(602)로서 이용될 수 있다.
DTCP-IP 모듈(208)이 암호화된 미디어 콘텐츠를 전송 스트림(214)으로 암호화할 때, 그것은 암호화된 미디어 콘텐츠를 복수의 DTCP 프레임(604)으로 캡슐화한다. 도 6b는 예시적인 DTCP 프레임(604)을 묘사한다. 각각의 DTCP 프레임(604)은 헤더(606), 페이로드(608), 및 테일(610)을 포함하는 보호된 콘텐츠 패킷(PCP)일 수 있다. 헤더(606)와 테일(610)은 DTCP 프레임(604)에 관한 정보 데이터를 포함할 수 있는 반면, 페이로드(608)는 미디어 콘텐츠의 하나 이상의 암호화된 부분(600)을 포함할 수 있다. 위에 설명한 바와 같이, DTCP 프레임의 페이로드 데이터(608)의 각각의 암호화된 부분(600)은, 첫 번째 부분(600)은 제외하고, 이전의 암호화된 부분(600)을 그것의 IV(602)로서 이용하여 암호화되었을 수 있다. 따라서, 페이로드(608) 내의 이들 암호화된 부분(600) 각각에 대한 IV(602)는 바로 이전의 암호화된 부분(600)을 찾는 것에 의해 구해질 수 있다. 페이로드(608) 내의 첫 번째 부분(600)을 암호화하는 데 사용되는 디폴트 IV(602)는 DTCP 프레임의 헤더(606) 내에 저장될 수 있다.
일부 상황들에서, 페이로드(608)의 마지막 부분(600)은, 도 8a의 상부에 도시된 바와 같이, 하나 이상의 DTCP 패딩 바이트(802)를 포함할 수 있다. 이러한 상황들에서, DTCP 프레임(604)의 마지막 부분(600)은 미디어 콘텐츠 자체로부터의 미리 정해진 수보다 적은 수의 바이트를 포함할 수 있고, 미리 정해진 수의 바이트의 나머지는 암호화 동안에 DTCP 패딩 바이트들(802)로 채워질 수 있다. 비제한적인 예로서, 부분들(600)의 미리 정해진 사이즈가 16 바이트로 설정될 때, 페이로드(608)의 마지막 부분(600)이 미디어 콘텐츠로부터의 1 내지 15 바이트를 포함한다면, DTCP 패딩 바이트들(802)은 총 16 바이트의 나머지를 채우는 데 이용될 수 있다.
도 7은 전송 스트림(214)을 수신하고 이차 장치(102)상의 미디어 플레이어(312)에서의 재생을 위해 변환하기 위한 제2 프로세스를 묘사한다. 도 7의 프로세스는 클라이언트 애플리케이션(314)에 의해 DTCP 프레임들(604)을 미디어 플레이어(312)에 의해 기대되는 암호화된 청크들(806)로 변환하는 데 이용될 수 있다. 일부 실시예들에서, DTCP 프레임들(604)은 패딩 바이트들(804)로 패딩될 수 있는 보다 작은 청크들(800)로 쪼개질 수 있고, 이어서 이들은 그 자체가 암호화된 청크들(806)로서 이용되기 위해 아래 설명된 바와 같이 암호화된다. 암호화된 청크들(806)은 도 4의 프로세스를 통하여 생성될 암호화된 청크들(508)과 유사할 수 있다.
일부 실시예들에서 이차 장치의 미디어 플레이어(312)에 의해 암호 해독되어 재생될 수 있는 암호화된 청크들(806) 내의 패딩 바이트들(804)의 형식은 DTCP 프레임들(604)의 부분들(600)을 채우는 데 이용되는 DTCP 패딩 바이트들(802)의 형식과 다르다. 비제한적인 예로서, Apple® iOS® 장치 내의 고유한 미디어 플레이어는 HLS 플레이어이다. HLS는 DTCP-IP가 AES-CBC 암호화로 암호화된 DTCP 프레임들(604)을 이용하는 것과 마찬가지로, AES-CBC 암호화로 암호화된 암호화된 청크들(508 또는 806)을 이용한다. 그러나, HLS 암호화된 청크들(508 또는 806)과 DTCP 프레임들(604)은 각기 다른 유형의 패딩 바이트들을 이용한다. 도 8a에 도시된 바와 같이 DTCP 프레임(604) 내의 DTCP 패딩 바이트들(802)을 대체 HLS 패딩 바이트들(804)로 대체하거나, 도 8b에 도시된 바와 같이 DTCP 프레임(604)의 청크들(800)에 HLS 패딩 바이트들(804)을 부가하는 것에 의해, DTCP 프레임(604)은, 전송 스트림(214)의 전체 암호 해독, 분명한 전송 스트림(500)의 청크화, 및 개별 청크들(502)을 암호화된 청크들(508)로 전체 재암호화하는 것을 수반하는 도 4의 단계들 없이, HLS 플레이어에 의해 판독 가능한 HLS 형식의 암호화된 청크들(806)로 변환될 수 있다.
단계 702에서, 클라이언트 애플리케이션(314)이 DTCP 프레임(604)을 수신할 때, 그것은 DTCP 프레임(604)을, 개별 부분들(600)을 암호 해독하지 않고, 청크들(800)로 나눌 수 있다. 각각의 청크(800)는 DTCP 프레임의 페이로드(608)로부터의, 보통 N초 청크를 생성할 만큼 많은, 다수의 암호화된 부분들(600)을 포함할 수 있다. 비제한적인 예로서, DTCP 프레임(604)은 복수의 16 바이트 부분(600)을 포함할 수 있고, 몇 개의 부분(600)이 각각의 청크(800)로 형성될 수 있고, 따라서 각각의 청크(800)는 16 바이트의 배수인 데이터 사이즈를 가진다.
단계 704에서, 도 8a에 도시된 바와 같이, 패딩 바이트들(804)이 각각의 청크(800)의 끝에 부가될 수 있고 부가된 부분들은 청크(800)를 암호화된 청크(806)로 변하게 하기 위해 암호화될 수 있다. 패딩 바이트들(804)은 미디어 플레이어(312)에 의해 기대되는 형식일 수 있고, 따라서 미디어 플레이어(312)는 DTCP 프레임의 페이로드(608)를 판독하여 재생할 수 있다. 비제한적인 예로서, Apple® iOS® 장치들에서 이용되는 미디어 플레이어(312)는 각각의 암호화된 청크(508)의 끝에서 HLS 패딩 바이트들(804)을 찾기를 기대하는 HLS 플레이어일 수 있으며, 따라서 대체 패딩 바이트들(804)은 HLS 패딩 바이트들일 수 있다. 일부 실시예들에서, 개별 부분(600)의 사이즈와 같은 다수의 패딩 바이트들(804)이 청크(800)의 끝에 부가될 수 있다. 비제한적인 예로서, 청크(800)가 DTCP 프레임(604)으로부터의 몇 개의 16 바이트 부분(600)을 그룹화함으로써 형성되었을 때, 16개의 패딩 바이트(804)가 청크(800)의 끝에 부가될 수 있다. 부가된 패딩 바이트들(804)은 DTCP 키(212)를 이용해 암호화될 수 있으며, 따라서 DTCP 프레임(604)으로부터 쪼개져 나온 이미 암호화된 청크(800)와 새로이 부가되어 암호화된 패딩 바이트들(804)이 함께 전체 암호화된 청크(806)를 형성한다.
그러나, 도 8b에 도시된 바와 같은 일부 상황들에서, 특정 DTCP 프레임의 페이로드(608)의 마지막 암호화된 부분(600)은 미디어 콘텐츠로부터의 전체 수보다 적은 수의 바이트를 포함할 수 있고, 나머지는 DTCP 패딩 바이트들(802)로 채워진다. 이 마지막 암호화된 부분(600)이 청크(800)의 일부로서 이용될 때, 그 마지막 암호화된 부분(600)은 암호 해독될 수 있고 그것의 DTCP 패딩 바이트들(802)은 제거되어 HLS 패딩 바이트들(804)로 대체될 수 있다. 비제한적인 예로서, AES-CBC 암호화 스킴에서, 페이로드(608)의 마지막 부분(600)은 페이로드(608)의 마지막 16 바이트일 수 있다. 클라이언트 애플리케이션(314)은 또한 페이로드(608) 내의 마지막 부분(600)에 바로 선행하는 부분(600)을 찾음으로써 마지막 부분(600)에 대한 IV(602)를 구할 수 있다. 비제한적인 예로서, AES-CBC 암호화 스킴에서, 마지막 16 바이트에 대한 IV(602)는, 도 6b에 도시된 바와 같이, 마지막 16 바이트에 선행하는 16 바이트를 살펴봄으로써 구해질 수 있다. 마지막 부분(600)에 대한 IV(602)는 DTCP 키(212)와 공동으로 마지막 부분(600)을 암호 해독하는 데 이용될 수 있다. 단계 406에서와 같이, DTCP 키(212)는 DTCP-IP 보안 블록(304)에 의해 처리 블록에 제공될 수 있다. 마지막 부분(600)이 암호 해독된 후에, DTCP 패딩 바이트들(802)은 HLS 패딩 바이트들(804)로 대체될 수 있다. 대체 HLS 패딩 바이트들(804)을 가진 마지막 부분(600)은 재암호화될 수 있으며, 따라서 그 마지막 부분(600)을 포함하는 전체 청크(800)는 HLS 패딩 바이트들(804)을 포함하고 암호화된 청크(806)로서 이용될 수 있다.
다른 상황들 및/또는 실시예들에서, 페이로드(608)의 마지막 부분(600)이 하나 이상의 패딩 바이트를 포함하지 않고, 대신에 배타적으로 미디어 콘텐츠로부터의 바이트들로 구성되어 있다면, 처리 블록(302)은 미디어 플레이어(312)에 의해 기대되는 형식으로 패딩 바이트들을 배타적으로 포함하는 부가의 부분(600)을 페이로드(608)의 끝에 덧붙일 수 있다. 비제한적인 예로서, 처리 블록(302)이 DTCP 프레임의 페이로드(608) 내의 마지막 부분(600)이 어떤 패딩 바이트도 포함하지 않은 마지막 부분(600)을 암호 해독 후에 발견한다면, 처리 블록(302)은 미디어 플레이어(312)에 의해 기대되는 형식으로 16개의 패딩 바이트를 포함하는 추가 부분(600)을 마지막 부분(600) 뒤에 덧붙일 수 있으며, 따라서 마지막 부분(600)을 포함하는 청크(800)는 배타적으로 패딩 바이트들인 새로운 마지막 부분(600)을 갖는다.
단계 706에서, HLS 패딩 바이트들(804)을 포함하는 암호화된 청크들(806)은 미디어 프록시 서버(308)에 저장될 수 있다.
단계 708에서, 암호화된 청크들(806)을 기술하는 재생 목록(504)이 처리 블록(302)에 의해 생성되어 미디어 프록시 서버(308)에 저장될 수 있다. 재생 목록(504)은 각각의 암호화된 청크(806)의 첫 번째 부분(600)에 대한 IV(602)을 포함하는 키태그 정의들을 포함할 수 있으며, 따라서 암호화된 청크(806)의 초기 부분(600)은 나중에 그것의 IV(602)를 이용해 부분적으로 암호 해독될 수 있다. DTCP 프레임(604)으로부터의 첫 번째 암호화된 청크(806)의 첫 번째 부분(600)에 대한 유도된 IV(602)는 DTCP 프레임의 헤더(606), 및 DTCP 키(212)로부터 얻어질 수 있는 반면 다른 암호화된 청크들(806)의 첫 번째 부분(600)에 대한 IV들(602)은 DTCP 프레임(604)으로부터 쪼개져 나오기 전에 DTCP 프레임(604)에서 그 부분(600)에 선행한 부분(600)을 살펴봄으로써 얻어질 수 있다. 단계 410에서 설명된 바와 같이, 재생 목록(504)은 롤링 .m3u8 재생 목록 또는 임의의 다른 유형의 재생 목록일 수 있다.
유사하게, 위에 설명한 바와 같이, 재생 목록(504)은 또한 암호화된 청크들(806)의 시작 지속 기간을 기술하는 EXT-INF 값을 포함할 수 있다. 일부 상황들 및/또는 실시예들에서, 암호화된 전송 스트림(214)이 처리 전에 사전에 일정한 비트레이트를 갖는 것으로 알려질 때, EXT-INF 값이 선택될 수 있고 DTCP 프레임(604)으로부터의 데이터 비트들을 카운트하는 것에 의해 청크 경계들이 결정될 수 있다.
전송 스트림의 비트레이트가 처리 전에 알려지지 않거나 비트레이트가 가변적인 대안의 상황들 및/또는 실시예들에서, 전송 스트림(214)의 처음 부분에서 부분들(600)의 선택 또는 완전한 DTCP 프레임들(604)이 암호 해독될 수 있고, 따라서 암호 해독된 부분들의 평균 비트레이트가 결정될 수 있다. 그 평균 비트레이트 및 초 단위의 선택된 청크 사이즈(재생 목록(504)에 대한 EXT-INF 값)는 DTCP 프레임을 청크들로 나누는 데 이용될 수 있다. 비제한적인 예로서, 암호화된 전송 스트림(214)의 처음 10초가 암호 해독될 수 있고, 그 처음 10초의 평균 비트레이트가 구해질 수 있고, 그 평균 비트레이트가 전송 스트림(214)으로부터 생성된 각각의 암호화된 청크(806)에 대해 사용할 바이트의 수를 추정하는 데 이용될 수 있다.
적응적 스트리밍 상황들에서와 같이, 또 다른 상황들 및/또는 실시예들에서, 전송 스트림(214)의 비트레이트는 매우 가변적일 수 있으며, 따라서 스트림의 비트레이트가 사전에 알려지지 않고/거나 전송 스트림(214)의 시작 부분에 대한 평균 비트레이트의 추정이 전송 스트림의 나머지에 대해 유지되지 않을 수 있다. 이러한 상황들에서, 소스 장치(100)로부터의 전송 스트림(214)의 트랜스코딩 및 스트리밍은 실질적으로 푸시 모델로 동작할 수 있고, 여기서 소스 장치(100)는 미디어 콘텐츠가 소스 장치(100)에 수신될 때 거의 실시간으로 전송 스트림(214)을 트랜스코딩하고 이차 장치(102)에 전송한다. 이러한 상황들에서 청크 경계들은 DTCP 프레임(604) 내의 콘텐츠로부터 형성된 각 청크에 대해 그것들이 수신될 때 사용할 바이트의 수를 추정하기 위해 실시간 클록 및 초 단위의 선택된 청크 사이즈(재생 목록(504) 내의 EXT-INF 값들)를 이용하여 결정될 수 있다.
단계 710에서, 미디어 플레이어(312)는 미디어 콘텐츠를 재생할 수 있다. 도 4의 재생 단계들과 유사하게, 암호화된 청크들(806)과 재생 목록(504)은 미디어 프록시 서버(308)로부터 검색될 수 있고, DTCP 키(212)는 보안 프록시 서버(310)로부터 검색될 수 있다. 미디어 플레이어(312)는 DTCP 키(212)와 IV들(602)을 이용하여 암호화된 청크들(806)의 각 부분(600)을 암호 해독하고 암호 해독된 미디어 콘텐츠를 재생할 수 있다.
위에 설명한 바와 같이, 대부분의 상황들에서 DTCP 프레임(604)은 암호화된 청크(806)에 대해 유용한 것보다 더 길 수 있고, 단일의 DTCP 프레임(604)이 청크들(800)로 쪼개질 수 있고, 미디어 플레이어(312)에 의해 재생 가능한 암호화된 청크들(806)을 형성하기 위해 청크들(800)의 끝에 부가되거나 대체된 HLS 패딩 바이트들(804)을 가질 수 있다. 다른 상황들에서, 특정 DTCP 프레임(604)이 암호화된 청크(806)의 원하는 사이즈보다 작을 수 있다. 비제한적인 예로서, 1500 바이트의 DTCP 프레임(604)이 암호화된 청크(806)의 원하는 사이즈보다 작을 수 있다. 이러한 상황들에서, 작은 DTCP 프레임(604)은 다음 DTCP 프레임(604)의 시작 부분과 결합될 수 있다. 각각의 개별 DTCP 프레임(604)이 그것의 마지막 부분(600) 내에 DTCP 패딩 바이트들(802)을 가질 수 있으므로, 일부 실시예들에서 각각의 DTCP 프레임(604)은 암호 해독될 수 있고 DTCP 패딩 바이트들(802)은 DTCP 프레임들(604)이 단일의 암호화된 청크(806)로 결합되기 전에 (첫 번째 프레임으로부터) 제거되거나 (두 번째 프레임에 대해) 대체 패딩 바이트들(804)로 대체될 수 있다.
일부 대안의 실시예들에서, 도 4의 프로세스의 요소들을 도 7로부터의 단계들로 보충하여 청크들(502)을 암호화된 청크들(508)로 재암호화하는 것을 피하고 대신에 DTCP 프레임들(604)을 암호화된 청크들(806)로 쪼갤 수 있고, 이는 일부 상황들에서 이차 장치(102)에 대한 처리 부하를 감소시킬 수 있다. 이러한 실시예들에서, 착신되는 전송 스트림(214)을 단계 406에서와 같이 암호 해독하여 분명한 전송 스트림(500)을 형성할 수 있다. 그 분명한 전송 스트림(500)을 그것의 PCR들 또는 다른 필드들에 대하여 검사하여, 예를 들어 분명한 전송 스트림(500) 내의 각 PCR 사이의 시간 길이에 따라 각 청크(502)의 적절한 시간 지속 기간을 결정할 수 있다. 그 시간 길이는 재생 목록(504)에서 EXT-INF 값으로 이용될 수 있다. 그러나 이러한 실시예들에서, 분명한 전송 스트림(500)의 청크화 및 재암호화를 피할 수 있고, 수신된 DTCP 프레임들(604)은 대신에 도 7에 도시된 프로세스를 통하여 암호화된 청크들(806)로 바로 변환될 수 있다. 비제한적인 예로서, PCR들을 찾고 각 청크의 적절한 시간 지속 기간(EXT-INF 값들)을 결정하기 위해 전송 스트림(214)이 분명한 전송 스트림(500)으로 암호 해독될 수는 있지만, 이러한 실시예들에서 청크들(502)이 생성되어 암호화되지 않고 대신에 도 7의 프로세스를 이용하여 DTCP 프레임(604)을 청크들(800)로 쪼개고, 패딩 바이트들을 부가하거나 대체하고, 암호화된 청크들(806)을 생성할 수 있다. 그 암호화된 청크들(806)은 미디어 플레이어(312)에 의해 재생될 수 있다.
일부 상황들에서, 이차 장치(102)의 사용자는 일시 중지, 되감기, 빨리 감기하거나, 미디어 콘텐츠 내의 특정 시점을 찾거나, 상이한 속도의 재생을 요청하거나, 임의의 다른 동작을 요청하기 위해 소스 장치(100)에 명령들을 제출할 수 있다. 비제한적인 예로서, 미디어 플레이어(312)는 그래픽 사용자 인터페이스를 사용자에 제시할 수 있고, 사용자는 그 GUI를 이용하여 미디어 플레이어의 재생에 관한 명령들을 입력할 수 있다. 미디어 플레이어(312)는 그 명령들을 클라이언트 애플리케이션(314)에 보낼 수 있고, 후자는 소스 장치(100)에게, 예를 들어 DNLA 헤더 또는 액션을 통하여, 요청된 동작을 통지할 수 있다. 이러한 경우들에, 소스 장치(100)는 지정된 불연속 지점들을 가진 전송 스트림(214)을 생성할 수 있고, 따라서 전송 스트림(214) 내의 특정 지점이 발견될 수 있다. 일부 실시예들에서, 전송 스트림(214) 내의 DNLA 시그널링 층은 소스 장치(100)가 전송을 일지 중지하였거나 전송 스트림(214)의 전송을 버퍼링하고 있다는 것, 또는 전송 스트림(214)이 진행중인 레코딩의 완성된 부분이 아니라 완성된 레코딩을 전송하고 있다는 것을 알릴 수 있다. 소스 장치(100)는 전송 스트림(214)을 계속 생성하고 그것을 미디어 콘텐츠 내의 요청된 위치에서, 재생 속도, 또는 임의의 다른 속성으로 이차 장치(102)에 전송할 수 있으며, 따라서 전송 스트림(214)은 계속해서 이차 장치(102)에 의해 수신되고 처리된다.
비제한적인 예로서, 사용자는 미디어 플레이어(312)에서 미디어 콘텐츠가 30초 되감기되는 명령을 입력할 수 있고, 그 명령은 소스 장치(100)에 전송될 수 있다. 이어서 소스 장치(100)는 전송 스트림(214) 내의 30초 이른 불연속 지점으로 되돌아가고, 그 불연속 지점으로부터 전송 스트림(214)을 이차 장치로 전송할 수 있다. 이차 장치(102)는 수신된 전송 스트림(214)을 위에 설명한 바와 같이 처리할 수 있으며, 따라서 암호화된 청크들(508)과 재생 목록(504)이 마치 생방송 스트림인 것처럼 미디어 콘텐츠 내의 새로운 위치로부터 미디어 플레이어(312)에 전달된다.
일부 실시예들에서, 전체 전송 스트림(214)이 소스 장치(100)로부터 이차 장치(102) 내의 저장 메모리로 전달되거나 로딩될 수 있다. 비제한적인 예로서, 소스 장치(100)상의 미디어 녹화물이 이차 장치(102) 내의 하드 드라이브 또는 메모리 카드로 다운로딩될 수 있다. 이러한 실시예들에서, 다운로딩된 전송 스트림(214)은 소스 장치(100)로부터 데이터 네트워크를 통하여 실시간으로 스트리밍되는 대신에 이차 장치(102)상에서 로컬로 재생될 수 있다.
이러한 경우들에, 이차 장치(102) 내의 로컬 저장소에 로딩된 전송 스트림(214)은 위에 설명한 프로세스들을 통하여 로컬 미디어 플레이어(312)에 의해 기대되는 형식으로 변환되지 않는 한 로컬 미디어 플레이어(312)와 호환되지 않을 수 있다. 비제한적인 예로서, DTCP-IP 스트림은 HLS 스트림과 호환되지 않을 수 있지만, DTCP-IP 스트림은 HLS 미디어 플레이어(312)와 호환되도록, 도 4 및/또는 도 7의 프로세스들과 같은, 위에 설명한 프로세스들을 통하여 처리될 수 있다.
그러나, 전송 스트림(214)은 예를 들어 DNLA http GET 명령을 통하여 미디어 콘텐츠의 실시간 재생보다 빠르게 이차 장치(102)에 로딩될 수 있다. 이러한 실시예들에서, 암호화된 전송 스트림(214)은 이차 장치의 로컬 저장소에 사전에 저장될 수 있고, 위에 설명한 프로세스들은 재생 중에 수행될 수 있다. 대안으로, 전체 로컬 저장된 암호화된 전송 스트림(214)은 CPU 사이클들이 이용 가능할 때 배경에서 미디어 플레이어(312)에 의해 재생 가능한 형식으로 변환될 수 있다. 이러한 실시예들에서, 이차 장치(102)는 저장된 전송 스트림(214)을 처리하여 일련의 암호화된 청크들(508)을 생성할 수 있다. 일부 실시예들에서, 일련의 암호화된 청크들(508)은 미디어 프록시 서버(308) 또는 로컬 저장 장치상에 단일의 .ts 전송 파일에 저장될 수 있고, 모든 암호화된 청크들(508)을 포함하는 .ts 전송 파일 내의 각 암호화된 청크(508)의 위치를 기술하는 단일의 재생 목록(504)이 미디어 프록시 서버(308)에서 생성될 수 있다. 비제한적인 예로서, 재생 목록(504)은, 재생의 끝을 지정하기 위한 END_TAG를 포함하여, 미디어 콘텐츠의 전체 지속 시간을 나타낼 수 있고, 재생 목록(504)은 단일의 .ts 전송 파일 내의 각 암호화된 청크(508)의 위치들을 나타내기 위한 BYTE_OFFSET 파라미터들을 포함할 수 있다.
이러한 실시예들 중 일부에서, 하나 이상의 청크 키(506) 또는 DTCP 키(212), 및/또는 관련된 인증서들, 출력 제어 비트들, 권리 정보, 또는 임의의 다른 정보가 암호화된 청크들(508)을 포함하는 .ts 전송 파일과 동일한 로컬 저장 장치 또는 메모리 카드에 저장될 수 있다.
본 발명이 그것의 특정 실시예들과 함께 설명되었지만, 다수의 대안, 변경 및 변형이 이 기술 분야의 숙련자들에게는 명백할 것임이 분명하다. 따라서, 설명되고 이하에 청구된 본 발명은 첨부된 특허 청구 범위의 정신 및 넓은 범위 내에 드는 이러한 모든 대체, 변형 및 변화를 포함하는 것을 의도한다.

Claims (13)

  1. DTCP-IP 전송 스트림을 HLS 형식으로 변환하기 위한 프로세스로서,
    암호화된 DTCP-IP 전송 스트림을 소스 장치로부터 이차 장치에서 수신하는 단계 - 상기 암호화된 DTCP-IP 전송 스트림은 복수의 DTCP 프레임을 포함하고, 상기 복수의 DTCP 프레임 각각은 복수의 암호화된 16 바이트 부분을 포함함 -;
    상기 복수의 DTCP 프레임 중 하나로부터 복수의 암호화된 16 바이트 부분 중 하나 이상을 청크로 그룹화함으로써 청크들을 형성하는 단계;
    상기 청크의 끝에 HLS 패딩 바이트들을 부가하고 상기 HLS 패딩 바이트들을 암호화하여, 상기 청크와 상기 암호화된 HLS 패딩 바이트들이 암호화된 청크를 형성하게 하는 단계;
    상기 암호화된 청크들 각각과, 상기 암호화된 청크들의 재생 목록을 상기 이차 장치에 있는 미디어 프록시 서버로 로딩하는 단계;
    DTCP 키를 상기 이차 장치에 있는 보안 프록시 서버로 로딩하는 단계 - 상기 DTCP 키는 상기 소스 장치로부터 획득된 것임 -; 및
    상기 재생 목록, 상기 암호화된 청크들 각각과, 상기 DTCP 키를 상기 이차 장치상의 고유한 미디어 플레이어에 제공하여, 상기 고유한 미디어 플레이어가 상기 재생 목록을 따라 상기 DTCP 키를 이용하여 상기 암호화된 청크들을 암호 해독하고 상기 청크들을 재생하게 하는 단계
    를 포함하는, 프로세스.
  2. 제1항에 있어서, 상기 청크들 중 하나는 상기 복수의 DTCP 프레임 중 하나로부터의 마지막 16 바이트 부분을 포함하고,
    상기 프로세스는,
    상기 마지막 16 바이트 부분을 암호 해독하는 단계;
    상기 마지막 16 바이트 부분 내의 DTCP 패딩 바이트들을 HLS 패딩 바이트들로 대체하는 단계; 및
    상기 마지막 16 바이트 부분을 재암호화하여 상기 암호화된 청크들 중 하나를 형성하는 단계
    를 더 포함하는, 프로세스.
  3. 제1항에 있어서, 상기 재생 목록은 상기 암호화된 청크들 각각의 시간 길이를 기술하는 값을 포함하는, 프로세스.
  4. 제3항에 있어서, 상기 시간 길이는 상기 암호화된 DTCP-IP 전송 스트림의 일부 또는 전부를 암호 해독하여 분명한 전송 스트림을 형성하고, 상기 분명한 전송 스트림 내의 PCR들을 찾고, 적어도 부분적으로 상기 분명한 전송 스트림 내의 PCR들 사이의 시간 길이에 의해 상기 시간 길이를 결정하는 것에 의해 결정되는, 프로세스.
  5. 제4항에 있어서, 상기 분명한 전송 스트림은 일정한 비트레이트를 갖고, 상기 시간 길이는, 상기 일정한 비트레이트로부터 비트들을 카운트하는 것에 의해 구해진, 각 청크에 대한 비트들의 수에 의해 결정되는, 프로세스.
  6. 제4항에 있어서, 상기 분명한 전송 스트림은 가변 비트레이트를 갖고, 상기 시간 길이는, 상기 분명한 전송 스트림에 대한 평균 비트레이트로부터, 상기 평균 비트레이트로부터 비트들을 카운트하는 것에 의해 구해진, 각 청크에 대한 비트들의 수에 의해 결정되는, 프로세스.
  7. 제4항에 있어서, 상기 시간 길이는 클록을 이용하여 상기 암호화된 DTCP-IP 전송 스트림을 미리 선택된 시간 간격들을 두고 상기 청크들로 나누는 것에 의해 결정되는, 프로세스.
  8. 제1항에 있어서, 상기 암호화된 DTCP-IP 전송 스트림은 상기 이차 장치로부터 상기 소스 장치로 제출된 사용자 미디어 제어 명령에 응답하여 상기 암호화된 DTCP-IP 전송 스트림 내의 속도 또는 시간 지점에서 상기 소스 장치로부터 상기 이차 장치에서 수신되는, 프로세스.
  9. 제1항에 있어서, 상기 DTCP 프레임 내의 상기 청크에서 첫 번째 부분으로서 이용된 16 바이트 부분에 바로 선행한 상이한 16 바이트 부분을 찾음으로써 상기 청크에 대한 초기화 벡터를 구하고, 그 상이한 16 바이트 부분을 상기 청크에 대한 상기 초기화 벡터로서 이용하는 단계를 더 포함하는, 프로세스.
  10. 제9항에 있어서, 상기 재생 목록에 상기 청크에 대한 상기 초기화 벡터를 포함시키는 단계를 더 포함하는, 프로세스.
  11. 삭제
  12. 제1항에 있어서, 상기 암호화된 DTCP-IP 전송 스트림을 전부 수신하여 상기 이차 장치 내의 로컬 저장소에 저장하고, 후속 시간에 재생 요청이 있을 때만 상기 청크들을 형성하는 단계를 더 포함하는, 프로세스.
  13. DTCP-IP 전송 스트림을 HLS 형식으로 변환하기 위한 프로세스로서,
    암호화된 DTCP-IP 전송 스트림을 소스 장치로부터 이차 장치에서 수신하는 단계;
    상기 암호화된 DTCP-IP 전송 스트림을 상기 이차 장치에서 DTCP 키를 이용하여 분명한 전송 스트림으로 암호 해독하는 단계;
    상기 분명한 전송 스트림을 상기 이차 장치에서 복수의 청크로 나누는 단계;
    상기 이차 장치에서 상기 복수의 청크의 재생 목록을 생성하는 단계;
    상기 복수의 청크 각각을 상기 이차 장치에서 청크 키를 이용하여 암호화된 청크로 암호화하는 단계;
    상기 재생 목록과 상기 암호화된 청크 각각을 상기 이차 장치에 있는 미디어 프록시 서버에 저장하는 단계;
    상기 청크 키를 상기 이차 장치에 있는 보안 프록시 서버에 저장하는 단계; 및
    상기 재생 목록, 상기 암호화된 청크들 각각과, 상기 청크 키를 상기 이차 장치상의 고유한 미디어 플레이어에 제공하여, 상기 고유한 미디어 플레이어가 상기 재생 목록을 따라 상기 청크 키를 이용하여 상기 암호화된 청크들을 상기 청크들로 암호 해독하고 상기 청크들을 재생하게 하는 단계
    를 포함하는, 프로세스.
KR1020157028627A 2013-03-15 2014-03-17 안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환 KR101730754B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361801216P 2013-03-15 2013-03-15
US61/801,216 2013-03-15
US201361817115P 2013-04-29 2013-04-29
US61/817,115 2013-04-29
US14/215,848 US9338149B2 (en) 2013-03-15 2014-03-17 DLNA/DTCP stream conversion for secure media playback
PCT/US2014/030420 WO2014145624A1 (en) 2013-03-15 2014-03-17 Dlna/dtcp stream conversion for secure media playback
US14/215,848 2014-03-17

Publications (2)

Publication Number Publication Date
KR20150131191A KR20150131191A (ko) 2015-11-24
KR101730754B1 true KR101730754B1 (ko) 2017-04-26

Family

ID=51534026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157028627A KR101730754B1 (ko) 2013-03-15 2014-03-17 안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환

Country Status (7)

Country Link
US (1) US9338149B2 (ko)
EP (1) EP2954684B1 (ko)
JP (1) JP6077173B2 (ko)
KR (1) KR101730754B1 (ko)
CA (1) CA2906179C (ko)
MX (1) MX356316B (ko)
WO (1) WO2014145624A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10182038B2 (en) * 2013-07-29 2019-01-15 Mobitv, Inc. Efficient common storage of partially encrypted content
KR102548789B1 (ko) * 2014-08-07 2023-06-29 디빅스, 엘엘씨 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
EP3070629B1 (en) * 2015-03-20 2019-05-15 Nagravision S.A. Method and device to protect a decrypted media content before transmission to a consumption device
GB201505438D0 (en) * 2015-03-30 2015-05-13 Irdeto Bv Accessing content at a device
US9438936B1 (en) * 2015-04-03 2016-09-06 Mirriad Limited Producing video data
FR3038415B1 (fr) 2015-07-01 2017-08-11 Viaccess Sa Procede de fourniture d’un contenu multimedia protege
CN105049920B (zh) * 2015-07-27 2018-08-10 青岛海信移动通信技术股份有限公司 一种多媒体文件的录制方法和装置
US9838202B2 (en) 2015-08-31 2017-12-05 Microsoft Technology Licensing, Llc Modifying a content descriptor to facilitate delivery of token-authorized encrypted data
CN107294913B (zh) * 2016-03-31 2021-08-27 阿里巴巴集团控股有限公司 基于http的安全通信方法、服务端及客户端
EP3293653A1 (en) * 2016-09-09 2018-03-14 Nagravision S.A. A system for decrypting and rendering content
US10306276B2 (en) * 2016-09-12 2019-05-28 Funai Electric Co., Ltd. Information device
US10944572B2 (en) * 2017-01-02 2021-03-09 Western Digital Technologies, Inc. Decryption and variant processing
WO2018182635A1 (en) * 2017-03-30 2018-10-04 Blonder Tongue Laboratories, Inc. Enterprise content gateway
CN108495190B (zh) * 2018-01-29 2021-08-20 北京奇艺世纪科技有限公司 一种在线视频的点播控制方法和装置
CN108777611B (zh) * 2018-05-11 2021-06-18 吉林大学 基于双密钥流密码的双向链表顺序加密解密方法
CN113206841B (zh) * 2021-04-26 2022-08-23 杭州当虹科技股份有限公司 基于hls协议的aes解密代理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170741A1 (en) * 2011-01-05 2012-07-05 General Instrument Corporation Secure live television streaming
US20120185693A1 (en) * 2011-01-05 2012-07-19 General Instrument Corporation Secure progressive download for media content playback

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603012A (en) * 1992-06-30 1997-02-11 Discovision Associates Start code detector
US5748642A (en) * 1995-09-25 1998-05-05 Credence Systems Corporation Parallel processing integrated circuit tester
US6690683B1 (en) * 1999-11-23 2004-02-10 International Business Machines Corporation Method and apparatus for demultiplexing a shared data channel into a multitude of separate data streams, restoring the original CBR
US8214655B2 (en) * 2002-03-29 2012-07-03 Kabushiki Kaisha Toshiba Data structure of multimedia file format, encrypting method and device thereof, and decrypting method and device thereof
WO2008132961A1 (ja) * 2007-04-12 2008-11-06 Sharp Kabushiki Kaisha 通信装置、通信方法、通信プログラム及び記録媒体
JP2008310678A (ja) * 2007-06-15 2008-12-25 Toshiba Corp 記憶装置、情報機器、及びコンテンツ変換方法
JP5487697B2 (ja) * 2009-04-20 2014-05-07 ソニー株式会社 ネットワークサーバ、メディア形式変換方法、及び、メディア形式変換システム
US20120140645A1 (en) * 2010-12-03 2012-06-07 General Instrument Corporation Method and apparatus for distributing video
WO2012129549A1 (en) * 2011-03-23 2012-09-27 General Instrument Corporation System and methods for providing live streaming content using digital rights management-based key management
US20120284802A1 (en) * 2011-05-02 2012-11-08 Authentec, Inc. Method for playing digital contents protected with a drm (digital right management) scheme and corresponding system
US20130067109A1 (en) * 2011-09-12 2013-03-14 Tektronix, Inc. Monitoring Over-the-Top Adaptive Video Streaming
US8738595B2 (en) * 2011-11-22 2014-05-27 Navteq B.V. Location based full text search
US8792643B1 (en) * 2012-02-16 2014-07-29 Google Inc. System and methodology for decrypting encrypted media
US9454588B2 (en) * 2012-08-14 2016-09-27 International Business Machines Corporation Custom object-in-memory format in data grid network appliance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170741A1 (en) * 2011-01-05 2012-07-05 General Instrument Corporation Secure live television streaming
US20120185693A1 (en) * 2011-01-05 2012-07-19 General Instrument Corporation Secure progressive download for media content playback

Also Published As

Publication number Publication date
KR20150131191A (ko) 2015-11-24
MX356316B (es) 2018-05-23
US9338149B2 (en) 2016-05-10
EP2954684A1 (en) 2015-12-16
CA2906179A1 (en) 2014-09-18
WO2014145624A1 (en) 2014-09-18
EP2954684B1 (en) 2021-05-05
CA2906179C (en) 2020-03-24
JP2016519471A (ja) 2016-06-30
MX2015011877A (es) 2016-06-24
US20140281481A1 (en) 2014-09-18
JP6077173B2 (ja) 2017-02-08

Similar Documents

Publication Publication Date Title
KR101730754B1 (ko) 안전한 미디어 재생을 위한 dlna/dtcp 스트림 변환
US9559845B2 (en) Systems, methods and apparatuses for the secure transmission of media content
US7231516B1 (en) Networked digital video recording system with copy protection and random access playback
JP7418533B2 (ja) 独立的に符号化されたタイルを組み込む基本ビットストリームを保護するためのシステムおよび方法
US9497514B2 (en) DTCP converter for HLS
US10063915B2 (en) Method and system for remotely transcoding content
EP1913776A2 (en) Protecting elementary stream content
WO2018154381A1 (en) System and method for watermarking of media segments using sample variants for normalized encryption (svne)
US10015542B2 (en) Method and apparatus for secure storage and retrieval of live off disk media programs
WO2007022033A1 (en) Protecting elementary stream content
CN101945250A (zh) 用于处理具有分组序列和与分组有关的定时信息的数据流的设备和方法
US9794230B2 (en) Method and system for encrypting multimedia streams
CA2797306A1 (en) Security processing system and method for http live streaming
Hartung et al. Drm protected dynamic adaptive http streaming
KR20120099774A (ko) 콘텐츠 수신 장치, 콘텐츠 재생 장치, 콘텐츠 수신 재생 장치, 콘텐츠 수신 방법 및 프로그램
US10284529B2 (en) Information processing apparatus and information processing method
JP4860993B2 (ja) コンテンツ・パッケージングの保護方法および装置

Legal Events

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