Часть 2: Происхождение Ledger Recover - Безопасное распределение акций | Леджер

Часть 2: Происхождение Ledger Recover – безопасное распределение акций | Леджер

Исходный узел: 2785813

Добро пожаловать во вторую часть нашей серии блогов о Восстановление книгие правильность! Наша цель — исследовать множество технических препятствий, возникающих при создании службы восстановления исходных данных, и то, как Ledger Recover решает их с помощью безопасного дизайна и инфраструктуры.

В предыдущей части, мы рассмотрели, как сделать резервную копию секретной фразы восстановления, разделив ее, и как Ledger Recover делает это для вас с помощью Pedersen Verified Secret Sharing.

Теперь, когда у вас есть три акции, следующий вопрос: как вы можете безопасно распространять их среди своих поставщиков резервного копирования? В самом деле, если злоумышленник перехватывает все шары, пока вы их передаете, это в первую очередь лишает цели разделения начального числа. В кибербезопасности это называется Атака «Человек посередине», где злоумышленник стоит между вами и вашим получателем и вмешивается в общение, чтобы попытаться раскрыть секреты.

При использовании Ledger Recover передача вашего начального числа осуществляется через безопасный механизм распределения. Он основан на нескольких криптографических инструментах и ​​математических концепциях, которые мы подробно объясним.

Начнем с более подробного описания проблемы. Затем мы представим несколько криптографических инструментов и математических концепций, которые Ledger Recover использует для безопасного распределения исходных ресурсов среди поставщиков резервного копирования.

Courier-In-The-Middle: пример из реального мира

Самый очевидный способ защитить себя от злонамеренного посредника — не иметь его вообще. Вы могли сами дойти до дома своих друзей или собрать их в том же закрытом месте, чтобы доставить акции. Но это становится намного сложнее, если вы не находитесь в одном месте и хотите отправить акции дальнему знакомому.

Предполагая, что сеть, по которой мы общаемся (например, почтовая служба), по своей сути ненадежна, как мы можем гарантировать, что перехватчики никогда не увидят наши секретные ресурсы?

Пришло время представить Алису и Боба, а также печально известную Еву, трех известных персонажей криптографии. У Алисы есть секрет, которым она хочет поделиться с Бобом, и у нее нет другого выбора, кроме как отправить его через Еву, их ненадежного курьера. Говоря криптографическими словами, Алиса и Боб хотят установить безопасный канал связи друг с другом, чтобы безопасно обмениваться секретами.

Вот что могли бы сделать Алиса и Боб:

  • Алиса кладет свой секрет в коробку, запирает ее своим личным замком, прежде чем отправить Бобу.
  • Когда Боб получает коробку, он добавляет свой замок и отправляет его обратно.
  • Алиса теперь может использовать свой ключ, чтобы снять замок с ящика, прежде чем отправить его в последний раз.
  • Чтобы завершить процесс, Боб просто использует свой ключ, чтобы снять замок и, наконец, получить секрет от Алисы.

На протяжении всего обмена, всякий раз, когда Ева держала коробку в руках, она всегда была защищена либо замком Алисы, либо замком Боба, либо обоими.

Хотя это отличное начало, в этом сценарии осталось решить несколько проблем:

  • Взаимная аутентификация: Алисе и Бобу нужны надежные способы проверки того, что каждый замок действительно принадлежит другой стороне. В противном случае Ева могла бы поменять его на свою собственную коробку и замок и обмануть Алису или Боба, заставив поверить, что она является другой стороной.
  • Прямая секретность: Если Ева украла запертый ящик, а позже украла ключ Алисы или Боба, она могла восстановить первоначальный секрет. Вместо этого мы хотим гарантировать, что будущие утечки долговременных ключей не скомпрометируют более старые украденные пакеты.
  • Сохранение конфиденциальности: В этом сценарии адреса Алисы и Боба сообщаются курьеру. В цифровом эквиваленте этого процесса нам нужен протокол, который ничего не раскрывает о получателях.
Защита цифровых сообщений

В цифровой безопасности безопасный канал способ передачи данных между двумя подлинности стороны такие, что данные конфиденциальность и целостность гарантированы. Когда вы используете безопасный канал, злоумышленники не могут подслушать или вмешаться в ваше общение.

Протокол Ledger Recover как для резервного копирования, так и для восстановления основан на Протокол безопасного каналаили SCP. Он использует несколько инструментов из набора инструментов современной криптографии, таких как симметричное и асимметричное шифрование, сертификаты и цифровые подписи.
Следующие разделы дадут вам краткий обзор всех этих концепций, что позволит вам понять всю схему безопасности, используемую в Ledger Recover.

