ИДЕНТИФИКАЦИЯ СЕТЕВОГО УЗЛА, НА КОТОРЫЙ БУДУТ РЕПЛИЦИРОВАТЬСЯ ДАННЫЕ
IDENTIFICATION OF NETWORK NODE TO WHICH DATA WILL BE REPLICATED

ОБЛАСТЬ ТЕХНИКИ
[0001] Различные варианты осуществления, описанные в настоящем документе, относятся к репликации данных, и более конкретно, но не исключительно, репликации данных по сети.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0002] В настоящее время связанные системы здравоохранения способны предоставлять, посредством совместной работы, расширенный и более эффективный уход за пациентами. В таких системах, здравоохранение перемещается за пределы больниц, ближе к инструментам анализа, которые извлекают более обширные и более интеллектуальные знания из этих данных. Эти типы анализа делают медицинскую помощь приспособленной к пациенту и, следовательно, более точной.
[0003] Расширение полномочий и возможностей инструментов здравоохранения и, в конечном счете, пациентов требует репликации данных в многочисленных хранилищах данных по всему миру (на разных платформах). Данные реплицируются в различных средах хранения по всему миру ввиду требований относительно производительности запроса данных, выравнивания нагрузки и аварийного восстановления. Репликация может быть простой, когда данные могут сохраняться на любом носителе хранения из любого географического местоположения (например, страны или континента), но это часто не так в реальном мире, где платформы хранения данных должны придерживаться различных директив геолокации, правил или требований, налагаемых государственными органами, а также других требований, определяемых клиентами или конечными пользователями. Например, в соответствии с региональными ограничениями, данные не могут свободно перетекать из одного региона или страны в другой(ую). Такие ограничения могут быть продиктованы политикой одной или нескольких стран, соглашениями о сотрудничестве или даже владельцами данных (например, пациентами).
[0004] Эта ситуация дополнительно осложняется растущей зависимостью от облачных вычислительных систем, таких как виртуальные машины. Требования к геолокации могут присутствовать в таких связанных со здравоохранением платформах, где управление данными множества арендаторов, множества центров обработки данных должно обеспечивать соблюдение следующих требований геолокации:
- Части данных должны управляться на глобальном уровне (например, основные данные, конфигурации служб, источники аутентификации);
- Части данных должны оставаться ''локальными'' (локальность может быть: в помещении или в пределах определенного географического региона);
- Данные должны оставаться в Германии, если арендатор является немецким клиентом;
- Данные должны быть изолированы в соответствии с арендатором (например, в сценарии множественной аренды);
- Данные должны все поддерживаться в одной базе данных;
- Данные должны быть ограничены схемами/базами данных по каждому арендатору.
[0005] В дополнение или вместо одного или нескольких из этих требований геолокации, могут существовать другие требования геолокации, такие как:
- Осведомленность о местоположении: пользователи должны быть осведомлены о физическом местоположении сред исполнения (ЕЕ), которые обрабатывают пользовательские данные;
- Управление местоположением: пользователи должны быть в состоянии определять набор возможных физических местоположений, на уровне страны, где пользовательские данные могут обрабатываться.
[0006] Хранение данных только в разрешенных географических местах может легко приводиться в исполнение, когда присоединенная платформа здравоохранения хранит и управляет данными в рамках одного провайдера хранилища данных (например, одного облачного провайдера). В таком случае облачный провайдер имеет контроль над всеми компьютерными системами и/или виртуальными машинами (VM), используемыми для развертывания вышеупомянутой платформы, и знает, где размещены все компьютерные системы и/или VM и подключенные к ним носители хранения данных.
[0007] Этот сценарий становится намного более сложным в сценариях, где платформа охватывает множество облачных провайдеров во множестве местоположений, или когда несколько локальных больничных систем являются частью вышеупомянутой соединенной платформы здравоохранения. В этом случае соединено множество компьютерных систем/VM, принадлежащих различным провайдерам вычислений (компьютинга), и поэтому централизованное решение для репликации становится более трудным для проектирования из-за синхронизации по провайдерам вычислений. Конфигурация развернутых компьютерных систем/VM является динамической в такой соединенной системе здравоохранения, причем компьютерные системы и VM развертываются в различных вычислительных платформах или удаляются из них ввиду различных требований (например, доступности, процедур резервного копирования или новых услуг). В этом случае необходимо решение обнаружения, которое способно адаптироваться к динамике системы.
[0008] Одним решением является шифрование данных и широковещательная передача их по сети с данными, зашифрованными таким образом, что только те компьютерные системы или VM, которым разрешается дешифровать их, могут это делать. Одно такое решение может быть неэффективным, когда размер данных, которые должны быть реплицированы, велик, что часто бывает в соединенных системах здравоохранения. Другим решением является наличие центрального брокера, который поддерживает списки ресурсов в рамках соединенной системы здравоохранения. Однако платформы являются динамичными, что делает затруднительной поддержку таких списков в некоторых случаях. В таком сценарии, все провайдеры вычислений должны осуществлять информационный обмен и синхронизировать свои ресурсы/списки VM и их географические местоположения, которые в конечном счете также должны быть доверительными.
[0009] Решения по умолчанию проблемы репликации данных при различных ограничениях, таких как ограничения геолокации, могут включать в себя установку безопасного туннеля (например, виртуальной частной сети, VPN) между источником данных и местом, где данные должны реплицироваться. Первый этап требует обнаружения ресурсов-кандидатов, где данные могут быть реплицированы; второй этап предусматривает аутентификацию обнаруженных ресурсов; третий этап состоит в установке ключа сеанса между источником и вновь обнаруженным ресурсом, где данные могут быть реплицированы. В большинстве случаев второй и третий этапы совместно являются частью протокола согласования аутентифицированного ключа. Такие протоколы используют инфраструктуру открытого ключа для аутентификации или заранее установленного совместно используемого симметричного ключа. Здесь ограничения репликации (например, ограничения геолокации) будут приведены в исполнение посредством внеполосной связи касательно того, какие серверы могут быть доверительными к каким данным.
[0010] Ссылка дается на патентные заявки US 2007/0234102 A1 (''Data replica selector'') и WO 2009/137927 A1 (''Security measures for countering unauthorized decryption'').
[0011] Представляется, что не существует протоколов согласования аутентифицированного ключа, которые обеспечивают геолокацию. Препятствием для обеспечения такого протокола является то, что решения аутентификации геолокации не очень развиты; одним решением является использование аутентификации адреса Интернет-протокола (IP), но это может быть неточным и может легко подделываться в некоторых случаях.
[0012] Соответственно, различные варианты осуществления, описанные здесь, обеспечивают возможность безопасного аутентифицированного обнаружения ресурсов, где данные могут быть реплицированы при соблюдении конкретных требований политики, правил и директив. Как уже упоминалось выше, этапами, которые были предложены для решения этой проблемы, являются, по порядку, следующие: обнаружение (на основе IP-адресов), аутентификация (что потребовало бы инфраструктуры криптографии с открытым ключом) и согласование симметричного ключа. Различные варианты осуществления, раскрытые в настоящем документе, объединяют все это в более эффективном и безопасном решении.
[0013] Различные варианты осуществления используют шифрование с множественным полномочием (многоуровневое), на основе атрибута, которое использует конкретные атрибуты для аутентификации узлов сети. Например, атрибут геолокации может быть использован для аутентификации узлов, которые расположены в разрешенных географических местах, где данные могут быть реплицированы. Серверы получают частные ключи от региональных полномочных органов, которые могут сертифицировать их географическое местоположение.
[0014] Компьютерная система или VM в сети может быть аутентифицирована путем запрашивания дешифрования ключа сеанса. Если компьютерная система или VM расположена в географическом местоположении, в котором репликация данных от устройства-источника разрешается, независимо от облачного провайдера или локального сервера больницы, то она сможет дешифровать ключ сеанса и стать кандидатом для репликации.
[0015] В некоторых примерах, ключи сеансов и/или их соответствующие безопасные туннели могут иметь даты истечения срока действия. Это способствует безопасности системы, так как ключ шифрования периодически меняется. Кроме того, истечение срока действия инициирует повторное обнаружение новых устройств/VM для репликации, что поддерживает систему обновленной и адаптирует к динамичности соединенной системы здравоохранения.
[0016] Решение может, в некоторых примерах, использовать инфраструктуру открытого ключа, где тип шифрования является основанным на атрибуте. В некоторых примерах, для того, чтобы соответствовать репликации геолокации представленной выше, геолокация является одним из атрибутов. Примером политики, связанной с атрибутами геолокации, является: (US, DE, !CN). В соответствии с этой примерной политикой, данные могут быть реплицированы в Соединенных Штатах и в Германии, но не в Китае. Такие политики уже используются без криптографического приведения в исполнение, как в поле "cdmi_geographic_placement" в спецификации интерфейса управления облачными данными (Cloud Data Management Interface) (CDMI).
[0017] В некоторых вариантах осуществления, успешное использование зависит от всех серверов, получающих корректные частные ключи для их релевантных атрибутов. Это может включать в себя процесс сертификации, в котором различные полномочные органы отвечают за различные атрибуты. В качестве примера, атрибут 'US', ассоциированный с сервером, декларирует, что сервер физически находится в Соединенных Штатах. В этом примере, может существовать полномочный орган ключей в Соединенных Штатах, использующий процесс сертификации, который проверяет, являются ли серверы физически расположенными в этой стране. После завершения сертификации, полномочный орган ключей может обеспечивать серверы частным ключом из многоуровневой схемы шифрования на основе атрибута. Частный ключ, предоставленный серверу, позволяет дешифровать зашифрованный текст, который включает в себя 'US' в политике. Подобные полномочные органы могут существовать для других стран-участниц, где атрибут для одной страны (например, 'US') может рассматриваться как негатив (противоположность) для любой другой страны (например, '!CN'). Для предотвращения копирования ключа на другие серверы, ключ может храниться, например, на смарт-карте или аппаратном защитном ключе-заглушке (донгл). В других примерах, могут существовать полномочные органы, которые могут предоставлять ключи на основе другого атрибута, относящегося, например, к легальному требованию или ограничению. В качестве примера, глобальная организация может оценивать центры обработки данных на предмет соответствия Закону об учете и безопасности медицинского страхования 1996 г. (HIPAA), затем предоставляет ключ на основе атрибута 'HIPAA'.
[0018] Настоящее изобретение относится к способу, выполняемому устройством для идентификации одной или нескольких виртуальных машин (VM), на которые будет реплицированы данные. Устройство, выполняющее способ, может быть виртуальной машиной. Способ содержит: шифрование ключа сеанса в соответствии со схемой шифрования на основе атрибута, причем атрибут, используемый для шифрования ключа сеанса, содержит политику геолокации, специфицирующую одно или несколько географических местоположений; широковещательную передачу зашифрованного ключа сеанса в сетевом домене; прием по меньшей мере одного сообщения, зашифрованного с использованием ключа сеанса по меньшей мере из одной виртуальной машины в сетевом домене; и выбор VM из по меньшей мере одной VM, на которую будут реплицированы данные.
[0019] Политика геолокации идентифицирует по меньшей мере одно из одного или нескольких географических местоположений как местоположение, где данные разрешается реплицировать. Политика геолокации идентифицирует по меньшей мере одно из одного или нескольких географических местоположений как местоположение, где данные не разрешается реплицировать.
[0020] Способ дополнительно содержит прием сообщения от другой VM в сетевом домене, указывающего, что зашифрованный ключ сеанса не мог быть дешифрован другой VM.
[0021] Этапы шифрования и широковещательной передачи могут выполняться в ответ на истечение срока действия по меньшей мере одного безопасного туннеля в сетевом домене.
[0022] Настоящее раскрытие также относится к устройству, содержащему: интерфейс связи, память и процессор, сконфигурированные для выполнения способа, описанного выше.
[0023] Настоящее раскрытие также относится к не-переходному (не-временному) машиночитаемому носителю, закодированному инструкциями для исполнения процессором, причем не-временный машиночитаемый носитель содержит инструкции для выполнения способа, описанного выше.
[0024] Настоящее раскрытие также относится к способу, выполняемому виртуальной машиной (VM) для облегчения репликации данных в сетевом домене, причем способ содержит: прием сообщения от устройства-источника, причем сообщение включает в себя ключ сеанса, который зашифрован в соответствии со схемой шифрования на основе атрибута, причем атрибут, используемый для шифрования ключа сеанса, содержит политику геолокации, специфицирующую одно или несколько географических местоположений; попытку дешифрования сообщения с использованием ключа политики, причем ключ политики является специфичным для географического местоположения, в котором находится VM; шифрование ответного сообщения ключом сеанса и передачу ответного сообщения обратно в устройство-источник.
[0025] Способ может дополнительно содержать: определение, была ли успешной попытка дешифровать сообщение; и передачу, к устройству-источнику, указания, что дешифрование было безуспешным, когда определено, что попытка была безуспешной, причем этапы шифрования и передачи ответного сообщения выполняются, когда определено, что попытка была успешной.
[0026] Способ может дополнительно содержать: идентификацию сервера ключей, назначенного географическому местоположению, в котором находится VM; аутентификацию с сервером ключей и прием ключа политики от сервера ключей.
[0027] Способ может дополнительно содержать: прием данных, подлежащих репликации, из устройства-источника; и сохранение данных, подлежащих репликации, для последующего доступа.
[0028] Настоящее раскрытие также относится к устройству, содержащему: интерфейс связи, память и процессор, сконфигурированный для выполнения способа, описанного выше.
[0029] Настоящее раскрытие также относится к не-временному машиночитаемому носителю, закодированному инструкциями для исполнения процессором, причем не-временный машиночитаемый носитель содержит инструкции для выполнения способа, описанного выше.
[0030] В настоящем раскрытии, компьютерные системы и/или виртуальные машины в сети могут рассматриваться как расположенные в узлах сети. Сетевые узлы могут быть соединены друг с другом беспроводным способом (например, в облачной среде) или через проводное соединение (например, в проводной сети).
[0031] В соответствии с первым аспектом, настоящее изобретение обеспечивает способ, выполняемый устройством для идентификации сетевого узла в сети, на который будут реплицироваться данные, причем способ содержит: шифрование ключа сеанса в соответствии со схемой шифрования на основе атрибута; широковещательную передачу зашифрованного ключа сеанса в сети; прием по меньшей мере одного сообщения, зашифрованного с использованием ключа сеанса по меньшей мере от одного сетевого узла в сети; и выбор сетевого узла по меньшей мере из одного сетевого узла, на который будут реплицироваться данные.
[0032] По меньшей мере один сетевой узел может содержать по меньшей мере одну виртуальную машину. В некоторых вариантах осуществления, устройство, выполняющее способ, может содержать устройство обработки и/или виртуальную машину.
[0033] Атрибут, используемый для шифрования ключа сеанса, может содержать политику геолокации, специфицирующую одно или несколько географических местоположений. В некоторых вариантах осуществления, политика геолокации может идентифицировать по меньшей мере одно из одного или нескольких географических местоположений в качестве местоположения, где данные разрешается реплицировать. Политика геолокации может идентифицировать по меньшей мере одно из одного или нескольких географических местоположений в качестве местоположения, где данные не разрешается реплицировать.
[0034] Способ может дополнительно содержать: прием сообщения от конкретного сетевого узла в сети, иного, чем выбранный узел сети, причем сообщение указывает, что зашифрованный ключ сеанса не может быть дешифрован конкретным сетевым узлом.
[0035] Этапы шифрования и широковещательной передачи могут выполняться в ответ на истечение срока действия по меньшей мере одного безопасного туннеля в сети.
[0036] Согласно второму аспекту, настоящее изобретение обеспечивает способ, выполняемый устройством обработки в сетевом узле, для облегчения репликации данных в сети, причем способ содержит: прием сообщения от устройства-источника, причем сообщение включает в себя ключ сеанса, который зашифрован в соответствии со схемой шифрования на основе атрибута; попытку дешифрования сообщения с использованием ключа политики; определение, была ли попытка дешифрования сообщения успешной; и в ответ на определение, что попытка дешифрования сообщения была успешной: шифрование ответного сообщения ключом сеанса и передачу ответного сообщения на устройство-источник.
[0037] В некоторых вариантах осуществления, способ согласно второму аспекту может быть выполнен виртуальной машиной.
[0038] Способ может дополнительно содержать: в ответ на определение, что попытка дешифрования сообщения была безуспешной: передачу, на устройство-источник, указания, что дешифрование было безуспешным.
[0039] В некоторых вариантах осуществления, атрибут, используемый для шифрования ключа сеанса, может содержать политику геолокации, специфицирующую одно или несколько географических местоположений. Ключ политики может быть специфическим для географического местоположения, в котором находится устройство обработки.
[0040] Способ может дополнительно содержать: идентификацию сервера ключей, назначенного географическому местоположению, в котором находится устройство обработки; аутентификацию с сервером ключей и прием ключа политики от сервера ключей.
[0041] Способ может дополнительно содержать: прием данных, подлежащих репликации, от устройства-источника и сохранение данных, подлежащих репликации, для последующего доступа.
[0042] В соответствии с третьим аспектом, настоящее изобретение обеспечивает устройство, содержащее интерфейс связи, память и процессор. Процессор сконфигурирован для выполнения способа в соответствии с первым аспектом, описанным выше, и/или способа в соответствии со вторым аспектом, описанным выше.
[0043] В соответствии с четвертым аспектом, настоящее изобретение относится к не-временному машиночитаемому носителю, закодированному с инструкциями для исполнения процессором, причем не-временный машиночитаемый носитель содержит инструкции для выполнения способа в соответствии с первым аспектом, описанным выше, и/или способа в соответствии со вторым аспектом, описанным выше.
[0044] Другие признаки изобретения будут очевидны из последующего описания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0045] Для того чтобы лучше понять различные примерные варианты осуществления, делается ссылка на приложенные чертежи, на которых:
[0046] Фиг. 1 является иллюстрацией, показывающей пример сети, содержащий множество узлов;
[0047] Фиг. 2 является блок-схемой последовательности операций, показывающей пример способа, выполняемого устройством-источником, для идентификации сетевого узла в сети;
[0048] Фиг. 3 является иллюстрацией, показывающей пример протокола аутентифицированного обнаружения;
[0049] Фиг. 4 является иллюстрацией, показывающей пример мульти-облачной инфраструктуры;
[0050] Фиг. 5 является блок-схемой последовательности операций, показывающей другой пример способа, выполняемого устройством-источником, для идентификации сетевого узла в сети;
[0051] Фиг. 6 является блок-схемой последовательности операций, показывающей пример способа, выполняемого сетевым узлом, для облегчения репликации данных в сети;
[0052] Фиг. 7 является блок-схемой последовательности операций, показывающей другой пример способа, выполняемого сетевым узлом, для облегчения репликации данных в сети;
[0053] Фиг. 8 является блок-схемой последовательности операций, показывающей другой пример способа, выполняемого сетевым узлом, для облегчения репликации данных в сети;
[0054] Фиг. 9 является блок-схемой последовательности операций, показывающей другой пример способа, выполняемого сетевым узлом, для облегчения репликации данных в сети;
[0055] Фиг. 10 является упрощенным схематичным представлением примера устройства для выполнения способов, описанных в настоящем документе; и
[0056] Фиг. 11 является упрощенным схематичным представлением не-временного машиночитаемого носителя и процессора.
ПОДРОБНОЕ ОПИСАНИЕ
[0057] Описание и чертежи, представленные здесь, иллюстрируют различные принципы. Должно быть понятно, что специалисты в данной области техники смогут разработать различные устройства, которые, хотя и не описаны явно и не показаны здесь, воплощают эти принципы и включены в объем настоящего раскрытия. Как использовано в настоящем документе, термин ''или'' относится к не-исключающему или (то есть, и/или), если не указано иное (например, ''или еще'' либо ''или в качестве альтернативы''). Кроме того, различные варианты осуществления, описанные здесь, не обязательно являются взаимоисключающими и могут комбинироваться для получения дополнительных вариантов осуществления, которые включают принципы, описанные в настоящем документе.
[0058] Изобретение может быть реализовано в компьютерной сети, охватывающей множество помещений, отделов, зданий, организаций, стран и/или континентов. Примерная сеть 100 показана на фиг. 1. Сеть 100 включает в себя различные узлы 102a-g, каждый из которых находится в одном или нескольких зданиях, организациях или облачных вычислительных платформах, таких как здания больницы (H1 или H2) или платформа облачных вычислений (CCP1 или CCP2). Узлы 102 также распределены по разным странам, в том числе в Соединенных Штатах (US), Нидерландах (NL), Германии (DE) и Китае (CN). В примере, показанном на фиг. 1, некоторые узлы соединены друг с другом. В других примерах, могут существовать другие соединения. Например, сетевой узел 102b находится в пределах сети больницы или группы больниц, H2, и расположен в Нидерландах, в то время как сетевой узел 102a находится в пределах той же группы больниц, H2, что и сетевой узел 102b, но расположен в Соединенных Штатах.
[0059] В примере, узел 102a может служить в качестве узла-источника или узла происхождения, который содержит данные (например, медицинские данные, относящиеся к пациенту), подлежащие репликации на одном или нескольких других узлах в сети. Данные могут подчиняться одному или нескольким ограничениям в отношении репликации, которые могут быть установлены в одной или нескольких политиках. Например, данные могут подчиняться политике геолокации, такой как ''(US, DE, !CN)'', указывая, что данные могут быть реплицированы в узлах в США и Германии, но не в узлах в Китае. В рамках такой политики, данные из узла-источника 102а могут быть реплицированы в узлах 102e и 102g, но не в узлах 102b, 102с, 102d и 102f.
[0060] На фиг. 2 представлена блок-схема последовательности операций, показывающая пример способа 200 для идентификации сетевого узла в сети, в которую будут реплицироваться данные. Способ может быть выполнен устройством, содержащим данные, подлежащие репликации. Устройство, выполняющее способ 200, может упоминаться как устройство-источник или устройство происхождения, так как это устройство представляет собой то, откуда могут происходить данные, подлежащие репликации. Устройство-источник может быть устройством обработки, вычислительным устройством или виртуальной машиной, и устройство-источник может упоминаться как узел-источник. Как будет понятно, данные, подлежащие репликации, могут, в некоторых вариантах осуществления, возникать в других местах и передаваться от устройства-источника. Способ 200 содержит, на этапе 202, шифрование ключа сеанса в соответствии со схемой шифрования на основе атрибута. Ключ сеанса может быть зашифрован с использованием известных средств. Например, этап шифрования может включать в себя случайный выбор битовой строки, которая квалифицируется в качестве симметричного ключа сеанса шифрования, и шифрование битовой строки в соответствии со схемой шифрования на основе атрибута. Ключ сеанса может быть зашифрован с использованием любого атрибута, например, атрибута, относящегося к узлу, на который могут быть реплицированы данные. В некоторых примерах, атрибут, используемый для шифрования ключа сеанса, может быть атрибутом геолокации. Таким образом, атрибут, используемый для шифрования ключа сеанса, может содержать политику геолокации, специфицирующую одно или несколько географических местоположений. В некоторых вариантах осуществления, политика геолокации может идентифицировать по меньшей мере одно из одного или нескольких географических местоположений как местоположение, где данные разрешается реплицировать. В некоторых вариантах осуществления, политика геолокации может идентифицировать по меньшей мере одно из одного или нескольких географических местоположений как местоположение, где данные не разрешается реплицировать.
[0061] Как использовано в настоящем документе, термин 'геолокация' предназначен для обозначения географического местоположения в реальном мире, такого как местоположение сетевого узла, в котором должны быть реплицированы данные. В зависимости от требуемой точности, геолокация может быть определена в терминах координат, координатной сетки, здания, улицы, города, страны или континента. В других примерах, ключ сеанса может быть зашифрован с использованием другого атрибута. Например, ключ сеанса может быть зашифрован с использованием атрибута на основе номера офиса, отдела компании или организации или самой компании или организации.
[0062] По меньшей мере один сетевой узел может, в некоторых примерах, содержать по меньшей мере одну виртуальную машину.
[0063] На этапе 204, способ 200 включает широковещательную передачу зашифрованного ключа сеанса в сети. Зашифрованный ключ сеанса может широковещательно передаваться с использованием любых подходящих известных средств. Например, ключ может передаваться через сетевую широковещательную передачу или сетевую многоадресную передачу.
[0064] После того, как зашифрованный ключ сеанса был широковещательно передан к узлам в сети, в каждом узле может быть сделана попытка дешифровать ключ сеанса, как описано ниже.
[0065] Способ 200 содержит, на этапе 206, прием по меньшей мере одного сообщения, зашифрованного с использованием ключа сеанса по меньшей мере из одного сетевого узла в сети. Таким образом, в некоторых вариантах осуществления, ключ сеанса, принятый сетевыми узлами, используется для шифрования сообщения, подлежащего отправке из сетевого узла (например, устройством обработки, вычислительной системой или виртуальной машиной) к устройству-источнику.
[0066] В некоторых случаях, один сетевой узел может отправлять сообщение, принятое на этапе 206. В других случаях, множество узлов могут отправлять сообщения, зашифрованные с помощью ключа сеанса, эти сообщения принимаются устройством-источником на этапе 206. На этапе 208, способ 200 дополнительно содержит выбор сетевого узла из по меньшей мере одного сетевого узла, на который будут реплицированы данные. В некоторых вариантах осуществления, один узел может быть выбран для репликации данных, тогда как в других вариантах осуществления, несколько узлов могут быть выбраны. Выбор конкретного сетевого узла для репликации, таким образом, основан на том, способен ли конкретный узел шифровать сообщение с помощью ключа сеанса.
[0067] Безопасный туннель (например, VPN) может быть создан между устройством-источником и узлом, на который должны быть реплицированы данные. Для дальнейшего повышения безопасности, один или несколько безопасных туннелей, созданных между источником и узлом репликации (например, безопасный туннель, через который данные должны передаваться или реплицироваться) может быть временным. Другими словами, срок действия безопасного туннеля может истечь после определенного периода. В некоторых вариантах осуществления, этапы шифрования 202 и широковещательной передачи 204 могут быть выполнены в ответ на истечение срока действия по меньшей мере одного безопасного туннеля в сети. Таким образом, список сетевых узлов, на которые могут быть реплицированы данные, может регулярно обновляться, так что идентификация подходящих узлов учитывает любые изменения в политиках.
[0068] Способ 200, описанный выше, описан со ссылкой на конкретный пример со ссылкой на фиг. 3. Различные варианты осуществления включают в себя протокол, как показано на фиг. 3. Протокол включает в себя следующие три этапа:
Policy
- Источник широковещательно передает сообщения: Policy (Политика), E(sessionKey) к ''All'' (т.е. ко всем узлам в сети). Сообщение в этом примере включает в себя две конкатенированные части: первая часть является самой политикой, описанной в машиночитаемом незашифрованном представлении; а вторая часть является зашифрованным текстом в результате шифрования (Е) открытого текста ''sessionKey'' открытым ключом 'Policy'.
Источником является узел, который принимает решение реплицировать данные, например, в связи с требованиями касательно производительности запросов данных, выравнивания нагрузки и аварийного восстановления. На фиг. 1, узлом-источником является узел 102a.
- Цели (т.е. остальные узлы в сети) принимают сообщение, широковещательно передаваемое источником. Все из целей пытаются дешифровать широковещательно переданное сообщение с использованием их соответствующих частных ключей, и ответ каждого узла может быть одним из двух значений:
1. ''Do not understand'' (''Не понимаю'')
- Такой ответ отсылается узлами, которые не имеют необходимых ключей для дешифрования сообщения. Это неявно означает, что они не удовлетворяют требуемой политике.
sessionKey
2. ''OK, the data can be replicated here'' (''ОК, данные могут быть реплицированы здесь''). Узел отправляет устройству-источнику сообщение, зашифрованное с помощью ключа сеанса: E(src,dst,Policy). Этот ответ дается узлами, рассматриваемыми в качестве ''кандидатов''. Здесь, ''src'' является источником, и ''dst'' является получателем, и сообщение является зашифрованным текстом, получаемым в результате шифрования (Е) открытого текста ''src,dst,policy'' с использованием ключа 'sessionKey'. Эффективно, путем отправки этого ответа, узел подтверждает, что способен дешифровать исходное сообщение, и что он удовлетворяет политике (так как он может использовать ключ 'sessionKey'. Узел также повторяет, откуда исходит запрос ('dst') и какова политика, и поясняет, кто отправляет ответ ('src').
- Узлы, которые отправляют этот ответ, действительно имеют необходимые ключи для дешифрования широковещательно переданного сообщения. Это неявно означает, что они удовлетворяют запрашиваемой политике, как утверждается, например, различными полномочными органами, которые присваивают атрибуты узлам.
- Цель отправляет источнику сообщение ''OK'' и сообщение, зашифрованное с помощью ключа сеанса, чтобы показать, что она удовлетворяет требованиям в политике (например, что она находится в разрешенном географическом местоположении).
sessionKey
[0069] Устройство-источник выбирает один или несколько узлов (например, вычислительных систем/VM), где будут реплицированы данные, эти выбранные узлы упоминаются как ''Selected'' (''Выбранные'') на фиг. 3. Далее, устройство-источник отправляет данные, подлежащие репликации (например, конфиденциальные данные), зашифрованные с помощью ключа сеанса, предложенного в исходном сообщении. Поэтому сообщением, отправленным в узел или узлы репликации, является: E(data).
[0070] Протокол аутентифицированного обнаружения, изображенный на фиг. 3, может быть интегрирован в рамках мульти-облачной инфраструктуры 400, пример которой изображен на фиг. 4. Инфраструктура 400 описана в терминах плоскости 402 абстракции вычисления, плоскости 404 абстракции данных и плоскости 406 абстракции сети. Интеграция включает в себя развертывание в каждом узле (например, VM) 102 облачной вычислительной платформы компонента, который отдельно обрабатывает репликацию данных. Компонент упоминается как ''Служба репликации данных'' 408. Такой компонент 408 обеспечивается секретным ключом, когда это необходимо. Это представлено в плоскости 402 ''Вычисления'' облачной платформы. ''Служба репликации данных'' 408 инициирует протокол аутентифицированного обнаружения и опирается на плоскость 406 сети облачной платформы для широковещательной передачи сообщения обнаружения (этап, указанный линией с пометкой '1' на фиг. 4). Далее, компонент ''Служба репликации данных'' 408 из каждого узла-кандидата (например, VM) 102b-g отвечает (например, реагирует) на сообщение обнаружения (этап, указанный линией с пометкой '2' на фиг. 4). На этапе 3, показанном на фиг. 4 (этап, указанный линией с пометкой '3'), ''Служба репликации данных'' 408 устройства-источника 102a отправляет зашифрованные данные к выбранному узлу (например, VM) для репликации. Стрелка с пометкой 3 проходит через ''Плоскость абстракции данных'' 404, и поэтому эта плоскость должна быть осведомлена о реплицированной версии данных.
[0071] Процесс, описанный в примере на фиг. 4, может быть запущен, когда дополнительные пользователи используют приложение (обозначено посредством ''App'' 410), и поэтому требуется выравнивание нагрузки для повышения производительности системы. Например, если многие пользователи используют виртуальную машину одновременно, то виртуальная машина может в некоторый момент не справиться с обработкой нагрузки. Чтобы предотвратить это, может быть использовано несколько виртуальных машин, чтобы каждая обрабатывала часть нагрузки.
[0072] В контексте: если наша VM в US перегружена многими пользователями из Китая, есть смысл запустить новую VM в Китае, чтобы реплицировать все данные туда и обслуживать там пользователей вблизи. Это означает нахождение места, где в текущее время разрешается реплицировать данные.
[0073] Системы и способы, описанные здесь, могут работать с любым типом данных. Данные, которые должны быть реплицированы, могут пройти через следующие этапы: пакетирование, шифрование пакета, транспортировку пакета, дешифрование пакета и, наконец, распаковку. Например, для базы данных, предлагаемое решение потребовало бы создание дампа (копирование содержимого на внешний носитель) части базы данных, которая должна реплицироваться (например, записи и столбцы). Затем этот файл дампа зашифровывается, отправляется посредством предлагаемого протокола аутентифицированного обнаружения в место, где данные будут реплицированы. Затем принятый зашифрованный пакет дешифруется принимающим узлом репликации (например, VM).
[0074] В рамках архитектуры, соединенная система здравоохранения может быть развернута как облачная платформа, такая как U-облако, и поэтому может использовать плоскости абстракции (вычисления, данных, сети), как показано на фиг. 4. На фиг. 4 этапы: 1, 2, 3 могут быть отображены на этапы протоколов, описанные на фиг. 3, и, следовательно, на этапы способа 200.
[0075] В способе 200, описанном выше со ссылкой на фиг. 2, этап 206 приема сообщения, зашифрованного с помощью ключа сеанса, выполняется только тогда, когда подходящий узел-кандидат найден. В то время как один или несколько узлов могут ответить на сообщение, широковещательно переданное устройством-источником 102а, может быть один или несколько узлов, которые не удовлетворяют требованиям в политике и поэтому не могут ответить устройству-источнику 102а. На фиг. 5 показана блок-схема последовательности операций, показывающая пример способа для идентификации сетевого узла в сети, в который будут реплицированы данные. В частности, способ 500 описывает пример процесса, происходящего в устройстве-источнике 102a, когда сетевой узел не способен отвечать устройству-источнику зашифрованным сообщением. Способ 500 может включать в себя этапы 202-208 способа 200. Способ 500 содержит прием сообщения от конкретного сетевого узла в сети, иного, чем выбранный сетевой узел, причем сообщение указывает, что зашифрованный ключ сеанса может не быть дешифрован конкретным сетевым узлом. Таким образом, сетевой узел, который не может дешифровать ключ сеанса, широковещательно переданный устройством-источником, может отправить сообщение устройству-источнику, подтверждающее, что он не способен дешифровать ключ сеанса.
[0076] Сетевой узел 102b-g в сети 100 может выполнять различные этапы в ответ на сообщение, широковещательно переданное устройством-источником 102. На фиг. 6 показана блок-схема последовательности операций, показывающая пример способа 600 для облегчения репликации данных в сети. Способ 600 может быть выполнен устройством обработки в сетевом узле. Способ 600 содержит, на этапе 602, прием сообщения от устройства-источника, причем сообщение включает в себя ключ сеанса, который зашифрован в соответствии со схемой шифрования на основе атрибута. Принятое сообщение может представлять собой или может включать в себя ключа сеанса, широковещательно переданный устройством-источником на этапе 204 способа 200, описанного выше. Устройство-источник также может упоминаться как некоторое устройство-источник.
[0077] На этапе 604, способ 600 содержит попытку дешифрования сообщения с помощью ключа политики. Ключ политики является секретным ключом, используемым для шифрования на основе атрибута. Таким образом, клич политики может упоминаться как секретный ключ. Ключ политики, в этом примере, является секретным ключом, полученным из набора атрибутов, и ключ политики может дешифровать текст, зашифрованный шифрованием на основе атрибута, когда политика, используемая для шифрования, соответствует этим атрибутам.
[0078] Способ содержит, на этапе 606, определение, была ли попытка дешифрования сообщения успешной. На этапе 608, способ 600 содержит: в ответ на определение, что попытка дешифрования сообщения успешна: шифрование ответного сообщения ключом сеанса. На этапе 610, способ 600 содержит передачу ответного сообщения к устройству-источнику. Таким образом, если сетевой узел, принимающий сообщение из устройства-источника, способен дешифровать сообщение, то он посылает зашифрованное сообщение (зашифрованное с использованием ключа сеанса) к устройству-источнику. Как было отмечено выше, ключом политики является частный (секретный) ключ, который генерируется в соответствии с конкретной политикой, определяющей требования, которые должны быть удовлетворены для того, чтобы сетевой узел реплицировал данные из устройства-источника.
[0079] Этапы шифрования 608 и передачи 610 способа 600 выполняются, если сетевой узел способен дешифровать сообщение от устройства-источника. Сетевые узлы, которые не в состоянии дешифровать сообщение, широковещательно переданное устройством-источником, могут не предпринимать никакого действия или могут ответить устройству-источнику иным образом. На фиг. 7 представлена блок-схема последовательности операций примера способа 700 для облегчения репликации данных в пределах сети. Способ 700 может включать в себя один или несколько этапов способа 600. Способ 700 содержит, на этапе 702, в ответ на определение, что попытка дешифрования сообщения была безуспешной: передачу, на устройство-источник, указания, что дешифрование было безуспешным.
[0080] Как было отмечено выше со ссылкой на способ 200, атрибут, используемый для шифрования ключа сеанса, содержит политику геолокации, специфицирующую одно или несколько географических местоположений. Ключ политики может быть специфическим для географического местоположения, в котором находится устройство обработки.
[0081] На фиг. 8 показана блок-схема последовательности операций примера способа 800 для облегчения репликации данных в сети. Способ 800 может включать в себя один или несколько этапов способов 600 и 700. Способ 800 может содержать, на этапе 802, идентификацию сервера ключей, назначенного географическому местоположению, в котором находится устройство обработки. На этапе 804, способ 800 может содержать аутентификацию с помощью сервера ключей. Способ 800 может содержать, на этапе 806, прием ключа политики от сервера ключей. Таким образом, в то время как, в некоторых вариантах осуществления, один или несколько сетевых узлов могут иметь ключ политики, в других вариантах осуществления, сетевой узел может осуществлять связь с сервером ключей, таким как сервер ключей, ассоциированный с данным узлом, или ассоциированный с местоположением, в котором расположен узел, и получить ключ политики с сервера ключей.
[0082] Еще один примерный способ 900 для облегчения репликации данных в сети показан на блок-схеме последовательности операций на фиг. 9. Способ 900 может содержать один или несколько из этапов способов 600, 700 и 800. Способ 900 содержит, на этапе 902, прием данных, подлежащих репликации, от устройства-источника. На этапе 904, способ 900 может содержать сохранение данных, подлежащих репликации, для последующего доступа. Реплицированные данные могут быть сохранены на носителе хранения, ассоциированном с сетевым узлом. Например, реплицированные данные могут быть сохранены в устройстве хранения устройства, расположенного на сетевом узле, или на сервере, ассоциированном с узлом.
[0083] В дополнение к способам, описанным выше, другие аспекты изобретения относятся к устройствам для выполнения способов. На фиг. 10 представлена упрощенная схема примерного устройства или устройства для выполнения способов, описанных выше. Устройство 1000 содержит интерфейс 1002 связи, память 1004 и процессор 1006. Устройство 1000 может, например, содержать вычислительное устройство или сервер. Процессор 1006 может быть сконфигурирован для выполнения этапов способов 200, 500, описанных выше. Таким образом, устройство 1000 может функционировать как устройство-источник или узел-источник 102а. Процессор может быть альтернативно сконфигурирован для выполнения этапов способов 600, 700, 800, 900, описанных выше. Таким образом, устройство 1000 может функционировать как цель или узел-получатель 102b-g (т.е. узел, в котором должны быть реплицированы данные или в котором может быть осуществлена попытка репликации).
[0084] Другой аспект изобретения относится к не-временному машиночитаемому носителю. Фиг. 11 схематично показывает не-временный машиночитаемый носитель 1102 и процессор 1106. Не-временный машиночитаемый носитель 1102 закодирован инструкциями 1104 для исполнения процессором 1106. Не-временный машиночитаемый носитель содержит инструкции для выполнения любого из способов 200, 500, 600, 700, 800 и/или 900, описанных выше.
[0085] Системы и способы, описанные здесь, выполняют быструю репликацию данных с использованием более короткого и поэтому более быстрого протокола. Известные решения, которые включают в себя три различных обмена по протоколу (обнаружения, аутентификации, согласования ключа), как правило, включают в себя больше этапов и поэтому являются более медленными. Например, протокол известного решения может включать в себя 9 этапов.
[0086] По сравнению с протоколом решения по умолчанию, системы и способы, описанные здесь, могут достичь более высокой производительности на основе, по меньшей мере частично, того факта, что различные варианты осуществления внедряют обнаружение, аутентификацию и согласование ключа в один двухэтапный протокол обмена, который является более эффективным. Различные варианты осуществления используют только один обмен по протоколу, и этот один обмен должен быть завершен только сервером, который удовлетворяет широковещательной передаче обнаружения. В различных вариантах осуществления, сетевой узел, выбранный для репликации, аутентифицирует себя устройству-источнику, будучи в состоянии дешифровать сообщение обнаружения, которое отправлено источником. Дешифрование основано на получении секретного ключа от органа сертификации на основе атрибута. В некоторых вариантах осуществления атрибуты узла, выбранного для репликации, не обязательно должны точно совпадать с атрибутами в политике. Например, в примере, где геолокация используется в качестве атрибута в политике, может не требоваться точно согласовывать местоположение с геолокацией, поскольку известно, что точная геолокация затруднительна. Может быть использован нечеткий подход. Например, узел может считаться расположенным в геолокации в политике, если узел находится в пределах 50 километров от определенной геолокации.
[0087] Репликация в мульти-облачной системе, с добавленными другими локальными серверами больницы, может потребовать интеграции между различными типами систем, например, с использованием протоколов безопасности на транспортном уровне (TLS). Такое требование устраняется с помощью различных вариантов осуществления, описанных в настоящем документе. Вновь введенный независимый от платформы протокол, описанный здесь, легко интегрируется с гетерогенными системами (например, мульти-облачными сценариями), поскольку он не опирается на тесную интеграцию между провайдерами вычислений. Различные варианты осуществления основаны только на обмене зашифрованным контентом и одноранговых соединенных узлах (например, VM), не полагаясь на возможные информационные обмены и специфические особенности, развернутые для мульти-облачной системы. Например, фаза обнаружения опирается лишь на отправку зашифрованного сообщения, которое не зависит от платформы.
[0088] Различные варианты осуществления используют процесс обнаружения, который является релевантным для текущей топологии во время запуска протокола, поэтому автоматически учитываются динамические изменения, которые могли произойти в прошлом. Кроме того, различные варианты осуществления позволяют осуществить децентрализованное обнаружение мест (где разрешена репликация данных) без необходимости наличия центрального объекта, который координирует это обнаружение.
[0089] Различные варианты осуществления не обязаны иметь доверительные отношения с облаком или даже возможным мульти-облачным развертыванием, поскольку облачная/мультиоблачная система будет доверительным образом обеспечивать соблюдение всех соглашений об уровне обслуживания (SLA) и использовать для репликации только разрешенные географические области. Кроме того, для аутентификации шифрования на основе атрибута геолокации, нечеткий подход аутентификации может разделять доверительные отношения между различными органами сертификации или полу-доверительными ориентирами (маркировочными знаками), которые выпускают секретные ключи для различных измерений геолокации (например, пинг (тестовый сигнал), транзитные сегменты и т.д.). Как было отмечено выше, доверительные отношения могут быть рассредоточены еще больше за счет использования дат истечения срока действия безопасных туннелей, созданных между источником и узлом репликации. Когда срок действия безопасного туннеля истекает, согласовывается новый ключ. Таким образом, безопасность процесса обнаружения усиливается. Кроме того, истечение срока действия запускает процесс обнаружения, который мог бы выявить лучшие (например, более близкие) узлы репликации.
[0090] Различные варианты осуществления перемещают доверительное отношение от сетки облаков, их решений по обеспечению безопасности, интеграции решений по безопасности, SLA и взаимодействия SLA на доверительное отношение по четкому протоколу. Простота и ясность протокола минимизирует площадь атаки. Это перемещает доверительное отношение на органы сертификации и органы генерации ключей.
[0091] Использование единого органа сертификации, которому полностью доверяют все пользователи, и который надежно контролирует атрибуты пользователя, является разумным в небольших системах. Однако для больших и распределенных систем, таких как соединенная система здравоохранения, это может не являться таковым. Системы генерации ключей с множеством полномочных органов (MA-KGS) были предложены для решения этой проблемы. В этих системах, задача генерации частей пользовательских секретных ключей, относящихся к конкретным атрибутам, выполняется так называемыми органами генерации ключей (KGA). Помимо общесистемного открытого ключа, генерируемого органом сертификации, каждый орган генерации ключа генерирует открытые ключи атрибутов для каждого из его атрибутов. Пользователь запрашивает части секретного ключа от каждого KGA для (поднабора) атрибутов, за которые он несет ответственность. В некоторых системах, пользователь может также сначала запросить пользовательский секретный ключ от органа сертификации. Пользователь интегрирует части секретных ключей, полученные от всех KGA, в один секретный ключ. Таким образом, злонамеренный KGA может выпустить секретные ключи для ограниченного числа атрибутов. Однако если ключевой материал из KGA скомпрометирован, то это по-прежнему представляет риск, так как этот материал может быть объединен с другими пользовательскими секретными ключами, чтобы получить доступ к материалу, который в противном случае был бы недоступен.
[0092] Для снижения риска, что ключевой материал KGA станет скомпрометированным, тем самым снижая уровень доверия к KGA, который необходим, может быть использована система генерации ключей с множеством полномочных органов. В такой системе (изображенной, например, на фиг. 4), пользователь должен получать секретные ключи от нескольких KGA для того, чтобы иметь возможность дешифровать сообщение обнаружения. Эти секретные ключи ассоциированы с различными поднаборами атрибутов геолокации (например, время пинга, число транзитных сегментов, IP-адрес, DNS). Решение безопасной генерации распределенного ключа также может быть с выгодой использовано для обеспечения узлов репликации секретными ключами.
[0093] Различные варианты осуществления могут быть использованы, когда необходима репликация данных и когда эти данные должны быть реплицированы только в разрешенных местоположениях. Способы и системы, описанные здесь, могут быть обобщены только для аутентифицированного обнаружения, так как оно позволяет осуществить согласование ключа путем отправки зашифрованного ключа в место, где требуется реплицировать данные. Шифрование может быть выполнено с использованием атрибутов, которые отличаются от геолокации, и может быть использована нечеткая аутентификация. Различные варианты осуществления не опираются на разработку нового интегрированного решения между провайдерами вычислений (например, облачными провайдерами, сервером больницы), но только на криптографические протоколы, которые независимы от платформы.
[0094] Как было отмечено выше, в соответствии с различными вариантами осуществления, не-временный носитель (например, энергозависимая или энергонезависимая память) может быть закодирована с инструкциями для исполнения процессором (например, микропроцессором или другим аналогичным аппаратным устройством) для выполнения функциональных возможностей, описанных в настоящем документе. Например, такие команды могут соответствовать, по меньшей мере частично, следующему псевдокоду:
[0095] Должно быть очевидно из приведенного выше описания, что различные примерные варианты осуществления изобретения могут быть реализованы в аппаратных средствах или программном обеспечении. Кроме того, различные примерные варианты осуществления могут быть реализованы в виде инструкций, хранящихся на машиночитаемом носителе хранения, которые могут быть считаны и могут исполняться по меньшей мере одним процессором, чтобы выполнять операции, подробно описанные здесь. Машиночитаемый носитель хранения может включать в себя любой механизм для хранения информации в форме, считываемой машиной, такой как персональный или портативный компьютер, сервер или другое вычислительное устройство. Таким образом, машиночитаемый носитель хранения может включать в себя постоянную память (ROM), память с произвольным доступом (RAM), носители хранения на магнитных дисках, оптические носители хранения, устройства флэш-памяти и подобные носители.
[0096] Специалистам в данной области техники должно быть понятно, что любые блок-схемы в данном описании представляют собой концептуальные представления иллюстративных схем, воплощающих принципы изобретения. Кроме того, следует понимать, что любые блок-схемы последовательностей операций, диаграммы потоков, диаграммы перехода состояния, псевдокод и тому подобное представляют различные процессы, которые могут, по существу, быть представлены в машиночитаемом носителе и, таким образом, исполняться компьютером или процессором, независимо от того, показан ли такой компьютер или процессор явным образом.
[0097] Хотя различные примерные варианты осуществления были описаны подробно с конкретной ссылкой на некоторые примерные аспекты, следует понимать, что изобретение допускает другие варианты осуществления, и его детали могут быть модифицированы в различных очевидных отношениях. Как очевидно специалистам в данной области техники, варианты и модификации могут быть осуществлены, оставаясь при этом в пределах сущности и объема настоящего изобретения. Соответственно, вышеприведенное раскрытие, описание и чертежи предназначены только для иллюстративных целей и никоим образом не ограничивают изобретение, которое определяется только пунктами формулы изобретения.