СИСТЕМЫ И СПОСОБЫ ДЛЯ РАСПРЕДЕЛЕНИЯ ОБНОВЛЕНИЙ ДЛЯ КЛЮЧА С МАКСИМАЛЬНОЙ ИНТЕНСИВНОСТЬЮ СМЕНЫ КЛЮЧА
SYSTEMS AND METHODS FOR DISTRIBUTING KEY UPDATES WITH MAXIMUM KEY CHANGE INTENSITY

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится в общем к компьютерам и компьютерной технологии. Более конкретно, настоящее изобретение имеет отношение к системам и способам для распределения обновлений для ключа с максимальной интенсивностью смены ключа.
УРОВЕНЬ ТЕХНИКИ
Компьютерные технологии и технологии связи продолжают развиваться ускоренными темпами. Действительно, компьютерные и коммуникационные технологии вовлекаются во многие аспекты повседневной жизни человека. Например, многие устройства, используемые сегодня потребителями, имеют внутри малый компьютер. Эти малые компьютеры имеют различные размеры и уровни сложности. Эти малые компьютеры включают в себя все возможное, от одного микроконтроллера до полнофункциональной законченной компьютерной системы. Например, эти малые компьютеры могут представлять собой однокристальный компьютер, такой как микроконтроллер, компьютер на одной печатной плате, такой как управляющее устройство, обычный настольный компьютер, такой как IBM-совместимый ПК, и т.д.
Компьютеры, как правило, имеют один или более процессоров в основе компьютера. Процессор(ы) обычно взаимосвязан(ы) с различными внешними устройствами ввода и вывода и выполняет(ют) функции управления конкретным компьютером или устройством. Например, процессор в термостате может соединяться с кнопками, используемыми для выбора температурного режима, с печью или с устройством кондиционирования воздуха для изменения температуры и с температурными датчиками для считывания и отображения текущей температуры на устройстве отображения.
Многие приспособления, устройства и т.д. включают в себя один или более малых компьютеров. Например, термостаты, печи, системы кондиционирования воздуха, холодильные устройства, телефоны, печатающие устройства, автомобили, торговые автоматы и большинство промышленного оборудования различного типа сейчас, как правило, имеют внутри себя малые компьютеры или процессоры. Компьютерное программное обеспечение выполняется на процессорах этих компьютеров и указывает процессорам, как осуществлять определенные задачи. Например, компьютерное программное обеспечение, выполняющееся на термостате, может заставить устройство кондиционирования воздуха остановить работу при достижении конкретной температуры или может заставить нагревательное устройство включаться при необходимости.
Эти типы малых компьютеров, которые являются частью устройства, приспособления, инструментального средства и т.д., часто упоминаются как встроенные устройства или встроенные системы. (Термины «встроенное устройство» и «встроенная система» будут использоваться в настоящем описании взаимозаменяемо). Встроенная система обычно относится к компьютерному аппаратному обеспечению и программному обеспечению, которое является частью большей системы. Встроенные системы могут не иметь типичных устройств ввода и вывода, таких как клавиатура, манипулятор мышь и/или устройство для отображения. Обычно, в основе каждой встроенной системы имеется один или более процессоров.
Встроенные системы могут использоваться для осуществления контроля или управления многими различными системами, ресурсами, конечными результатами и т.д. С распространением сети Интернет и всемирной сети встроенные системы все чаще подключаются к сети Интернет, чтобы они могли дистанционно контролироваться и/или управляться. Другие встроенные системы могут подключаться к компьютерным сетям, включающим в себя локальные вычислительные сети, глобальные вычислительные сети и т.д. В контексте настоящего документа термин «компьютерная сеть» (или просто «сеть») относится к любой системе, в которой ряд узлов соединяется по каналу связи. Термин «узел» относится к любому устройству, которое может подключаться в качестве элемента компьютерной сети.
Некоторые встроенные системы могут предоставлять данные и/или услуги другим вычислительным устройствам, используя компьютерную сеть. В качестве альтернативы могут быть обычные компьютеры или вычислительные устройства, которые предоставляют данные и/или услуги другим вычислительным устройствам, используя компьютерную сеть. Иногда полезно минимизировать количество обменов ключами, необходимыми для поддержания безопасных соединений. Использование большого количества обменов ключами может привести к дополнительной нагрузке на линии связи в сети. Эти ситуации, как и другие, могут привести к неэффективности взаимодействия по сети. Преимущества могут быть реализованы, если имеются в распоряжении системы и способы для обеспечения эффективного распределения обновлений для ключа.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Описан способ распределения обновлений для ключа. Принимаются один или более запросов на обновление за единицу времени. Количество принятых за единицу времени запросов на обновление умножается на максимальный период обновления. Определяется общее количество принимаемых за единицу времени запросов на обновление. Получается величина, отображающая дополнительные запросы на обновление за единицу времени. Определяется минимальный период обновления для группы узлов.
В одном варианте осуществления величина, отображающая дополнительные запросы на обновление за единицу времени, получается путем вычитания определенного общего количества принимаемых запросов на обновление за единицу времени из определенного максимального количества запросов на обновление, ожидаемых за единицу времени. Минимальный период обновления может быть определен путем умножения количества принятых запросов на обновление за единицу времени на максимальный параметр обновления и делением этого произведения на величину, отображающую дополнительные запросы на обновление за единицу времени. В течение каждого минимального периода проверки может приниматься запрос на обновление от единственного узла. В одном варианте осуществления запрос на обновление содержит запрос на смену ключа для защиты обмена ключами (KEK). KEK может использоваться для присоединения к безопасной многоадресной группе узлов.
Может поддерживаться минимальная характеристика относительно группы узлов, причем минимальная характеристика содержит узлы, которые могут получить KEK и присоединиться к группе. Максимальный период обновления может представлять собой максимальное время, в течение которого узел использует KEK перед отправкой запроса на обновление. Умножение количества принятых запросов на обновление за единицу времени на максимальный период обновления может обеспечить оценку количества активных узлов в группе. Запросы на обновление могут нормально распределяться равномерно во времени.
Также описана компьютерная система, которая выполнена с возможностью распределения обновлений для ключа. Компьютерная система включает в себя процессор и запоминающее устройство, соединенное средствами электронной связи с процессором. Инструкции хранятся в запоминающем устройстве. Принимаются один или более запросов на обновление за единицу времени. Количество принятых запросов на обновление за единицу времени умножается на максимальный период обновления. Определяется общее количество принимаемых за единицу времени запросов на обновление. Получается величина, отображающая дополнительные запросы на обновление за единицу времени. Определяется минимальный период обновления для группы узлов.
Также описан машиночитаемый носитель, содержащий выполняемые инструкции для распределения обновлений для ключа в течение минимального периода обновления. Принимаются один или более запросов на обновление за единицу времени. Количество принятых запросов на обновление за единицу времени умножается на максимальный период обновления. Определяется общее количество принимаемых за единицу времени запросов на обновление. Получается величина, отображающая дополнительные запросы на обновление за единицу времени. Определяется минимальный период обновления для группы узлов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Иллюстративные варианты осуществления настоящего изобретения будут полностью понятны из нижеследующего описания и прилагаемой формулы изобретения при рассмотрении совместно с сопроводительными чертежами. С пониманием того что эти чертежи изображают только иллюстративные варианты настоящего осуществления и, следовательно, не должны рассматриваться как ограничивающие объем настоящего изобретения, иллюстративные варианты осуществления настоящего изобретения будут описаны с дополнительной конкретностью и подробностями за счет использования сопровождающих чертежей, на которых:
Фиг.1 является структурной схемой, демонстрирующей один вариант осуществления сервера, сообщающего ключ для защиты обмена ключами (KEK) одному или более узлам в пределах группы;
Фиг.2 является структурной схемой, демонстрирующей дополнительный вариант осуществления сервера, взаимодействующего с группой узлов по сети;
Фиг.3 является структурной схемой, демонстрирующей один вариант осуществления одиночного узла, отправляющего запросы на обновление серверу, используя минимальный период запроса, чтобы проверять изменения к KEK;
Фиг.4 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа для определения минимального периода обновления для группы узлов;
Фиг.5 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа для определения, может ли узел присоединиться к группе узлов;
Фиг.6 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа для оповещения дополнительных узлов в группе об изменениях к KEK; и
Фиг.7 является структурной схемой компонентов аппаратного обеспечения, которые могут использоваться во встроенном устройстве, выполненном согласно варианту осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Далее будут описаны различные варианты осуществления настоящего изобретения со ссылкой на чертежи, причем схожие ссылочные позиции обозначают идентичные или функционально подобные элементы. Варианты осуществления настоящего изобретения, которые в общем описаны и продемонстрированы на чертежах в настоящем документе, могут быть скомпонованы и спроектированы в большем разнообразии различных конфигураций. Поэтому нижеследующее более детальное описание нескольких иллюстративных вариантов осуществления настоящего изобретения, которые отражены на чертежах, не предназначено для ограничения объема заявляемого изобретения, а просто отражает варианты осуществления настоящего изобретения.
Слово «иллюстративный» используется в настоящем описании исключительно в значении «служащий примером, образцом или иллюстрацией». Любой вариант осуществления, описываемый в настоящем документе как «иллюстративный», не должен обязательно рассматриваться в качестве предпочтительного или выгодного относительно других вариантов осуществления.
Многие признаки вариантов осуществления, раскрываемых в настоящем документе, могут быть реализованы в виде программного обеспечения, электронного аппаратного обеспечения или их комбинации. Чтобы ясно продемонстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные компоненты будут описаны, как правило, с точки зрения их функциональных возможностей. Реализуются ли такие функциональные возможности в виде аппаратного обеспечения или программного обеспечения, зависит от конкретного применения и конструктивных ограничений, налагаемых на систему в целом. Специалисты в данной области техники могут реализовывать описываемые функциональные возможности по-разному для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться как выходящие за рамки объема настоящего изобретения.
В случае когда описываемые функциональные возможности реализуются в виде программного обеспечения, такое программное обеспечение может включать в себя компьютерные инструкции любого типа или компьютерный выполняемый код, размещенные в запоминающем устройстве и/или передаваемые в виде электронных сигналов по системной шине или по сети. Программное обеспечение, которое реализует функциональные возможности, соотнесенные с компонентами, описываемыми в настоящем документе, может содержать единственную инструкцию или множество инструкций и может быть распределено по нескольким различным кодовым сегментам, между различными программами и на нескольких запоминающих устройствах.
В контексте настоящего документа термины «какой-либо вариант осуществления», «вариант осуществления», «варианты осуществления», «этот вариант осуществления», «эти варианты осуществления», «один или более вариантов осуществления», «некоторые варианты осуществления», «определенные варианты осуществления», «один вариант осуществления», «другой вариант осуществления» и тому подобное означают «один или более (но не обязательно все) варианты осуществления раскрываемого изобретения(ий)», если явно не определено иное.
Термин «определение» (и его грамматические формы) используется в наиболее широком смысле. Термин «определение» охватывает большое разнообразие действий, и поэтому «определение» может включать в себя вычисление, вычисление с применением компьютера, обработку, получение, исследование, поиск (например, поиск в таблице, базе данных или другой структуре данных), установление и тому подобное. Также, «определение» может включать в себя прием (например, прием информации), организацию доступа (например, организацию доступа к данным в запоминающем устройстве) и тому подобное. Также, «определение» может включать в себя принятие решения, отбор, выбор, обоснование и тому подобное.
Фраза «основанный на» не означает «основанный только на», если явно не определено иное. Другими словами, фраза «основанный на» описывает и «основанный только на», и «основанный по меньшей мере на».
Когда для организации безопасности многоадресных групп используется централизованный сервер, такой как сервер аутентификации, каждый член группы (или узел) может периодически проверять, что ключ, распределяемый сервером, не изменился. Ключ может дать возможность узлу присоединяться к многоадресной группе и принимать групповой ключ. Ключ может именоваться как ключ для защиты обмена ключами (KEK). У каждой группы может быть особый KEK. Периодическая проверка достоверности KEK может вызвать разногласия между своевременными обновлениями (т.е. использование частых проверок) и загруженностью сети (т.е. меньшее использование проверок). В одном варианте осуществления на сервер отправляются менее частые проверки, пока не изменится распределяемый KEK. Когда появляется изменение к KEK, сервер стремиться сменить ключ для каждого активного узла, принадлежащего группе, как можно быстрее.
В одном варианте осуществления сервер аутентификации поддерживает минимальные характеристики (состояния) относительно многоадресных групп. Например, сервер может поддерживать узлы, которые могут идентифицироваться как члены группы, и сервер может поддерживать KEK. KEK может использоваться узлами для присоединения к активной группе. Поддерживание минимальных характеристик позволяет системе быть защищенной от выхода из строя сервера аутентификации или переключения на резервный сервер аутентификации, на котором может быть характеристика сервера аутентификации с ограниченным совместным доступом или совсем без него.
Узлы в пределах группы не могут полагаться друг на друга в отношении KEK. В одном варианте осуществления узел, который был поврежден, может дезинформировать остальные узлы в пределах группы о КЕК. Сервер аутентификации может быть надежным для распределения или подтверждения КЕК, что может создавать большую нагрузку на сервере аутентификации. Однако сервер аутентификации может не располагать точным подсчетом количества активных узлов в группе в любой момент времени. Незнание количества активных узлов в группе повышает трудность для сервера аутентификации в принятии решения о том, как оптимально распределять запросы на обновление для проверки наличия обновленного КЕК, если ему требуются эти узлы в группе, чтобы отправить запросы, как можно быстрее. Например, группа с десятью активными узлами может сменить ключи с изменениями к КЕК в течение нескольких секунд. Однако группа с 10000 активными узлами не может сменить ключи так быстро. Если все 10000 узлов в группе отправили запрос на сервер аутентификации, который должен сменить ключи в течение нескольких секунд, то сервер или сеть могут оказаться неспособны обработать большую информационную нагрузку.
Фиг.1 является структурной схемой, демонстрирующей один вариант осуществления сервера 102, сообщающего ключ для защиты обмена ключами (КЕК) 104 одному или более узлам в пределах группы А 106. В одном варианте осуществления сервер 102 является сервером аутентификации. Сервер аутентификации может быть сервером, который устанавливает подлинность узлов, желающих присоединиться к группе А 106. В одном варианте осуществления сервер 102 устанавливает подлинность узла, и этот узел принимает КЕК 104. Узел может присоединиться к группе А 106, используя КЕК 104, чтобы подтвердить свою возможность присоединения к группе А 106 другим узлам, уже принадлежащим группе А 106. В одном варианте осуществления сервер 102 поддерживает минимальную характеристику относительно каждого узла группы A 106. Например, сервер 102 может поддерживать информацию, используемую для установления подлинности конкретного узла N 116, который имеет возможность присоединиться к группе A 106. В одном варианте осуществления сервер 102 поддерживает минимальную характеристику относительно каждой группы A 106. Например, сервер 102 может просто поддерживать характеристику KEK 104. Сервер 102 может сообщать изменения к KEK 104 узлам группы A 106.
Как продемонстрировано, группа A 106 включает в себя узел A 108, узел B 110 и узел C 112. В то время как группа A 106 продемонстрирована только с тремя узлами, понятно, что группа A 106 может включать в себя больше или меньше узлов. Группа A 106 может упоминаться как безопасная многоадресная группа, потому что узлы в пределах группы A 106 могут осуществлять многоадресную передачу информации друг другу безопасным способом. Например, информация, многоадресная передача которой осуществляется между узлами группы A 106, может быть зашифрована с ключом 114 коллективного пользования группы A. Узлы могут использовать KEK 104 для приема ключа 114 группы A, который соотнесен с группой A 106. Например, узел N 116 может осуществить запрос на то, чтобы стать членом группы A 106, отправляя запрос 118 на присоединение к группе одному или более узлам группы A 106. Один или более узлов группы A 106 могут определить, включает ли узел N 116 в себя KEK 104. Если узел N 116 включает в себя KEK 104, эти один или более узлов могут выдать ключ 114 группы A узлу N 116. Ключ 114 группы A может дать возможность узлу отправлять информацию другим узлам в пределах группы A 106 и принимать информацию от них. Узлы могут использовать ключ 114 группы A, чтобы зашифровывать и расшифровывать информацию, многоадресная передача которой осуществляется между узлами группы A 106.
Если узел N 116 не включает в себя KEK 104, узел N 116 может отправить запрос 120 на KEK серверу 102, запрашивая, чтобы сервер 102 выдал KEK 104 узлу N 116. Сервер 102 может удостоверить подлинность узла N 116 и выдать KEK 104. Однако, если KEK 104 не выдается узлу N 116, узел N 116 не может присоединиться к группе A 106 и принять ключ 114 группы A.
Обмен информацией между сервером 102, группой A 106 и узлом N 116 может происходить по сети 122. Сеть 122 может включать в себя сеть Интернет, телефонную сеть, сеть поискового вызова и т.д. В одном варианте осуществления сервер 102 может управлять и устанавливать связь с множественными группами узлов по сети 122. Сервер 102 может распределять KEK, который является особым для каждой группы узлов.
Фиг.2 является структурной схемой, демонстрирующей дополнительный вариант осуществления сервера 202, взаимодействующего с группой узлов по сети 222. Группа узлов может включать в себя группу A 206. Для упрощения в пределах группы A 206 продемонстрирован только узел A 208. При этом каждый узел в пределах группы A 206 может быть подобен узлу A 208. В одном варианте осуществления узел A 208 может определять максимальный период 224 обновления. Максимальный период 224 обновления может отражать максимальное время, в течение которого узел может доверять KEK 204, не осуществляя проверку изменений к KEK 204 на сервере 202. Например, группа A 206 может включать в себя максимальный период 224 обновления в двадцать четыре часа, который подразумевает, что каждый узел, принадлежащий группе A 206, может отправлять запрос серверу 202 на изменения к KEK 204 один раз каждые двадцать четыре часа. В одном варианте осуществления максимальный период 224 обновления может сначала определяться сервером 202 и затем переправляться узлу в ответ на запрос 120 KEK. В дополнительном варианте осуществления узел 208 может получать максимальный период 224 обновления от другого узла, уже входящего в группу A 206.
Узел A 208 также может включать в себя устройство 226 генерирования запроса. Устройство 226 генерирования запроса может генерировать запросы на обновление, которые запрашивают сервер 202 об изменениях к KEK 204. Например, сервер 202 может изменить KEK 204, и узел A 208 может сгенерировать запрос на обновление для обнаружения изменений к KEK 204. Устройство 226 генерирования запроса также может включать в себя устройство 228 выбора случайного времени. В одном варианте осуществления устройство 228 выбора случайного времени случайным образом выбирает время для отправки запросов на обновление серверу 202. Устройство 228 выбора случайного времени может случайным образом выбирать время, которое является меньшим, чем максимальный период 224 обновления. Например, если максимальный период 224 обновления включает в себя двадцать четыре часа, запрос на обновление может случайным образом отправляться серверу 202 в течение десятого часа. Узел 208 может отправить запрос на обновление в десятый час, а затем другой запрос на обновление в конце максимального периода 224 обновления (т.е. двадцати четырех часов). В одном варианте осуществления узлы в пределах группы A 206 равномерно распределяют свои сгенерированные запросы на обновление серверу 202. Например, если группа A 206 включает в себя двадцать четыре узла, первый узел может отправлять запрос на обновление в первом часе (и затем другой запрос на обновление после максимального периода 224 обновления); второй узел может отправлять запрос на обновление во втором часе (и затем другой запрос на обновление после максимального периода 224 обновления) и т.д.
В одном варианте осуществления сервер 202 включает в себя устройство 230 определения размера. Устройство 230 определения размера помогает серверу 202 приблизительно определять, сколько узлов может быть активно в пределах конкретной группы, например группы A 206. Активный узел может включать в себя узел, который генерирует и отправляет запросы на обновление серверу 202 относительно KEK 204. Сервер 202 может использовать устройство 230 определения размера, чтобы определить приблизительное количество активных узлов в группе A 206. В одном варианте осуществления устройство 230 определения размера умножает максимальный период 224 обновления на интенсивность запросов, соотнесенную с группой A 206. Интенсивность запросов может отражать количество запросов на обновление KEK 204, которые сервер 202 принимает от узлов в пределах группы A 206 за единицу времени. Например, максимальный период 224 обновления, соотнесенный с каждым узлом, может включать в себя двадцать четыре часа, и сервер 202 может принимать десять запросов в час от узлов в пределах группы A 206. Следовательно, устройство 230 определения размера может оценить, что группа A 206 включает в себя двести сорок активных узлов (десять запросов в час, умноженные на двадцать четыре часа).
В одном варианте осуществления сервер 202 включает в себя устройство 232 определения смены ключа. Устройство 232 определения смены ключа может определять минимальный период 240 обновления, который отражает минимальное время, требующееся серверу 202, чтобы сменить ключи всех активных узлов в пределах группы, вызывая максимальную нагрузку для сервера 202. В одном варианте осуществления смена ключа каждого активного узла в пределах группы включает в себя изменение KEK 204, хранящегося на каждом узле. Устройство 232 определения смены ключа может определить его текущую нагрузку, используя все запросы за некоторый интервал времени. В одном варианте осуществления это может быть проделано с использованием плавающего среднего. Затем устройство 232 определения смены ключа может определить количество дополнительных запросов в секунду, которые может удовлетворить сервер 202, вычитая текущую нагрузку сервера 202 из определенной максимальной нагрузки. Устройство 232 определения смены ключа может также обратиться к устройству 230 определения размера, чтобы получить оценочное количество активных узлов в конкретной группе. В одном варианте осуществления устройство 232 определения смены ключа может разделить количество активных узлов в группе на определенные дополнительные запросы в единицу времени, чтобы получить минимальный период 240 обновления, который представляет собой время, требующееся серверу 202, чтобы сменить ключи во всей группе активных узлов, используя максимальную нагрузку. Например, сервер 202 может определить, что в настоящее время он обслуживает десять запросов на обновление за единицу времени. Максимальная нагрузка может быть определена как двадцать запросов на обновление за единицу времени. Устройство 230 определения размера может определить оценку размера группы A 206 как двести сорок активных узлов. В силу этого, устройство 232 определения смены ключа может определить, что серверу 202 потребуется примерно двадцать четыре единицы времени, чтобы заменить ключ KEK 204, сохраненный на каждом активном узле в пределах группы A 206 (двести сорок узлов, разделенные на 10 дополнительных запросов, возможных за единицу времени). В варианте осуществления минимальный период 240 обновления распределяется узлу A 208 наряду с KEK 204. В дополнительном варианте осуществления и минимальный период 240 обновления и максимальный период 224 обновления распределяется узлу A 208 наряду с KEK 204.
Фиг.3 является структурной схемой, демонстрирующей один вариант осуществления единичного узла A 308, отправляющего запросы на обновление серверу 302, используя минимальный период 344 проверок, чтобы проверять изменения к KEK 304. Как объяснялось ранее, сервер 302 может включать в себя KEK 304, который распределяется узлам в пределах группы, такой как группа A 306, по сети 322. KEK 304 может дать возможность узлу получить ключ 314 группы A, который позволяет этому узлу устанавливать безопасное соединение с другими узлами в пределах группы A 306. Сервер 302 также включает в себя устройство 330 определения размера, которое может дать возможность серверу 302 оценить количество активных узлов в пределах группы A 306, как объяснялось ранее. В одном варианте осуществления сервер 302 включает в себя устройство 332 определения смены ключа, которое может включать в себя минимальный период 340 обновления. Минимальный период 340 обновления может определяться так же, как объяснялось ранее, и может отражать минимальное время, требующееся серверу 302, чтобы распределить KEK 304 каждому активному узлу группы A 306, используя максимальную нагрузку.
В одном варианте осуществления устройство 332 определения смены ключа также может включать в себя минимальный период 344 проверки. Минимальный период 344 проверки может отражать минимальное время между запросами (максимальную интенсивность), за которое сервер 302 может предпочесть обслуживать нормальные запросы на обновление от единственного узла для проверки обновлений к KEK 304. В одном варианте осуществления минимальный период 344 проверки может предварительно задаваться системным администратором. В другом варианте осуществления минимальный период 344 проверки может определяться аналогично минимальному периоду 340 обновления. Таким образом, минимальный период 344 проверки и минимальный период 340 обновления могут быть аналогичными. В одном варианте осуществления минимальный период 344 проверки может служить только ориентиром для узлов в пределах группы A 306, и может не требоваться его выполнение ни узлом 308, ни сервером 302.
Сервер 302 может распределять минимальный период 344 проверки узлу A 308. Узел A 308 может включать в себя устройство 326 генерирования запросов, которое может генерировать запросы на обновление, которые запрашивают сервер 302 об изменениях к KEK 304. В одном варианте осуществления устройство 326 генерирования запросов отправляет запросы на обновление с интенсивностью, заданной минимальным периодом 344 проверки. Узел A 308 может быть единственным узлом в пределах группы A 306, отправляющим запросы на обновление с интенсивностью, заданной минимальным периодом 344 проверки. В другом варианте осуществления группа A 306 включает в себя небольшой набор узлов, каждый из которых включает в себя устройство 326 генерирования запросов, которое отправляет запросы на обновление серверу 302 с интенсивностью, заданной минимальным периодом 344 проверки. В другом варианте осуществления группа A 306 может включать в себя большой набор узлов, каждый из которых включает в себя устройство 326 генерирования запросов, которое отправляет запросы на обновление серверу 302 с интенсивностью, заданной максимальным периодом 224 обновления.
Преимущество использования минимального периода 344 проверки на малом наборе узлов состоит в том, что единственный узел может в таком случае оповещать другие узлы в группе о том, что KEK изменился, давая им возможность использовать определенный минимальный период 340 обновления, чтобы обновить KEK. Эта логическая схема минимизирует нагрузку на сервер 302, когда KEK не изменяется, а также минимизирует время, требующееся для распределения измененного KEK всем узлам в группе. В одном варианте осуществления узел A 308 включает в себя устройство 342 генерирования оповещений. Устройство 342 генерирования оповещений может генерировать оповещения, которые сигнализируют другим узлам в пределах группы A 306, что имеются изменения к KEK 304. В одном варианте осуществления узел A 308 осуществляет безопасную многоадресную передачу оповещений дополнительным узлам в пределах группы A 306. Дополнительные узлы также могут включать в себя KEK 304. Дополнительные узлы могут генерировать запросы на обновление и отправлять эти запросы на обновление сервера 302, чтобы сменить ключ KEK 304. Устройство 342 генерирования оповещений также может включать в себя минимальный период 340 обновления, который оповещает дополнительные узлы о минимальном периоде, в течение которого запросы на обновление могут быть отправлены серверу 302, чтобы принять обновленный KEK 304. В другом варианте осуществления дополнительные узлы могут использовать устройство выбора случайного времени для определения того, когда получать обновленный KEK 304 в пределах минимального периода 340 обновления.
Фиг.4 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа 400 для определения минимального периода 240 обновления для группы узлов. В одном варианте осуществления способ 400 может быть реализован сервером 102, таким как сервер аутентификации. Минимальный период 240 обновления может отражать время, в течение которого сервер может сменить ключи для узлов в пределах группы. Смена ключей для узлов может включать в себя обновление KEK 104, сохраненного на каждом активном узле в пределах группы.
В одном варианте осуществления на этапе 402 принимаются один или более запросов на обновление за единицу времени. Запросы на обновление могут включать в себя запрашивание того, изменился ли KEK 104, сохраненный на сервере 102. На этапе 404 количество принятых запросов на обновление за единицу времени может умножаться на максимальный период 224 обновления. Максимальный период 224 обновления может представлять собой максимальное время, в течение которого узел может доверять KEK 104, до отправки запроса на обновление относительно изменений к KEK 104. Результат умножения принятых запросов на обновление и максимального периода 224 обновления может дать оценку активных узлов в пределах группы.
В одном варианте осуществления на этапе 406 определяется общее количество принимаемых запросов на обновление за единицу времени. Общее количество принимаемых запросов на обновление за единицу времени может представлять собой общее количество запросов на обновление, которые сервер 102 обслуживает в любое время по всем группам. В одном варианте осуществления на этапе 408 получается величина, отображающая дополнительные запросы на обновление в единицу времени. Величина, отображающая дополнительные запросы на обновление, может быть получена на этапе 408 путем вычитания общего количества принимаемых запросов из определяемого максимума. Как объяснялось ранее, определяемый максимум может включать в себя максимальное количество запросов на обновление, которые сервер 102 может обслужить в единицу времени. На этапе 410 определяется минимальный период 240 обновления для группы узлов. В одном варианте осуществления минимальный период 240 обновления отражает время, требующееся серверу 102, чтобы сменить ключи для каждого активного узла в пределах группы A 206. Смена ключей для каждого активного узла может включать в себя обновление KEK 104 на каждом активном узле в пределах группы A 206. Как объяснялось ранее, минимальный период 240 обновления может определяться путем деления оценки активных узлов в пределах группы A 206 на величину, отображающую дополнительные запросы на обновление за единицу времени.
Фиг.5 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа 500 для определения, может ли узел присоединиться к группе узлов. В одном варианте осуществления способ 500 может быть реализован отдельным узлом, принадлежащим группе. На этапе 502 может приниматься запрос на присоединение к группе узлов. Запрос может включать в себя параметр, определяемый KEK. На этапе 504 производится определение, обусловлен ли параметр, включенный в запрос, KEK 104, соотнесенным с каждым узлом в пределах группы. Например, узел A 108 может принять на этапе 502 запрос от узла N 116, запрашивающий о том, чтобы узел N 116 стал членом группы A 106. Запрос может включать в себя параметр, определяемый KEK. Узел A 108 может определить на этапе 504, совпадает ли KEK, соотнесенный с запросом, с KEK 104, соотнесенным с узлом A 108. Если на этапе 504 определяется, что KEK, соотнесенный с запросом, не совпадает с KEK 104, соотнесенным с узлом A 108, или если узел N 116 не обладает KEK, способ 500 прекращается. Если на этапе 504 определяется, что KEK совпадают, групповой ключ 114 выдается на этапе 506 узлу N 116. В одном варианте осуществления групповой ключ 114 позволяет узлу принимать безопасные данные от других узлов, принадлежащих группе. Групповой ключ также может позволить узлу безопасно отправлять данные другим узлам в группе.
Фиг.6 является блок-схемой последовательности операций способа, демонстрирующей один вариант осуществления способа 600 для оповещения дополнительных узлов в группе об изменениях к KEK. В одном варианте осуществления способ 600 реализуется единственным узлом. В дополнительном варианте осуществления способ 600 реализуется небольшой группой узлов.
Запрос на обновление может быть отправлен на этапе 602 серверу 102, используя минимальный период проверки. Запрос на обновление может включать в себя запрос относительно изменений к KEK 104, соотнесенному с группой. Сервер 102 может включать в себя сервер аутентификации. Сервер 102 может отвечать на запрос. В одном варианте осуществления ответ включает в себя KEK 104, соотнесенный с группой, идентифицируемой узлом, который отправил запрос. На этапе 604 производится определение, совпадает ли KEK 104, включенный в ответ, с KEK 104 на узле. Если на этапе 604 KEK совпадают, узел продолжает отправлять на этапе 602 другой запрос на обновление после истечения минимального периода 344 проверки. Если на этапе 604 KEK не совпадают, KEK 104 на узле обновляется на этапе 606, чтобы совпадать с KEK 104 на сервере 102. В одном варианте осуществления сервер 102 может периодически изменять KEK 104, чтобы защитить целостность группы узлов. На этапе 608 может осуществляться многоадресная передача оповещения об изменении KEK одному или более узлам в пределах группы. В одном варианте осуществления производится многоадресная передача оповещения группе от узла, который отправил на этапе 602 запрос на обновление серверу 102. Оповещение также может включать в себя минимальный период 240 обновления. В одном варианте осуществления один или более узлов могут отправить запрос на обновление серверу 102 после приема оповещения. Запросы на обновление могут быть отправлены в пределах минимального периода 240 обновления.
Фиг.7 является структурной схемой компонентов аппаратного обеспечения, которые могут использоваться в узле или сервере 702, который выполнен согласно варианту осуществления. Узел или сервер 702 может быть реализован во встроенном устройстве/вычислительном устройстве 702. Может быть предусмотрен центральный процессор (ЦП) 704 или процессор для управления работой встроенного устройства 702, в том числе другими его компонентами, которые соединены с ЦП 704 посредством шины 710. ЦП 704 может быть осуществлен в форме микропроцессора, микроконтроллера, цифрового сигнального процессора или другого устройства, известного в данной области техники. ЦП 704 выполняет логические и арифметические действия на основании программного кода, хранящегося в запоминающем устройстве. В некоторых вариантах осуществления запоминающее устройство 706 может быть внутриплатным запоминающим устройством, включенным в состав ЦП 704. Например, микроконтроллеры часто включают в себя внутриплатное запоминающее устройство некоторого объема.
Встроенное устройство 702 также может включать в себя сетевой интерфейс 708. Сетевой интерфейс 708 обеспечивает установление связи между встроенным устройством 702 и другими устройствами, подключенными к сети 122, которая может быть сетью поискового вызова, сотовой сетью связи, сетью глобальной связи, сетью Интернет, компьютерной сетью, телефонной сетью и т.д. Сетевой интерфейс 708 работает согласно стандартным протоколам для соответствующей сети 122.
Встроенное устройство 702 также может включать в себя запоминающее устройство 706. Запоминающее устройство 706 может включать в себя оперативное запоминающее устройство (ОЗУ) для хранения временных данных. В качестве альтернативы или в дополнение, запоминающее устройство 706 может включать в себя постоянное запоминающее устройство (ПЗУ) для хранения более постоянных данных, таких как постоянный код и конфигурационные данные. Запоминающее устройство 706 также может быть осуществлено в форме магнитного устройства хранения данных, такого как жесткий диск. Запоминающее устройство 706 может быть электронным устройством любого типа, выполненным с возможностью хранения информации в электронном виде.
Встроенное устройство 702 также может включать в себя один или более портов 712 связи, которые обеспечивают установление связи с другими устройствами. Встроенное устройство 702 также может включать в себя устройства 714 ввода/вывода, такие как клавиатура, манипулятор мышь, джойстик, сенсорный экран, устройство для отображения, громкоговорители, печатающее устройство и т.д.
Разумеется, фиг.7 демонстрирует только одну возможную конфигурацию встроенного устройства 702. Могут использоваться разнообразные другие архитектуры и компоненты.
Информация и сигналы могут быть представлены с использованием любых из ряда других технологий и технических средств. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементы сигналов, которые могут упоминаться всюду в вышеизложенном описании, могут быть представлены посредством напряжений, токов, электромагнитных волн, магнитных полей или частиц, оптических полей или частиц или любой их комбинации.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные применительно к вариантам осуществления, раскрытым в настоящем документе, могут быть реализованы в виде электронного аппаратного обеспечения, программного обеспечения или их комбинации. Чтобы ясно продемонстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше, как правило, с точки зрения их функциональных возможностей. Реализуются ли такие функциональные возможности в виде аппаратного обеспечения или программного обеспечения, зависит от конкретного применения и конструктивных ограничений, налагаемых на систему в целом. Специалисты в данной области техники могут реализовывать описываемые функциональные возможности по-разному для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться как выходящие за рамки объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные применительно к вариантам осуществления, раскрытым в настоящем документе, могут быть реализованы или выполнены с использованием процессора общего назначения, цифрового сигнального процессора (ЦСП), специализированной интегральной схемы (СИС), программируемой вентильной матрицы (ПВМ) или другого программируемого логического устройства, логического элемента на дискретных компонентах или транзисторных логических схем, отдельных аппаратных компонентов или любой их комбинации, предназначенных для выполнения функций, изложенных в настоящем описании. Процессор общего назначения может быть микропроцессором, а как вариант, процессор может быть любым традиционным процессором, управляющим устройством, микропроцессорным управляющим устройством или конечным автоматом. Кроме того, процессор может быть реализован в виде комбинации вычислительных устройств, например комбинации ЦСП и микропроцессора, множества микропроцессоров, одного или более микропроцессоров в сочетании с ЦСП в качестве ядра или любой другой подобной конфигурации.
Этапы способов или алгоритмов, описанные применительно к вариантам осуществления, раскрытым в настоящем документе, могут быть воплощены непосредственно в аппаратном обеспечении, в программном модуле, выполняемом процессором, или в комбинации этих двух компонентов. Программный модуль может постоянно храниться в памяти ОЗУ, памяти ЭППЗУ, памяти ПЗУ, памяти СППЗУ, памяти ЭСППЗУ, в регистрах, на жестком диске, съемном диске, компактном оптическом диске или любой другой форме носителя данных, известного в данной области техники. Иллюстративный носитель данных соединяется с процессором, причем упомянутый процессор может считывать информацию с этого носителя данных и записывать на него информацию. Как вариант, носитель данных может быть встроен в процессор. Процессор и носитель данных могут постоянно размещаться в СИС. СИС может размещаться в пользовательском терминале. Как вариант, процессор и носитель данных могут размещаться в пользовательском терминале в виде отдельных компонентов.
Способы, раскрытые в настоящем документе, содержат один или более этапов или действий для успешного выполнения описываемого способа. Этапы и/или действия способов могут заменять друг друга без отклонения от объема настоящего изобретения. Другими словами, если для правильной работы варианта осуществления не требуется определенный порядок этапов или действий, то порядок и/или использование определенных этапов и/или действий могут быть изменены без отклонения от объема настоящего изобретения.
Хотя выше продемонстрированы и описаны определенные варианты осуществления и применения настоящего изобретения, понятно, что настоящее изобретение не ограничивается отдельно взятыми конфигурацией и компонентами, раскрытыми в настоящем документе. Различные модификации, изменения и вариации, которые будут очевидны специалистам в данной области техники, могут быть внесены в компоновку, работу и детали способов и систем согласно настоящему изобретению, раскрытых в настоящем документе, без выхода за рамки сущности и объема настоящего изобретения.