Симметричная криптография: мощный, но ограниченный инструмент

Чтобы гарантировать конфиденциальность данных, которыми обмениваются две стороны, данные обычно шифруются и расшифровываются с использованием одного и того же секретного ключа.
Этот процесс называется симметричная криптография, который представляет собой изучение примитивов, включающих один секретный ключ, гарантирующий одно или несколько свойств безопасного канала.

Несмотря на то, что симметричная криптография является мощным инструментом для защиты ваших сообщений, она имеет некоторые очевидные ограничения: Предположим, что Алиса хочет обменяться несколькими зашифрованными сообщениями с Бобом. Сначала она выбирает секретный ключ, затем делится им с Бобом, прежде чем начать отправлять сообщения.
Конечно, теперь возникает проблема: как Алисе безопасно поделиться секретным ключом с Бобом? Если кто-нибудь получит ключ, общение Алисы и Боба перестанет быть конфиденциальным.
Алиса могла бы встретиться с Бобом лично, чтобы передать ему ключ, но в таком случае, почему бы тогда не обсудить их вдали от посторонних ушей?

Для цифровой связи нам нужен безопасный метод для обмена симметричным ключом и инициирования защищенного обмена данными. Пришло время представить работу двух титанов современной криптографии, Whitfield Diffie и Мартин Хеллман.

Асимметричная криптография: сокрытие личных данных
Ключевое соглашение Диффи-Хеллмана

Используя криптографию с открытым ключом, Диффи и Хеллман предложили новый подход к защите связи. Они определили протокол с двумя разными ключами для шифрования и дешифрования. Два ключа обычно называются открытый и закрытый ключи, образуя пару, которую можно использовать для шифрования/дешифрования и подписи/проверки данных.

Открытые и закрытые ключи
Криптография с открытым ключом является основой большей части нашей цифровой безопасности. Он используется для вашей защиты в Интернете, а также для подтверждения права собственности на монеты и токены во всех общедоступных блокчейнах.

Узнайте больше об этой теме в Ledger Academy!

Что действительно убедительно для нас, так это то, как Диффи и Хеллман предложили использовать криптографию с открытым ключом для распространения симметричных ключей. Их метод, известный как обмен ключами Диффи-Хеллмана, состоит из обменов между двумя сторонами, чтобы в конечном итоге договориться об общем секрете. При правильном выполнении перехватчики не могут вычислить один и тот же общий секрет из информации, которую они подслушивают.

Создание общего секрета k

TL;DR заключается в том, что на приведенной выше диаграмме Ева математически не может понять секрет k, хотя у нее есть доступ ко всем сообщениям Алисы и Боба. Чтобы понять, почему этот общий секрет защищен от любого подслушивания, нам нужно немного углубиться в теорию групп. 

Безопасность обмена ключами Диффи-Хеллмана зависит от сложности задачи дискретного логарифмирования над циклической группой. Циклическая группа — это группа, порожденная одним элементом.
Короче говоря, Алиса и Боб выполняют следующие шаги, чтобы договориться об общем секрете. k:

  1. Алиса и Боб договорились о циклической группе G порядка n генерируется элементом g
  2. Алиса вытягивает наугад число 0 < a < n и отправляет pa = гa е G Бобу
  3. Боб вытягивает случайное число 0 < b < n и отправляет pb = гb е G Алисе
  4. Алиса вычисляет общий секрет к = (рb )a е G
  5. Боб вычисляет общий секрет к = (рa )b е G

Безопасность протокола зависит от сложности обнаружения к = габ данный g, ga, gb, Это называется Вычисление Предположение Диффи-Хеллмана (ЦДХ). Гипотеза о том, что CDH трудно решить, предполагает, что проблема дискретного логарифма трудно решить.

В этой схеме, несмотря на то, что общий секрет защищен от прослушивания, нет никаких гарантий относительно происхождения данных, которыми обмениваются. Чтобы взаимодействие было безопасным, Алисе и Бобу нужно каким-то образом доказать друг другу свою личность.

Взаимная аутентификация и цифровая подпись

Рукописная подпись обычно используется для подтверждения и принятия содержания документа. Только подписывающий может поставить подпись, но любой, кто «знает», как выглядит подпись, может убедиться, что документ был подписан нужным лицом.

