СПОСОБ И УСТРОЙСТВО ДЛЯ УПРАВЛЕНИЯ КОЛИЧЕСТВОМ УСТРОЙСТВ, ИНСТАЛЛИРОВАННЫХ В АВТОРИЗОВАННОМ ДОМЕНЕ
METHOD AND DEVICE FOR CONTROLLING NUMBER OF DEVICES INSTALLED IN AUTHORISED DOMAIN

Область изобретения
Изобретение относится, в общем, к защите контента в коммуникационных сетях, более конкретно к управлению Авторизованным Доменом.
Предшествующий уровень техники
Понятие «Авторизованный Домен» (AD) было недавно определено как набор устройств, принадлежащих членам того же самого домашнего хозяйства, для приема, хранения или потребления контента. В этом контексте домашнее хозяйство не должно рассматриваться как единственное местоположение (главный дом). Авторизованный Домен может реально включать в себя устройства, расположенные в доме отдыха, в автомобиле, или даже переносные устройства. Фиг. 1 иллюстрирует пример Авторизованного Домена 1 включающего в себя ряд устройств, расположенных в главном доме 2: цифровой телевизор 21, персональный компьютер 23, игровую приставку 24 и блок 22 хранения; другой цифровой телевизор 31, находящийся во втором доме 3; мобильные устройства, такие как персональный цифровой помощник 41 и портативный плеер 42, которые могут находиться вне дома, и мобильное устройство 51, находящееся в автомобиле 5 (например, портативный видеоплеер). Контенты могут доставляться на устройства Авторизованного Домена несколькими способами: например, это может быть контент вещательной передачи, принимаемый через антенну 6; это может быть широкополосный контент по требованию, принимаемый через открытую сеть, такую как Интернет 7, или это может быть контент, сохраненный на носителе, таком как оптический диск 8.
ТМ
Несколько групп (например, TV-Anytime Forum или DVB-CPT - Техническая подгруппа по защите цифрового видеовещательного контента организации DVB) разработали в последние годы понятие Авторизованного Домена. Решения по реализации были также предложены промышленностью, например предложение SmartRight (информация о нем может быть найдена на www.smartright.org).
ТМ
В пределах Авторизованного Домена устройства часто различаются в зависимости от роли, которую они играют в отношении содержания. В системе SmartRight, например, контент поступает в Авторизованный Домен через устройство доступа (также называемое устройством приобретения), он сохраняется в модуле хранения и потребляется или экспортируется устройством представления. Подобные функциональные модули определены в Системе DVB-CPCM ("CPCM" обозначает Управление защитой и копированием контента), в настоящее время определены DVB-CPT1 и показаны на фиг. 2.
На фиг. 2 входной контент 110, доставленный провайдером контента, поступает в Авторизованный Домен 100 через пункт 101 приобретения. Этот объект выполняет некоторые действия над входным контентом, чтобы получить контенты 120, специфические для Авторизованного Домена. Эти специфические для AD контенты 120 могут быть сохранены в пределах Авторизованного Домена объектом 102 хранения для последующего потребления. Они могут обрабатываться объектом 103 обработки (например, чтобы выполнить сжатие для передачи контента на устройство с низкой разрешающей способностью). Наконец этот специфический для AD контент может потребляться через пункт 104 потребления, где контент представляется (например, в форме звука и изображений) пользователю, чтобы получить то, что называется потребленным контентом 130. Специфический для AD контент может также экспортироваться через пункт 105 экспорта, чтобы получить экспортированный контент 140, который более не защищен по правилам Авторизованного Домена и предпочтительно защищается другой системой. Разумеется, можно реализовать две или более из ранее упомянутых функциональных возможностей в единственном приборе (например, игровая приставка, имеющая внутренний жесткий диск, является одновременно пунктом приобретения и объектом хранения; интегрированный цифровой телевизор с аналоговым выходом является пунктом потребления и пунктом экспорта).
Нужно отметить, что специфический для AD контент связан с Авторизованным Доменом, в котором был получен этот контент, если такая привязка требуется провайдером контента (например, в правах использования, приложенных к входному контенту). Это означает, что такой специфический для AD контент может потребляться в каждом пункте потребления Авторизованного Домена, но не может потребляться ни в каком устройстве другого Авторизованного Домена.
Поэтому управление Авторизованным Доменом очень важно, чтобы ограничить размер и/или протяженность Авторизованного Домена. Пользователи реально были бы заинтересованы в неограниченном Авторизованном Домене, чтобы иметь возможность совместно использовать свои контенты с другими, но провайдеры контента требуют, чтобы размер Авторизованного Домена был ограничен только потребностями членов единственного домашнего хозяйства.
Основное решение состояло бы в том, чтобы ограничить общее количество устройств в пределах Авторизованного Домена, но трудно оценить «нормальное» число устройств для одного домашнего хозяйства. Кроме того, подсчет только числа устройств имел бы нежелательные побочные эффекты. Например, два объекта хранения емкостью 1 Мбайт каждый (например, USB keys - малые портативные устройства памяти, подключаемые к USB-порту разных компьютеров), были бы посчитаны как два устройства, тогда как один объект хранения на 10 Гбайт (например, жесткий диск) считался бы только за одно устройство.
Поэтому имеется потребность в безопасном решении ограничить размер/протяженность Авторизованного Домена, которое было бы прозрачным и незаметным для большинства честных пользователей, но которое предотвратило бы возможность обойти его недобросовестным пользователям.
Сущность изобретения
Изобретение направлено на способ управления количеством устройств, инсталлированных в Авторизованном Домене, содержащем, по меньшей мере, одно главное устройство, причем упомянутое главное устройство, имеет возможность хранить предельные значения для:
- общего количества Total_limit устройств, подлежащих инсталлированию в Авторизованном Домене;
- общего количества Local_limit устройств, подлежащих инсталлированию в локальной близости с главным устройством, и
- общего количества Remote_limit устройств, подлежащих инсталлированию удаленно от упомянутого главного устройства;
при этом способ содержит этапы, когда главное устройство получает запрос на инсталляцию от нового устройства:
верификацию того, что Total_limit не было достигнуто, и
в случае положительной верификации проверку того, находится ли новое устройство в локальной близости с главным устройством, и
если новое устройство определено как локальное, верификацию того, что Local_limit не было достигнуто перед разрешением локальной инсталляции,
если новое устройство определено как удаленное, верификацию того, что Remote_limit не было достигнуто перед разрешением удаленной инсталляции.
Согласно конкретным вариантам осуществления изобретения:
- предельное значение Local_limit больше, чем предельное значение Remote_limit;
- предельное значение Total_limit больше, чем сумма предельных значений Local_limit и Remote_limit.
Согласно другому варианту осуществления, главное устройство, кроме того, может хранить текущие значения числа Local_count устройств, инсталлированных в Авторизованном Домене в локальной близости с главным устройством; и числа Remote_count устройств, инсталлированных в Авторизованном Домене удаленно от упомянутого главного устройства; причем способ дополнительно содержит, если новое устройство определено как локальное и если число Local_count равно или больше, чем Local_limit, этап проверки, что число устройств, которые инсталлированы в Авторизованном Домене и которые соединены в это время в локальной близости с главным устройством, больше, чем предопределенный кворум числа Local_count; причем новое устройство инсталлируется локально, если упомянутая проверка положительна.
Согласно другим конкретным вариантам осуществления:
- Local_count получает приращение, когда новое устройство инсталлируется локально; или Remote_count получает приращение, когда новое устройство инсталлируется удаленно;
- Local_count или Remote_count получают приращение, только когда новое устройство имеет возможность потреблять и/или экспортировать контент;
- Local_count или Remote_count получают приращение на единицу, когда новое устройство имеет возможность потреблять и экспортировать контент;
- когда устройство, которое было инсталлировано удаленно в Авторизованном Домене, определено как находящееся в локальной близости с главным устройством, то Local_count увеличивается, в то время как Remote_count уменьшается;
- способ дополнительно содержит этап разделения функциональных возможностей главного устройства между двумя устройствами, причем упомянутое разделение содержит разделение предельных значений Total_limit, Local_limit и Remote_limit и текущих значений Local_count и Remote_count между этими двумя главными устройствами.
Изобретение также направлено на устройство, содержащее функциональные средства главного устройства для управления числом устройств, инсталлируемых в Авторизованном Домене, включающее в себя:
память для хранения предельных значений для общего числа Total_limit устройств, подлежащих инсталлированию в Авторизованном Домене; общего числа Local_limit устройств, подлежащих инсталлированию в локальной близости с главным устройством, и общего числа Remote_limit устройств, подлежащих инсталлированию удаленно от упомянутого главного устройства;
память для хранения текущих значений числа Local_count устройств, инсталлированных в Авторизованном Домене в локальной близости с главным устройством; и числа Remote_count устройств, инсталлированных в Авторизованном Домене удаленно от упомянутого главного устройства; и
средство для реализации способа управления инсталляцией новых устройств в Авторизованном Домене, как описано выше.
Краткое описание чертежей
Различные признаки настоящего изобретения и его предпочтительных вариантов осуществления будут далее описаны, только в качестве примера, со ссылками на иллюстрирующие чертежи, на которых показано следующее:
фиг. 1 - обсужденная выше иллюстрация примера типичного Авторизованного Домена;
фиг. 2 - описанная ранее иллюстрация различных типов устройств в Авторизованном Домене;
фиг. 3 - схематичное представление блок-схемы конкретного устройства, называемого главным устройством;
фиг. 4 - иллюстрация сообщений, обмен которыми производится между новым устройством, подлежащим инсталлированию в Авторизованном Домене, и главным устройством этого AD, а также с другими устройствами этого AD в конкретном примере локальной инсталляции;
фиг. 5 и 6 - диаграммы состояний соответственно нового устройства, подлежащего инсталлированию в Авторизованном Домене, и главного устройства этого Авторизованного Домена.
Описание предпочтительных вариантов осуществления
В Авторизованном Домене, управляемом согласно изобретению, манипулируют тремя различными отсчетами размера:
- один (Local_count) для числа устройств, инсталлированных в пределах местоположения;
- один (Remote_count) для числа устройств, инсталлированных с удаленного местоположения; и
- один (Total_count) для общего количества устройств, инсталлированных в Авторизованном Домене (этот отсчет Total_count фактически является суммой двух предыдущих).
Предпочтительно, только устройства, выполняющие функции пункта потребления или пункта экспорта, принимаются во внимание для этих отсчетов.
Эти отсчеты поддерживаются главным устройством, которое только одно имеет возможность инсталлировать пункты потребления и экспорта в Авторизованном Домене. Пункты приобретения, объекты хранения и обработки могут быть инсталлированы любым устройством из Авторизованного Домена.
Функциональные возможности главного устройства могут быть реализованы в любом устройстве Авторизованного Домена и предпочтительно реализуются в единственном устройстве AD. Главное устройство является устройством 200, как проиллюстрировано схематично на фиг. 3, которое содержит защищенный процессор (центральный процессор 201) и защищенную память 202. Защищенность (символизируемая прямоугольником в пунктирном контуре на фиг. 3) этих компонентов может быть реализована с использованием смарт-карты или платформы типа TCPA (TCPA - Альянс доверительных компьютерных платформ). Также существуют методы запутывания для защиты как памяти, так и обработки. Эти методы могут использоваться исключительно или во взаимосвязи со смарт-картами или TCPA. Защищенная память 202 может хранить Local_count и Remote_count для Авторизованного Домена, которому принадлежит главное устройство 200. Отсчет Total_count также сохранен, в одном варианте осуществления, в защищенной памяти 202. Альтернативно, Total_count не хранится как отдельный отсчет в памяти 202; он выводится из двух других отсчетов каждый раз, когда это необходимо для проверки общего числа инсталлированных устройств в AD.
Центральный процессор 201 может исполнять программу, реализующую способ, который будет объяснен далее, чтобы управлять размером/протяженностью AD. Главное устройство 200 дополнительно содержит сетевой интерфейс 203 для соединения, постоянно или временно, с домашней сетью и/или с открытой сетью для коммуникации с другими устройствами AD. Сетевой интерфейс 203 может реализовывать известные протоколы для проводной и/или беспроводной передачи, такие как IP, IEEE 1394 или 802.11b. Главное устройство 200 также предпочтительно содержит пользовательский интерфейс 204.
Понятие локального или удаленного местоположения данного устройства определено относительно главного устройства. Например, в Авторизованном Домене, показанном на фиг. 1, если главным устройством является персональный компьютер (РС) 23, то DTV1 21, который является некоторым типом пункта потребления, будет посчитан в Local_count, тогда как DTV2 31 будет посчитан в Remote_count, сохраненном в главном устройстве 23. Что касается портативного плеера 42, который является другим типом пункта потребления, он будет рассматриваться как локальный (и считается в Local_count), если он был локальным к главному устройству 23 во время его регистрации в AD. Это не препятствует портативному устройству использоваться позже за пределами главного дома 2. Ниже будет показано, что также возможно, в альтернативном варианте осуществления, разделять функциональные возможности главного устройства между двумя или более устройствами, которые предпочтительно удалены друг от друга.
Для каждого из трех отсчетов, которые были упомянуты ранее, верхний предел также определен и сохранен в главном устройстве. Эти пределы таковы, что:
- Total_limit является высоким (нормальный пользователь никогда не должен достигать этого предела);
- предел для удаленно инсталлированных устройств Remote_limit является низким (чтобы контролировать удаленные инсталляции);
- предел для локально инсталлированных устройств Local_limit является рациональным; и
- сумма Remote_limit и Local_limit должна быть намного ниже, чем полный предел.
Когда запрос на инсталляцию нового устройства в AD принимается главным устройством этого AD, применяются следующие правила:
если отсчет Total_count достиг Total_limit, то в инсталляции отказывается.
Если новое устройство является удаленным и отсчет Remote_count достиг Remote_limit, то в инсталляции отказывается.
Если новое устройство является локальным и отсчет Local_count равен или больше, чем Local_limit, то выполняется тест на кворум. Этот тест состоит в проверке числа устройств AD, которые соединены в это время вблизи главного устройства. Главное устройство передает с этой целью сообщение в сеть, с которой оно соединено, и только ответы, приходящие из устройств этого AD, расположенных вблизи главного устройства, будут приниматься. Тест на кворум проходит, только если число принятых ответов представляет определенный кворум для отсчета Local_count. Если тест безуспешен, то в инсталляции нового устройства отказывается. Альтернативно, тест на кворум может быть основан на определенном кворуме для отсчета Total_count.
Во всех других случаях выполняется инсталляция нового устройства. Total_count увеличивается. Если новое устройство находится вблизи главного устройства, то Local_count также увеличивается, в противном случае увеличивается Remote_count.
Предельные значения Total_limit, Remote_limit и Local_limit определяются независимым органом, который решает, какие числа являются разумными (справедливыми) для «нормальных» пользователей. Эти пределы вводятся во все устройства, которые могут, возможно, действовать как главные устройства, предпочтительно в процессе производства. Независимый орган дополнительно определяет правила для авторизации агентов (например, программного модуля в устройстве или определенных пользователей) при аутентификации, чтобы обновлять эти предельные значения. В случае если пользователь оказывается под воздействием одного или нескольких из предельных значений, то этот пользователь может запросить аутентифицированного авторизованного агента увеличить одно или несколько предельных значений.
Нужно отметить, что функциональные возможности главного устройства могут быть перенесены с одного устройства на другое устройство AD. Этот перенос предпочтительно должен быть возможным только локально, или число удаленных переносов должно быть ограничено. В таком случае текущие отсчеты и предельные значения должны быть также перенесены на новое главное устройство.
В случае если пользователь домашнего хозяйства решает удалить одно устройство из Авторизованного Домена (например, продать его или предоставить его пользователю за пределами этого домашнего хозяйства), то отсчеты Local_count или Remote_count будут уменьшены в зависимости от местоположения удаленного устройства, обнаруженного главным устройством, и отсчет Total_count также будет уменьшен. В случае если устройство потеряно или украдено, оно больше не может обмениваться сообщениями с главным устройством, и поэтому оно больше не может выполнять тест на близость (используемый для обнаружения местоположения устройства, как будет объяснено ниже) с главным устройством. В этом случае предпочтительно выбрано уменьшение отсчета Local_count. Отсчет Total_count также уменьшается. Нужно отметить, что если соответствующий отсчет (Remote_count или Local_count) уже равен 0, то уменьшаться будет другой отсчет.
В одном варианте осуществления изобретения предоставлен механизм (который детализирован ниже в описании), чтобы повторно сбалансировать Local_count и Remote_count, если, например, одно удаленно инсталлированное устройство позже определяется как локальное (например, портативный плеер, принесенный на каникулах, сначала инсталлировался удаленно от главного устройства и затем соединялся с домашней сетью главного дома).
Как упомянуто ранее, также возможно разделить функциональные возможности главного устройства на два (или больше), чтобы получить два или больше главных устройств в одном Авторизованном Домене. В этом случае эти три отсчета Local_count, Remote_count и Total_count, а также предельные значения Local_limit, Remote_limit и Total_limit должны также быть разделены между главными устройствами. Например, сумма отсчетов Local_count1 и Local_count2 двух главных устройств после разделения должны равняться отсчету Local_count предыдущего одного главного устройства. Баланс отсчетов между главными устройствами может быть решен автоматически (например, одинаково разделяться между главными устройствами), или он может быть решен пользователем AD, выполняющим разделение главных устройств. Верхний предел предпочтительно установлен для числа разделений функциональных возможностей главного устройства и сохранен, вместе с другими отсчетами и предельными значениями, в защищенной памяти главного устройства.
В альтернативном варианте осуществления не обязательно разделять предельное значение Total_limit, когда другие отсчеты и предельные значения разделены. Кроме того, следует отметить, что в противоположность переносу функциональных возможностей главного устройства, что ограничено при переносе удаленным образом или может быть ограничено локальными переносами, предпочтительно разрешить разделение функциональных возможностей главного устройства между удаленными устройствами. Разделение фактически главным образом интересно тем, что позволяет пользователю иметь главное устройство в каждом местоположении AD.
На фиг. 4 показан пример инсталляции нового устройства 300 в Авторизованном Домене, имеющем уже инсталлированное главное устройство 302 и другие устройства 304. При соединении с домашней сетью новое устройство 300 широковещательно передает на этапе 306 сообщение запроса главного устройства по сети, запрашивающее главное устройство ответить. Другие устройства сети отвечают, только если они являются главными. На фиг. 4 предполагается, что главное устройство 302 приняло сообщение запроса главного устройства. Главное устройство тогда проверяет на этапе 308 значение Total_count. Если Total_count меньше, чем предельное значение Total_limit, то главное устройство на этапе 310 запускает тест на близость с новым устройством, чтобы знать, следует ли новое устройство считать локальным устройством или удаленным устройством относительно местоположения главного устройства.
Тест на близость предпочтительно использует способ для защищенного измерения, основанного на времени расстояния между двумя устройствами, раскрытый в европейской патентной заявке № 05300494.1, поданной 20 июня 2005 заявителем настоящей европейской патентной заявки. С этой целью главное устройство 302 посылает ряд команд 312 «переброски результатов» на новое устройство 300 и ждет ответов 314 «переброски результатов». Для каждого принятого ответа 314 главное устройство вычисляет ассоциированное основанное на времени расстояние, называемое временем двустороннего распространения (RTT). Если главное устройство получает один RTT ниже, чем данный предел (например, 7 миллисекунд), оно считает, что новое устройство находится в его локальной близости, и передает дальнейшее сообщение (не показанное на фиг. 4) на новое устройство, запрашивающее данные аутентификации (как объяснено в вышеупомянутой патентной заявке). Данные аутентификации, посланные новым устройством в ответ на этот запрос, проверяются главным устройством, чтобы убедиться в происхождении ответов «переброски результатов», используемых, чтобы вычислить RTT. Если все эти проверки главным устройством успешны, то новое устройство считается локальным. В противном случае новое устройство рассматривается как удаленное.
Если новое устройство является удаленным, то главное устройство проверяет Remote_count. Если Remote_count меньше, чем Remote_limit, то главное устройство предлагает удаленную инсталляцию новому устройству. В противном случае (Remote_count больше или равно Remote_limit) главное устройство посылает сообщение в новое устройство, сигнализирующее, что в инсталляции отказано.
Если новое устройство является локальным (как имеет место в примере на фиг. 4), главное устройство (этап 316) проверяет Local_count. Если Local_count меньше, чем Local_limit, то локальная инсталляция предлагается новому устройству. В случае если Local_count больше или равно Local_limit, главное устройство начинает тест на кворум с другими устройствами сети (этап 318 в фиг. 4): оно сначала передает сообщение 320 открытия (обнаружения) по сети. Это сообщение открытия предпочтительно содержит случайное число R (генерированное или полученное главным устройством) и идентификатор авторизованного домена AD_ID как вызов. Каждый Авторизованный Домен, когда он установлен, имеет уникальный идентификатор AD_ID, известный всем инсталлированным устройствам AD.
Когда другие устройства 304 из AD принимают сообщение открытия, они отвечают сообщениями 322, содержащими их собственный идентификатор Device_ID и данные аутентификации, вычисленные на основе случайного числа R и их собственного идентификатора Device_ID, используя секретный ключ. Предпочтительно данные аутентификации вычисляются с использованием функции HMAC-SHA1 и секретного ключа Авторизованного Домена AD_key. В Авторизованном Домене все инсталлированные устройства обычно совместно используют секретный ключ, определенный для AD: AD_key. Альтернативно, ключ сессии, установленный в защищенном аутентифицированном канале (SAC) и совместно используемый главным устройством и устройством 304 вычисления сообщения 322 ответа, может использоваться, чтобы вычислить данные аутентификации.
Главное устройство 302 затем проверяет действительность принятых ответов (проверяя данные аутентификации в сообщениях 322), чтобы гарантировать, что оно приняло только ответы от устройств Авторизованного Домена, и оно проверяет (этап 324), что число правильных ответов достаточно, чтобы пройти тест на кворум. Например, если отношение для кворума 1/2, то половина из числа локальных устройств (то есть Local_count/2) должна присутствовать. Поэтому на этапе 324 проверяется, что число правильных принятых ответов больше чем Local_count/2. Если эта проверка успешна, то главное устройство 302 запускает на этапе 326 тест на близость с каждым из других устройств 304, пославших правильные ответы 322. Этот тест на близость выполняется, как объяснено ранее: команды 328 «переброски результатов» передаются от главного устройства к каждому рассматриваемому другому устройству 304, и ответы 330 «переброски результатов» принимаются от каждого другого устройства и затем проверяются в главном устройстве с помощью данных аутентификации.
Главное устройство затем подсчитывает все устройства, которые прошли тест на близость (то есть те, которые находятся в его локальной близости), и проверяет (этап 332), что это число больше чем число, необходимое для кворума (то есть больше чем Local_count/2 в вышеупомянутом примере). Если тест на кворум пройден (как в примере, показанном на фиг. 4), главное устройство предлагает локальную инсталляцию (этап 334) новому устройству. В противном случае главное устройство посылает в новое устройство сообщение, сигнализирующее, что в инсталляции отказано.
Когда новое устройство получает предложение инсталляции от одного или нескольких главных устройств (в случае если основные функциональные возможности разделены между двумя или более устройствами), оно просит пользователя выбрать одно предложение (этап 336), предпочтительно с приоритетом для главного устройства (главных устройств), предлагающего(их) локальную инсталляцию. Затем новое устройство посылает запрос инсталляции (этап 338) к выбранному главному устройству, и процесс инсталляции запускается (обновление отсчетов в главном устройстве, посылка идентификатора AD_ID и, возможно, секретный ключ AD_key Авторизованного Домена на новое устройство, которое становится устройством домена, и т.д.).
Далее со ссылкой на фиг. 5 поясняется протокол управления размером Авторизованного Домена с точки зрения нового устройства, запрашивающего инсталляцию в AD.
Устройство сначала находится в состоянии «новое устройство» 400. Из этого состояния оно широковещательно передает 401 сообщение запроса главного устройства, когда оно впервые соединяется с домашней сетью. Затем оно запускает 402 таймаут Tv и ждет 403 в течение предопределенного времени Tv. Во время этого ожидания, если устройство принимает запрос теста на близость (например, в форме команд «переброски результатов»), оно выполняет тест 405 на близость с главным устройством, пославшим запрос, и возвращается в состояние ожидания 403. Следует отметить, что несколько тестов на близость может быть выполнено до истечения таймаута, если несколько главных устройств отвечают на сообщение запроса главного устройства. Когда предопределенное время Tv истекло 406, устройство проверяет 407, приняло ли оно какой-нибудь ответ от главного устройства. Если ответ был принят 408, устройство проверяет 409, было ли принято предложение локальной инсталляции. Если никакая локальная инсталляция не была предложена 410 главным устройством, то устройство проверяет 411, было ли принято предложение удаленной инсталляции. Если никакая удаленная инсталляция не была предложена 412, это означает, что устройство приняло только отрицательные ответы (в инсталляции отказано) от главного устройства (главных устройств), ответившего(их) на его сообщение запроса главного устройства. В этом случае пользователь должен предпочтительно информироваться (через пользовательский интерфейс устройства) об этом отказе, и устройство возвращается в состояние «новое устройство» 400.
Если удаленная инсталляция 413 или локальная инсталляция 414 были предложены устройству, это позволит пользователю выбрать одно из предложений 415 и выполнять протокол инсталляции с главным устройством, пославшим предложение инсталляции, чтобы перейти в состояние 416 «устройство домена». Альтернативно, автоматический выбор может быть сделан в случае, если устройство не имеет никакого пользовательского интерфейса.
В случае если никакой ответ не принят 418 по истечении таймаута Tv, устройство предлагает пользователю создать новую сеть. Если пользователь принимает предложение, то устройство 419 выбирает случайным образом AD_key и инициализирует отсчет (Local_count = 1; Remote_count = 0 и Total_count = 1), прежде чем вступить в состояние 420 «главное устройство».
Со ссылкой на фиг. 6 далее поясняется протокол управления размером Авторизованного Домена с точки зрения главного устройства. Этот протокол предпочтительно выполняется в защищенном процессоре главного устройства.
Протокол запускается из состояния 500 «главное устройство», когда главное устройство принимает запрос главного устройства от нового устройства, запрашивающего инсталляцию в Авторизованном Домене. Главное устройство сначала сравнивает 502 Total_count с предельным значением Total_limit. В случае если Total_count больше или равен Total_limit, главное устройство посылает 504 сообщение на запрашивающее новое устройство, чтобы информировать его, что в инсталляции отказано, и возвращается в состояние 500 «главное устройство».
В случае если Total_count ниже Total_limit, главное устройство начинает 506 тест на близость с новым устройством, как объяснено ранее. Если никакой ответ не получен от нового устройства до истечения предопределенного таймаута Tv 508, то считается, что новое устройство является удаленным. В случае если, по меньшей мере, один ответ получен от нового устройства во время теста на близость, проверяется 510, является ли новое устройство удаленным (512) или локальным (514). Если новое устройство является удаленным, то проверяется 516 Remote_count. Если Remote_count ниже предельного значения Remote_limit, то предложение удаленной инсталляции посылается 518 в новое устройство. В противном случае (Remote_count равно или больше чем Remote_limit) сообщение отказа в инсталляции посылается 504 в новое устройство, и главное устройство возвращается в состояние 500 «главное устройство».
Если новое устройство является локальным, проверяется 520 Local_count. Если Local_count ниже Local_limit, то предложение локальной инсталляции посылается 522 в новое устройство. В противном случае (Local_count равен или больше чем Local_limit) главное устройство начинает 524 тест на кворум, передавая сообщение открытия по сети и запуская таймаут T. Главное устройство затем ожидает 526 в течение предопределенного времени T. Во время этого ожидания, если ответ принят 528 любым другим устройством, главное устройство проверяет 530 данные аутентификации (например, код аутентификации сообщения, вычисленный с использованием HMAC-SHA1, как объяснено ранее) в сообщении ответа, чтобы проверить, что ответ послан устройством, принадлежащим Авторизованному Домену. Если эта проверка безуспешна, то сообщение ответа игнорируется 532 и главное устройство возвращается в состояние 526 ожидания. Если проверка 530 успешна, то сообщение ответа подсчитывается 534 как правильное и главное устройство возвращается в состояние 526 ожидания.
Когда предопределенное время T истекло 536, число принятых правильных сообщений ответа сравнивается 538 с кворумом, необходимым, чтобы пройти тест. Если кворум соответствует, например, половине Total_count, то проверяется 538, что число правильных сообщений больше чем Total_count/2. В альтернативном предпочтительном варианте осуществления, кворум, необходимый, чтобы пройти тест, равен половине Local_count. Если эта проверка терпит неудачу, сообщение отказа в инсталляции передается 504 в новое устройство и главное устройство возвращается в состояние 500 «главное устройство». В противном случае (успешная проверка 538) тест на близость выполняется 540 с каждым устройством, пославшим правильные сообщения ответа. В конце этих тестов только устройства в локальной близости с главным устройством отсчитываются, чтобы проверить 542 кворум (то есть что число локальных устройств больше чем Total_count/2, как указано на фиг. 6, или, в альтернативном варианте осуществления, больше чем Local_count/2). Если тест на кворум, наконец, успешен, то предложение локальной инсталляции передается 522 в новое устройство; в противном случае посылается 504 сообщение отказа в инсталляции.
Когда передано либо предложение 518 удаленной инсталляции 518, либо предложение 522 локальной инсталляции, главное устройство запускает другой таймаут Tw и ожидает 544 ответы от нового устройства. Когда предопределенное время Tw истекло, главное устройство проверяет 546, был ли какой-нибудь ответ, запрашивающий инсталляцию, принят от нового устройства. Если запрос инсталляции был принят, оно запускает 548 инсталляционный протокол с новым устройством; в противном случае главное устройство возвращается в состояние 500 «главное устройство» 500.
Пример значения предельных значений для Авторизованного Домена приведен ниже:
- Total_limit: 20 устройств,
- Local_limit: 6 устройств,
- Remote_limit: 2 устройства,
- верхний предел для числа разделений главного устройства: 2.
Две авторизованные удаленные инсталляции (вместе с двумя авторизованными разделениями главного устройства) позволяют пользователям иметь главное устройство в их главном доме и в двух других домах. В этом виде Авторизованного Домена мобильные устройства (включая автомобильные устройства) могут быть локально инсталлированы в любом из местоположений.
С вышеупомянутыми значениями пример разделения был бы следующим. Предполагается, что в одно время в течение срока службы AD текущие значения для отсчетов следующие:
- Total_count: 9 устройств,
- Local_count: 8 устройств (в этом случае предполагается, что 2 устройства были инсталлированы, пройдя тест на кворум, потому что Local_count> Local_limit),
- Remote_count: 1 устройство,
- число разделений главного устройства: 0.
Это означает, что в то время никакого разделения главного устройства не произошло, одно устройство было инсталлировано удаленно (например, телевизор второго дома), и 8 устройств были инсталлированы локально (например, 4 телевизора, один в главной комнате - главное устройство, один в кухне и один в каждой спальне, 1 DVD-плеер в автомобиле, 2 PC и один портативный плеер). Предполагается, что один пользователь, Алиса, также желает инсталлировать PC в своем втором доме. Конечно, она могла бы инсталлировать его удаленно, но это будет означать, что она после этого больше не смогла бы инсталлировать удаленные устройства. Таким образом, она предпочитает разделить функциональные возможности главного устройства между телевизором в ее главной комнате и главным устройством в ее втором доме. С этой целью она реализует следующие новые значения для отсчетов и предельных значений:
- новые предельные значения для телевизора, являющегося главным устройством в главной комнате: Total_limit=15, Local_limit=4, Remote_limit=2, максимальное число разделений главного устройства равно 2;
- предельные значения для новых главных устройств во втором доме: Total_limit=5, Local_limit=2, Remote_limit=0, максимальное число разделений главного устройства равно 0;
- новые отсчеты для телевизора, являющегося главным устройством в главной комнате: Total_count=8, Local_count=8, Remote_count=0, число разделений главного устройства равно 1;
- новые отсчеты для нового главного устройства владельца во втором доме: Total_count=1, Local_count=1, Remote_count=0, число разделений главного устройства равно 0.
При этих значениях Алиса сможет инсталлировать до 4 устройств в своем втором доме без какой-либо проблемы. Нужно отметить, что второе устройство, которое должно инсталлироваться во втором доме, будет инсталлировано без прохождения теста на кворум, хотя следующие условия потребуют этого (потому что Local_limit будет достигнут).
Теперь, будет приведен пример повторного выравнивания. Предполагается, что пользователь, Алиса, имеет ту же самую конфигурацию, как описано выше (перед разделением). Значения счетчиков следующие:
- Total_count: 9 устройств,
- Local_count: 8 устройств,
- Remote_count: 1 устройство,
- число разделений главного устройства: 0.
Во время деловой поездки она покупает новый портативный плеер (другой принадлежит ее дочери), и, разумеется, она не может ждать возвращения домой, чтобы наслаждаться своим новым устройством. Она инсталлировала его удаленным образом (новые значения для счетчиков:
- Total_count: 10 устройств,
- Local_count: 8 устройств,
- Remote_count: 2 устройства,
- число разделений главного устройства: 0).
Когда она возвращается домой, она соединяет портативный плеер со своей домашней сетью. Телевизор, являющийся главным устройством, обнаруживает, что подсоединилось устройство, и обнаруживает, какие устройства локально соединены с сетью. Оно отсчитывает 9 устройств (предполагаем в это время, что автомобиль находится непосредственно перед домом), в то время как текущий отсчет для локальных устройств составляет только 8. Главное устройство, таким образом, заключает, что одно удаленно инсталлированное устройство теперь является локальным, и решает обновить отсчеты при условии, что удовлетворяется одно из следующих условий:
- Local_count ниже чем Local_limit, или
- если Local_count равен или больше чем Local_limit и тест на кворум (основанный, например, на половине Local_count) проходит, как объяснено ранее.
В этом случае Local_count установлен на число локальных устройств, присутствующих в настоящее время, в то время как Remote_count установлен на разность между полным и (новым) локальным отсчетами. Новые отсчеты теперь следующие:
- Total_count: 10 устройств,
- Local_count: 9 устройств,
- Remote_count: 1 устройство,
- число разделений главного устройства: 0.
Благодаря механизму повторного выравнивания Алиса будет использовать возможность удаленной инсталляции устройства. Без этого Алиса должна была ждать возвращения домой, чтобы инсталлировать свой новый портативный плеер, чтобы не потерять эту возможность.
Преимущества изобретения следующие:
- высокая гибкость: нормальный пользователь в состоянии установить мобильные устройства и устройства во втором доме без какого-либо ограничения;
- контроль над удаленной инсталляцией: недобросовестные пользователи будут ограничены в возможности инсталляции устройств во множестве удаленных местоположений;
- защищенность: это решение нельзя обойти простым способом.