СИСТЕМЫ И СПОСОБЫ УПРАВЛЕНИЯ ДОСТУПОМ К ЗАЩИЩЕННЫМ ДАННЫМ
SYSTEMS AND METHODS TO CONTROL ACCESS TO SECURE DATA

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[001] О цепочке блоков можно думать как о конечном автомате, который имеет состояние (например, разрешения или баланс участников цепочки блоков) и правила, а также разрешения для изменения этого состояния (например, обмен маркера для изменения баланса) в соответствии с умным контрактом. Разрешения и умный контракт могут быть связаны с чем-то, существующим в реальном мире, например, балансом банковского счета или местоположением контейнера для перевозок. Данные, хранимые в цепочке блоков, являются публичными и защищены от взлома, поскольку их нельзя изменить за исключением соответствия правилам умного контракта, которые навязываются множеством участников.
ИЗВЕСТНЫЙ УРОВЕНЬ ТЕХНИКИ
[002] Заявителю какие-либо аналоги не известны.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[003] Одна проблема, связанная с цепочкой блоков, заключается в хранении секретных данных, в частности, среди множества сторон, таким образом, чтобы не нарушать распределенные гарантии безопасности цепочки блоков. Система управления доступом к защищенным документам (SEDACS) может хранить секретные данные с помощью распределенных компонентов, включая хранилище секретов, цепочку блоков (доказательство выполнения работы или доказательство полномочий) и контентно-адресуемое хранилище. Цепочка блоков хранит метаданные, правила и разрешения для каждого секретного документа; секреты, используемые для доступа к документам, распределяются среди серверов ключей, которые образуют хранилище секретов; и документы хранятся в зашифрованном виде в распределенном контентно-адресуемом хранилище. Устройства проверки достоверности (сопровождающие цепочки блоков) обеспечивают выполнение правил и разрешений и записывают транзакции, связанные с хранением, осуществлением доступа и извлечением секретных документов. Дополнительные подробности по обеспечению выполнения правил и разрешений, а также записи транзакций представлены в статье Gavin Wood, «Ethereum: A Secure Decentralised Generalised Transaction Ledger», доступной по адресу gavwood.com/paper.pdf.
[004] Пользователь сохраняет секретные данные посредством того, что сначала запрашивает у одного из серверов ключей хранилища секретов сгенерировать новый секрет, который представляет собой ключ, используемый для шифрования секретных данных. Секрет хранится распределенным образом посредством хранилища секретов. Уполномоченный субъект проверяет цепочку блоков чтобы увидеть, имеет ли пользователь разрешение на сохранение нового секрета. Если да, то уполномоченный субъект вызывает метод в умном контракте для сохранения нового секрета. Например, серверы ключей могут зашифровать свои части секрета и подтверждать, что они хранят распределенный секрет, путем отправки транзакций в цепочку блоков. Транзакции создают журнал контроля действий пользователя в цепочке блоков. Если пользователь извлекает секретные данные, уполномоченные субъекты могут отправить свои соответствующие зашифрованные части секретных данных пользователю с открытыми ключами для расшифровки с помощью соответствующих закрытых ключей пользователя.
[005] Поскольку данные в цепочке блоков являются публичными, цепочка блоков может хранить ссылки на секретные данные вместо самих секретных данных. Такая ссылка может быть в виде хэша, который является уникальным, битовой строки фиксированной длины, создаваемой путем применения функции хэширования к файлу. Криптографическое хэширование является воспроизводимым, но необратимым: тот же входящий файл всегда будет создавать такой же хэш, но каждый хэш сложно, если вообще возможно, обратить, поэтому входящий файл нельзя воспроизвести из его хэша. Хэш является уникальным; так измененная или зашифрованная версия файла имеет хэш отличный от хэша оригинального файла.
[006] SEDACS идентифицирует секретные файлы в цепочке блоков по хэшам секретных файлов и хранит данные с помощью файловой системы, такой как файловая система InterPlanetary (IPFS), которая также идентифицирует файлы по их хэшам. Цепочка блоков также хранит разрешения и транзакции, связанные с каждым хэшем: если пользователь имеет разрешение на хэш, то пользователь также имеет разрешение и на основные данные. Посредством уникальной идентификации файла по его криптографическому хэшу цепочка блоков создает журнал контроля без раскрытия содержимого файла.
[007] Следует понимать, что все комбинации вышеупомянутых сведений и дополнительные сведения, описанные подробнее ниже (при условии, что такие предоставленные сведения не являются взаимно несовместимыми) рассматриваются как часть объекта изобретения, описанного в данном документе. В частности, все комбинации заявленного объекта изобретения, представленные в конце данного описания, рассматриваются как часть объекта изобретения, описанного в данном документе. Также следует понимать, что терминология, однозначно использованная в данном документе, которая также может появляться и в любом описании, приведенном посредством ссылки, должна соответствовать значению, наиболее соответствующему конкретным сведениям, описанным в данном документе.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[008] Специалисту в данной области будет понятно, что графические материалы главным образом приведены в целях иллюстрации, а не предназначены для ограничения объема объекта изобретения, описанного в данном документе. Графические материалы не обязательно приведены в масштабе; в некоторых примерах различные аспекты объекта изобретения, описанного в данном документе, могут быть показаны преувеличенными или увеличенными на фигурах для облегчения понимания различных признаков. На графических материалах подобные ссылочные позиции по существу относятся к подобным признакам (например, функционально подобным и/или структурно подобным элементам).
[009] На фиг. 1 показана система управления доступом к защищенным документам (SEDACS).
[0010] На фиг. 2A–2F изображен процесс сохранения документа в SEDACS.
[0011] На фиг. 3A–3H изображен процесс извлечения документа из SEDACS.
[0012] На фиг. 4 изображен процесс изменения разрешений пользователя в SEDACS.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0013] На фиг. 1 изображена SEDACS (Система управления доступом к защищенным данным), которая обеспечивает безопасное разделение данных и управление разрешениями без доверенной третьей стороны. Она эффективно применяет несколько новых технологий, включающих: цепочку блоков, умные контракты, пороговую криптографию, распределенное генерирование ключей и контентно-адресуемое хранилище распределенного файла. Благодаря этим новым технологиям можно достичь беспрецедентного уровня безопасности. В отличие от известных решений, нет ни одной критической точки и каждое действие в системе может быть записано неизменно в цепочку блоков.
[0014]  SEDACS содержит два различных типа узлов: (1) серверы SEDACS (образующие сеть без доверия), обеспечивающие хранение данных и распределение доверия, и (2) клиенты SEDACS, позволяющие пользователям осуществлять доступ к системе. Узлы в сети соединены с цепочкой блоков и образуют часть сети с равноправными узлами, которая используется для распределения транзакций и блоков цепочки блоков. В дополнение серверы могут раскрывать интерфейс передачи состояния представления (REST) клиентам для выгрузки и загрузки зашифрованных данных.
Клиент SEDACS
[0016] UI может позволять пользователям создавать новый счет, управлять разрешениями, а также выгружать и просматривать данные. Любые другие функциональные средства, которые эффективно применяют умные контракты, могут интегрироваться в UI. При необходимости каждое функциональное средство может подчиняться подходящим разрешениям и может оставлять неизменный след в журнале контроля.
Хранилище секретов
[0017] Хранилище секретов представляет собой сеть серверов ключей, которые имеют возможность распределенного генерирования секретных ключей, сохранения секретов распределенным образом (хранение частичного секрета) и сборки зашифрованных частей секрета на основе разрешений цепочки блоков. Генерирование секрета для данного хэша может быть запущено путем осуществления запроса к одному из серверов ключей. После генерирования секрета пользователь, запрашивающий секрет, устанавливает пороговое количество серверов, необходимое для извлечения. Извлечение секрета для данного хэша инициируется путем осуществления запроса к одному из серверов ключей. В ответ на запрос сервер ключей связывается с другими серверами ключей по поводу разрешений цепочки блоков запрашивающей стороны для доступа к хэшу. Если пороговое количество серверов ключей приходит к соглашению относительно разрешений, тогда серверы ключей отправляют свои частичные секреты, зашифрованные с помощью открытого ключа запрашивающей стороны, запрашивающей стороне. Каждый запрос генерирования и извлечения секрета может быть записан в цепочке блоков.
Сервер SEDACS
[0018] Сервер SEDACS является способом объединить несколько различных компонентов, которые образуют распределенную сеть. Сеть сервера SEDACS представляет собой комбинацию цепочки блоков, хранилища секретов и распределенной файловой системы.
[0019] Каждая участвующая сторона должна запустить по меньшей мере один сервер SEDACS для обеспечения безопасности посредством распределения доверия. Сервер SEDACS может быть запакован в виде решения Docker Compose, необязательно размещенного у Parity Technologies. Это упрощает распределение обработки цепочки блоков, хранение секрета и хранение зашифрованных документов.
[0020] Как показано на фиг. 1, сервер SEDACS может быть реализован как вычислительное устройство с процессором, памятью и пользовательским интерфейсом (например, сенсорный экран, традиционный дисплей, клавиатура, сенсорная панель, мышь и т.д.). Во время работы сервер SEDACS может предоставить соединитель SEDACS, клиент Ethereum, сервер ключей и узел IPFS. Соединитель SEDACS может осуществлять сопряжение непосредственно с клиентом посредством промежуточного программного обеспечения SEDACS. Клиент Ethereum обеспечивает сопряжение с цепочкой блоков. Сервер ключей хранилища секретов хранит частичные секреты для зашифровки документов. А IPFS хранит зашифрованные документы.
Свойства SEDACS
● Цепочка блоков является единственным источником разрешений.
● Каждая вставка документа, извлечение документа и изменение разрешений могут быть записаны наряду с авторизацией субъекта в цепочке блоков, при этом криптографическая база данных дает надежные гарантии относительно защиты от взлома и времени работы.
● Документы хранятся и передаются в надежно зашифрованной форме (например, SECP256k1 ECIES).
● Пользователи получают документы, зашифрованные с помощью их открытого ключа.
● Документы идентифицируются посредством криптографической вставки (хэша) своего содержимого, что значит, что модифицированный документ считается документом, отличающимся от соответствующего оригинального документа.
Сохранение файла в SEDACS
[0021] На фиг. 2A–2G изображен процесс сохранения файла в SEDACS с клиента SEDACS. Некоторые из этапов в данном процессе включают зашифровку и передачу файла, а другие этапы создают части журнала контроля, который поддерживает целостность и безопасность файла и системы.
[0022] Процесс может быть выполнен двумя различными способами, в зависимости от того, имеет ли клиент SEDACS доступ к узлу IPFS или к серверу SEDACS.
Сохранение файла в SEDACS с помощью сервера SEDACS
[0023] На этапе 1 пользователь отправляет транзакцию в цепочку блоков с помощью индивидуального закрытого ключа из хранилища закрытых ключей клиента. Открытый ключ, связанный с закрытым ключом, описывает разрешения, связанные с зашифрованным файлом. На этапе 2 пользователь зашифровывает файл с помощью открытого ключа сервера SEDACS с использованием промежуточного программного обеспечения SEDACS на стороне клиента. На этапе 3 пользователь отправляет зашифрованный файл непосредственно на сервер SEDACS посредством промежуточного программного обеспечения SEDACS.
[0024] На этапе 4 соединитель SEDACS получает зашифрованный файл от клиента SEDACS. Он также проверяет цепочку блоков для связанной транзакции. На этапе 5 сервер SEDACS запрашивает секрет из хранилища секретов и с его помощью зашифровывает файл. И на этапе 6 сервер SEDACS сохраняет зашифрованный файл в IPFS. Он также отправляет другую транзакцию в цепочку блоков, подтверждающую получение и сохранение зашифрованного файла.
Сохранение файла непосредственно в SEDACS
[0025] На этапе 1 пользователь отправляет транзакцию в цепочку блоков с помощью индивидуального закрытого ключа из хранилища закрытых ключей клиента. Открытый ключ, связанный с закрытым ключом, описывает разрешения, связанные с зашифрованным файлом. На этапе 2 промежуточное программное обеспечение SEDACS запрашивает секрет из хранилища секретов и затем с его помощью зашифровывает файл. Затем на этапе 3 файл может быть вставлен непосредственно в IPFS.
Извлечение файла из SEDACS
[0026] На фиг. 3A–3H изображен процесс извлечения файла на сервер SEDACS из клиента SEDACS с помощью системы, показанной на фиг. 1. На этапе 1 пользователь использует клиент SEDACS для просмотра текущих разрешений документа. Если пользователь имеет разрешение на извлечение документа, клиент SEDACS отправляет транзакцию, запрашивающую документ, в цепочку блоков на этапе 2. На этапе 3 промежуточное программное обеспечение SEDACS отправляет запрос на сервер SEDACS на сам документ или извлекает зашифрованный файл непосредственно из IPFS.
[0027] Дальнейшие этапы 4–7 используются, если пользователь не запускает узел IPFS. На этапе 4 сервер SEDACS проверяет цепочку блоков относительно транзакции извлечения документа. Он извлекает документ из IPFS на этапе 5. А на этапе 6 сервер SEDACS отправляет зашифрованный документ вместе с зашифрованными частичными секретами клиенту и отправляет транзакцию, подтверждающую извлечение и передачу документа, в цепочку блоков.
[0028] На этапе 7 клиент SEDACS получает зашифрованные документ и секрет от сервера SEDACS. На этапе 8 секрет расшифровывается с помощью закрытого ключа пользователя и используется для расшифровки документа на стороне клиента SEDACS.
[0029] Как было указано выше, промежуточное программное обеспечение SEDACS может извлекать зашифрованный файл непосредственно из IPFS на этапе 3. В этом случае промежуточное программное обеспечение SEDACS запрашивает секрет непосредственно из одного из серверов ключей в хранилище секретов, а не у сервера SEDACS. Клиент SEDACS расшифровывает секрет с помощью закрытого ключа пользователя и использует его для расшифровки документа на стороне клиента SEDACS, как на этапе 8.
Изменение разрешений файла
[0030] Если пользователь имеет соответствующие разрешения для документа, хранящегося в SEDACS, пользователь может изменить разрешения документа путем отправки транзакции в цепочку блоков с запросом изменения разрешения, как показано на фиг. 4. Транзакция затем включается одним из уполномоченный субъектов цепочки блоков, представляющая собой модификацию разрешения. Промежуточное программное обеспечение SEDACS обеспечивает мгновенный отклик о включении транзакция.
Заключение
[0031] Хотя в данном документе были описаны и изображены различные варианты осуществления настоящего изобретения, специалисты в данной области легко могут представить различные другие средства и/или структуры для осуществления функции и/или получения результатов и/или одного или более из преимуществ, описанных в данном документе, и считается, что каждая из таких вариаций и/или модификаций попадает в объем вариантов осуществления настоящего изобретения, описанных в данном документе. В общем специалистам в данной области будет ясно понятно, что все параметры, размеры, материалы и конфигурации, описанные в данном документе, следует понимать как примерные, и что действительные параметры, размеры, материалы и/или конфигурации будут зависеть от конкретного применения или применений, для которых используются принципы настоящего изобретения. Специалисты в данной области найдут, или смогут убедиться с помощью всего лишь обычных опытов, множество эквивалентов для конкретных вариантов осуществления настоящего изобретения, описанного в данном документе. Таким образом, следует понимать, что приведенные выше варианты осуществления представлены лишь для примера и что, в рамках объема прилагаемой формулы изобретения и ее эквивалентов, варианты осуществления настоящего изобретения могут применяться иначе, чем как особо представлено в описании и формуле изобретения. Варианты осуществления настоящего изобретения направлены на каждый отдельный признак, систему, изделие, материал, набор и/или способ описанные в данном документе. Кроме того, любая комбинация из двух или более таких признаков, систем, изделий, материалов, наборов и/или способов, если такие признаки, системы, изделия, материалы, наборы и/или способы не являются взаимно несовместимыми, попадает в объем настоящего изобретения.
[0032] Более того, различные концепции настоящего изобретения могут быть выполнены как один или более способов, чей пример был приведен. Действия, осуществляемые как часть способа, могут быть упорядочены любым подходящим образом. Соответственно, можно создать варианты осуществления, в которых действия выполняются в порядке, который отличается от изображенного, которые могут включать осуществление нескольких действий одновременно, несмотря на то, что в иллюстративных вариантах осуществления действия идут поочередно.
[0033] Все определения, как было определено и использовано в данном документе, следует понимать как превалирующие над словарными определениями, определениями из документов, включенных посредством ссылки, и/или обычными значениями определенных терминов.
[0034] Слова в единственном числе, используемые в описании и формуле изобретения данного документа, если точно не указано обратное, следует понимать, как означающие «по меньшей мере один».
[0035] Фразу «и/или», используемую в описании и формуле изобретения данного документа, следует понимать, как означающую «один из или оба» из элементов, связанных таким образом, т. е. элементы, которые в некоторых случаях присутствуют вместе, а в других случаях присутствуют по отдельности. Множество элементов, перечисленных с помощью «и/или» следует понимать подобным образом, т. е. «один или более» из элементов, связанных таким образом. Другие элементы необязательно могут быть представлены иначе, чем элементы специально указанные фразой «и/или», несмотря на то, связаны ли они или не связаны с теми специально указанными элементами. Таким образом, в качестве неограничивающего примера, ссылка на «A и/или B», при использовании в сочетании со словами, подразумевающими открытый список, например, «содержащий», может относиться, в одном варианте осуществления, только к A (необязательно включая элементы, отличные от B); в другом варианте осуществления — только к B (необязательно включая элементы, отличные от A); в еще одном варианте осуществления — как к A, так и к B (необязательно включая другие элементы); и т. д.
[0036] Как использовано в описании и формуле изобретения данного документа, подразумевается, что «или» имеет то же значение, что «и/или», как определено выше. Например, при разделении элементов в списке, «или» или «и/или» следует понимать как включающие, т. е. включение по меньшей мере одного, но также и включение более чем одного, из какого-то количества или списка элементов, и необязательно дополнительных не указанных в списке элементов. Лишь термины, четко указывающие на противоположное, такие как «только один из» или «точно один из», или, при использовании в формуле изобретения, «состоящий из», будут ссылаться на включение только одного элемента из какого-то количества или списка элементов. В целом, термин «или», как использовано в данном документе, следует понимать только как указание на исключающие альтернативы (т. е. «один или другой, но не оба»), когда перед ним следуют термины, обозначающие исключительность, такие как «каждый», «один из», «только один из» или «точно один из». При использовании в формуле изобретения выражение «состоящий по сути из» должно нести свое обычное значение, как принято использовать в области патентного законодательства.
[0037] Как использовано в описании и формуле изобретения данного документа, фразу «по меньшей мере один», со ссылкой на список из одного или более элементов, следует понимать как по меньшей мере один элемент, выбранный из любого одного или более элементов из списка элементов, но не обязательно включающий по меньшей мере один из всех без исключения элементов, особо указанных в списке элементов, и не исключающий любые комбинации элементов из списка элементов. Такое определение также позволяет, чтобы необязательно могли присутствовать другие элементы помимо элементов, особо указанных в списке элементов, на которые ссылается фраза «по меньшей мере один», независимо от того, связаны или не связаны они с теми особо указанными элементами. Таким образом, как неисключающий пример, «по меньшей мере один из A и B» (или эквивалентно «по меньшей мере один из A или B», или эквивалентно «по меньшей мере один из A и/или B») может ссылаться, в одном варианте осуществления, по меньшей мере на один, необязательно включая более, чем один, A в полном отсутствии B (и необязательно включая другие элементы, отличные от B); в другом варианте осуществления — на по меньшей мере один, необязательно включая более, чем один, B в полном отсутствии A (и необязательно включая другие элементы, отличные от A); в еще одном варианте осуществления — на по меньшей мере один, необязательно включая более чем один, A, и по меньшей мере на один, необязательно включая более, чем один, B (и необязательно включая другие элементы); и т. д.
[0038] В формуле изобретения, как и в описании, приведенном выше, все промежуточные фразы, такие как «содержащий», «включающий», «несущий», «имеющий», «охватывающий», «касающийся», «удерживающий», «состоящий из» и т. п., следует понимать как имеющие открытый список, т. е. они имеют включающий смысл, но не ограничены им. Только промежуточные фразы «состоящий из» и «состоящий по сути из» будут промежуточными фразами с закрытым или полу-закрытым списком, соответственно, как указано в руководстве патентного ведомства США о процедурах патентной экспертизы, раздел 2111.03.