СИСТЕМЫ И СПОСОБЫ ДЛЯ ВОССОЕДИНЕНИЯ ВТОРОЙ ГРУППЫ УЗЛОВ С ПЕРВОЙ ГРУППОЙ УЗЛОВ С ИСПОЛЬЗОВАНИЕМ ОБЩЕГО КЛЮЧА ГРУППЫ
SYSTEMS AND METHODS FOR RECONNECTING SECOND NODE GROUP WITH FIRST NODE GROUP USING GROUP COMMON KEY

Область техники
Настоящее изобретение относится к компьютерам и связанной с компьютерами технологии. Более конкретно, настоящее изобретение относится к системам и способам для воссоединения второй группы узлов с первой группой узлов с использованием общего ключа группы.
Область техники
Компьютерные и коммуникационные технологии продолжают развиваться быстрыми темпами. Действительно, компьютерные и коммуникационные технологии связаны с многими аспектами повседневной жизни. Например, многие устройства, используемые в настоящее время потребителями, имеют небольшой компьютер внутри устройства. Такие малые компьютеры поставляются с различными размерами и степенями сложности. Эти малые компьютеры включают все, от микроконтроллера до полнофункциональной компьютерной системы. Например, эти малые компьютеры могут быть однокристальным компьютером, таким как микроконтроллер, одноплатным компьютером, таким как контроллер, типовым настольным компьютером, таким как IBM совместимый персональный компьютер, и т.д.
Компьютеры в типовом виде имеют один или более процессоров в качестве основного элемента компьютера. Процессоры обычно взаимосвязаны с различным внешними входами и выходами и функционируют для управления конкретным компьютером или устройством. Например, процессор в термостате может быть связан с кнопками, используемыми для выбора температурной настройки, с печью или кондиционером для изменения температуры и с температурными датчиками для считывания и индикации текущей температуры на дисплее.
Многие приборы, устройства и т.д. включают в себя один или более малых компьютеров. Например, термостаты, печи, системы кондиционирования воздуха, холодильники, телефоны, пишущие машинки, автомобили, торговые автоматы и многие различные типы промышленного оборудования теперь обычно содержат небольшие компьютеры или процессоры. Компьютерное программное обеспечение управляет процессорами этих компьютеров и инструктирует процессоры, как выполнять определенные задачи. Например, компьютерное программное обеспечение, исполняемое на термостате, может заставить кондиционер остановить функционирование, когда конкретная температура достигнута, или может заставить нагреватель включиться, когда необходимо.
Эти типы небольших компьютеров, которые являются частью устройства, прибора, инструмента и т.д., часто упоминаются как встроенные устройства или встроенные системы. (Термины "встроенное устройство" и "встроенная система" будут использоваться здесь взаимозаменяемо). Встроенная система обычно относится к компьютерным аппаратным средствам и программному обеспечению, которые является частью большей системы. Встроенные системы могут не иметь типовых устройств ввода и вывода, таких как клавиатура, мышь и/или монитор. Обычно, основу каждой встроенной системы составляет один или более процессоров.
Встроенные системы могут использоваться, чтобы контролировать или управлять многими различными системами, ресурсами, продуктами и т.д. С ростом Интернета и Всемирной Паутины, встроенные системы все в большей степени связываются с Интернетом, так что они могут дистанционно контролироваться и/или управляться. Другие встроенные системы могут быть соединены с компьютерными сетями, включая локальные сети, глобальные сети и т.д. Термин "компьютерная сеть" (или просто "сеть"), как он используется в настоящем документе, относится к любой системе, в которой ряд узлов связан коммуникационными каналами. Термин "узел" относится к любому устройству, которое может быть подсоединено как часть компьютерной сети.
Некоторые встроенные системы могут обеспечивать данные и/или услуги другим вычислительным устройствам, используя компьютерную сеть. Альтернативно, могут иметься типовые компьютеры или вычислительные устройства, которые предоставляют данные и/или услуги другим вычислительным устройствам, используя компьютерную сеть. Узлы могут совместно использовать состояние между собой с использованием сети. Сети не являются идеальными, и иногда сети могут становиться сегментированными или разъединенными. Это может привести в результате к потере связности между наборами узлов, которые осуществляли связь, и вызвать расхождение в их совместно используемом состоянии. Когда это разделение разрешается, ранее осуществлявшие связь узлы могут испытывать затруднения в осуществлении связи вновь, ввиду такого расхождения в состоянии. Является полезным минимизировать это затруднение. Такие выгоды могли бы быть реализованы, если бы имелись системы и способы для воссоединения второй группы узлов с первой группой узлов с использованием общего ключа группы.
Сущность изобретения
Описан способ для воссоединения второй группы узлов с первой группой узлов. Принимается первое состояние ключа первой группы, ассоциированного с первой группой узлов. Первое состояние ключа первой группы передается посредством групповой передачи к второй группе узлов. Ключ первой группы вводится повторно как ключ второй группы, ассоциированный с второй группой узлов. Второе состояние ключа второй группы передается посредством групповой передачи к второй группе узлов. Принимается третье состояние ключа третьей группы, ассоциированного с первой группой узлов. Команда повторного ввода ключа передается посредством групповой передачи к второй группе узлов, если третье состояние отличается от второго состояния. Ключ второй группы повторно вводится как ключ третьей группы.
Первая группа может быть группой узлов групповой передачи. Первое состояние может быть послано от управляющего узла первой группы узлов. Второе состояние может быть послано от управляющего узла второй группы узлов. Один или более узлов первой группы узлов могут быть разделены на вторую группу узлов. Коммуникации между управляющим узлом первой группы узлов могут быть отсоединены от узлов, образующих вторую группу узлов.
В одном варианте осуществления каждое состояние может включать в себя ключ обмена ключами (КЕК). Узлы, которые включают в себя ключ обмена ключами (КЕК), могут принимать каждое состояние. Каждый ключ группы может включать в себя параметр ключа группы, причем параметр ключа группы указывает количество времени, в течение которого каждый ключ группы использовался группой узлов. Может быть выбран управляющий узел, который содержит ключ группы, с наивысшим параметром ключа группы. Каждый узел, содержащийся в первой группе узлов и второй группе узлов, может содержать идентификатор узла, причем идентификатор узла указывает порядок того, когда узел присоединился к первой группе узлов. Может быть выбран управляющий узел, который содержит самый низкий идентификатор узла.
В одном варианте осуществления команда на повторный ввод зашифрована ключом группы. Управляющий узел второй группы узлов может содержать ключ первой группы и ключ второй группы.
Также описана компьютерная система, которая конфигурирована для присоединения второй группы узлов к первой группе узлов. Компьютерная система содержит процессор и память в электронной коммуникации с процессором. В памяти сохранены инструкции. Принимается первое состояние ключа первой группы, ассоциированное с первой группой узлов. Первое состояние ключа первой группы передается посредством групповой передачи к второй группе узлов. Ключ первой группы вводится повторно как ключ второй группы, ассоциированный с второй группой узлов. Второе состояние ключа второй группы передается посредством групповой передачи к второй группе узлов. Принимается третье состояние ключа третьей группы, ассоциированного с первой группой узлов. Команда повторного ввода ключа передается посредством групповой передачи к второй группе узлов, если третье состояние отличается от второго состояния. Ключ второй группы повторно вводится как ключ третьей группы.
Также описан машиночитаемый носитель, содержащий исполняемые инструкции для присоединения второй группы узлов к первой группе узлов. Принимается первое состояние ключа первой группы, ассоциированное с первой группой узлов. Первое состояние ключа первой группы передается посредством групповой передачи к второй группе узлов. Ключ первой группы вводится повторно как ключ второй группы, ассоциированный с второй группой узлов. Второе состояние ключа второй группы передается посредством групповой передачи к второй группе узлов. Принимается третье состояние ключа третьей группы, ассоциированного с первой группой узлов. Команда повторного ввода ключа передается посредством групповой передачи к второй группе узлов, если третье состояние отличается от второго состояния. Ключ второй группы повторно водится как ключ третьей группы.
Краткое описание чертежей
Иллюстративные варианты осуществления изобретения станут более понятными из следующего описания и приложенных пунктов формулы изобретения, рассматриваемых во взаимосвязи с иллюстрирующими чертежами. Понятно, что эти чертежи изображают только иллюстративные варианты осуществления и не должны рассматриваться как ограничивающие объем изобретения, поэтому иллюстративные варианты осуществления изобретения описаны ниже с дополнительной спецификой и деталями с использованием иллюстрирующих чертежей, на которых:
Фиг. 1 - блок-схема, иллюстрирующая один вариант осуществления сервера, передающего ключ обмена ключами (KEK) к одному или более узлам в пределах группы защищенной групповой передачи;
Фиг. 2 - блок-схема, иллюстрирующая один вариант осуществления второй группы узлов, отделенной от первой группы узлов;
Фиг. 3 - блок-схема, иллюстрирующая другой вариант осуществления второй группы узлов;
Фиг. 4 - блок-схема, иллюстрирующая один вариант осуществления управляющего узла второй группы узлов, соединяющейся с первой группой узлов;
Фиг. 5 - блок-схема варианта осуществления второй группы узлов, воссоединяющейся с первой группой узлов;
Фиг. 6 - блок-схема, иллюстрирующая один вариант осуществления способа для групповой передачи команды на повторный ввод ключа к одному или более узлам во фрагментированной группе узлов; и
Фиг. 7 - блок-схема компонентов аппаратных средств, которые могут использоваться в узле, который конфигурирован согласно варианту осуществления.
Лучший режим выполнения изобретения
Различные варианты осуществления изобретения описаны ниже со ссылками на чертежи, на которых ссылочные позиции обозначают идентичные или функционально подобные элементы. Варианты осуществления настоящего изобретения, как вообще описано и проиллюстрировано на чертежах, могут конфигурироваться и разрабатываться в большом разнообразии различных конфигураций. Таким образом, следующее более детальное описание нескольких примерных вариантов осуществления настоящего изобретения, как представлено на чертежах, не предназначено для ограничения объема изобретения, как заявлено, но просто представляет варианты осуществления изобретения.
Слово "примерный" используется здесь исключительно для того, чтобы означать "служить примером, экземпляром или иллюстрацией". Любой вариант осуществления, описанный здесь как "примерный", не должен обязательно рассматриваться как предпочтительный или выгодный по отношению к другим вариантам осуществления.
Многие признаки вариантов осуществления, раскрытых здесь, могут быть осуществлены как программное обеспечение, электронные аппаратные средства или комбинации того и другого. Чтобы ясно иллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты будут описаны в общем, с точки зрения их функциональных возможностей. То, осуществлены ли такие функциональные возможности как аппаратные средства или программное обеспечение, зависит от конкретного применения и ограничений проектирования для системы в целом. Специалисты в данной области техники могут осуществить описанные функциональные возможности различными способами для каждого конкретного применения, но такие решения реализации не должны интерпретироваться как вызывающие отклонение от объема настоящего изобретения.
Если описанные функциональные возможности осуществлены как программное обеспечение, то такое программное обеспечение может включать в себя любой тип компьютерной инструкции или исполняемого компьютером кода, помещенных в устройство памяти и/или переданных как электронные сигналы по системной шине или сети. Программное обеспечение, которое реализует функциональные возможности, связанные с компонентами, описанными здесь, может содержать единственную инструкцию или много инструкций, и может быть распределено по нескольким различным сегментам кода, по различным программам и по нескольким устройствам памяти.
Используемые здесь термины, такие как "вариант осуществления", "варианты осуществления", "один или более вариантов осуществления", "некоторые варианты осуществления", "определенные варианты осуществления", "один вариант осуществления", "другой вариант осуществления" и т.п. означают "один или более (но не обязательно все) вариантов осуществления раскрытого(ых) изобретения(й)", если явно не определено иначе.
Термин "определение" (и его грамматические варианты) использован в чрезвычайно широком смысле. Термин "определение" охватывает большое разнообразие действий, и поэтому "определение" может включать расчет, вычисление, обработку, получение, исследование, поиск (например, поиск в таблице, базе данных или другой структуре данных), установление и т.п. Кроме того, "определение" может включать прием (например, прием информации), получение доступа (например, получение доступа к данным в памяти) и т.п. Кроме того, "определение" может включать разрешение, отбор, выбор, установление и т.п.
Термин "основанный на" не означает "основанный только на", если явно не определено иначе. Другими словами, термин "основанный на" описывает и "основанный только на" и "основанный, по меньшей мере, на".
Компьютерные сети могут включать в себя множество узлов. Узлы могут упоминаться как вычислительные устройства. Множество узлов могут быть организованы в одну или более групп. Один узел может осуществлять связь с другими узлами в своей группе. В одном варианте осуществления один узел выполняет групповую передачу информации к другим узлам в своей группе. Групповая передача может включать передачу информацию одновременно каждому члену группы. Один узел может передать состояние путем групповой передачи к другим узлам в пределах группы. Состояние может включать уникальную конфигурацию информации относительно программы или другого аспекта вычислительного устройства.
Групповая передача состояния может быть желательной для масштабируемых групп безопасной групповой передачи. Проблема может возникнуть, когда сеть становится фрагментированной. Например, исходная группа узлов может быть фрагментирована на различные фрагментированные группы узлов. Состояние, которое было когда-то общим между членами исходной группы, может расходиться. Например, группы узлов в типовом случае управляют своим собственным ключом. С течением времени, группа может периодически вводить новый ключ. Новый ключ может быть выбран случайным образом, так что вероятность того, что различные фрагментированные группы узлов повторно введут тот же самый ключ, будет низка.
Разделение групп может быть корректным поведением до тех пор, пока сетевая проблема не будет решена. Другими словами, группа(ы) не должна(ы) потерпеть неудачу ввиду отказа аппаратных средств, предполагая, что некоторые наборы узлов могут все еще осуществлять связь. Однако, когда сетевая проблема решена, и каждая из фрагментированных групп узлов может снова осуществлять связь друг с другом, состояние должно сходиться как можно быстрее.
Настоящие системы и способы касаются группы узлов, определяющих администратора группы. Любой узел в группе может служить администратором, и больше чем один узел может служить администратором в любой момент времени. Администратор периодически уведомляет о своем состоянии узлы в своей группе. Дополнительно администратор уведомляет о своем состоянии таким способом, что другие фрагментированные группы узлов могут извлечь его. Основная часть состояния, которое является общим для различных фрагментированных групп узлов, является ключом обмена ключами (KEK). Любые фрагментированные группы узлов, которые используют тот же самый KEK, могут осуществлять связь друг с другом. Дополнительные состояния, такие как параметры хронирования и ключ группы, могут испытывать расхождение с течением времени. Эти параметры могут уведомляться и защищаться посредством KEK. Другими словами, узлам, которые не обладают KEK, может быть не разрешено извлекать эти параметры из состояния.
Когда происходит разделение, каждая фрагментированная группа узлов может определить различного администратора. Узлы во фрагментированной группе могут определять администратора автоматически, когда они перестают прослушивать периодические уведомления состояния от своего предыдущего администратора. Если произойдет так, что будет иметься несколько администраторов для одной группы в любой момент, то несколько администраторов будут прослушивать уведомления друг друга. Если состояние в этих множественных уведомлениях будет точным дубликатом, то один из узлов прекратит быть администратором. Администратор с самым старым состоянием или более низким идентификатором узла в случае связи может продолжать быть администратором фрагментированной группы. Есть, конечно, другие методы для определения администратора группы, которые могли бы использоваться. Если разделение происходит, но разрешается перед расхождением состояния, то вышеупомянутая логика может решить проблему множества администраторов, когда фрагментированные группы узлов вновь начинают осуществлять связь.
Если разделение происходит в течение достаточно долгого времени, состояния, соответствующие различным фрагментированным группам, могут расходиться. Когда разделение разрешено и связь возобновляется, будет иметься множество администраторов фрагментированных групп, уведомляющих о различных состояниях узлы, которые принадлежали исходной группе. Узлы, принадлежащие различным фрагментированным группам, могут совместно использовать тот же самый KEK. Даже хотя администратор может знать, что конкретное уведомление действительно, он может не доверять тому, что пакет является текущим, ввиду возможности атаки воспроизведением (replay attack). Например, узел-злоумышленник может сохранить предыдущее уведомление и затем воспроизвести это уведомление в более позднее время. Этот вид воспроизведения не должен вызывать реакцию узлов.
Если администратор фрагментированной группы узлов слышит уведомление, которое содержит частичное совпадение с его состоянием, он может "присоединиться" к группе, идентифицированной другим администратором. Это присоединение может быть почти идентичным процессу, когда узел присоединяется к группе впервые, и может быть защищено против атаки воспроизведением. Если присоединение успешно, то администратор фрагментированной группы обладает обоими наборами состояния. Администратор может тогда повторно ввести ключ для своей собственной фрагментированной группы узлов, чтобы соответствовать состоянию другой группы узлов, - эффективным образом восстанавливая группу очень быстро. Та же самая логика, как описано выше (то есть какое состояние старше), может использоваться, чтобы определить, какой администратор повторно вводит ключ, поскольку ситуация симметрична (то есть оба администратора могут прослушивать уведомления друг друга).
На фиг. 1 показана блок-схема, иллюстрирующая один вариант осуществления сервера 102, передающего ключ обмена ключами (KEK) 104 к одному или более узлам в пределах группы А 106. В одном варианте осуществления сервер 102 является сервером аутентификации. Сервер аутентификации может быть сервером, который аутентифицирует узлы, желающие присоединиться к группе А 106. В одном варианте осуществления сервер 102 аутентифицирует узел, и узел получает KEK 104. Узел может присоединиться к группе А 106 с использованием KEK 104, чтобы проверить свою способность присоединить группу А 106 к другим узлам, принадлежащим к группе А 106. В одном варианте осуществления сервер 102 поддерживает минимальное состояние относительно каждого узла группы А 106. Например, сервер 102 может просто поддерживать состояние KEK 104. Сервер 102 может сообщить изменения в KEK 104 узлам группы А 106.
Как проиллюстрировано, группа А 106 включает в себя узел 108, узел B 110 и узел C 112. В то время как группа А 106 проиллюстрирована только с тремя узлами, понятно, что группа А 106 может включать в себя больше или меньше узлов. Группа А 106 может упоминаться как группа безопасной групповой передачи, потому что узлы в пределах группы А 106 могут передавать посредством групповой передачи информацию друг к другу безопасным способом. Например, информация, которая передается посредством групповой передачи между узлами группы А 106, может быть зашифрована общим ключом 114 группы А. Узлы могут использовать KEK 104 для приема ключа 114 группы А, который ассоциирован с группой А 106. Например, узел N 116 может послать запрос, чтобы стать членом группы А 106, посылая запрос 118 о группе к одному или более узлам группы А 106. Один или более узлов группы А 106 могут определить, включает ли в себя узел N 116 KEK 104. Если узел N 116 включает в себя KEK 104, то один или более узлов могут распределить ключ 114 группы А узлу N 116. Ключ А 114 группы А может позволить узлу посылать информацию к другим узлам в группе А 106 и получать информацию от других узлов в группе А 106. Узлы могут использовать ключ 114 группы А, чтобы зашифровать или расшифровать информацию, которая передается между узлами группы А 106.
Если узел N 116 не имеет KEK 104, узел N 116 может послать запрос 120 на КЕК на сервер 102, запрашивая, чтобы сервер 102 распределил KEK 104 узлу N 116. Сервер 102 может аутентифицировать узел N 116 и распределить KEK 104. Однако, если KEK 104 не распределен узлу N 116, узел N 116 не может присоединиться к группе 106 и принять ключ 114 группы А.
Коммуникации между сервером 102, группой А 106 и узлом N 116 могут осуществляться по сети 122. Сеть 122 может включать в себя любую систему связи, такую как, без ограничения указанным, сеть глобальной связи, Интернет, компьютерная сеть, телефонная сеть, пейджинговая сеть, сотовая сеть, глобальная сеть (WAN), локальная сеть (LAN) и т.д. В одном варианте осуществления сервер 102 может координировать и осуществлять связь с множеством групп узлов по сети 122. Сервер 102 может распределять KEK, который является определенным для каждой группы узлов.
На фиг. 2 показана блок-схема, иллюстрирующая один вариант осуществления второй группы узлов 246, отделенной от первой группы узлов 206. Первая группа 206 может включать в себя группу групповой передачи из узлов, такую как группа А 106. В одном варианте осуществления узел E 226, узел F 228 и узел G 230 первоначально принадлежат первой группе 206. Хотя в представленном варианте осуществления показано семь узлов, понятно, что больше или меньше узлов может быть включено в первую группу 206 и вторую группу 246.
Узлы A-G, 208, 210, 212, 224, 226, 228, 230 могут включать KEK 204 и ключ 214 группы А. В одном варианте осуществления ключ 214 группы А включает в себя параметр 240 ключа группы А. Параметр 240 может указывать количество времени, которое ключ 214 группы А был использован членами первой группы 206. Например, члены первой группы 206 могут управлять ключом 214 группы А. Ключ 214 группы А может периодически изменяться, что приводит к тому, что узлы заменяют ключ 214 группы А на измененный, новый ключ группы. Параметр 240 ключа группы А может указывать, как долго текущий ключ группы А использовался членами первой группы 206.
В одном варианте осуществления узел А 208 включает идентификатор А 238. Идентификатор А 238 может указывать порядок, в котором узел А 208 присоединился к первой группе 206. Например, если узел А 208 был третьим узлом, чтобы присоединиться к группе 206, а узел B 210 был четвертым узлом, чтобы присоединиться к группе 206, идентификатор А 238 может указать "3", а идентификатор B (не показан) может указать "4". В то время как только узел А 238 проиллюстрирован включающим в себя идентификатор, понятно, что каждый узел в группе 206 может включать соответствующий идентификатор.
В одном варианте осуществления узел А 208 определен как администратор группы для первой группы 206. Администратор группы может быть ответственным за периодическое выполнение групповой передачи информации относительно ключа группы и других параметров к остальным узлам в группе. В одном варианте осуществления узел А 208 определен как администратор группы, потому что идентификатор А 238 включает в себя самое низкое значение. В других вариантах осуществления администратор группы может быть узлом, который начинает уведомления первым, узлом, который вручную установлен в качестве администратора вышестоящим администратором, и т.д. В других вариантах осуществления узел может быть определен как администратор группы в соответствии с любыми коммерчески доступными методами.
Узел 208 может включать состояние 234. Состояние 234 может указывать текущие значения определенных параметров. Например, состояние 234 может включать KEK 204, ключ 214 группы А и параметры А 236 хронирования. Параметры А 236 хронирования могут указывать, как часто узел А 208 выполняет групповую передачу состояния 234 к узлам в группе 206. В одном варианте осуществления ключ 214 группы А и параметры А 236 хронирования защищены посредством KEK 204. Другими словами, узлам без KEK 204 не разрешено извлекать эти параметры из состояния 234.
Узел 208 может выполнить групповую передачу состояния 234 к узлу B 210, узлу C 212 и узлу D 224 с использованием маршрутизатора 242. Точно также узел 208 может выполнить групповую передачу состояния 234 к узлу E 226, узлу F 228 и узлу G 230 посредством маршрутизатора B 244. В то время как проиллюстрированный вариант осуществления изображает узел 208, выполняющий групповую передачу состояния 234 через два маршрутизатора, понятно, что узлы могут выполнять групповую передачу информации, используя любое число маршрутизаторов, коммутаторов, другого сетевого оборудования, кабелей и т.д. Узлы 210, 212, 224, 226, 228, 230 могут использовать KEK 204, чтобы извлечь ключ 214 группы А и параметры А 236 хронирования из состояния 234. Если ключ 214 группы А, включенный в узлы 210, 212, 224, 226, 228, 230, не соответствует ключу 214 группы А, включенному в состояние 234, узлы могут повторно ввести ключ 214 группы А, чтобы соответствовать ключу группы, включенному в состояние 234. Как отмечено выше, группы групповой передачи могут периодически изменять ключ группы. Частые групповые передачи состояния 234, включая ключ 214 группы А, позволяют узлам повторно ввести ключ соответственно текущему ключу группы, ассоциированному с группой 206.
В одном варианте осуществления коммуникации между узлом А 208 и маршрутизатором B 244 потеряны или ограничены 290. Например, маршрутизатор B 244 может потерпеть неудачу, и, как таковое, состояние 234, посланное от узла А 208, невозможно передать к узлам 226-230, которые связаны с маршрутизатором B 244. В одном варианте осуществления узел E 226, узел F 228 и узел G 230 отделяются от первой группы 206 во вторую группу 246. Узел А 208 может по-прежнему выполнять групповую передачу состояния 234 к узлу B 210, узлу C 212 и узлу D 224 через маршрутизатор А 242. Таким образом, исходная первая группа 206 разделена на две группы 206, 246. Хотя показаны только две группы 206, 246, понятно, что первая группа 206 может быть разделена на большее количество групп узлов.
На фиг. 3 представлена блок-схема, иллюстрирующая другой вариант осуществления второй группы 346 узлов. В одном варианте осуществления вторая группа 346 включает узел E 326, узел F 328 и узел G 330. Узлы 326, 328, 330 могут определить второго администратора группы, когда они 326, 328, 330 прекращают принимать периодические групповые передачи состояния от администратора первой группы 206. Например, узлы E-G 326-330 могут определить второго администратора группы, когда они прекращают принимать состояние 234 от узла А 208. В одном варианте осуществления любой узел в пределах второй группы 346 может функционировать как администратор второй группы. В изображенном варианте осуществления узел F 328 определен как второй администратор группы, потому что узел F 328 начинает выполнять групповую передачу состояния 334 к узлам, принадлежащим второй группе 346. Узел F 328 может включать идентификатор F 352, который указывает порядок, в котором узел F 328 присоединился к исходной первой группе 206.
Узлы 326-330 второй группы 346 могут первоначально использовать тот же самый ключ группы, который они ранее использовали в качестве членов первой группы 206. Например, узлы 326-330 могут продолжать использовать ключ 314 группы А. В другом варианте осуществления администратор второй группы, узел F 328, может немедленно изменить ключ 350 группы B, когда он становится администратором группы. В более позднее время члены второй группы 346 могут ввести повторно 354 ключ 314 группы А как случайный новый ключ группы, такой как ключ 350 группы В. В другом варианте осуществления, участники, все еще принадлежащие первой группе 206 (не показано), могут также повторно ввести ключ 314 группы А как случайный новый ключ группы. Поскольку каждая группа 206, 346 случайным образом повторно вводит ключ 314 группы А, вероятность, что первая группа 206 и вторая группа 346 повторно введут ключ 314 группы А как идентичный новый ключ группы низка.
В одном варианте осуществления ключ 350 группы В теперь используется членами второй группы 346, чтобы выполнить групповую передачу информации друг к другу. Ключ 350 группы В может включать параметр 341 ключа группы В, который указывает количество времени, в течение которого ключ 340 группы В был использован второй группой 346.
В качестве администратора второй группы 346, узел F 328 может выполнить групповую передачу состояния 334 другим членам второй группы 346. В одном варианте осуществления состояние 334 включает KEK 304 и ключ 350 группы В. KEK 304 может защищать ключ 350 группы В таким образом, чтобы узлы, которые не обладают KEK 304, не могли извлечь ключ 350 группы В из состояния 334. Узел E 326 и узел G 330 могут извлечь ключ 350 группы В из состояния 334, чтобы проверить, что они обладают текущим ключом группы для второй группы 346.
На фиг. 4 показана блок-схема, иллюстрирующая один вариант осуществления управляющего узла второй разделенной группы узлов, присоединяющихся к первой разделенной группе узлов. В одном варианте осуществления узел А 408 является управляющим узлом первой группы 206 (не показано), и узел F 428 является управляющим узлом второй группы 246 (не показано). Как ранее объяснено, узлы в пределах второй группы 246 выделяются из первой группы 206, когда коммуникации между администратором первой группы и узлами второй группы 246 так или иначе потеряны или ограничены. В одном варианте осуществления коммуникации между узлом А 408 и маршрутизатором B 444 потеряны; узел А 408 как таковой не способен выполнить групповую передачу состояния 434 к узлу E 426, узлу F 428 и узлу G 430. В более позднее время коммуникации между узлом 408 и второй группой 246 могут быть восстановлены через маршрутизатор B 444.
Как ранее объяснено, когда вторая группа 246 отделяется от первой группы 206, каждая группа 206, 246 может все еще использовать тот же самый ключ группы, такой как ключ 114 группы А. Некоторое время спустя, каждая группа 206, 246 может случайным образом повторно ввести ключ 114 группы. Например, первая группа может случайным образом повторно ввести ключ 114 группы А как ключ 415 группы С, и вторая группа 246 может случайным образом повторно ввести ключ 114 группы А как ключ 450 группы В.
Когда коммуникации между узлом А 408 и узлами второй группы 246 восстановлены, узел А 408 может выполнить групповую передачу состояния 434, которое включает KEK 404, ключ 415 группы С и параметры С 437 хронирования. Ключ 415 группы С и параметры С 437 хронирования могут быть защищены посредством KEK 404. В одном варианте осуществления каждый из узлов E-G 426-430 принимает состояние 434 от узла А 408. Каждый из узлов E-G 426-430 может включать KEK 404, который позволяет им извлекать защищенные ключ 415 группы С и параметры С 437 хронирования из состояния 434. Однако узлы E-G 426-430 включают ключ 450 группы В, который может отличаться от ключа 415 группы С. Узел E 426 и узел G 430 могут игнорировать состояние 434, посланное от узла А 408, потому что состояние 434 не было послано от администратора второй группы 246 (то есть узла F 428).
В одном варианте осуществления администратор второй группы 246, узел F 428, может принять состояние 434 от узла 408. Узел F 428 может использовать KEK 404, чтобы извлечь параметры из состояния 434. Ключ 415 группы С может включать параметр 440 ключа группы С, и ключ 450 группы B включает параметр 441 ключа группы В. Как ранее объяснено, параметр ключа группы может указывать, как долго ключ группы был использован. В одном варианте осуществления узел F 428 сравнивает параметр 440 ключа группы С и параметр 441 ключа группы В. Если параметр 440 ключа группы С указывает, что ключ 415 группы С использовался большее количество времени, чем ключ 450 группы В, узел F 428 может сохранить ключ 415 группы С. Узел F 428 может тогда присоединиться к группе, идентифицированной состоянием 434, чтобы подтвердить, что оно является текущим и не копируемым. В одном варианте осуществления узел F 428 теперь принадлежит первой группе 206 и второй группе 246. В другом варианте осуществления узел F 428 повторно вводит ключ 450 группы В как ключ 415 группы C. Путем повторного ввода ключа 415 группы С, узел F 428 определяет, что узел А 408 должен продолжать действовать как управляющий узел. Также узел А 408 ответственен за последующие групповые передачи состояния 434.
В одном варианте осуществления параметр 440 ключа группы С и параметр 441 ключа группы В идентичны, что указывает, что ключ 415 группы С и ключ 450 группы В использовались в течение того же самого количества времени. Узел А 408 и узел F 428 могут определить, какой узел продолжает действовать как узел администратора, оценивая идентификатор А 438 и идентификатор F 452. В одном варианте осуществления узел с самым низким идентификатором продолжает действовать как администратор. Например, идентификатор А 438 может включать более низкое значение, чем идентификатор F 452. Также, узел F 452 может повторно ввести ключ 450 группы В как ключ 415 группы С. В другом варианте осуществления узел А 408 и узел F 438 используют другие методы, чтобы определить, который продолжит действовать как администратор. Узел, который не будет продолжать действовать как администратор, повторно вводит ключ своей группы как ключ 114 группы для другой группы.
На фиг. 5 показана блок-схема, иллюстрирующая один вариант осуществления второй группы 546, повторно присоединяется к первой группе 206. В одном варианте осуществления ключ группы, связанный со второй группой 546, повторно вводится как ключ группы, связанный с первой группой 206. Администратор второй группы 546 может выполнить групповую передачу команды 560 повторного ввода к узлам во второй группе 546. Например, узел F 528 может быть администратором второй группы 546. Как ранее объяснено, узел F 528 может принять состояние 434 относительно соответствия ключа группы первой группе 206 (то есть ключу 415 группы С) и может проверить, что состояние 434 является действительным в текущее время и не повторно копируемым. Узел F 528 может выполнить групповую передачу пакета 532, включающего KEK 504 и команду 560 повторного ввода ключа. В одном варианте осуществления узлы, которые не включают KEK 504, могут не принимать пакет 532. Далее, команда 560 повторного ввода ключа может быть зашифрована, используя общий ключ группы второй группы 546 (то есть ключ 550 группы В).
Узел E 526 и узел G 530 могут принимать пакет 532 и дешифровать команду 560 на повторный ввод ключа, используя ключ 550 группы В. Команда 560 повторного ввода ключа может включать команду на повторный ввод общего ключа группы как отличающегося общего ключа группы. Например, узел E 526 и узел G 530 могут принять команду на повторный ввод 554 ключа 550 группы В как ключа 515 группы С. Узел F 528 может также повторно ввести 554 ключ 550 группы В как ключ 515 группы С после того, как команда на повторный ввод была передана путем групповой передачи к узлам второй группы 546. Повторный ввод ключа как ключа 515 группы С может позволить узлам E-G 526-530 принимать дополнительные данные и информацию от узлов в пределах первой группы 206. Другими словами, узлы E-G 526-530 воссоединяются с группой, членами которой они были, прежде чем отделились во вторую группу 546. Дополнительно разрешение администратору второй группы 546 выполнить групповую передачу команды 560 повторного ввода ключа может минимизировать запросы на администраторе первой группы 206. Например, узел А 408 может испытывать сильную нагрузку из-за множества запросов о ключе 515 группы С, если каждый узел в пределах второй группы 546 послал запрос на повторный ввод ключа в узел А 408. Настоящие системы и методы позволяют администратору второй группы 546 (или небольшому набору управляющих узлов) выполнить групповую передачу информации повторного ввода ключа к узлам, принадлежащим второй группе, таким образом устраняя увеличение нагрузки на узле А 408.
На фиг. 6 показана блок-схема, иллюстрирующая один вариант осуществления способа 600 для того, чтобы выполнить групповую передачу команды на повторную передачу ключа второй группе узлов 246. В одном варианте осуществления способ 600 реализуется узлом, определяемым как администратор второй группы 246. Первое состояние может приниматься - 602. В одном варианте осуществления первое состояние включает ключ первой группы, связанный с первой группой узлов 206, таких, как группа А 106. Состояние может приниматься (602) периодически. Выполняется определение 604, истекло ли предопределенное время, начиная с приема 602 самого последнего состояния. Если время не истекло, узел продолжает периодически принимать (602) первое состояние. Если предопределенное время истекло, первое состояние передается путем групповой передачи 606 второй группе узлов 246. В одном варианте осуществления вторая группа узлов 246 отделилась от первой группы узлов 206, когда первое состояние периодически не принимается (602) от управляющего узла первой группы 206.
Выполняется определение 608, приняты ли дополнительные состояния. Например, узел, который принадлежит второй группе 246, может выполнить групповую передачу 606 первого состояния, и узел может также принять одно или более состояний от одного или более отдельных узлов, принадлежащих второй группе 246. Если способ 600 определяет (608), что принятое одно или более состояний идентичны первому состоянию, то выполняется определение 610, существовало ли принятое одно или более состояний в течение большего количества времени, чем первое состояние. Другими словами, выполняется определение 610, является ли первое состояние более старшим, чем принятое одно или более состояний. Если принятые одно или более состояний являются более старшими, чем первое состояние, способ 600 завершается. Однако, если узел не принимает одно или более состояний или если принятые одно или более состояний не старше, чем первое состояние, то узел, который выполняет групповую передачу первого состояния, может обозначаться как управляющий узел второй группы узлов 246.
Ключ первой группы может быть повторно введен (612) как ключ второй группы. В одном варианте осуществления ключ первой группы случайным образом повторно вводится (612) как ключ второй группы. Второе состояние, включающее ключ второй группы, может периодически передаваться путем групповой передачи (614) к второй группе узлов 246. В одном варианте осуществления узлы в пределах второй группы 246 повторно вводят (612) первый ключ группы как ключ второй группы.
Определение 616 может быть сделано всякий раз, когда принимается третье состояние, которое отличается от второго состояния. Третье состояние может включать ключ третьей группы, связанный с первой группой узлов 206. Если третье состояние не принято, то второе состояние продолжает периодически передаваться путем групповой передачи 614 второй группе узлов. Если третье состояние принято, то выполняется определение 618, существовало ли третье состояние в течение большего количества времени, чем второе состояние. Другими словами, выполняется определение 618, является ли третье состояние более старым, чем второе состояние. Если определено, что второе состояние старше, чем третье состояние, то второе состояние продолжает периодически передаваться путем групповой передачи 614 к второй группе узлов.
Однако, если определено 618, что третье состояние старше, чем второе состояние, пакет, включающий команду повторного ввода ключа, может быть передан путем групповой передачи 620 ко второй группе узлов 246. Команда на повторный ввод ключа может предписывать второй группе узлов 246 повторно ввести второй ключ группы как ключ третьей группы. В одном варианте осуществления команда на повторный ввод ключа зашифрована ключом второй группы. Узлы, которые включают ключ второй группы, могут расшифровать команду на повторный ввод ключа. В одном варианте осуществления узлы, ранее принадлежавшие второй группе узлов 246, могут теперь включать ключ третьей группы, который может быть ассоциирован с первой группой узлов 206. В одном варианте осуществления каждый ключ группы, включенный в каждое состояние, может быть защищен посредством KEK 104. В одном варианте осуществления узлы, которые включают KEK 104, могут принимать каждый ключ группы и каждое состояние.
На фиг. 7 показана блок-схема компонентов аппаратных средств, которые могут использоваться в узле или сервере 702, который конфигурирован согласно варианту осуществления. Узел или сервер 702, в некоторых реализациях, могут быть встроенным устройством. Узел или сервер 702 являются вообще вычислительным устройством. Вычислительное устройство может включать в себя, без ограничения указанным, ноутбук, настольный персональный компьютер (PC), персональный цифровой помощник (PDA), планшетный PC, мобильный телефон и т.д. Процессор 704 может быть предусмотрен для управления работой узла/сервера 702, включая другие его компоненты, которые соединены с процессором 704 через шину 710. Процессор 704 может быть реализован как микропроцессор, микроконтроллер, процессор цифрового сигнала или другое устройство, известное в технике. Процессор 704 выполняет логические и арифметические операции, основанные на программном коде, сохраненном в памяти. В некоторых вариантах осуществления память 706 может быть внутриплатной памятью, содержащейся в процессоре 704. Например, микроконтроллеры часто включают в себя некоторый объем внутриплатой памяти.
Узел/сервер 702 может также включать в себя сетевой интерфейс 708. Сетевой интерфейс 708 облегчает коммуникацию между узлом/сервером 702 и другими устройствами, соединенными с сетью 122, которая может быть пейджинговой сетью, сотовой сетью, сетью глобальной связи, Интернетом, компьютерной сетью, телефонной сетью и т.д. Сетевой интерфейс 708 работает согласно стандартным протоколам для применимой сети 122.
Узел/сервер 702 может также включать в себя память 706. Память 706 может включать в себя оперативную память (RAM) для хранения временных данных. Альтернативно, или дополнительно, память 706 может включать в себя постоянную память (ROM) для хранения более постоянных данных, таких как установленный код и данные конфигурации. Память 706 может также быть воплощена как магнитное устройство хранения, такое как жесткий диск. Память 706 может быть электронным устройством любого типа, способным хранить электронную информацию.
Узел/сервер 702 может также включать в себя один или более коммуникационных портов 712, которые облегчают коммуникацию с другими устройствами. Узел/сервер 702 может также включать в себя устройства 714 ввода/вывода, такие как клавиатура, мышь, джойстик, сенсорный экран, монитор, динамики, принтер и т.д.
Разумеется, фиг.7 иллюстрирует только одну возможную конфигурацию узла/сервера 702. Могут быть использованы различные другие архитектуры и компоненты. Информация и сигналы могут быть представлены с использованием любого множества различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные посылки, на которые даются ссылки в вышеизложенном описании, могут быть представлены напряжениями, потоками, электромагнитными волнами, магнитными полями или частицами, оптическими областями или частицами, или любой комбинацией указанного.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с раскрытыми вариантами осуществления, могут быть осуществлены как электронные аппаратные средства, программное обеспечение или комбинации того и другого. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы алгоритмов описаны выше с точки зрения их функциональных возможностей. Осуществлены ли такие функциональные возможности как аппаратные средства, или программное обеспечение зависит от конкретного применения и ограничений при проектировании, накладываемых на систему в целом. Специалисты в данной области техники могут осуществить описанные функциональные возможности различными способами для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться как вызывающие отклонение от объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми вариантами осуществления, могут быть осуществлены или выполнены процессором общего назначения, процессором цифрового сигнала (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретной вентильной или транзисторной логикой, дискретными компонентами аппаратных средств или любой комбинацией указанных средств, чтобы выполнять описанные функции. Процессор общего назначения может быть микропроцессором, но в качестве альтернативы, процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может также быть осуществлен как комбинация вычислительных устройств, например, комбинация DSP и микропроцессора, множества микропроцессоров, одного или более микропроцессоров в соединении с ядром DSP, или любая другая такая конфигурация.
Этапы способа или алгоритма, описанного в связи с раскрытыми вариантами осуществления, могут быть реализованы непосредственно в аппаратных средствах, в программном модуле, выполняемом процессором, или в комбинации того и другого. Программный модуль может находиться в памяти RAM, флэш-памяти, памяти ROM, стираемой программируемой постоянной памяти (EPROM), памяти EEPROM, регистрах, жестком диске, сменном диске, CD-ROM или носителе данных любой другой формы, известном в технике. Примерный носитель данных соединяется с процессором таким образом, чтобы процессор мог считать информацию с носителя данных и записать информацию на носитель данных. В качестве альтернативы, носитель данных может являться неотъемлемой частью процессора. Процессор и носитель данных могут находиться в ASIC. ASIC может находиться в пользовательском терминале. В качестве альтернативы, процессор и носитель данных могут находиться как дискретные компоненты в пользовательском терминале.
Способы, раскрытые здесь, включают в себя один или более этапов или действий для реализации описанного способа. Этапы и/или действия способа могут быть взаимозаменяемыми друг с другом без отклонения от объема настоящего изобретения. Другими словами, если только определенный порядок этапов или действий не требуется для надлежащего функционирования варианта осуществления, порядок и/или использование определенных этапов и/или действий могут быть изменены без отклонения от объема настоящего изобретения.
Хотя проиллюстрированы и описаны конкретные варианты осуществления и приложения настоящего изобретения, следует иметь в виду, что изобретение не ограничено точной конфигурацией и компонентами, раскрытыми здесь. Различные модификации, изменения и вариации, которые будут очевидны для специалистов в данной области техники, могут быть выполнены в конфигурации, функционировании и деталях способов и систем настоящего изобретения, раскрытого здесь, без отклонения от сущности и объема изобретения.