RU2449494C2 - Способ защиты мультимедийных данных - Google Patents

Способ защиты мультимедийных данных Download PDF

Info

Publication number
RU2449494C2
RU2449494C2 RU2008104050/08A RU2008104050A RU2449494C2 RU 2449494 C2 RU2449494 C2 RU 2449494C2 RU 2008104050/08 A RU2008104050/08 A RU 2008104050/08A RU 2008104050 A RU2008104050 A RU 2008104050A RU 2449494 C2 RU2449494 C2 RU 2449494C2
Authority
RU
Russia
Prior art keywords
client program
client
program
data
server
Prior art date
Application number
RU2008104050/08A
Other languages
English (en)
Other versions
RU2008104050A (ru
Inventor
Гисле ГРИМЕН (NO)
Гисле ГРИМЕН
Кристиан МЕНХ (NO)
Кристиан МЕНХ
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 RU2008104050A publication Critical patent/RU2008104050A/ru
Application granted granted Critical
Publication of RU2449494C2 publication Critical patent/RU2449494C2/ru

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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video 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/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/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/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 encoded video stream 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Изобретение относится к передаче данных, а именно к защищенной передаче мультимедийных данных. Техническим результатом является повышение защищенности от модификации клиента. Технический результат достигается тем, что способ передачи данных на клиентский компьютер, выполняющий клиентскую программу, содержит следующие шаги: а) передача данных клиентской программе, б) передача программного кода, содержащего алгоритм, с сервера защиты клиентской программе, причем результат алгоритма является функцией состояния клиентской программы, в) выполнение указанного кода клиентской программой и возврат результата на сервер защиты или средства, связанные с сервером защиты, и г) определение сервером защиты или средствами, связанными с сервером защиты, указывает ли полученный результат на отсутствие модификации клиентской программы. 8 н. и 21 з.п. ф-лы, 5 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится к области защищенного распространения мультимедийных произведений, имеющих определенную продолжительность во времени, таких как фильмы, телевизионные передачи, аудиодокументы и т.п. В частности, настоящее изобретение относится к системе защищенной доставки такого рода медиапродуктов пользователю, предотвращающей получение пользователем несанкционированных копий. Аспекты изобретения также имеют применение в других приложениях типа клиент-сервер, таких как сетевое банковское обслуживание, игры и т.п.
Уровень техники
Незаконное копирование художественных произведений является извечной проблемой. В эпоху зарождения киноиндустрии, хотя было возможно изготовить незаконные копии фильмов, это было дорогостоящей операцией, осуществимой только для людей, имеющих доступ к специальной аппаратуре. С появлением домашних видеомагнитофонов для производителей возник новый рынок фильмов и иных записей, и наряду с этим появились возможности для незаконного копирования и распространения этих записей.
На сегодняшний день формат DVD, обеспечивающий более высокое качество воспроизведения и более удобный и компактный носитель данных, быстро вытесняет видеокассеты. Дополнительно, с появлением доступного широкополосного выхода в Интернет, возник развивающийся рынок загрузки и потоковой передачи фильмов и другой медиапродукции с удаленных серверов на домашние компьютеры.
При загрузке медиапродукции, ее копия сохраняется на жестком диске компьютера и обычно может быть повторно просмотрена пользователем, аналогично просмотру видеозаписи. Потоковое содержание, транслируемое в режиме реального времени или в записи, просматривается в процессе передачи на компьютер (как в обычной телевизионной программе) почти в реальном времени (присутствует небольшая задержка из-за необходимости обеспечения буферизации). Хорошо известно, что радиостанции и некоторые телевизионные станции предлагают содержание таким образом.
В то время как данные технологические усовершенствования позволили развиться многообещающему новому рынку для медиакомпаний, также возникла соответствующая проблема предотвращения производства и распространения несанкционированных копий медиапродуктов. В настоящее время возможность записи DVD-диска является общедоступной даже для дешевых домашних компьютеров.
Были разработаны способы для предотвращения подобного копирования. В традиционном подходе поставщик медиапродукции, который здесь называется поставщик содержания («content provider»), владеет закодированной медиапродукцией, например фильмами, которые в дальнейшем будут носить общее название «медиапродукция» или «медиапродукты». Данная медиапродукция должна быть передана и представлена клиентской программе/средству просмотра пользователя таким образом, чтобы не позволить пользователю создать копию закодированной медиапродукции. Доставка может осуществляться или потоковой передачей по сети, или путем доставки физического носителя, например DVD-диска, клиенту.
В случае, когда продукция передается по сети, ее защита, как правило, обеспечивается при помощи криптографических средств, предотвращая перехват и копирование медиапродукции третьей стороной. В дальнейшем такая криптографическая защита будет называться "шифрование при передаче". (Шифрование, являющееся мерой защиты, следует отличать от кодирования, посредством которого медиапродукт конвертируют и обычно сжимают в подходящую эффективную для передачи форму.) Технологии шифрования достаточно хорошо разработаны и обеспечивают необходимый уровень защиты при передаче по компьютерным сетям.
Перед доставкой медиапродукции клиенту владелец содержания защищает закодированный медиапродукт при помощи криптографических средств. В защищенном "окружении поставщика" используется инструмент шифрования для шифрования медиапродукта посредством "медиаключа", создавая зашифрованную закодированную медиапродукцию, в дальнейшем называемую "зашифрованным медиапродуктом".
Вышеуказанные действия производятся с той целью, чтобы клиент мог использовать медиапродукт только в случае, если он обладает медиаключом, позволяющим дешифровать медиапродукт. Он может быть внедрен в клиентскую программу/средство просмотра/проигрыватель и/или медиапродукцию, например в DVD-проигрыватель и DVD-диск. (Клиентская программа/средство просмотра/проигрыватель может быть отдельным устройством или программой просмотра на компьютере.)
Другая возможность, проиллюстрированная схематически на фиг.1, заключается в получении медиаключа с сервера 1 лицензий по требованию. Данная возможность позволяет осуществлять потоковую передачу медиапродукции. Для поддержания данной модели инструмент 2 шифрования упаковывает медиаключ вместе с дополнительной информацией в лицензию 3 и отправляет лицензию 3 на сервер 1 лицензий. Затем клиент получает зашифрованный закодированный медиапоток 4 с потокового сервера 5, так что указанный поток должен быть дешифрован в средстве 6 просмотра перед воспроизведением клиенту. Для того чтобы просмотреть зашифрованный фильм 7, средство просмотра запрашивает содержащую медиаключ лицензию с сервера лицензий (см. "Начальная фаза" на фиг.1).
После того как средство просмотра получило лицензию 3 (и, тем самым, медиаключ), средство просмотра соединяется с потоковым сервером 5, с которого получает зашифрованный закодированный медиапоток 4. Средство просмотра использует медиаключ для дешифрования зашифрованного закодированного медиапотока и предоставляет медиапоток клиенту (см. "Фаза потоковой передачи" на фиг.1).
Значительной проблемой в описанном выше сценарии является то, что средство просмотра выполняется в среде, контролируемой клиентом. Таким образом, средство просмотра не выполняется в доверенной среде 8 (где был изначально зашифрован фильм 9). Тем самым существует риск, что клиент может модифицировать средство просмотра. Даже хотя обычно средство просмотра дешифрует и декодирует только часть медиапотока, на протяжении всего процесса воспроизведения каждая часть зашифрованного медиапотока в некоторый момент времени будет присутствовать в памяти средства просмотра. Другая опасность заключается в том, что пользователь может извлечь медиаключ, поскольку память средства просмотра должна содержать ключ, что позволит пользователю сделать копию незашифрованной закодированной медиапродукции.
Проблема модификации существует как для исключительно программных средств просмотра, так и для аппаратных средств просмотра, например специализированных DVD-проигрывателей. Хотя модифицировать аппаратное средство просмотра труднее, чем программное средство просмотра, это не является невозможным. Таким образом, существует потребность в системе, устраняющей указанные недостатки.
Раскрытие изобретения
Общие требования для любого эффективного механизма защиты включают следующие: механизм защиты должен быть ресурсоемким для взлома, так что затраты на взлом по меньшей мере сопоставимы со стоимостью медиапродукции. Любая успешная атака не должна обобщаться для применения в каком-либо другом месте. Механизм защиты должен предпочтительно содействовать обнаружению. Различные аспекты изобретения, описанные далее, удовлетворяют данным требованиям по отдельности, и предпочтительные формы выполнения изобретения предлагают систему, которая удовлетворяет всем этим требованиям.
В дальнейшем рассмотрении медиапродукция является медиапродукцией, имеющей протяженность во времени, т.е. медиапродукция содержит некоторое количество шагов воспроизведения, которые должны быть выполнены в определенном порядке. Шаги чаще всего являются вычислительно независимыми друг от друга и могут обрабатываться независимо. В большинстве случаев полное воспроизведение занимает значительное время: много минут или несколько часов в случае фильма.
Согласно первому аспекту настоящего изобретения предлагается способ передачи медиапродукции клиенту, содержащий следующие шаги:
(a) шифрование медиапродукта с использованием последовательности различных ключей, относящихся к соответствующим распределенным во времени сегментам медиапродукта,
(b) защищенная передача первого ключа с защищенного сервера клиенту и передача соответствующего сегмента с сервера клиенту,
(c) использование в клиенте первого ключа для дешифрования соответствующего сегмента,
(d) воспроизведение дешифрованной части в средствах просмотра,
(е) повторение шагов с (b) no (d) в отношении последующих сегментов и ключей.
Изобретение может быть применено к любому виду медиапродукции (как указано выше), протяженной во времени, и особенно полезно для распространения фильмов, например, их потоковой передачи через Интернет.
При помощи разделения медиапродукта на последовательность сегментов достигается неосуществимость копирования более чем небольшой части, поскольку каждый ключ может дешифровать только один сегмент, то есть ключи функционально независимы. Таким образом, может быть скопирован только один сегмент фильма за раз. Более того, не должно существовать главного ключа, который мог бы разблокировать другие ключи, то есть ключи предпочтительно должны быть структурно независимы. Предпочтительно, для фильма обычной длины используются тысячи различных ключей, и каждый ключ соответствует сегменту определенной длины, например несколько секунд, примерно менее двух или трех секунд, и, наиболее желательно, менее секунды. Большая часть медиапродукции имеет существенную ценность только в случае завершенности. Например, фильм, в котором отсутствуют несколько последних минут, обычно имеет очень маленькую ценность. Таким образом, некто, намеревающийся незаконно скопировать фильм, будет вынужден дешифровать каждый из сегментов.
Для поддержания непрерывного потока расшифровки данных, в некоторых вариантах осуществления настоящего изобретения клиент может запросить текущий ключ и следующий ключ (следующие ключи) и кешировать в памяти небольшое количество ключей (например 2, 3, 4 и т.п.).
Обычно защищенный сервер удален от средства просмотра и в дальнейшем называется "сервер защиты".
Шифрование фильма обычно проходит в доверенной среде. Предпочтительно, созданные в процессе шифрования ключи доставляются на сервер защиты, который находится в доверенной среде поставщика. Однако, хотя после этого ключи передаются с сервера защиты в средство просмотра, фильм или другой медиапродукт могут передаваться откуда угодно. Например, фильм или другой медиапродукт могут передаваться потоком с отдельного сервера вне доверенной среды. Таким образом, в одном из предпочтительных вариантов осуществления после того, как фильм был зашифрован в доверенной среде, он может быть передан на незащищенный потоковый сервер.
Таким образом, в данной схеме клиент, который может представлять собой работающую на удаленном компьютере (например, персональном компьютере пользователя) программу просмотра, осуществляет связь с сервером защиты, чтобы получить ключи (называемые здесь медиаключами), и с отдельным потоковым сервером.
Медиаключи предпочтительно передаются клиенту после запроса от клиента, и эта передача предпочтительно выполняется с использованием протокола обмена ключами, который использует генератор случайных чисел и известный средствам просмотра открытый ключ сервера защиты.
В одном из осуществлений, при необходимости получения следующего медиаключа, клиент генерирует случайные данные и шифрует их посредством открытого ключа сервера безопасности. Зашифрованные данные затем могут включаться в запрос следующего медиаключа, предпочтительно вместе с идентифицирующими клиента данными, который отправляется на сервер защиты. При получении запроса сервер защиты проверяет, есть ли у клиента права на получение медиапродукции, дешифрует и извлекает случайные данные и осуществляет операцию шифрования, используя эти данные и запрашиваемый ключ, с использованием случайных данных. В одном из вариантов к ним может быть применена операция "исключающее ИЛИ". Результат отправляется обратно клиенту. При получении результата клиентом, он может извлечь запрошенный ключ из результата путем выполнения соответствующей функции, например осуществляя исключающее ИЛИ с теми же самыми случайными данными, которые были предоставлены в изначальном запросе ключа. Таким образом, зашифрованный закодированный медиапоток может быть дешифрован без каких-либо секретных ключей, спрятанных в исходном коде средства просмотра.
Открытый ключ предпочтительно включается в вычисление контрольной суммы с целью предотвращения "атаки посредника" (man in the middle), при которой происходит подмена открытого ключа.
В предпочтительном варианте протокола предпринимаются шаги для гарантии того, что проверяемый мобильным средством защиты клиент является тем же клиентом, который генерирует случайные данные. Это может быть выполнено расширением входных данных для контрольной суммы таким образом, чтобы включить туда используемые для запроса медиаключа случайные данные. Таким образом, входные данные для контрольной суммы могут включать код от клиента, открытый ключ сервера защиты и случайные данные, отправленные с запросом ключа.
Поскольку внешние источники энтропии могут отслеживаться, используемый для генерации случайных чисел источник энтропии может реализовываться самой средой выполнения, исходя из того, как планируются и прерываются задачи. Таким образом, процесс генерации случайных данных может состоять из создания нескольких потоков, которые выполняют разные вычислительные задачи, что может подаваться на вход алгоритма безопасного хеширования (secure hash algorithm) вместе с данными от текущего состояния средств просмотра и выполняемых мобильных средств защиты.
Необходимость получения клиентом непрерывной последовательности ключей может быть использована для принуждения пользователя к сотрудничеству. Таким образом, в случае если клиент не выполняет определенный требуемый поставщиком шаг, поставка ключей может быть прекращена. Как будет подробно описано далее, этот шаг может являться проверкой целостности клиента, и, предпочтительно, запрос нового ключа удовлетворяется только после того, как так называемое "мобильное средство защиты" показывает, что средство просмотра не было модифицировано.
В случае использования мобильного средства защиты возможно, чтобы оно генерировало случайные числа, используемые в предпочтительном протоколе обмена ключами, описанном выше, вместо фактического клиентского средства просмотра/программы воспроизведения.
Следует принять во внимание, что подобное принуждение к сотрудничеству становится возможным, поскольку поставщик содержания контролирует медиапродукцию и поскольку медиапродукция имеет протяженность во времени, так что медиапродукция может доставляться маленькими частями, и от пользователя требуется сотрудничество для получения последующих частей. Это контрастирует с традиционными системами, в которых лицензия открывает весь медиапродукт, фактически устраняя свойство протяженности во времени.
В альтернативном воплощении настоящего изобретения доверенная среда расширена таким образом, что включает в себя потоковый сервер. После такого расширения становится возможным использовать потоковый сервер для генерирования медиаключей и шифрования медиапотока на лету. Это обеспечивает шифрование каждого медиапотока уникальным набором медиаключей. Это означает, что ставший известным медиаключ не может быть использован для дешифрования другой копии того же самого фильма. Для содействия распространению медиаключей потоковый сервер отправляет ключи на сервер защиты, который выдает их на средство просмотра, как описано выше. Недостатком такого подхода является то, что необходимо доверять еще одному компоненту и что шифрование на лету требует больших вычислительных затрат. Таким образом, существует компромисс между очень высоким уровнем безопасности, с одной стороны, и сложностью доверенной среды и вычислительными затратами, с другой стороны.
Изобретение не ограничено схемой, в которой медиапродукт передается потоком с удаленного сервера. Поскольку медиапродукт зашифрован, то может распространяться любым удобным образом. Таким образом, зашифрованный медиапродукт может быть предоставлен клиенту с локального сервера или на физическом носителе (например, DVD-диске). Медиапродукт может быть затем передан с локального сервера или физического носителя на средства просмотра и дешифрован описанным выше образом.
Хотя настоящая схема представляет собой значительное улучшение по сравнению с известным уровнем техники, однако остается риск изменений в средстве просмотра, так что зашифрованный медиапродукт (фильм и т.п.) может быть записан и скопирован. Таким образом, предпочтительно, изобретение дополнительно содержит средства проверки целостности средств просмотра для гарантии того, что средства просмотра не были подвергнуты несанкционированному вмешательству. Этого можно достичь программированием средств просмотра так, чтобы они отправляли сигнал, такой как контрольная сумма, на сервер защиты через регулярные интервалы времени и/или при запросе ключа. Такой сигнал образовывался бы так, чтобы зависеть от состояния средств просмотра, так что любая модификация средств просмотра изменяла бы сигнал.
Однако сохраняется риск преодоления подобной меры при помощи программирования модифицированных средств просмотра так, чтобы отправлять "правильный" сигнал вне зависимости от истинного состояния средств просмотра. Предпочтительно, способ далее требует, чтобы сервер защиты опрашивал средства просмотра при помощи ряда различных тестов, которые меняются со временем. В особенно предпочтительном варианте, тесты включают использование случайным образом сгенерированных алгоритмов, которые будут возвращать верный результат только в случае отсутствия модификации средств просмотра. Кроме того, неуспешный ответ или ненормальная задержка при ответе могут быть приняты как указание на модификацию средств просмотра.
Таким образом, предпочтительно сервер защиты выполнен таким образом, чтобы прекращать поставки ключей в случае, если выявлена модификация средств просмотра и/или если проверка целостности средств просмотра неуспешна.
Наиболее предпочтительная схема состоит в передаче алгоритмов сервером защиты клиенту в форме программного кода (например машинного кода). Программный код можно назвать "мобильным средством безопасности", что описывается далее.
Подобная система проверки целостности рассматривается как самостоятельная концепция изобретения и, таким образом, в следующем аспекте предлагается способ передачи данных клиенту, содержащий следующие шаги:
(a) передача данных клиенту,
(b) передача программного кода, содержащего алгоритм, с сервера защиты клиенту, причем результат алгоритма является функцией состояния клиента,
(c) выполнение кода клиентом,
(d) возврат результата на сервер защиты, и
(е) определение, указывает ли результат на отсутствие модификации средств просмотра.
Данные могут представлять собой медиапродукцию, предаваемую потоком клиенту, например, через Интернет, или же доставляемую с локального сервера, DVD-диска или других носителей, как рассмотрено выше. Однако, как будет более подробно рассмотрено ниже, это может быть любой тип данных, которые можно передать между сервером и клиентом. Клиент может представлять собой выполняемую на компьютере программу или аппаратное устройство, такое как телевизионная абонентская приставка. Упомянутый в шаге (b) алгоритм может быть передан перед передачей какой-либо части медиапродукта, или же весь медиапродукт целиком или его часть может быть передана перед алгоритмом. Предпочтительно, медиапродукт не просматривается до того, как не будет выполнен шаг (е).
В зависимости от результата шага (е) может быть предпринято подходящее действие. В случае потоковой передачи медиапродукции, если обнаружено отсутствие модификации средств просмотра, передача медиапродукции и любых необходимых для ее дешифрования ключей, как правило, может быть продолжена. Однако может присутствовать дополнительный шаг (f) прекращения передачи медиапродукции и/или необходимых для дешифрования медиапродукции ключей в случае, если результат не указывает на то, что клиент не модифицирован. Предпочтительно, если результат от мобильного средства защиты не поступает, считается, что это также указывает на модификацию клиента.
В случае передачи медиапродукции с локального источника, такого как локальный сервер, DVD-диск и т.п., предпринимаемым действием может быть прекращение передачи необходимых для дешифрования произведения ключей.
Альтернативно, в случае обнаружения того, что клиент был модифицирован, могут быть предприняты другие действия. Например, передача может быть продолжена и собраны материалы для идентификации пользователя. Это может быть уместным в случае намерения предпринять правовые действия или провести расследование, например, выявить преступную деятельность или предотвратить нелегальное копирование медиапродуктов в будущем.
Как указано выше, предпринимаемое в ответ на обнаружение модификации клиента действие может представлять собой прекращение передачи ключей дешифрования. Следует принять во внимание, что способ может дополнительно включать в себя разделение медиапродукции на множество распределенных по времени сегментов, которые зашифрованы с использованием различных ключей. Эти ключи могут выдаваться клиенту последовательно, предпочтительно так, как описано выше. Таким образом, при прекращении выдачи ключей оставшаяся часть медиапродукта не может быть дешифрована.
Способ предпочтительно реализуется с использованием случайно генерируемых секретных алгоритмов в программном коде (как указано выше). Эти так называемые алгоритмы принуждения генерируют результат, зависящий от состояния клиента (например, средств просмотра), но верный результат не может быть угадан пользователем из-за присутствия случайности. Предпочтительно, они включают вычисление контрольной суммы, входными данными которой является программный код средств просмотра. Хотя алгоритм в целом является секретным, вычисление контрольной суммы может быть известным алгоритмом, таким как Message Digest Algorithm 5 (MD5) (RFC1321, www.fags.org/rfcs/rfc1321.html), который может использоваться в комбинации с рандомизированной модификацией входных данных.
Модификацией входных данных называется создание модификатора случайным образом, который переставляет данные, являющиеся входными данными контрольной суммы. В одном варианте осуществления при генерации программного кода (называемого здесь "мобильным средством защиты") определяется случайная последовательность. При выполнении алгоритма входной код средств просмотра разделяется на n блоков одинакового размера. Затем блоки перемешиваются в вышеупомянутой случайной последовательности, и результат подается в качестве входных данных в алгоритм контрольной суммы. Хотя в данной схеме сам алгоритм контрольной суммы известен, его результат является функцией порядка, в котором n блоков поступают на вход алгоритма. Этот порядок известен серверу защиты, и тем самым сервер защиты может определить, указывает ли полученный результат на сохранность средства просмотра.
Альтернативный подход создания фильтрующей входные данные контрольной суммы заключается в разложении известного алгоритма контрольной суммы и его восстановлении таким образом, чтобы он читал входные данные в заданной последовательности.
Вместо использования фильтрации входных данных можно генерировать функцию контрольной суммы с самого начала. Так, входные данные могут быть разбиты на I слов (32 бита) и создана функция f, которая читает I слов на входе и m слов из переменной области, которая выдает слова. Функция может включать случайное число присваиваний, которые выполняются одно за другим, и контрольная сумма может быть суммой по модулю 232 всех результатов применения f.
Формирование функций обладает тем преимуществом, что почти весь код алгоритма контрольной суммы создается случайно, что приводит к большему структурному разнообразию в коде. Поскольку «строительные блоки» достаточно малы, это позволяет облегчить перемежение с другими алгоритмами.
Программный код также предпочтительно включает дополнительные алгоритмы, которые могут быть секретными или несекретными. Они предпочтительно функционально и/или пространственно смешаны с секретным алгоритмом. Таким образом клиентский компьютер/средство просмотра можно заставить выполнять дополнительные алгоритмы, поскольку в противном случае секретный алгоритм не будет выполнен. Дополнительные алгоритмы могут использоваться, например, для проверки целостности аппаратных средств просмотра.
Поскольку мобильное средство защиты находится в той же среде, что и средства просмотра, оно потенциально уязвимо для атак. Пользователь может попытаться модифицировать мобильное средство защиты с целью обойти осуществляемые средством защиты способы защиты. Автоматизированные атаки на мобильное средство защиты могут быть предотвращены путем обеспечения того, чтобы мобильные средства защиты создавались частично случайным образом, как описано выше. Дополнительно, к мобильным средствам защиты могут быть применены преобразования обфускации (преднамеренного запутывания кода и данных). Мобильное средство защиты может скрывать контрольную сумму в закрытой структуре данных, которая перемежается контрольной суммой специфическим для мобильного средства защиты образом. Переменные могут быть расположены случайно в памяти мобильных средств защиты и, дополнительно, команды мобильных средств защиты могут быть разбиты на блоки, также случайно расположенные в памяти. Это предпочтительно включает точку входа мобильных средств защиты. В самом деле, точка входа одного из мобильных средств защиты может предоставляться предыдущими средствами защиты.
В случае выполнения указанных шагов становится необходимой атака человеком для преодоления обфускации перед тем, как может быть начата любая автоматизированная атака. Такой подход неизбежно занимает значительное время и, при условии короткого "интервала доверия" между последовательными мобильными средствами защиты подход не будет эффективным. Другими словами, поскольку мобильные средства защиты часто сменяются, для реализации атаки остается недостаточно времени. Таким образом, процесс обфускации защищает мобильные средства защиты от несанкционированного вмешательства на интервал времени, проходящий до их замены другими мобильными средствами защиты.
Существует риск того, что наблюдатель следит за участками памяти в компьютере, в которых хранятся дешифрованные данные фильма. При использовании известных участков памяти данные могут быть скопированы. Следовательно, нежелательна предсказуемость обнаружения кода при помощи идентификации определенных участков памяти (основанная на расположении идентификация), и предпочтительно, если расположение было использовано, оно не должно быть использовано повторно. Также идентификация по шаблону, когда можно обнаруживать код путем поиска последовательностей, подобных заголовкам MPEG, предпочтительно также должна быть предотвращена.
Средства просмотра, тем самым, предпочтительно защищены мобильными средствами защиты от определения состояния путем наблюдения. Для обеспечения этого мобильные средства защиты предпочтительно дополнительно включают один или несколько защитных алгоритмов для защиты против подобных атак. Для достижения этого мобильные средства защиты могут выполнять задачи обфускации в клиенте (например, в программе просмотра), что далее называется "обфускация времени выполнения на средстве просмотра", то есть обфускация выполняется на средства просмотра в процессе их работы. Подобная защита изменяет отображение в памяти функционирующих средств просмотра.
Такая обфускация времени выполнения на средствах просмотра рассматривается как дополнительная идея изобретения, и, согласно еще одному аспекту, изобретение представляет собой способ обфускации выполняющихся средств просмотра, включающий рандомизацию отображения в памяти выполняющихся средств просмотра.
Обфускация времени выполнения на средствах просмотра может включать один или более из перечисленных далее приемов.
Перемещение кода включает передвижение блоков кода в памяти. По мере выполнения программы мобильные средства защиты перемещают код в другие части памяти, которые в дальнейшем будут выполняться. Этот алгоритм предпочтительно тесно перемежается с вычислением контрольной суммы.
Предпочтительно, перемещение кода реализуется посредством (1) идентификации всех основных конструктивных модулей программы и разделение их на маленькие сегменты, которые могут быть перемещены; (2) во время выполнения мобильных средств защиты указанные сегменты могут быть перемещены в памяти в случайные положения; (3) модификации всех команд перехода с целью соответствия новым положениям кода. В результате, атакующий столкнется с отображением в памяти, изменяющимся в процессе выполнения мобильных средств защиты. Поскольку положение сегментов определяется мобильными средствами защиты, которые предоставлены сервером защиты, положение непредсказуемо для атакующего, который тем самым не может опираться на предположение, что определенные положения в памяти содержат определенные данные.
Перемещение данных включает перемещение данных и изменение команд, осуществляющих к ним доступ. Новые расположения опять могут быть определены случайным образом.
Скрытие данных адресует проблему положения и идентификации по шаблону. Один подход состоит в применении двусторонней функции для изменения внешнего вида данных, фактически, маскируя данные. Предпочтительно, используется простое одноразовое дополнение. Это может заключаться во вновь создаваемой функции деления по модулю, которая создает индекс в массиве случайных данных. Случайные данные могут использоваться для изменения уязвимых данных путем применения исключающего ИЛИ к случайной и уязвимой части. Предпочтительно операция исключающего ИЛИ применяется между указанными данными и частью адреса уязвимых данных.
Один из подходов состоит в скремблировании (маскировке) и дескремблировании данных, так что уязвимые данные хранятся в скремблированной форме, дескремблируются при необходимости, и затем заново скремблируются либо уничтожаются. Однако подобный подход оставляет небольшой промежуток времени, когда данные дескремблированы.
Однако можно воспользоваться обработкой потока, чтобы отложить дескремблирование до тех пор, пока данные не окажутся в регистрах процессора.
Таким образом, данный декодер содержания может быть модифицирован для выполнения последней операции дешифрования в момент, когда ему понадобятся новые данные. Это означает, что в главной памяти вообще не будут присутствовать дешифрованные данные. Этого можно достигнуть при помощи следующих шагов:
a) мобильное средство защиты модифицирует декодер для выполнения последнего шага дешифрования по необходимости;
b) поступает следующий зашифрованный сегмент;
c) поступает медиаключ для зашифрованного сегмента;
d) генерируется дешифрованный поток и помещается в случайные положения в памяти согласно тому, как был модифицирован декодер;
e) декодер затем читает байт или слово за раз и дешифрует их по необходимости.
Диверсификация кода включает операции, выполняемые мобильными средствами защиты над клиентской программой во время выполнения. Выполняемые операции изменяют код таким образом, что он состоит из других команд без изменения семантики кода. Это позволяет предотвратить идентификацию по шаблону. Могут быть выполнены один или несколько из следующих шагов.
Могут быть вставлены контекстно-независимые команды. Они представляют собой команды, входной контекст которых может быть общим с контекстами в программе, но выходной контекст которых отличен от любого входного контекста в программе. Поскольку данные команды не могут повлиять ни на один входной контекст программы, не имеет значения, что они обрабатывают.
Контекстно-зависимые команды могут быть заменены командами, выполняющими те же функции. Следует принять во внимание, что достичь этого сложнее, но указанная замена также более эффективна, поскольку такие команды не могут быть идентифицированы путем анализа потока данных.
Функционально независимые изменения, которые могут быть проведены, включают изменение порядка выполнения команд, вставку команд с временными переменными или без них, переупорядочивание команд в памяти и проведение изменений хода выполнения.
Функционально зависимые изменения требуют осторожности для сохранения функций и побочных эффектов неизменными. Эти изменения включают замену команд функциональными эквивалентами, введение тождественных функций, введение операторов, таких, что литеральные значения заменяются командами, инициализирующими значение произвольным образом, и выполняющими операцию исправления значения на исходное литеральное значение. Также могут быть введены переменные, так что копии в адресате информации заменяются копиями вновь созданных переменных.
В воплощении, в котором используется аппаратная реализация средств просмотра, например телевизионная абонентская приставка, распространитель средств просмотра контролирует не только программное обеспечение средств просмотра, но также среду средств просмотра, то есть аппаратную часть и операционную систему. Следовательно, аппаратные средства просмотра могут быть, как правило, проверены мобильными средствами защиты намного более полно, чем чисто программное решение. В этом варианте осуществления алгоритм контрольной суммы в мобильных средствах защиты не ограничен проверкой программного обеспечения средств просмотра, но может также проверять различные аспекты операционной системы и аппаратуры.
Таким образом, система может использоваться двумя способами в связи с аппаратными средствами просмотра. Во-первых, она может использоваться для замены решений, основанных на дорогостоящей защищенной от несанкционированного использования аппаратуре. Во-вторых, система может обеспечить дополнительные меры защиты, которые начинают функционировать в случае, когда защищенная от несанкционированного использования аппаратура скомпрометирована.
Далее будет видно, что изобретение предпочтительно относится к комбинации индивидуально зашифрованных сегментов медиапродукта и использования понятия "мобильные средства защиты". Таким образом, в еще одном аспекте, изобретение предлагает способ передачи медиапродукции клиенту, содержащий следующие шаги:
(a) шифрование медиапродукта с использованием последовательности различных ключей, относящихся к соответствующим распределенным во времени сегментам медиапродукта,
(b) передача программного кода, включающего алгоритм, с сервера защиты клиенту, причем результат алгоритма является функцией состояния клиента,
(c) выполнение кода клиентом и возврат результата на сервер защиты,
(d) определение, указывает ли результат на отсутствие модификации средств просмотра,
(e) передача сегмента с сервера в средства просмотра,
(f) защищенная потоковая передача ключа, соответствующего переданному сегменту, с защищенного удаленного сервера на средства просмотра в случае, если результат указывает на отсутствие модификации средств просмотра,
(g) дешифрование сегмента посредством ключа.
Следует понимать, что, хотя шаги могут быть выполнены в указанной выше последовательности, по меньшей мере некоторые шаги могут быть выполнены в другом порядке, или одновременно. Например, шаг (е) может быть выполнен одновременно с шагами (b), (с), (d) или (f), так что сегменты передаются до, совместно или после ключей. Однако ключи должны быть доступны до дешифрования сегмента.
В одном из вариантов воплощения, способ содержит дополнительный шаг (h), на котором повторяются шаги с (b) по (g).
Однако, как правило, у переданного программного кода есть определенное "время жизни" или "интервал доверия", например менее 30 секунд. С другой стороны, сегменты, как правило, передаются чаще по сравнению со временем жизни программного кода, например один сегмент в секунду. По существу, новый программный код не нужно передавать каждый раз при передаче сегмента, но, как правило, нужно передать только после истечения времени жизни существующего программного кода. Таким образом, шаги с (е) по (g), как правило, повторяются до появления необходимости в новом программном коде, когда повторяется шаг (b). Таким образом, один экземпляр программного кода (мобильного средства защиты) защищает доставку многих ключей.
Хотя выполнение кода и определение того, указывает ли результат на отсутствие модификаций средств просмотра (шаги с и d), могут быть выполнены более одного раза для каждого куска программного кода, как правило, необходимо выполнить указанные шаги только один раз на протяжении времени жизни программного кода. По существу, шаги (с) и (d) будут повторяться только после повторения шага (b).
В еще одном аспекте изобретение предлагает способ передачи медиапродукции клиенту, содержащий следующие шаги:
(a) шифрование медиапродукта с использованием последовательности различных ключей, относящихся к соответствующим распределенным во времени сегментам медиапродукта,
(b) передача программного кода, включающего алгоритм, с сервера защиты клиенту, причем результат алгоритма является функцией состояния клиента,
(c) выполнение кода клиентом и возврат результата на сервер защиты,
(d) определение, указывает ли результат на отсутствие модификации средств просмотра,
и дополнительно содержит следующие шаги:
(e) передача сегмента с сервера в средства просмотра,
(f) защищенная потоковая передача ключа, соответствующего переданному сегменту, с защищенного удаленного сервера в средства просмотра в случае, если результат указывает на отсутствие модификации средств просмотра,
(g) дешифрование сегмента посредством полученного медиаключа,
(h) в случае, если шаг (d) указывает на модификацию средств просмотра, прекращение передачи дальнейших ключей, в противном случае повторение шагов с (е) по (g).
Предпочтительно, способ дополнительно содержит шаг (i) повторения шагов с (b) по (d).
Следует понимать, что хотя шаги могут быть выполнены в указанной выше последовательности, по меньшей мере некоторые шаги могут быть выполнены в другом порядке, или одновременно. В действительности, некоторые шаги могут выполняться большее количество раз, чем другие.
Шаги с (b) по (d) могут выполняться независимо от шагов с (е) по (h), и предпочтительно выполняются одновременно с ними. Как упомянуто ранее, у программного кода, как правило, есть время жизни, охватывающее посылку многих сегментов и ключей. В этой связи повторение шагов с (b) по (d), упомянутое в шаге (i), будет, как правило, выполняться реже, чем повторение шагов с (е) по (g), упомянутое в шаге (h). Предпочтительно, шаг (i) выполняется только в случае истечения времени жизни программного кода. Изобретение также касается устройства, выполненного с возможностью функционирования, описанного выше, и включающего клиент, выполненный с возможностью получения такого медиапотока, а также сервер как в комбинации, так и отдельно. Таким образом, в еще одном аспекте изобретение предлагает систему для доставки медиапродукции клиенту, содержащую:
(a) средства передачи медиапродукции клиенту,
(b) средства передачи программного кода, включающего алгоритм, с сервера защиты клиенту, при этом результат алгоритма является функцией состояния клиента,
(c) связанные с сервером защиты средства получения результата и определения, указывает ли полученный результат на отсутствие модификаций средств просмотра.
Другой аспект изобретения предлагает клиент, например средства просмотра для проигрывания медиапродукции, такой как фильм, при этом клиент выполнен с возможностью получения медиапродукции и получения программного кода, включающего алгоритм, от удаленного источника; выполнения алгоритма клиентом; и возврата результата алгоритма на удаленный источник, посредством этого демонстрируя целостность клиента отдаленному источнику и позволяя воспроизведение медиапродукта.
Клиент предпочтительно делает возможным воспроизведение медиапродукта путем его дешифрования или путем дешифрования сегмента медиапродукта с использованием ключа, переданного клиенту удаленным источником. Предпочтительно клиент выполнен с возможностью запроса последовательности ключей и использует ключи последовательно для дешифрования последующих участков медиапродукта, которые затем воспроизводятся непрерывным образом. Предпочтительно, как обсуждалось выше, обеспечение ключами зависит от демонстрации клиентом своей целостности источнику.
Изобретение также распространяется на комбинацию системы для доставки медиапродукции описанным выше способом и клиента, в которой медиапродукты доставляются клиенту и могут быть воспроизведены только в случае, если средства просмотра продемонстрируют свою целостность источнику.
В дальнейшем станет ясно, что в отличие от программных решений предшествующего уровня техники настоящее изобретение не полагается на содержащиеся в доступных пользователю данных секретные сведения, в коде программы или же в медиапродукции. Это позволяет раннее обнаружение попыток копирования и позволяет поставщику содержания предпринять контрмеры прежде, чем сможет быть скопирована существенная часть медиапродукта.
Также было обнаружено, что у концепции проверки целостности системы с использованием мобильных средств защиты есть другие применения помимо передачи медиапродуктов клиенту. Она может использоваться в общем для проверки целостности и подлинности выполняемого в неконтролируемой среде кода, который выполняет вычисления на входных данных. Она может использоваться для предотвращения скрытого изменения способа обработки данных третьей стороной. Таким образом, обсуждение выше относительно средств просмотра медиапродукции может быть применено к любой клиентской программе. Применения включают игры, банковское дело, аудио, и т.д.
Таким образом, в еще одном аспекте изобретение предлагает передачу программного кода (такого как мобильные средства защиты) из защищенного источника на клиентский компьютер, выполняющий клиентскую программу, причем программный код содержит алгоритм, результат которого является функцией состояния клиентской программы; выполнение программного кода и возврат результата источнику, посредством чего источник может определить целостность клиентской программы. Изобретение также распространяется на устройство, выполненное с возможностью функционирования в соответствии с таким способом.
В данном аспекте изобретение может использовать любые или все из обсуждаемых выше предпочтительных признаков, в частности касающихся мобильных средств защиты. Данные выше ссылки на медиапродукцию аналогично применяются к полезным данным, имеющим протяженность во времени, отправляемым между сервером и клиентом. Таким образом, поставщик услуг может принудить к сотрудничеству клиент пользователя тем же самым способом и может отказать в дальнейших полезных данных, если прекращается сотрудничество либо обнаружено несанкционированное вмешательство.
Таким образом, следует понимать, что можно проверять целостность любого клиента, который осуществляет связь с сервером, на постоянной основе. Изобретение тем самым позволяет доверять клиенту, который функционирует в неконтролируемой среде. Если выясняется, что целостность клиента скомпрометирована, могут быть предприняты меры. Например, может быть прервана связь с клиентом, приостановлена подача ключей дешифрования (как в случае с обсуждаемыми выше приложениями для передачи медиапотока) и/или предприняты шаги для сбора материалов (например, в случае подозреваемых мошеннических атак на банковские системы).
Изобретение полезно в контексте распределенных вычислений, где, хотя конфиденциальность и непорядочность обычно не являются проблемой, стоит проблема правильного выполнения программ. Таким образом, мобильное средство защиты может использоваться для защиты от преднамеренной или непреднамеренной модификации клиента - как его программного обеспечения, так и, если требуется, аппаратного оборудования. Таким образом, запускающий задачу распределенных вычислений объект может использовать мобильные средства защиты для проверки правильности функционирования клиентов, находящихся на выполняющих вычисления отдаленных узлах.
В контексте онлайновых игр модификация программ клиента может позволить жульничество, которое в случае отсутствия контроля может вызвать неудовлетворенность клиентов и привести к потере дохода. Задействованные данные не являются конфиденциальными и их запись не имеет большого смысла (по сравнению с медиапродукцией), таким образом, обычно достаточно ограничиться проверкой целостности программного обеспечения клиента. В случае функционирования игры на основе схемы клиент-сервер мобильные средства защиты могут применяться, как описывалось выше. Если пользователь не позволяет сотрудничество с мобильным средством защиты, ему может быть отказано в обновлении глобального игрового состояния.
В случае домашнего банковского обслуживания мобильные средства защиты могут использоваться для обеспечения того, что третьи лица не имеют доступа к конфиденциальным данным. В то время как обычный пользователь обычно не заинтересован в модификации его клиентской программы, он может оказаться жертвой "атаки посредника". Банковский сервер тем самым может использовать мобильное средство защиты для проверки целостности и подлинности домашнего банковского клиента и может также содержать открытый ключ банковского сервера. Данный открытый ключ используется для шифрования всех передаваемых с домашнего банковского клиента на банковский сервер данных, и поскольку целостность мобильных средств защиты гарантирована, пользователь может быть уверен в конфиденциальности своих данных.
Изобретение распространяется на устройства, выполненные с возможностью использования описанных выше способов, и на программные продукты, которые содержат инструкции, обеспечивающие работу компьютеров подобным образом. Изобретение также распространяется на комбинации клиент-сервер и/или сети, где данные доставляются клиенту в соответствии с обсуждаемыми выше аспектами изобретения.
Краткое описание чертежей
Далее посредством примеров описаны определенные варианты осуществления изобретения со ссылками на прилагаемые чертежи.
Фиг.1 представляет собой схематическое изображение системы передачи медиапотока известного уровня техники, описанной выше;
Фиг.2 представляет собой схематическое изображение первого варианта осуществления настоящего изобретения;
Фиг.3 представляет собой схематическую диаграмму, демонстрирующую используемый в варианте осуществления генерируемый случайным образом алгоритм контрольной суммы;
Фиг.4 представляет собой блок-схему, демонстрирующую работу варианта осуществления изобретения;
Фиг.5 представляет собой блок-схему используемого в варианте осуществления изобретения алгоритма сервера.
Осуществление изобретения
Как можно видеть на фиг.2, клиент имеет средство 10 просмотра, которое может использоваться для просмотра медиапродукции (например, фильмов), которые передаются потоком с потокового сервера 11 или альтернативно с локального хранилища медиапродукции, например, CD-диска 12. Каждый из этих компонентов системы находится вне доверительной среды 13. В пределах доверительной среды находится незашифрованный фильм 14, используемый для генерации защищенного фильма 16 инструмент 15 защиты, и сервер 17 защиты.
Как и в системе известного уровня техники, изображенной на фиг.1, владелец содержания защищает закодированный медиапродукт перед его доставкой клиенту. Однако, вместо использования единственного медиаключа, инструмент 15 защиты шифрует фильм очень большим числом (тысячами) медиаключей 20. В результате этого процесса получается зашифрованный закодированный фильм 16. Медиаключи 20 распространяются таким способом, что они распределены по времени; в процессе воспроизведения медиапродукта ключи защищенным образом передаются потоком клиенту по одному ключу за раз через интервалы времени по запросу, как будет подробно описано ниже. Сам медиапродукт передается отдельно. Каждый ключ содержит всего нескольких байт (около шестнадцати), так что необходимые для передачи ключей потоком ресурсы создают низкую дополнительную нагрузку.
Каждый ключ может дешифровать только порядка секунды или максимум несколько секунд фильма, так что получение только одного ключа имеет маленькую ценность.
В первом варианте осуществления изобретения защищенный фильм доставляется клиенту в виде потока данных по пути А, через потоковый сервера 11 и медиапоток 18. В дальнейших вариантах осуществления используются материальные носители, например, CD-диск или DVD-диск 12.
Средство 10 просмотра выполняется в клиентской компьютерной системе и выполнено с возможностью получения защищенного фильма 16 с потокового сервера 11 путем медиапотока 18 (или с CD/DVD-диска в других воплощениях). Во время процесса воспроизведения, средство 10 просмотра осуществляет связь с сервером 17 защиты для загрузки необходимых для дешифрования защищенного фильма 16 медиаключей 20.
Кроме того, средство 10 просмотра также загружает фрагменты кода, называемые мобильными средствами 19 защиты (МСЗ), через регулярные интервалы, приблизительно, 30 секунд. Каждое из мобильных средств защиты содержит внедренную секретную информацию в виде алгоритма, созданного в сервере 17 защиты. Выполнение этих алгоритмов необходимо для использования переданных потоком данных 18. Когда каждое мобильное средство 19 защиты передается в средство просмотра, оно осуществляет вычисления, определяемые секретным алгоритмом, и возвращает результат на сервер защиты. Мобильное средство защиты структурировано таким образом, что результат вычисления верен только в случае отсутствия несанкционированного вмешательства в средство просмотра. Результат секретного алгоритма содержит контрольную сумму, доказывающую серверу защиты целостность средства просмотра.
Мобильное средство защиты может также содержать другие дополнительные алгоритмы, функционально и пространственно смешанные с секретным алгоритмом. Таким образом, клиентский компьютер/средство просмотра может быть принужден выполнять дополнительные алгоритмы, поскольку в противном случае секретный алгоритм не будет реализован. Тем самым средство просмотра может быть полностью проверено.
Если возвращенный мобильным средством защиты на сервер 17 защиты результат не совпадает с ожидаемым результатом, сервер защиты прекращает поставку медиаключей 20 в средство просмотра. То же самое происходит в случае, если средство 10 просмотра отказывается от мобильного средства защиты или если верный результат не поступает в пределах определенного времени. Протокол обмена ключами будет детально объяснен далее.
Секретные алгоритмы основаны на вычислениях контрольной суммы, имеющих высокую вероятность обнаружения изменений в проверяемых данных (то есть в коде средства просмотра). Как можно видеть на фиг.3, сгенерированный случайным образом алгоритм 21 контрольной суммы (для использования в мобильном средстве защиты) использует вычисление контрольной суммы, разделенное на два шага: модификацию 22 входных данных, осуществляемую случайным образом, и известное вычисление 23 контрольной суммы, выполняемое на измененных входных данных. Эти шаги вместе образуют рандомизированный секретный алгоритм контрольной суммы.
Модификацией входных данных называется создание случайным образом модификатора, который переставляет входные данные для вычисления 23 контрольной суммы. При генерации мобильного средства защиты сервером защиты определяется случайная последовательность. При выполнении средством просмотра алгоритма 21 контрольной суммы, входной программный код средства просмотра разделяется на n блоков одного размера. Далее блоки перетасовываются в указанной случайной последовательности на шаге 22 модификации входных данных. Результат передается на шаг 23 вычисления контрольной суммы. Вычисление контрольной суммы использует известный алгоритм MD5. Затем выполняется вычисление контрольной суммы, и результат возвращается на сервер защиты.
Следует понимать, что хотя алгоритм контрольной суммы известен, результат действия алгоритма является функцией порядка, в котором блоки поступают на вход алгоритма. Этот порядок известен серверу защиты, и тем самым сервер защиты может определить, указывает ли возвращенный результат на сохранное средство просмотра.
Мобильное средство защиты нужно защищать от несанкционированного вмешательства и от слежения за его внутренним функционированием. Первый аспект защиты мобильного средства защиты заключается в создании случайным образом новых версий каждый раз, когда возникает необходимость проверки средства просмотра. Во-вторых, время жизни мобильного средства защиты в среде средства просмотра коротко (менее 30 секунд). Хотя человеческие (т.е. интеллектуальные, в отличие от автоматизированных) атаки на мобильное средство защиты теоретически возможны, такие атаки займут значительное время. Благодаря тому, что каждое мобильное средство защиты обладает исчисляемым в секундах сроком действия, атаки с вовлечением человека становятся фактически невозможными, поскольку мобильное средство защиты устаревает задолго до окончания любой подобной атаки.
Мобильное средство защиты скрыто, как рассмотрено ранее, для защиты от автоматизированной атаки.
Мобильное средство защиты рандомизирует отображение в памяти функционирующего средства просмотра, что в дальнейшем называется "обфускация времени выполнения на средстве просмотра". Области кода и данных средства просмотра переставляются и стек скремблируется. Этот процесс подробно описан ниже.
Следствием обфускации времени выполнения на средстве просмотра является обеспечение возможности выполнения исключительно интеллектуальных атак на отображение в памяти средства просмотра, поскольку при этом рандомизируются и тем самым скрываются положения в памяти дешифрованного декодированного потока.
Для рандомизации положений, где происходит обращение к памяти, мобильное средство защиты модифицирует структуру кода средства просмотра и область данных. Код и область данных разбиваются на логические сегменты. Внимательно прослеживается, чтобы границы сегментов не находились внутри машинных кодов.
После того как вновь загруженное мобильное средство защиты получает управление и перед началом дешифрования потока, мобильное средство защиты перемещает сегменты в новые положения. Данный процесс включает модификацию сегментов кода - аналогично релокации, осуществляемой динамическими линкерами (компоновщиками) - для обеспечения того, что
1) команды перехода и ветвления (условного перехода) передают управление в перемещенные положения;
2) команды чтения и записи обращаются к данным в перемещенных положениях.
После перемещения сегментов мобильное средство защиты осуществляет работу до своей замены следующим мобильным средством защиты.
Мобильному средству защиты необходимо знать точки входа определенных функций в средстве просмотра. Новые позиции сегментов известны серверу защиты и предоставляются мобильному средству защиты. Таким образом, нет никакой необходимости в передаче информации между двумя мобильными средствами защиты на клиентской стороне.
Что касается скремблирования стека, стек содержит адреса возврата предшествующих вызовов функций. Эта информация может использоваться для слежения за ходом выполнения или изменения хода выполнения средства просмотра при помощи изменения адреса возврата в стеке. При подобной атаке когда выполнение программы должно перейти обратно к вызывающей функции, программа может вместо этого передать управление потенциально враждебному коду.
Для защиты стека от подобной атаки используется способ, последовательно скремблирующий стек по мере добавления в стек новых адресов возврата. После вызова функции проверяемый код передает управление скремблирующей функции в мобильном средстве защиты, которая скремблирует новый адрес возврата в стеке перед возвратом управления обратно вызывающей функции. Для дескремблирования стека перед использованием адреса возврата вызывается соответствующая дескремблирующая функция в мобильном средстве защиты.
Реализация скремблирующей функции использует то преимущество, что мобильные средства защиты создаются по мере необходимости для проверки средства просмотра. Это позволяет создавать уникальную скремблирующую и дескремблирующую функцию в каждом мобильном средстве защиты. Скремблирующая функция в основном состоит из набора случайных данных, создаваемых сервером защиты и содержащихся в мобильном средстве защиты, над которым выполняется исключающее ИЛИ вместе с адресами возврата в стеке. Для выбора того, какую часть случайных данных использовать, применяется простая математическая функция для вычисления индекса набора случайных данных.
Средство просмотра тем самым защищено мобильным средством защиты от слежения (как обсуждалось ранее) за его состоянием (включая положение в ходе выполнения и содержимое переменных).
Медиаключи передаются на средство просмотра со скоростью примерно один ключ в секунду. Передача осуществляется посредством протокола обмена ключами, использующего генератор случайных данных и известный средству просмотра открытый ключ сервера защиты. Когда необходимо получить следующий медиаключ, средство 10 просмотра генерирует шестнадцать байт случайных данных и шифрует их открытым ключом сервера 17 защиты. Зашифрованные данные затем включаются в отправляемый на сервер защиты запрос ключа.
Сервер защиты проверяет запрос и одобряет его только в случае, если мобильное средство защиты указывает, что со средством просмотра все в порядке. Если мобильное средство защиты подтверждает, что все в порядке, сервер защиты извлекает случайные данные, применяет исключающее ИЛИ к случайным данным и запрашиваемому ключу и отправляет результат обратно в средство просмотра.
При получении результата средством просмотра, средство просмотра извлекает запрошенный ключ из результата путем применения исключающего ИЛИ к результату и тем же самым случайным данным, которые были отправлены в изначальном запросе ключа.
Протокол обеспечивает способ дешифрования зашифрованного закодированного медиапотока без каких-либо спрятанных в исходном коде средства просмотра секретных ключей. Время жизни ключа составляет всего несколько секунд, что предотвращает появление в защищенном процессе потоковой передачи единой точки уязвимости в случае извлечения одного или нескольких секретных ключей.
Следует понимать, что клиентом выполняются фактически два отдельных потока, что указано на блок-схеме фиг.4.
Первый поток представляет собой верификацию. Клиент получает мобильное средство защиты, которое затем верифицирует клиентскую программу. После подтверждения верификации, ключи количеством n могут быть получены в течение последующего интервала доверия до окончания функционирования мобильного средства защиты. Затем процесс должен быть повторен с новым мобильным средством защиты.
Параллельно с указанным потоком выполняется поток воспроизведения. Для каждого ключа принимается, дешифруется и воспроизводится сегмент медиапотока.
Функционирование сервера иллюстрируется на фиг.5. При получении запроса ключа, сервер отправляет ключ клиенту в том и только в том случае, если мобильное средство защиты все еще действует (т.е. если оно все еще находится в интервале доверия данного мобильного средства защиты). Если мобильное средство защиты закончило функционирование, клиенту отправляется новое мобильное средство защиты, которое используется для верификации клиента. Если результат неверен, клиент считается подвергшимся несанкционированному вмешательству и передача ключей останавливается. При удовлетворительном результате начинается новый интервал доверия, в течение которого ключи отправляются клиенту.

