Уровень техники
[0001] Системы распределенных реестров (Distributed ledger system - DLS), которые также могут упоминаться как консенсусные сети и/или блокчейн сети, позволяют участвующим объектам защищенно и неизменно сохранять данные. DLS обычно упоминаются как блокчейн сети независимо от конкретных пользовательских вариантов использования (например, криптовалют). Примерные типы блокчейн сетей могут включать в себя открытые блокчейн сети, закрытые блокчейн сети и консорциальные блокчейн сети. Открытая блокчейн сеть является открытой для всех объектов в том, чтобы использовать DLS и участвовать в консенсусном процессе. Закрытая блокчейн сеть предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись. Консорциальная блокчейн сеть предоставляется для выбранной группы объектов, которые управляют консенсусным процессом, и включает в себя уровень управления доступом.
[0002] Консорциальная блокчейн сеть может описываться как слабо централизованная или многоцентровая, при этом каждый узел консорциальной блокчейн сети управляется участниками консорциума. Таким образом, участники соединяют блокчейн сеть, чтобы формировать консорциум, который имеет идентичный запрос на предоставление услуг, и каждый узел поддерживает операцию с блокчейнами. В консорциальной блокчейн сети, консорциальный блокчейн компонует основу доверия для авторизованных участников консорциума. В отличие от открытой блокчейн сети, в которой вся информация транзакций сохраняется в открытом блокчейне в простом тексте, данные в консорциальной блокчейн сети шифруются и сохраняются в качестве зашифрованного текста в консорциальном блокчейне. Следовательно, консорциальные блокчейн сети требуют функциональности управления ключами для того, чтобы обеспечивать изоляцию конфиденциальности и совместное использование в консорциальной блокчейн сети.
Сущность изобретения
[0003] Реализации настоящего описания изобретения включают в себя выполняемые компьютером способы для управления ключами шифрования в блокчейн сетях. Более конкретно, реализации настоящего описания изобретения направлены на управление асимметричными ключами шифрования в консорциальных блокчейн сетях.
[0004] Реализации настоящего описания изобретения предоставляют управление ключами услуг для консорциальных блокчейн сетей в рамках платформы "блокчейн как услуга" (blockchain-as-a-service - BaaS). В некоторых реализациях, действия включают в себя прием запроса на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы, определение того, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети, предоставление комплекта ключей, включающего в себя зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги, и отправку комплекта ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием открытого ключа, ассоциированного с участником. Другие реализации включают в себя соответствующие системы, оборудование и компьютерные программы, выполненные с возможностью выполнять действия способов, кодированных на компьютерных устройствах хранения данных.
[0005] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: действия дополнительно включают в себя, до приема запроса на ключ услуги от участника, прием идентификационного сертификата от участника; идентификационный сертификат принимается как зашифрованный идентификационный сертификат, и BaaS-платформа дешифрует идентификационный сертификат с использованием открытого ключа участника; действия дополнительно включают в себя шифрование закрытого ключа для ключа услуги с использованием открытого ключа, ассоциированного с участником; ключ услуги формируется с использованием дерева ключей на основе функции извлечения ключа (Key Derivation Function - KDF) в ответ на определение того, что участник авторизован для ключа услуги; ключ услуги отсутствует на BaaS-платформе после отправки комплекта ключей участнику; и участник использует закрытый ключ для ключа услуги для того, чтобы шифровать транзакции с одним или более других участников в консорциальной блокчейн сети.
[0006] Настоящее описание изобретения также предоставляет один или более энергонезависимых считываемых компьютером носителей хранения данных, соединенных с одним или более процессоров и имеющих сохраненные инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0007] Настоящее описание изобретения дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и считываемый компьютером носитель хранения данных, соединенный с одним или более процессоров, имеющий сохраненные инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют одному или более процессоров выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0008] Следует принимать во внимание, что способы в соответствии с настоящим описанием изобретения могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с настоящим описанием изобретения не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.
[0009] Подробности одной или более реализаций настоящего описания изобретения изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества настоящего описания изобретения должны становиться очевидными из описания и чертежей, а также из формулы изобретения.
Описание чертежей
[0010] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего описания изобретения.
[0011] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего описания изобретения.
[0012] Фиг. 3A иллюстрирует примерную архитектуру модулей в соответствии с реализациями настоящего описания изобретения.
[0013] Фиг. 3B иллюстрирует примерную блок-схему последовательности операций способа в соответствии с реализациями настоящего описания изобретения.
[0014] Фиг. 4 иллюстрирует примерный процесс, который может выполняться в соответствии с реализациями настоящего описания изобретения.
[0015] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.
Подробное описание изобретения
[0016] Реализации настоящего описания изобретения включают в себя выполняемые компьютером способы для управления ключами шифрования в блокчейн сетях. Более конкретно, реализации настоящего описания изобретения направлены на управление ключами услуг, предоставленными в качестве асимметричных ключей шифрования в консорциальных блокчейн сетях.
[0017] Реализации настоящего описания изобретения предоставляют управление ключами услуг для консорциальных блокчейн сетей в рамках платформы "блокчейн как услуга" (BaaS). В некоторых реализациях, действия включают в себя прием запроса на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы, определение того, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети, предоставление комплекта ключей, включающего в себя зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги, и отправку комплекта ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием открытого ключа, ассоциированного с участником.
[0018] Чтобы предоставлять дополнительный контекст для реализаций настоящего описания изобретения, и как представлено выше, системы распределенных реестров (DLS), которые также могут упоминаться как консенсусные сети (например, состоящие из одноранговых узлов) и блокчейн сети, позволяют участвующим объектам защищенно и неизменно проводить транзакции и сохранять данные. Хотя термин "блокчейн", в общем, ассоциирован с криптовалютной сетью биткоинов, блокчейн используется в данном документе, чтобы, в общем, означать DLS независимо от конкретных вариантов использования. Как представлено выше, блокчейн сеть может предоставляться в качестве открытой блокчейн сети, закрытой блокчейн сети или консорциальной блокчейн сети.
[0019] В открытой блокчейн сети, консенсусный процесс управляется посредством узлов консенсусной сети. Например, сотни, тысячи, даже миллионы объектов могут взаимодействовать в открытой блокчейн сети, каждый из которых управляет, по меньшей мере, одним узлом в открытой блокчейн сети. Соответственно, открытая блокчейн сеть может считаться открытой сетью относительно участвующих объектов. В некоторых примерах, большинство объектов (узлов) должны подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн (распределенный реестр) блокчейн сети. Примерная открытая блокчейн сеть включает в себя сеть биткоинов, которая представляет собой одноранговую платежную сеть. Сеть биткоинов использует распределенный реестр, называемый "блокчейн". Тем не менее, как отмечено выше, термин "блокчейн" используется для того, чтобы, в общем, означать распределенные реестры без конкретной ссылки на сеть биткоинов.
[0020] В общем, открытая блокчейн сеть поддерживает открытые транзакции. Открытая транзакция совместно используется со всеми узлами в открытой блокчейн сети и сохраняется в глобальном блокчейне. Глобальный блокчейн представляет собой блокчейн, который реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно глобального блокчейна. Чтобы достигать консенсуса (например, соглашения с добавлением блока в блокчейн), консенсусный протокол реализуется в открытой блокчейн сети. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (proof-of-work - POW), реализованное в сети биткоинов.
[0021] В общем, закрытая блокчейн сеть предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись. Объект управляет тем, какие узлы имеют возможность участвовать в блокчейн сети. Следовательно, закрытые блокчейн сети, в общем, упоминаются в качестве сетей с контролируемым доступом, которые устанавливают ограничения касательно того, кому разрешается участвовать в сети, и касательно их уровня участия (например, только в определенных транзакциях). Различные типы механизмов управления доступом могут использоваться (например, существующие участники голосуют по добавлению новых объектов, контролирующий орган может управлять допуском).
[0022] В общем, консорциальная блокчейн сеть является закрытой между участвующими объектами. В консорциальной блокчейн сети, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего объекта (например, финансового учреждения, страховой компании). Например, консорциум из десяти (10) объектов (например, финансовых учреждений, страховых компаний) может управлять консорциальной блокчейн сетью, каждый из которых управляет, по меньшей мере, одним узлом в консорциальной блокчейн сети. Соответственно, консорциальная блокчейн сеть может считаться закрытой сетью относительно участвующих объектов. В некоторых примерах, каждый объект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн. В некоторых примерах, по меньшей мере, поднабор объектов (узлов) (например, по меньшей мере, 7 объектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн.
[0023] Реализации настоящего описания изобретения подробнее описываются в данном документе со ссылкой на консорциальную блокчейн сеть, которая является частично открытой для участвующих объектов. Тем не менее, предполагается, что реализации настоящего описания изобретения могут быть реализованы в любом соответствующем типе блокчейн сети.
[0024] Чтобы предоставлять контекст для реализаций настоящего описания изобретения, и как представлено выше, консорциальная блокчейн сеть может считаться слабо централизованной или многоцентровой, поскольку каждый узел консорциальной блокчейн сети управляется участником консорциума. Например, участники (например, организации) формируют консорциум, который участвует в консорциальной блокчейн сети, в которой используется идентичный тип(ы) запросов на предоставление услуг, и каждый узел поддерживает операцию блокчейна. В консорциальной блокчейн сети, блокчейн компонует основу доверия для авторизованных участников консорциума. Это отличается от открытой блокчейн сети, например, в которой вся информация транзакций сохраняется в открытом блокчейне в простом тексте и является прозрачной для всех участников. В консорциальной блокчейн сети, данные шифруются в качестве зашифрованного текста и сохраняются в блокчейне.
[0025] Соответственно, консорциальные блокчейн сети используют функциональность управления ключами для того, чтобы обеспечивать изоляцию конфиденциальности (например, изоляцию данных от других участников консорциальной блокчейн сети) и совместное использование между участниками. Таким образом, чтобы обеспечивать шифрование в консорциальной блокчейн сети, ключи шифрования используются участниками. Например, каждый участник имеет закрытый ключ, пару открытых ключей (пару закрытого/открытого ключа), которые используются для того, чтобы шифровать/дешифровать данные и верифицировать транзакции. Например, открытый ключ участника может использоваться для того, чтобы верифицировать то, что данные транзакции исходят с участником. С учетом этого, функциональность управления ключами реализуется в консорциальной блокчейн сети, чтобы обеспечивать изоляцию конфиденциальности и совместное использование в консорциальной блокчейн сети.
[0026] В некоторых реализациях, пары ключей шифрования, используемые для шифрования транзакций в консорциальной блокчейн сети, могут упоминаться как ключи услуг (т.е. как пара закрытого/открытого ключа). В некоторых примерах, ключи услуг извлекаются в единицах типов услуг. Каждый ключ услуги имеет различного участника, и участник может иметь несколько ключей услуг в консорциальной блокчейн сети. Например, ключи услуг могут соответствовать транзакциям между участниками в консорциальной блокчейн сети. В качестве неограничивающего примера, первый участник и второй участник могут иметь соответствующие ключи услуг, которые обеспечивают возможность проведения закрытых транзакций между первым участником и вторым участником в консорциальной блокчейн сети. Первый участник и третий участник могут иметь соответствующие ключи услуг, которые обеспечивают возможность проведения закрытых транзакций между первым участником и третьим участником в консорциальной блокчейн сети. В этом примере, первый участник имеет набор ключей услуг, один для транзакций со вторым участником, и другой для транзакции с третьим участником.
[0027] Чтобы предоставлять дополнительный контекст, организации могут предоставлять блокчейн сети от имени пользователей. Например, организации могут предоставлять модели "блокчейн как услуга" (BaaS), через которые могут устанавливаться несколько различных блокчейн сетей. В качестве неограничивающего примера, организация может предоставлять BaaS-платформу, и первый консорциум участников может участвовать в первой консорциальной блокчейн сети в рамках BaaS-платформы, и второй консорциум участников может участвовать во второй консорциальной блокчейн сети в рамках BaaS-платформы. В общем, организация, работающая на BaaS-платформе, предоставляет инфраструктурные и административные услуги, в числе множества других услуг.
[0028] Каждый участник консорциальной блокчейн сети, размещенной на BaaS-платформе, предоставляет доказательство идентичности на BaaS-платформу. Например, каждый участник предоставляет идентификационный сертификат на BaaS-платформу. В некоторых примерах, идентификационный сертификат обеспечивают связь с использованием протокола обеспечения безопасности. Примерные протоколы обеспечения безопасности включают в себя, без ограничения, протокол безопасности транспортного уровня (TLS) и уровень защищенных сокетов (SSL). Например, OpenSSL может использоваться для того, чтобы формировать идентификационный сертификат (SSL-сертификат) для защищенной связи между участником и BaaS-платформой (например, BaaS-сервером). BaaS-платформа использует идентификационный сертификат для того, чтобы подтверждать идентичность источника связи.
[0029] При инициализации консорциальной блокчейн сети, BaaS-платформа должна обеспечивать то, что администраторы и участники каждой консорциальной блокчейн сети могут конфигурировать и получать ключи услуг просто и защищенно. Несколько технологий распределения ключей могут использоваться администратором для того, чтобы передавать ключи участникам. Примерные технологии распределения ключей могут включать в себя, без ограничения, обмен ключами Диффи-Хеллмана и оффлайновое распределение ключей. Обмен ключами Диффи-Хеллмана представляет собой криптографическую технологию, которая реализует обмен ключами в окружении с ненадежным каналом. Ключ на базе оффлайнового распределения ключей отсоединяет консорциальную блокчейн сеть посредством отправки ключей обозначенным получателям посредством почты или других каналов.
[0030] Хотя традиционные технологии распределения ключей являются эффективными для передачи одиночных ключей, такие технологии являются нежелательными в случае нескольких ключей услуг в консорциальной блокчейн сети. Это, в частности, имеет место, поскольку каждый ключ услуги может иметь различные комбинации участников. Дополнительно, в традиционных технологиях, ключи услуг должны сохраняться в централизованной базе данных, что повышает общий системный риск. Кроме того, традиционные технологии распределения ключей сильно зависят от безопасности каналов. Если распределение ключей выполняется в открытом окружении, например, нетрудно допускать утечку ключей и подвергать систему риску.
[0031] С учетом вышеизложенного контекста, реализации настоящего описания изобретения направлены на управление асимметричными ключами шифрования (ключами услуг) в консорциальных блокчейн сетях. В некоторых реализациях, и как подробнее описано в данном документе, BaaS-платформа извлекает ключи услуг с использованием технологии извлечения асимметричного ключа. Тем не менее, BaaS-платформа не сохраняет ключи услуг. В соответствии с реализациями настоящего описания изобретения, администратор консорциальной блокчейн сети может авторизовать участников согласно различным ключам услуг через BaaS-платформу. В некоторых реализациях, ключ услуги шифруется с использованием открытого ключа, содержащегося в идентификационном сертификате соответствующего участника (например, в идентификационном сертификате участника в консорциальной блокчейн сети, выгруженной на BaaS-платформу). Таким образом, обеспечивается то, что только обозначенный участник может дешифровать закрытый ключ для ключа услуги (как отмечено выше, ключ услуги предоставляется в качестве пары закрытого/открытого ключа).
[0032] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего описания изобретения. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в консорциальной блокчейн сети 102. Примерное окружение 100 включает в себя вычислительные системы 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.
[0033] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в консорциальной блокчейн сети 102. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают одну или более выполняемых компьютером услуг для взаимодействия с консорциальной блокчейн сетью 102. Например, вычислительная система 106 может размещать выполняемые компьютером услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может размещать выполняемые компьютером услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, консорциальная блокчейн сеть 102 представляется как одноранговая сеть узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта, соответственно, которые участвуют в консорциальной блокчейн сети 102.
[0034] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего описания изобретения. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления размещенных услуг и уровень 206 блокчейн сети. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект _1 (E1), объект _2 (E2) и объект _3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.
[0035] В проиллюстрированном примере, уровень 204 предоставления размещенных услуг включает в себя интерфейсы 210 для каждой системы 210 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 по сети (например, по сети 110 по фиг. 1) с использованием протокола (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 блокчейн сети. Более конкретно, интерфейс 210 обменивается данными с блокчейн сетью 212 уровня 206 блокчейн сети. В некоторых примерах, связь между интерфейсом 210 и уровнем 206 блокчейн сети проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 "размещают" узлы блокчейн сети для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 предоставляют интерфейс прикладного программирования (API) для доступа к блокчейн сети 212.
[0036] Как описано в данном документе, блокчейн сеть 212 предоставляется в качестве одноранговой сети, включающей в себя множество узлов 214, которые неизменно записывают информацию в блокчейн 216. Хотя один блокчейн 216 схематично проиллюстрирована, несколько копий блокчейна 216 предоставляются и поддерживаются через блокчейн сеть 212. Например, каждый узел 214 сохраняет копию блокчейна. В некоторых реализациях, блокчейн 216 сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более объектов, участвующих в консорциальной блокчейн сети.
[0037] Как представлено выше, реализации настоящего описания изобретения направлены на управление асимметричными ключами шифрования в консорциальных блокчейн сетях. В некоторых реализациях, дерево ключей на основе функции извлечения ключа (KDF) используется администратором для того, чтобы формировать ключи услуг для участников консорциальной блокчейн сети. Как описано в данном документе, администратор не сохраняет ключи услуг. Вместо этого, администратор поддерживает таблицу данных, которая задает доступ каждого из участников к соответствующим ключам услуг. Если продолжать с вышеприведенным примером, консорциальная блокчейн сеть может обеспечивать возможность проведения закрытых транзакций между первым участником и вторым участником и первым участником и третьим участником. Соответственно, и в этом примере, таблица данных указывает то, что первый участник имеет привилегии доступа для транзакций со вторым участником и третьим участником, то, что второй участник имеет привилегии доступа для транзакций с первым участником, и то, что третий участник имеет привилегии доступа для транзакций с первым участником.
[0038] Когда участник отправляет запрос на ключ услуги (например, на BaaS-платформу), права доступа участника верифицируются на основе таблицы данных, ключ услуги создается посредством BaaS-платформы и предоставляется участнику. Если продолжать с вышеприведенным примером, первый участник может запрашивать ключ услуги для защищенных транзакций со вторым участником. BaaS-платформа может обращаться к таблице данных, чтобы определять то, что первый участник имеет права доступа для защищенных транзакций со вторым участником, и в ответ, может формировать ключ услуги (пару закрытого/открытого ключа), шифровать, по меньшей мере, часть ключа услуги (например, шифровать закрытый ключ) и отправлять ключ услуги первому участнику. Тем не менее, ключ услуги не сохраняется на BaaS-платформе.
[0039] Как описано в данном документе, реализации настоящего описания изобретения комбинируют шифрование ключа услуги с идентификационным сертификатом участника в консорциальной блокчейн сети на BaaS-платформе. Таким образом, ключ услуги шифруется с использованием открытого ключа, ассоциированного с идентификационным сертификатом, и только участник может дешифровать (с использованием закрытого ключа, используемого для идентификационного сертификата) и получать незашифрованный ключ услуги.
[0040] Подробнее, идентификационный сертификат участника ассоциирован с закрытым (секретным) ключом () и открытым ключом (). Участник сохраняет закрытый ключ (), и он не используется совместно. Открытый ключ () совместно используется с BaaS-платформой. Ключ услуги, сформированный посредством BaaS-платформы для участника , включает в себя закрытый ключ () и открытый ключ (). В соответствии с реализациями настоящего описания изобретения, BaaS-платформа создает комплект ключей услуг (пакет данных), который отправляется участнику. В некоторых примерах, BaaS-платформа шифрует закрытый ключ для ключа услуги с использованием открытого ключа участника (например, ) и предоставляет комплект ключей в качестве открытого ключа для ключа услуги и зашифрованного закрытого ключа для ключа услуги (например, [, ]). Участник принимает комплект ключей и дешифрует закрытый ключ () с использованием закрытого ключа (). Таким образом, участник получает ключ услуги для проведения транзакций в консорциальной блокчейн сети.
[0041] Фиг. 3A иллюстрирует примерную архитектуру 300 в соответствии с реализациями настоящего описания изобретения. Примерная архитектура 300 включает в себя BaaS-сервер 302 и клиенты 304. Клиенты 304 ассоциированы с соответствующим участником консорциальной блокчейн сети, предоставленной в рамках BaaS-платформы.
В некоторых реализациях, BaaS-сервер 302 включает в себя модуль 306 управления участниками, модуль 308 авторизации по ключам и модуль 310 вычисления ключей.
[0042] В некоторых примерах, модуль 306 управления участниками управляет участниками каждой консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы. Например, модуль 306 управления участниками сохраняет идентификационный сертификат и соответствующие открытые ключи для каждого участника в консорциальной блокчейн сети. В некоторых примерах, модуль 308 авторизации по ключам обрабатывает запросы на ключи услуг от участников, чтобы определять то, авторизованы или нет участники для запрашиваемых ключей услуг. В некоторых примерах, модуль 310 вычисления ключей формирует ключи услуг с использованием дерева KDF-ключей для соответствующих участников.
[0043] В целях иллюстрации, в дальнейшем описывается примерный запрос на предоставление ключа услуги из клиента 304 (клиента A) со ссылкой на фиг. 3A и 3B.
[0044] Фиг. 3B иллюстрирует примерную блок-схему 320 последовательности операций способа в соответствии с реализациями настоящего описания изобретения. Примерная блок-схема 320 последовательности операций способа включает в себя клиент 304 (первого участника (участника 1)) и BaaS-сервер 302. Клиент 304 управляется посредством или от имени первого участника в консорциальной блокчейн сети, предоставленной посредством BaaS-платформы. BaaS-сервер 302 предоставляет административную функциональность в рамках BaaS-платформы, как описано в данном документе.
[0045] В некоторых реализациях, и как описано в данном документе, несколько участников используют BaaS-платформу для того, чтобы, чтобы устанавливать консорциальную блокчейн сеть в рамках BaaS-платформы, включающей в себя участника, ассоциированного с клиентом 304. В качестве части установления консорциальной блокчейн сети, участники принимают приглашения от администратора (например, из BaaS-сервера 302) на то, чтобы выгружать соответствующие идентификационные сертификаты на BaaS-платформу.
[0046] В примере фиг. 3A и 3B, клиент 304 шифрует свой идентификационный сертификат с использованием своего открытого ключа и выгружает зашифрованный идентификационный сертификат (например, []) на BaaS-сервер 302. BaaS-сервер 302 дешифрует идентификационный сертификат с использованием соответствующего открытого ключа () и подтверждает идентичность участника. BaaS-сервер 302 конфигурирует разрешения на использование ключей услуг (привилегии доступа) в консорциальной блокчейн сети. Например, и если продолжать с вышеприведенным примером, BaaS-платформа 302 может записывать в таблицу данных то, что первому участнику разрешается проводить закрытые транзакции с каждым из второго участника и третьего участника, соответственно.
[0047] Клиент 304 отправляет запрос на предоставление ключа услуги на BaaS-сервер 302. В проиллюстрированном примере, клиент 304 отправляет запрос на предоставление ключа услуги для ключа услуги для того, чтобы шифровать транзакции между первым участником и вторым участником (например, ). В ответ на запрос, BaaS-сервер 302 проверяет права доступа первого участника (например, с использованием таблицы данных) и подтверждает то, что первый участник авторизован для закрытых транзакций со вторым участником. В ответ, BaaS-сервер 302 вычисляет соответствующий ключ услуги с использованием дерева KDF-ключей.
[0048] BaaS-сервер 302 предоставляет комплект ключей, чтобы передавать ключ услуги в клиент 304. Как описано в данном документе, BaaS-сервер 302 использует открытый ключ первого участника, ассоциированный с идентификационным сертификатом (например, ), чтобы шифровать закрытый ключ для ключа услуги (например, ). Комплект ключей включает в себя открытый ключ для ключа услуги и зашифрованный закрытый ключ для ключа услуги (например, []). BaaS-сервер 302 отправляет блок данных в клиент 304. Клиент 304 дешифрует зашифрованный закрытый ключ для ключа услуги с использованием закрытого ключа, ассоциированного с идентификационным сертификатом первого участника (например, ).
[0049] По меньшей мере, часть примерной блок-схемы 320 последовательности операций способа повторяется каждый раз, когда первый участник требует нового ключа услуги. Например, чтобы проводить транзакции с третьим участником, первый участник отправляет другой запрос на предоставление ключа услуги для ключа услуги для того, чтобы шифровать транзакции между первым участником и вторым участником (например, ). В ответ, BaaS-услуга 302 может предоставлять другой ключ услуги первому участнику, чтобы обеспечивать возможность первому участнику защищенно обмениваться данными с третьим участником в консорциальной блокчейн сети. Следовательно, первый участник поддерживает, по меньшей мере, два набора ключей услуг (например, ключ услуги для транзакций со вторым участником и ключ услуги для транзакций с третьим участником), в то время как BaaS-платформа не сохраняет ключей услуг.
[0050] Фиг. 4 иллюстрирует примерный процесс 400, который может выполняться в соответствии с реализациями настоящего описания изобретения. В некоторых реализациях, примерный процесс 400 может выполняться с использованием одной или более выполняемых компьютером программ, выполняемых с использованием одного или более вычислительных устройств.
[0051] Идентификационные сертификаты участников запрашиваются (402). Например, в качестве части установления консорциальной блокчейн сети в рамках BaaS-платформы, BaaS-сервер отправляет запросы на идентификационные сертификаты каждому участнику консорциальной блокчейн сети. Идентификационные сертификаты участников принимаются (404). Например, в ответ на запрос на идентификационный сертификат, каждый участник отправляет идентификационный сертификат (например, зашифрованный с использованием закрытого ключа участника) на BaaS-сервер, и BaaS-сервер дешифрует идентификационный сертификат с использованием открытого ключа участника.
[0052] Привилегии доступа соответствующих участников записываются (406). Например, для каждого участника, один или более типов услуг записываются в таблице авторизации на получение услуг (таблице данных) посредством BaaS-сервера. Если продолжать с вышеприведенным примером для первого, второго, третьего участника, таблица авторизации на получение услуг может записывать то, что первый участник имеет возможность проводить защищенные транзакции со вторым участником и третьим участником, отдельно то, что второй участник имеет возможность проводить защищенные транзакции с первым участником, и то, что третий участник имеет возможность проводить защищенные транзакции с первым участником.
[0053] Запрос на предоставление ключа услуги принимается (408). Например, чтобы иметь возможность проводить защищенную транзакцию в консорциальной блокчейн сети, участник должен сначала запрашивать соответствующий ключ услуги. Например, для проведения защищенных транзакций первым участником со вторым участником (или третьим участником), первый участник отправляет соответствующий запрос на предоставление ключа услуги на BaaS-платформу. Определяется то, авторизован или нет участник для запрашиваемого ключа услуги (410). Например, BaaS-сервер обращается к таблице авторизации на получение услуг, чтобы определять то, авторизован или нет участник, который отправляет запрос, для услуги. Если участник авторизован для запрашиваемого ключа услуги, ошибка отправляется (412).
[0054] Если участник авторизован для запрашиваемого ключа услуги, ключ услуги формируется (414). Например, BaaS-сервер формирует ключ услуги (пару закрытого/открытого ключа) с использованием дерева KDF-ключей. Комплект ключей предоставляется (416). Например, BaaS-сервер шифрует закрытый ключ для ключа услуги с использованием открытого ключа участника и создает комплект ключей услуг, который включает в себя открытый ключ для ключа услуги и зашифрованный закрытый ключ. Комплект ключей услуг отправляется в (418). BaaS-сервер отправляет комплект ключей услуг участнику. Как описано в данном документе, участник дешифрует зашифрованный закрытый ключ для ключа услуги с использованием закрытого ключа участника.
[0055] Описанные признаки могут реализовываться в цифровой электронной схеме или в компьютерных аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинациях вышеозначенного. Оборудование может реализовываться в компьютерном программном продукте, материально осуществленном на носителе информации (например, на машиночитаемом устройстве хранения данных) для выполнения посредством программируемого процессора; и этапы способа могут выполняться посредством программируемого процессора, выполняющего программу инструкций, чтобы выполнять функции описанных реализаций посредством обработки входных данных и формирования вывода. Описанные признаки могут быть реализованы преимущественно в одной или более компьютерных программ, которые выполняются в программируемой системе, включающей в себя, по меньшей мере, один программируемый процессор, соединенный с возможностью принимать данные и инструкции и передавать данные и инструкции в систему хранения данных, по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Компьютерная программа представляет собой набор инструкций, которые могут использоваться, прямо или косвенно, в компьютере, чтобы выполнять определенную активность или обеспечивать определенный результат. Компьютерная программа может быть написана на любой форме языка программирования, включающей в себя компилированные или интерпретируемые языки, и она может развертываться в любой форме, в том числе в качестве автономной программы или в качестве модуля, компонента, вложенной процедуры или другого блока, подходящего для использования в вычислительном окружении.
[0056] Подходящие процессоры для выполнения программы инструкций включают в себя, в качестве примера, микропроцессоры общего и специального назначения и единственный процессор либо один из нескольких процессоров любого вида компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Элементы компьютера могут включать в себя процессор для выполнения инструкций и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также может включать в себя или функционально соединяться с возможностью обмениваться данными с одним или более устройств хранения данных большой емкости для сохранения файлов данных; такие устройства включают в себя магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и оптические диски. Устройства хранения данных, подходящие для материального осуществления компьютерных программных инструкций и данных, включают в себя все формы энергонезависимого запоминающего устройства, включающие в себя в качестве примера полупроводниковые запоминающие устройства, таки как EPROM, EEPROM и устройства флэш-памяти; магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и CD-ROM- и DVD-ROM-диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в специализированные интегральные схемы (ASIC).
[0057] Чтобы предоставлять взаимодействие с пользователем, признаки могут реализовываться на компьютере, имеющем устройство отображения, такое как монитор на электронно-лучевой трубке (CRT) или жидкокристаллический дисплей (ЖК-дисплей) для отображения информации пользователю, и клавиатуру и указательное устройство, такое как мышь или шаровой манипулятор, посредством которого пользователь может предоставлять ввод в компьютер.
[0058] Признаки могут реализовываться в компьютерной системе, которая включает в себя внутренний интерфейсный компонент, такой как сервер данных, либо которая включает в себя промежуточный программный компонент, такой как сервер приложений или Интернет-сервер, либо которая включает в себя внешний интерфейсный компонент, такой как клиентский компьютер, имеющий графический пользовательский интерфейс или Интернет-браузер, либо любую их комбинацию. Компоненты системы могут соединяться посредством любой формы или среды цифровой передачи данных, такой как сеть связи. Примеры сетей связи включают в себя, например, локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN) и компьютеры и сети, формирующие Интернет.
[0059] Компьютерная система может включать в себя клиенты и серверы. Клиент и сервер, в общем, являются удаленными друг от друга и типично взаимодействуют через сеть, к примеру, через описанную сеть. Взаимосвязь клиента и сервера осуществляется на основе компьютерных программ, работающих на соответствующих компьютерах и имеющих клиент-серверную взаимосвязь друг с другом.
[0060] Помимо этого, логические последовательности операций, проиллюстрированные на чертежах, не требуют показанного конкретного порядка или последовательного порядка для того, чтобы достигать требуемых результатов. Помимо этого, другие этапы могут предоставляться, или этапы могут исключаться из описанных последовательностей операций, и другие компоненты могут добавляться или удаляться из описанных систем. Соответственно, эти и другие реализации находятся в пределах объема прилагаемой формулы изобретения.
[0061] Выше описывается определенное число реализаций настоящего описания изобретения. Тем не менее, следует понимать, что различные модификации могут вноситься без отступления от сущности и объема настоящего описания изобретения. Соответственно, эти и другие реализации находятся в пределах объема прилагаемой формулы изобретения.
Изобретение относится к области управления асимметричными ключами шифрования в консорциальных блокчейн сетях в рамках платформы "блокчейн как услуга" (BaaS). Техническим результатом является то, что только обозначенный участник может дешифровать закрытый ключ для ключа услуги. Технический результат заявляемого технического решения достигается тем, что в заявленном решении предусмотрены этапы, на которых принимают запрос на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы, определяют то, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети, предоставляют комплект ключей, включающий в себя зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги, и отправляют комплект ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием закрытого ключа, ассоциированного с участником. 3 н. и 18 з.п. ф-лы, 5 ил.
1. Выполняемый компьютером способ для управления ключами услуг для консорциальных блокчейн сетей в рамках платформы "блокчейн как услуга" (BaaS), при этом способ содержит этапы, на которых:
принимают запрос на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы;
определяют то, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети;
предоставляют комплект ключей, содержащий зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги; и
отправляют комплект ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием закрытого ключа, ассоциированного с участником.
2. Способ по п. 1, дополнительно содержащий, до приема запроса на ключ услуги от участника, этап, на котором принимают идентификационный сертификат от участника.
3. Способ по п. 2, в котором идентификационный сертификат принимается как зашифрованный идентификационный сертификат и BaaS-платформа дешифрует идентификационный сертификат с использованием открытого ключа участника.
4. Способ по п. 1, дополнительно содержащий этап, на котором шифруют закрытый ключ для ключа услуги с использованием открытого ключа, ассоциированного с участником.
5. Способ по п. 1, в котором ключ услуги формируется с использованием дерева ключей на основе функции извлечения ключа (KDF) в ответ на определение того, что участник авторизован для ключа услуги.
6. Способ по п. 1, в котором ключ услуги отсутствует на BaaS-платформе после отправки комплекта ключей участнику.
7. Способ по п. 1, в котором участник использует закрытый ключ для ключа услуги для того, чтобы шифровать транзакции с одним или более других участников в консорциальной блокчейн сети.
8. Считываемый компьютером носитель хранения данных, кодированный с помощью инструкций, которые, при выполнении посредством одного или более компьютеров, инструктируют упомянутым одному или более компьютерам выполнять операции для управления ключами услуг для консорциальных блокчейн сетей в рамках платформы "блокчейн как услуга" (BaaS), причем операции содержат:
прием запроса на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы;
определение того, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети;
предоставление комплекта ключей, содержащего зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги; и
отправку комплекта ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием закрытого ключа, ассоциированного с участником.
9. Считываемый компьютером носитель хранения данных по п. 8, в котором операции дополнительно содержат, до приема запроса на ключ услуги от участника, прием идентификационного сертификата от участника.
10. Считываемый компьютером носитель хранения данных по п. 9, в котором идентификационный сертификат принимается как зашифрованный идентификационный сертификат и BaaS-платформа дешифрует идентификационный сертификат с использованием открытого ключа участника.
11. Считываемый компьютером носитель хранения данных по п. 8, в котором операции дополнительно содержат шифрование закрытого ключа для ключа услуги с использованием открытого ключа, ассоциированного с участником.
12. Считываемый компьютером носитель хранения данных по п. 8, в котором ключ услуги формируется с использованием дерева ключей на основе функции извлечения ключа (KDF) в ответ на определение того, что участник авторизован для ключа услуги.
13. Считываемый компьютером носитель хранения данных по п. 8, в котором ключ услуги отсутствует на BaaS-платформе после отправки комплекта ключей участнику.
14. Считываемый компьютером носитель хранения данных по п. 8, в котором участник использует закрытый ключ для ключа услуги для того, чтобы шифровать транзакции с одним или более других участников в консорциальной блокчейн сети.
15. Система для управления ключами услуг для консорциальных блокчейн сетей, содержащая:
один или более компьютеров; и
одно или более считываемых компьютером запоминающих устройств, соединенных с одним или более компьютеров и сконфигурированных с помощью инструкций, выполняемых посредством упомянутых одного или более компьютеров с возможностью:
принимать запрос на ключ услуги от участника в консорциальной блокчейн сети, инициализированной в рамках BaaS-платформы;
определять то, что участник авторизован для ключа услуги, на основе таблицы авторизации на получение услуг, которая записывает привилегии участников в консорциальной блокчейн сети;
предоставлять комплект ключей, содержащий зашифрованный закрытый ключ для ключа услуги и открытый ключ для ключа услуги; и
отправлять комплект ключей участнику, причем участник дешифрует закрытый ключ для ключа услуги с использованием закрытого ключа, ассоциированного с участником.
16. Система по п. 15, в которой одно или более считываемых компьютером запоминающих устройств сконфигурированы с помощью дополнительных инструкций, выполняемых посредством упомянутых одного или более компьютеров с возможностью, до приема запроса на ключ услуги от участника, принимать идентификационный сертификат от участника.
17. Система по п. 16, в которой идентификационный сертификат принимается как зашифрованный идентификационный сертификат и BaaS-платформа дешифрует идентификационный сертификат с использованием открытого ключа участника.
18. Система по п. 15, в которой одно или более считываемых компьютером запоминающих устройств сконфигурированы с помощью дополнительных инструкций, выполняемых посредством упомянутых одного или более компьютеров с возможностью шифровать закрытый ключ для ключа услуги с использованием открытого ключа, ассоциированного с участником.
19. Система по п. 15, в которой ключ услуги формируется с использованием дерева ключей на основе функции извлечения ключа (KDF) в ответ на определение того, что участник авторизован для ключа услуги.
20. Система по п. 15, в которой ключ услуги отсутствует на BaaS-платформе после отправки комплекта ключей участнику.
21. Система по п. 15, в которой участник использует закрытый ключ для ключа услуги для того, чтобы шифровать транзакции с одним или более других участников в консорциальной блокчейн сети.
OMAR DIB et al.: "Consortium Blockchains: Overview, Applications and Challenges", International Journal on Advances in Telecommunications, vol 11, September 2018 | |||
US 2018176228 A1, 21.06.2018 | |||
US 2008101615 A1, 01.08.2008 | |||
ABELARDO ARREDONDO: "Blockchain and Certificate Authority Cryptography for an Asynchronous On-Line Public Notary System", The |
Авторы
Даты
2020-09-29—Публикация
2018-11-27—Подача