Обладая схожими свойствами, цифровая подпись обеспечивает дополнительные надежные гарантии за счет использования асимметричной криптографии:

  • Подлинность: любой может проверить, что сообщение было подписано закрытым ключом, соответствующим указанному открытому ключу.
  • Неотрекаемость: подписывающая сторона не может отрицать, что подписала и отправила сообщение.
  • Целостность: сообщение не было изменено во время передачи.

Теперь, пока мы знаем и доверяем открытому ключу нашего корреспондента, мы можем проверить подлинность всех сообщений, проверив их цифровую подпись.
Однако в большинстве реальных случаев мы либо не знаем нашего корреспондента близко, либо ему может потребоваться регулярно менять пару закрытый/открытый ключ по соображениям безопасности. Это требует дополнительного уровня проверки и доверия в форме Сертификаты, которые содержат описание объекта и его открытый ключ.

Каждый сертификат подписывается родительским открытым ключом. Имея корневой центр сертификации (или корневой ЦС), которому мы всегда доверяем, мы можем создать цепочку доверия, используя последовательные цифровые подписи.

Эллиптические кривые: криптография с открытым ключом следующего уровня

Криптография на эллиптических кривых (ECC) — это подобласть криптографии с открытым ключом, которая состоит в использовании эллиптических кривых для криптографических приложений, например, для схем шифрования или подписи. 
Основываясь на понятной в настоящее время математике, ECC обеспечивает значительно более безопасную основу, чем более ранние системы криптографии с открытым ключом, такие как RSA.

При том же уровне безопасности ECC использует ключи меньшей длины по сравнению с другими асимметричными криптосистемами, что делает его хорошим выбором для встраиваемых систем с ограниченными ресурсами.
Если вы хотите узнать больше, этой статье может помочь лучше понять эллиптические кривые.

Порядок эллиптической кривой
Порядок элемента g группы является важным параметром обмена ключами Диффи-Хеллмана. Когда группа представляет собой эллиптическую кривую, этот элемент является точкой, а ее порядок — это количество раз, которое она может добавить к себе, прежде чем зациклится на своем начальном значении.
Обратите внимание, что это сложение не имеет ничего общего с вашей обычной суммой по действительным числам, но имеет аналогичные свойства аддитивности.

Возьмем эллиптическую кривую Э: у2 = х3 + 2х + 3 над полем 𝔽97 В качестве примера. Как дискретная функция она представлена ​​точками на рисунке ниже. Мы сосредоточимся на сути Р = (3, 6) и все его кратные.

Мы видим, что после 5.P, мы вернулись к началу и попали в те же точки, что и раньше. Независимо от того, каково значение скаляра P умножается на, мы всегда попадем в одну из наших 5 начальных точек.
Таким образом, порядок P равно 5, а порождаемая им подгруппа содержит ровно 5 точек. Однако для криптографических приложений порядок намного больше 5, что увеличивает случайность.

Соедините все вместе: ECDH с аутентификацией

Теперь у нас есть все инструменты, необходимые для создания отличного протокола обмена ключами:  Эллиптическая кривая Диффи-Хеллмана (ECDH).

ECDH — это стандартизированная криптографическая схема, реализующая описанный выше обмен ключами Диффи-Хеллмана с использованием криптографии на основе эллиптических кривых для генерации пар ключей и общего секрета.

Аутентифицированный обмен ключами ECDH

Он начинается с выбора эллиптической кривой и точки ее создания. Затем обе стороны обмениваются доверенными сертификатами, что позволяет им проверять подлинность соответствующих открытых ключей. После аутентификации они могут сгенерировать общий секрет k, который вычисляется как:

к = дA , dB , G
dA: закрытый ключ Алисы
dB: закрытый ключ Боба
G: точка ЕС

Для достижения форвардная секретность свойство, пара ключей Алисы и Боба должна быть эфемерной, т.е. они генерируются на месте и используются для однократного выполнения протокола. Мы говорим об эфемерной кривой Диффи-Хеллмана на эллиптических кривых (ECDHE). В этом сценарии эфемерные ключи подписаны как статическими ключами на устройстве, так и модулями HSM, что обеспечивает строгую аутентификацию ключей. Даже если в будущем произойдет несанкционированный доступ к статическим ключам, это не предоставит возможности дешифрования для обменов, защищенных эфемерными ключами.