Claims (29)

1. Способ передачи данных на клиентский компьютер, выполняющий клиентскую программу, содержащий следующие шаги:
a) передача данных клиентской программе,
b) передача программного кода, содержащего алгоритм, с сервера защиты клиентской программе, причем результат алгоритма является функцией состояния клиентской программы,
c) выполнение указанного кода клиентской программой и возврат результата на сервер защиты или средства, связанные с сервером защиты, и
d) определение сервером защиты или средствами, связанными с сервером защиты, указывает ли полученный результат на отсутствие модификации клиентской программы.
2. Способ по п.1, отличающийся тем, что данные представляют собой медиапродукцию.
3. Способ по п.2, отличающийся тем, что данные представляют собой один из множества распределенных во времени сегментов медиапродукции, причем каждый сегмент шифруют, используя ключ шифрования, до передачи данных клиентской программе.
4. Способ по п.3, отличающийся тем, что исключительно в случае, если на шаге (d) полученный результат указывает на отсутствие модификации клиентской программы, способ дополнительно содержит шаг передачи клиентской программе ключа дешифрования, соответствующего переданному сегменту.
5. Способ по 4, отличающийся тем, что дополнительно содержит шаг (е) прекращения передачи данных и/или ключей, необходимых для дешифрования данных, в случае, если полученный результат не указывает на отсутствие модификации клиентской программы.
6. Способ по п.1 или 2, отличающийся тем, что указанный код включает вычисление контрольной суммы, входными данными которой является программный код клиентской программы и/или отображение в памяти клиентской программы.
7. Способ по п.6, отличающийся тем, что во входные данные для вычисления контрольной суммы включено случайное число.
8. Способ по п.7, отличающийся тем, что клиентская программа или переданный программный код генерирует случайное число для вычисления контрольной суммы, клиентская программа шифрует случайное число посредством открытого ключа сервера защиты, зашифрованное случайное число передают на сервер защиты вместе с запросом ключа и вычисленной контрольной суммой; сервер защиты дешифрует случайное число и использует его для шифрования ключа, содержащегося в сервере защиты; сервер защиты выполняет собственное вычисление контрольной суммы с использованием указанного случайного числа; и сервер защиты затем сравнивает значение контрольной суммы, принятое от клиентской программы, и собственное вычисленное значение контрольной суммы.
9. Способ по п.8, отличающийся тем, что зашифрованный ключ передают клиентской программе для дешифрования ею ключа исключительно в случае совпадения указанных двух сравниваемых значений контрольной суммы.
10. Способ по п.9, отличающийся тем, что в случае несовпадения указанных двух сравниваемых значений контрольной суммы в сервере защиты устанавливают, что клиентская программа подверглась несанкционированному вмешательству.
11. Способ по п.1 или 2, отличающийся тем, что указанный код выполняет задачу или задачи обфускации в отношении клиентской программы.
12. Способ по п.11, отличающийся тем, что задача или задачи обфускации включают в себя рандомизацию отображения в памяти выполняющейся клиентской программы.
13. Способ по п.11, отличающийся тем, что задачи обфускации включают одну или более из следующих задач: перемещение кода, диверсификация кода, перемещение данных и скрытие данных.
14. Способ по п.1 или 2, отличающийся тем, что переданный из сервера защиты клиентской программе программный код подвергнут обфускации.
15. Способ по п.1 или 2, отличающийся тем, что дополнительно содержит шаг шифрования данных с использованием последовательности различных ключей, относящихся к соответствующим распределенным во времени сегментам данных, который выполняют до передачи данных, причем шаг передачи данных клиентской программе содержит передачу одного из распределенных во времени сегментов, при этом, если на шаге (d) полученный результат указывает на отсутствие модификации клиентской программы, способ дополнительно содержит следующие шаги:
e) защищенная потоковая передача ключа, соответствующего переданному сегменту, с защищенного удаленного сервера клиентской программе; и
f) дешифрование сегмента посредством указанного ключа.
16. Способ по п.15, отличающийся тем, что содержит повторение шагов с (b) по (f).
17. Способ по п.15 или 16, отличающийся тем, что каждый содержащий алгоритм программный код имеет соответствующий интервал доверия, и множество ключей передается потоком клиентской программе в течение указанного интервала доверия.
18. Способ по любому из пп.1-4, отличающийся тем, что шаги с (b) по (d) повторяют, при этом алгоритм изменяют.
19. Способ по любому из пп.1-4, отличающийся тем, что алгоритм формируют случайным образом.
20. Способ по п.1, отличающийся тем, что клиентская программа используется в одной из следующих областей: банковское обслуживание через Интернет, онлайновые игры и распределенные вычисления.
21. Способ передачи медиапродукции на клиентский компьютер, выполняющий клиентскую программу, содержащий следующие шаги:
(a) шифрование медиапродукции с использованием последовательности различных ключей, относящихся к соответствующим распределенным во времени сегментам медиапродукции,
(b) передача программного кода, включающего алгоритм, с сервера защиты клиентской программе, причем результат алгоритма является функцией состояния клиентской программы,
(c) выполнение указанного кода клиентской программой и возврат результата на сервер защиты или средства, связанные с сервером защиты,
(d) определение сервером защиты или средствами, связанными с сервером защиты, указывает ли результат на отсутствие модификации клиентской программы, и
дополнительно содержащий следующие шаги:
(e) передача первого сегмента с сервера клиентской программе,
(f) защищенная потоковая передача первого ключа, соответствующего переданному сегменту, с защищенного удаленного сервера клиентской программе,
(g) дешифрование первого сегмента посредством полученного первого ключа,
(h) в случае, если шаг (d) указывает на модификацию клиентской программы, прекращение передачи последующих ключей, в противном случае - повторение шагов с (е) по (g) в отношении последующих сегментов и ключей.
22. Способ по п.21, отличающийся тем, что дополнительно содержит шаг (i) повторения шагов с (b) по (d).
23. Способ проверки целостности клиентской программы, содержащий следующие шаги: передача программного кода из защищенного источника на клиентский компьютер, выполняющий клиентскую программу, при этом программный код содержит алгоритм, зависящий от состояния клиентской программы; выполнение программного кода и возврат результата в указанный источник, посредством чего источник может определить целостность клиентской программы.
24. Способ по п.23, отличающийся тем, что клиентская программа используется в одной из следующих областей: банковское обслуживание через Интернет, онлайновые игры и распределенные вычисления.
25. Устройство для передачи данных на клиентский компьютер, выполняющий клиентскую программу, выполненное с возможностью осуществления способа, охарактеризованного в любом из пп.1-20.
26. Устройство для проверки целостности клиентской программы, выполненное с возможностью осуществления способа, охарактеризованного в п.23 или 24.
27. Устройство для передачи медиапродукции на клиентский компьютер, выполняющий клиентскую программу, содержащее:
(a) средства для передачи медиапродукции клиентской программе,
(b) средства для передачи программного кода, содержащего алгоритм, с сервера защиты клиентской программе, причем результат алгоритма является функцией состояния клиентской программы, и
(c) средства, содержащиеся в сервере защиты, или средства, связанные с сервером защиты, для приема результата и определения того, указывает ли полученный результат на отсутствие модификации клиентской программы.
28. Способ приема данных, реализуемый клиентским компьютером, выполняющим клиентскую программу, содержащий следующие шаги:
(a) прием данных,
(b) прием программного кода, содержащего алгоритм, из удаленного источника, причем результат алгоритма является функцией состояния клиентской программы,
(c) выполнение алгоритма и возврат результата в удаленный источник, при этом полученный результат указывает на наличие или отсутствие модификации клиентской программы.
29. Способ передачи данных на клиентский компьютер, выполняющий клиентскую программу, содержащий следующие шаги:
(a) передача данных клиентской программе,
(b) передача программного кода, содержащего алгоритм, с сервера защиты клиентской программе, причем результат алгоритма является функцией состояния клиентской программы,
(c) прием сервером защиты или средствами, связанными с сервером защиты, результата выполнения указанного кода клиентской программой, и
(d) определение сервером защиты или средствами, связанными с сервером защиты, указывает ли полученный результат на отсутствие модификации клиентской программы.
RU2008104050/08A 2005-07-14 2006-07-14 Способ защиты мультимедийных данных RU2449494C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0514492.8A GB0514492D0 (en) 2005-07-14 2005-07-14 Secure media streaming
GB0514492.8 2005-07-14