Кроме того, мы внедрили заметное усовершенствование протокола, скрыв статические ключи устройств в защищенном канале. Эта мера предосторожности не позволяет злоумышленникам получить доступ к статическому сертификату устройств, что, в свою очередь, может привести к утечке уникальных идентификаторов, используемых во время операций резервного копирования/восстановления.

Назад к Ledger Recover: путь семени

Ладно, пора прерваться на минуту.

Мы рассмотрели множество тем, относящихся как к безопасности, так и к математике, и в результате появился протокол для безопасного обмена данными в любой незащищенной сети. Давайте подытожим то, что мы видели до сих пор:

Два объекта могут иметь безопасную связь по незащищенному каналу, договорившись о уникальный секрет благодаря ЭЦДГЭ, который является реализацией протокола согласования ключей Диффи-Хеллмана, который использует эфемерные ключи для защиты прямой секретности. Каждая сущность способна проверить подлинность своего корреспондента благодаря начальному Проверка сертификата.

В случае Ledger Recover мы установили четыре безопасных канала с использованием протокола безопасного канала. Эти каналы соединяют устройство с каждым из поставщиков резервного копирования и оркестратором, каждый из которых оснащен аппаратными модулями безопасности (HSM).

Каждый участник имеет свой личный сертификат, подписанный сертификатом бухгалтерской книги, который действует как корень цепочки доверия. Когда устройство пользователя впервые сообщает Orchestrator о намерении выполнить резервное копирование, оно инициирует ECDHE с проверкой подлинности. Под этим мТЛС сеансов Orchestrator передает информацию, которая свяжет будущие безопасные каналы с конкретным запросом пользователя на резервное копирование, а также удостоверение пользователя, которое будет запрошено для проверки при последующем восстановлении начального состояния.

Защита секретов с помощью HSM
Как бы мы ни старались этого избежать, иногда требуется хранить и обрабатывать секреты на серверах. Это может быть рискованно, так как защита серверов и доступ к ним — нетривиальная задача. Чтобы снизить этот риск, компании и отрасли, которые ценят безопасность, используют Аппаратные модули безопасности. Это специализированное оборудование, которое защищает криптографические ключи и обеспечивает криптографическую обработку. Подробнее об HSM мы поговорим в следующих частях этой серии блогов.

Все готово, чтобы, наконец, выполнить самую ответственную часть всей операции: передача трех долей начального числа пользователя.

Мы снова создаем новые безопасные каналы, но на этот раз между устройством Ledger пользователя и HSM провайдеров резервного копирования. непосредственно. Исходные доли передаются по сквозному зашифрованному каналу в их окончательное место хранения, при этом гарантируется, что они достигнут правильного места назначения (именно здесь проверяемость совместного использования секрета Педерсена, введенная в часть 1 является полезным).
Устройство пользователя аутентифицирует HSM провайдеров резервного копирования один за другим, и провайдеры резервного копирования знают, что они обмениваются с уникальным официальным устройством Ledger, которое инициировало этот конкретный запрос на резервное копирование.
Никто, кроме устройства пользователя и HSM провайдеров резервного копирования, никогда не увидит исходные ресурсы, зашифрованные симметричными ключами этих безопасных каналов с взаимной аутентификацией, даже Orchestrator.

Надежно получено… и сохранено?

В этой части мы ввели несколько новых концепций, некоторые из которых носят технический характер. Каждая из этих концепций необходима для обеспечения безопасной передачи, гарантирующей конфиденциальность и целостность обмена. Независимо от безопасности сети, теперь мы можем отправлять наши секретные ресурсы, не опасаясь, что они могут быть подделаны или перехвачены. Вот это апгрейд!

Весь процесс поддерживается надежной криптографией и безопасным оборудованием в виде вашего аппаратного устройства Ledger и HSM, принадлежащих каждому поставщику резервного копирования.

Пришло время перейти к восстановлению исходных акций! Все, что нам нужно сделать, это попросить поставщиков резервных копий вернуть нам ресурсы, которые они хранят в своей инфраструктуре…

Но подождите: как именно они хранят эти очень конфиденциальные данные? Это не принесло бы нам никакой пользы, если бы у нас были самые безопасные каналы связи, но наши провайдеры резервного копирования просто хранили акции в открытом виде, умоляя их украсть.

Так что, прежде чем мы поговорим о выздоровлении — мы его добьемся, обещаю! –, в части 3 мы должны сделать небольшое отступление, чтобы обсудить безопасность наших начальных акций в состоянии покоя. Следите за обновлениями!

Отметка времени:

Больше от Ledger