Publications (2)

Publication Number Publication Date
RU2008104050A RU2008104050A (ru) 2009-08-20
RU2449494C2 true RU2449494C2 (ru) 2012-04-27

Family

ID=34897225

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008104050/08A RU2449494C2 (ru) 2005-07-14 2006-07-14 Способ защиты мультимедийных данных

Country Status (10)

Country Link
US (2) US8627081B2 (ru)
EP (1) EP1913774B1 (ru)
JP (2) JP2009501470A (ru)
KR (1) KR20080037025A (ru)
CN (1) CN101233755A (ru)
AU (1) AU2006268017A1 (ru)
CA (1) CA2615469A1 (ru)
GB (2) GB0514492D0 (ru)
RU (1) RU2449494C2 (ru)
WO (1) WO2007007112A2 (ru)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2443264A (en) * 2006-10-27 2008-04-30 Ntnu Technology Transfer As Integrity checking method for a device in a computer network, which controls access to data; e.g. to prevent cheating in online game
EP2078406A2 (en) * 2006-10-27 2009-07-15 Secustream Technologies AS Protecting data from access in online game
DE102006060043A1 (de) * 2006-12-19 2008-06-26 Siemens Ag Verfahren und Sender zum Bereitstellen eines Datenstroms, Verfahren und Empfänger zum Abruf zumindest eines Datensegments eines Datenstroms
US7945052B2 (en) * 2007-03-29 2011-05-17 Gary Stephen Shuster Method of distributing a decryption key in fixed-content data
KR100914771B1 (ko) 2007-05-09 2009-09-01 주식회사 웰비아닷컴 일회용 실행 코드를 이용한 보안 시스템 및 보안 방법
JP4964987B2 (ja) 2007-08-29 2012-07-04 シーディーネットワークス カンパニー リミテッド デジタルメディアコンテンツの無断複製に対する保護
US8301570B2 (en) * 2007-10-29 2012-10-30 Infosys Technologies Limited Method and system for data security in an IMS network
US8005227B1 (en) * 2007-12-27 2011-08-23 Emc Corporation Key information consistency checking in encrypting data storage system
WO2009139650A1 (en) * 2008-05-12 2009-11-19 Business Intelligence Solutions Safe B.V. A data obfuscation system, method, and computer implementation of data obfuscation for secret databases
KR101711863B1 (ko) * 2008-11-26 2017-03-13 캘거리 싸이언티픽 인코포레이티드 애플리케이션 프로그램의 상태에 대한 원격 액세스를 제공하기 위한 방법 및 시스템
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US20100223114A1 (en) * 2009-03-02 2010-09-02 Cisco Technology Digital signage proof of play
US8812959B2 (en) * 2009-06-30 2014-08-19 International Business Machines Corporation Method and system for delivering digital content
US8544033B1 (en) 2009-12-19 2013-09-24 Cisco Technology, Inc. System and method for evaluating content in a digital signage environment
CN101924749A (zh) * 2010-01-28 2010-12-22 赵路 实现网络安全浏览的系统和方法
US8838954B2 (en) * 2010-02-02 2014-09-16 Futurewei Technologies, Inc. Media processing devices for adaptive delivery of on-demand media, and methods thereof
US8892691B2 (en) * 2010-04-07 2014-11-18 Apple Inc. Real-time or near real-time streaming
GB201008888D0 (en) * 2010-05-27 2010-07-14 Qinetiq Ltd Network security
US9135352B2 (en) 2010-06-03 2015-09-15 Cisco Technology, Inc. System and method for providing targeted advertising through traffic analysis in a network environment
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US9258587B2 (en) * 2011-01-05 2016-02-09 Verizon Patent And Licensing Inc. Content blackout determinations for playback of video streams on portable devices
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
JP5779434B2 (ja) * 2011-07-15 2015-09-16 株式会社ソシオネクスト セキュリティ装置及びセキュリティシステム
WO2013024342A1 (en) 2011-08-15 2013-02-21 Calgary Scientific Inc. Method for flow control and for reliable communication in a collaborative environment
KR20140080483A (ko) 2011-08-15 2014-06-30 캘거리 싸이언티픽 인코포레이티드 애플리케이션 프로그램에 대한 비-침투적 원격 액세스
US9489541B2 (en) * 2011-09-09 2016-11-08 Nvidia Corporation Content protection via online servers and code execution in a secure operating system
EP2761808A4 (en) 2011-09-30 2015-05-20 Calgary Scient Inc DECOUPLED APPLICATION WITH EXTENSIONS INTERACTIVE DIGITAL SURFACE LAYER FOR COLLABORATIVE REMOTE COMMON USE OF APPLICATIONS AND ANNOTATION
US9787463B2 (en) * 2011-10-14 2017-10-10 Maxlinear, Inc. Method and system for server-side message handling in a low-power wide area network
AU2012342170B2 (en) 2011-11-23 2017-03-09 Calgary Scientific Inc. Methods and systems for collaborative remote application sharing and conferencing
US8792912B2 (en) 2011-12-22 2014-07-29 Cisco Technology, Inc. System and method for providing proximity-based dynamic content in a network environment
US9602581B2 (en) 2012-03-02 2017-03-21 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (DLL) injection
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
CN103747039B (zh) * 2012-12-21 2017-06-13 北京海威汇达计算机技术有限责任公司 数字电影拷贝分发系统
GB2510641A (en) * 2013-02-12 2014-08-13 F Secure Corp Detecting suspicious code injected into a process if function call return address points to suspicious memory area
CN104134021B (zh) * 2013-06-20 2016-03-02 腾讯科技(深圳)有限公司 软件的防篡改验证方法及装置
EP3025226B1 (en) * 2013-07-23 2019-12-04 Ericsson AB Media client device authentication using hardware root of trust
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
CA2931762C (en) 2013-11-29 2020-09-22 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
EP2958039B1 (en) * 2014-06-16 2019-12-18 Vodafone GmbH Device for decrypting and providing content of a provider and method for operating the device
WO2016054453A1 (en) * 2014-10-01 2016-04-07 VYRTY Corporation Secure access to individual information
US10050784B2 (en) * 2014-11-13 2018-08-14 Secure Channels Inc. System and method for generating a cryptographic key
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
CN107431630B (zh) 2015-01-30 2021-06-25 卡尔加里科学公司 高度可扩展、容错的远程访问架构和与之连接的方法
CN108064381B (zh) * 2015-03-30 2021-06-18 爱迪德技术有限公司 用于数据保护的方法
CN104978542B (zh) * 2015-06-11 2019-08-13 福建天晴数码有限公司 安全存储数据和访问数据的方法及系统
RU2657168C2 (ru) * 2016-04-29 2018-06-08 Общество с ограниченной ответственностью "Общество Сферического Кино" Программно-аппаратный комплекс для автоматической калибровки многопроекторных систем с возможностью воспроизводить контент в высоком разрешении с использованием средств шифрования и цифровой дистрибьюции, способ шифрования контента для использования в способе воспроизведения контента
US10348695B1 (en) 2016-05-26 2019-07-09 VYRTY Corporation Secure access to individual information
US10432685B2 (en) * 2016-05-31 2019-10-01 Brightcove, Inc. Limiting key request rates for streaming media
US11343330B2 (en) 2018-04-18 2022-05-24 VYRTY Corporation Secure access to individual information
CN109409084B (zh) * 2018-09-21 2021-06-25 中国科学院信息工程研究所 一种检测返回地址被篡改的链式数据存储结构
US11550903B1 (en) * 2019-04-26 2023-01-10 Joseph Alan Epstein System and method for trustworthiness, reputation, provenance, and measurement of software
US11757634B2 (en) 2021-03-30 2023-09-12 Bank Of America Corporation System for secure client-side cryptographic key retrieval using cryptographic key splitting and wrapping
CN113596600A (zh) * 2021-08-03 2021-11-02 广州繁星互娱信息科技有限公司 直播嵌入程序的安全管理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2154346C2 (ru) * 1994-03-08 2000-08-10 Эксел Свитчинг Корпорэйшн Расширяемая телекоммуникационная система
RU99113030A (ru) * 1996-11-18 2001-05-20 ЭмСиАй ВОРЛДКОМ, ИНК. Архитектура коммуникационной системы
EP1246463A2 (en) * 2001-03-30 2002-10-02 Matsushita Electric Industrial Co., Ltd. Recording and reproducing device, control method and abuse prevention system

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09139849A (ja) 1995-11-13 1997-05-27 Mita Ind Co Ltd ファクシミリ装置の暗号化方法
NZ335509A (en) * 1996-11-18 2001-04-27 Mci Worldcom Inc A communication system architecture for an internet supported telephone system
IL122106A (en) 1997-11-04 2010-11-30 Enco Tone Ltd Method and algorithms for identification and validation
US6185685B1 (en) * 1997-12-11 2001-02-06 International Business Machines Corporation Security method and system for persistent storage and communications on computer network systems and computer network systems employing the same
US6266754B1 (en) * 1998-05-29 2001-07-24 Texas Instruments Incorporated Secure computing device including operating system stored in non-relocatable page of memory
US6438235B2 (en) * 1998-08-05 2002-08-20 Hewlett-Packard Company Media content protection utilizing public key cryptography
ES2207285T3 (es) 1998-09-22 2004-05-16 Infineon Technologies Ag Procedimiento para la utentificacion de al menos un abonado durante un intercambio de datos.
US6535687B1 (en) * 1999-07-23 2003-03-18 Sarnoff Corporation Method and system for deterring electronic video piracy through image rearrangement
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US20010036271A1 (en) 1999-09-13 2001-11-01 Javed Shoeb M. System and method for securely distributing digital content for short term use
US7080257B1 (en) * 2000-03-27 2006-07-18 Microsoft Corporation Protecting digital goods using oblivious checking
US7333610B2 (en) * 2000-08-11 2008-02-19 Nds Ltd System and method for pre-encryption of transmitted content
US7743259B2 (en) * 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US7165175B1 (en) 2000-09-06 2007-01-16 Widevine Technologies, Inc. Apparatus, system and method for selectively encrypting different portions of data sent over a network
US7242772B1 (en) 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
WO2002023315A2 (en) 2000-09-12 2002-03-21 Aladdin Knowledge Systems, Ltd. System for managing rights and permitting on-line playback of digital content
JP2002092044A (ja) 2000-09-19 2002-03-29 Olympus Optical Co Ltd 設備管理システム及び方法ならびに設備管理プログラムを記録した記録媒体
EP1334583A2 (en) * 2000-10-26 2003-08-13 General Instrument Corporation Enforcement of content rights and conditions for multimedia content
US7150045B2 (en) * 2000-12-14 2006-12-12 Widevine Technologies, Inc. Method and apparatus for protection of electronic media
DE60143452D1 (de) * 2000-12-22 2010-12-23 Irdeto Eindhoven B V System mit bedingtem zugriff
US7251833B2 (en) 2000-12-29 2007-07-31 International Business Machines Corporation Digital media delivery with local cache and streaming tokens
US7111789B2 (en) * 2001-08-31 2006-09-26 Arcot Systems, Inc. Enhancements to multi-party authentication and other protocols
US6865555B2 (en) * 2001-11-21 2005-03-08 Digeo, Inc. System and method for providing conditional access to digital content
US7243226B2 (en) * 2001-12-12 2007-07-10 Valve Corporation Method and system for enabling content security in a distributed system
US7509687B2 (en) * 2002-03-16 2009-03-24 Trustedflow Systems, Inc. Remotely authenticated operation method
US7299292B2 (en) * 2002-03-29 2007-11-20 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream to a virtual smart card client system
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7346780B2 (en) * 2002-04-03 2008-03-18 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions
US7124445B2 (en) * 2002-06-21 2006-10-17 Pace Anti-Piracy, Inc. Protecting software from unauthorized use by converting source code modules to byte codes
JP2004133801A (ja) 2002-10-11 2004-04-30 Toshiba Corp コンテンツ提供システム及びコンテンツ提供方法
US20040083373A1 (en) * 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
US20040083177A1 (en) * 2002-10-29 2004-04-29 General Instrument Corporation Method and apparatus for pre-encrypting VOD material with a changing cryptographic key
US7287052B2 (en) * 2002-11-09 2007-10-23 Microsoft Corporation Challenge and response interaction between client and server computing devices
FR2849230B1 (fr) 2002-12-24 2005-04-22 Francois Bangui Procede et dispositif de verification de l'integrite d'une application logicielle sans cle de chiffrement/dechiffrement
US7366906B2 (en) * 2003-03-19 2008-04-29 Ricoh Company, Ltd. Digital certificate management system, digital certificate management apparatus, digital certificate management method, program and computer readable information recording medium
GB0309161D0 (en) 2003-04-23 2003-05-28 Hewlett Packard Development Co Cryptographic method and apparatus
JP4744106B2 (ja) * 2003-08-06 2011-08-10 パナソニック株式会社 セキュアデバイス、情報処理端末、通信システム及び通信方法
JP4568489B2 (ja) 2003-09-11 2010-10-27 富士通株式会社 プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
US8768844B2 (en) * 2004-10-06 2014-07-01 Sony Corporation Method and system for content sharing and authentication between multiple devices
US8887287B2 (en) * 2004-10-27 2014-11-11 Alcatel Lucent Method and apparatus for software integrity protection using timed executable agents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2154346C2 (ru) * 1994-03-08 2000-08-10 Эксел Свитчинг Корпорэйшн Расширяемая телекоммуникационная система
RU99113030A (ru) * 1996-11-18 2001-05-20 ЭмСиАй ВОРЛДКОМ, ИНК. Архитектура коммуникационной системы
EP1246463A2 (en) * 2001-03-30 2002-10-02 Matsushita Electric Industrial Co., Ltd. Recording and reproducing device, control method and abuse prevention system

Also Published As

Publication number Publication date
EP1913774A2 (en) 2008-04-23
GB2442691A (en) 2008-04-09
US20090132823A1 (en) 2009-05-21
GB2442691B (en) 2011-05-25
US20140189358A1 (en) 2014-07-03
CA2615469A1 (en) 2007-01-18
WO2007007112A3 (en) 2007-06-14
EP1913774B1 (en) 2019-02-27
US8627081B2 (en) 2014-01-07
WO2007007112A2 (en) 2007-01-18
KR20080037025A (ko) 2008-04-29
GB0514492D0 (en) 2005-08-17
JP2013059078A (ja) 2013-03-28
JP2009501470A (ja) 2009-01-15
GB0802795D0 (en) 2008-03-26
AU2006268017A1 (en) 2007-01-18
CN101233755A (zh) 2008-07-30
RU2008104050A (ru) 2009-08-20

Similar Documents

Publication Publication Date Title
RU2449494C2 (ru) Способ защиты мультимедийных данных
KR100362219B1 (ko) 변조방지 프로세서를 이용하여 프로그램을 분배하기 위한방법 및 시스템
JP5192556B2 (ja) 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ
US7480802B2 (en) License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
US7933838B2 (en) Apparatus for secure digital content distribution and methods therefor
US8934624B2 (en) Decoupling rights in a digital content unit from download
US9252957B2 (en) Method for preventing laundering and repackaging of multimedia content in content distribution systems
US20060149683A1 (en) User terminal for receiving license
WO2007100975A2 (en) System, method, and apparatus for securely providing content viewable on a secure device
CN113411638A (zh) 视频文件的播放处理方法、装置、电子设备及存储介质
CN106796624A (zh) 挑战响应方法和相关联的计算设备
KR20100031106A (ko) 데이터 보안
US12007908B2 (en) Method and apparatus to dynamically encode data at runtime
Grimen et al. Software-based copy protection for temporal media during dissemination and playback
WO2006026056A1 (en) Enforcing a drm / ipmp agreement in a multimedia content distribution network
WO2007063491A2 (en) Protection of digital content
Lulla et al. Piracy Control Using Secure Disks
Peinado Digital Rights Management and Windows Media Player

Legal Events

Date Code Title Description
PC43 Official registration of the transfer of the exclusive right without contract for inventions

Effective date: 20120710