Книга: Основы блокчейна: вводный курс для начинающих в 25 небольших главах
Назад: Глава 11. Хэширование на практике. Рассказ о сравнении данных и создании вычислительных головоломок
Дальше: Глава 13. Авторизация транзакций. Использование цифрового аналога обычных подписей

Глава 12

Идентификация и защита учетных записей пользователей

Введение в криптографию для начинающих

Помимо хэш-функций в блокчейне активно используется еще одна базовая технология – асимметричная криптография (asymmetric cryptography). Это основа для идентификации пользователей в блокчейне и для защиты их собственности. Криптографию часто считают сложной и трудной для понимания. Поэтому в данной главе представлено постепенное введение в криптографию, доступное для начинающих и достаточное для понимания концепции обеспечения безопасности в блокчейне.

Метафора

Задолго до изобретения электронной почты, факсов, телефонов и чат-приложений для передачи сообщений люди использовали обычные письма, которые применяются многими людьми и поныне вместе с современными средствами связи. Обычные письма и сейчас доставляются почтальонами, разносящими конверты по почтовым ящикам адресатов. Почтовые ящики устроены так, чтобы можно было без затруднений опустить письмо в щель (расположенную обычно в верхней части ящика), но очень трудно вытащить его обратно. Извлечь письмо с легкостью может только адресат, у которого есть ключ от личного почтового ящика. Эта концепция применялась очень долго, и в наши дни продолжает использоваться похожая концепция, когда мы посылаем электронное письмо на какой-либо адрес электронной почты, или отправляем сообщение в чат, или переводим деньги на банковский счет. Во всех этих случаях принцип обеспечения безопасности основан на разделении двух типов информации: открытая для всех информация, аналогичная адресу, по которому расположен обычный почтовый ящик, и закрытая, секретная информация, выполняющая функции ключа, с помощью которого можно открыть ящик и получить доступ к его содержимому. Блокчейн применяет ту же концепцию для защиты частных секретных данных. Поэтому описанная выше метафора может существенно помочь при знакомстве с миром криптографии.

Цель

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

Главная задача

Блокчейн – пиринговая система, открытая для всех. Каждый может присоединиться к системе и предоставить свои вычислительные ресурсы или передать новые данные транзакции в систему. Но при этом крайне нежелательно, чтобы любой участник получал доступ к собственности, принадлежащей конкретным учетным записям, управляемым блокчейн-системой. Неотъемлемой характеристикой права владения частной собственностью является его исключительность. Право передачи владения другой учетной записи принадлежит только владельцу той учетной записи, которая выполняет акт передачи. Таким образом, основная задача блокчейна – защита собственности, принадлежащей конкретным учетным записям, без ограничения функциональности открытой архитектуры распределенной системы.

Основная идея

Основная идея состоит в трактовке учетных записей как почтовых ящиков: каждый может передать собственность в любой «ящик», но только владелец учетной записи получает доступ к содержимому. Главная характеристика почтового ящика: его местоположение общеизвестно, следовательно, любой человек может что-то положить в него, но только владелец может открыть свой ящик ключом. Двойственность ситуации – общедоступность почтового ящика, с одной стороны, и личный ключ владельца, с другой стороны, – имеет аналог и в цифровом мире: шифрование с использованием пары ключей – открытого и секретного. Открытые ключи (public keys) используются для идентификации учетных записей, которым можно передать право владения, тогда как доступ к конкретным учетным записям разрешен только владельцам соответствующих секретных ключей (private keys) [26].

Краткий обзор криптографии

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

• основная задача криптографии;

• терминология;

• симметричная криптография;

• асимметричная криптография.



Основная задача криптографии

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



Терминология [37]

Цифровым аналогом процедуры запирания замка является операция зашифрования (encryption), а процедуры отпирания замка – операция расшифрования (decryption). Таким образом, в контексте криптографии мы используем термины зашифрование и расшифрование для обозначения применения защиты данных и снятия защиты соответственно. Зашифрованные данные называются зашифрованным текстом (cypher text) (или шифртекстом). Зашифрованный текст выглядит как бессмысленный набор букв и символов для тех, кто не знает, как расшифровать его. Только тот, кто владеет ключом, необходимым для расшифрования, сможет извлечь пользу из зашифрованного текста. Расшифрованный текст идентичен исходным данным, которые ранее были зашифрованы. Таким образом, полный цикл применения криптографии можно описать следующим образом: берутся некоторые исходные данные, с помощью операции зашифрования с криптографическим ключом генерируется зашифрованный текст, который сохраняется где-либо или передается кому-либо, наконец, выполняется восстановление исходных данных с помощью операции расшифрования зашифрованного текста с криптографическим ключом. На рис. 12.1 показана общая схема функционирования криптографии.



Рис. 12.1 Общая схема основных концепций криптографии с указанием соответствующих терминов





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





Симметричная криптография

В течение многих лет люди использовали методы криптографии с одинаковыми ключами как для зашифрования, так и для расшифрования данных. При этом тот, кто зашифровывал данные, автоматически получал возможность расшифровать зашифрованный текст с помощью того же ключа. Поскольку один и тот же ключ применялся и для зашифрования, и для расшифрования, эта методика получила название симметричной криптографии (symmetric cryptography). На рис. 12.2 изображена общая схема симметричной криптографии с использованием одного и того же ключа для зашифрования и расшифрования короткого сообщения.





Рис. 12.2 Общая схема симметричной криптографии





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





Асимметричная криптография

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

На рис. 12.3 показан полный цикл зашифрования-расшифрования с использованием асимметричной криптографии. Эту схему можно интерпретировать так: в верхней части изображена операция зашифрования, а в нижней части – операция расшифрования. Здесь показаны два ключа: черный и белый. Исходное сообщение зашифровывается с помощью черного ключа, и зашифрованный текст представлен как черный прямоугольник с белыми буквами. Исходное сообщение можно также зашифровать с помощью второго ключа, получив другой зашифрованный текст, представленный в белом прямоугольнике с черными буквами. Для упрощения понимания совпадающие цвета прямоугольников с зашифрованным текстом и ключей подчеркивают их связь: черный ключ генерирует зашифрованный текст в черном прямоугольнике, белый ключ – в белом прямоугольнике.

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





Рис. 12.3 Общая схема асимметричной криптографии





Главная отличительная особенность асимметричной криптографии состоит в том, что вы никогда не сможете расшифровать зашифрованный текст с помощью ключа, который использовался для зашифрования. Вы сами решаете, какой ключ применить для зашифрования, а какой для расшифрования. Роли ключей можно менять в любой момент для каждого нового шифруемого фрагмента данных, но взаимосвязанные пары ключей всегда необходимо хранить для выполнения операций зашифрования и расшифрования. Если у вас остался только один ключ, то ваши возможности ограничиваются. Вы можете создать зашифрованный текст с помощью этого ключа, но не сможете расшифровать его из-за отсутствия второго связанного ключа. Тем не менее сохраняется возможность расшифровки текста, ранее зашифрованного с помощью второго связанного ключа. Отделенный от своего напарника ключ похож на улицу с односторонним движением: можно проехать по ней в одном направлении, но вернуться по той же улице нельзя. Благодаря асимметричному распределению криптографических функций между двумя ключами можно отделить группу людей, которым предоставлена возможность зашифрования текста, от группы людей, которые могут расшифровать этот текст.

Асимметричная криптография на практике

Использование асимметричной криптографии в практической деятельности состоит из двух основных шагов:

• создание и распространение ключей;

• использование ключей.





Создание и распространение ключей

При использовании асимметричной криптографии в повседневной практической деятельности необходимо иметь два ключа, специальные названия которых подчеркивают роль каждого из них. Обычно их называют секретный, или закрытый, ключ (private key) и открытый ключ (public key). Поэтому асимметричную криптографию часто называют криптографией с открытым ключом. Сами по себе ключи в асимметричной криптографии не являются закрытыми и открытыми, поскольку можно зашифровывать данные любым ключом, а расшифровывать парным ему ключом. Сам пользователь назначает ключам роли, которые делают их закрытыми или открытыми. Открытый ключ раздается всем желающим независимо от степени доверия к ним. Практически каждый может иметь копию открытого ключа. Но закрытый ключ нужно хранить в безопасном и защищенном от постороннего доступа месте.

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

1. Создать пару взаимодополняющих ключей с помощью криптографического программного обеспечения.

2. Определить один ключ как открытый ключ.

3. Определить второй ключ как закрытый или секретный ключ.

4. Сохранить закрытый ключ в надежном месте.

5. Раздать открытый ключ всем желающим.





Использование ключей

Существуют два способа практического применения пары ключей, отличающихся направлением потока данных:

• от открытого ключа к закрытому ключу;

• от закрытого ключа к открытому ключу.





От открытого ключа к закрытому ключу

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





От закрытого ключа к открытому ключу

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

Асимметричная криптография в технологии блокчейна

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

• идентификации учетных записей;

• авторизации транзакций.





Идентификация учетных записей

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





Авторизация транзакций

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

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

Перспектива

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

Резюме

• Главная цель криптографии – защита данных от несанкционированного доступа.

• Основные криптографические операции:

– зашифрование – защита данных посредством преобразования их в зашифрованный текст с использованием криптографического ключа;

– расшифрование – обратное преобразование зашифрованного текста в исходные данные с использованием соответствующего криптографического ключа.

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

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

• Существуют два типовых варианта использования открытых и закрытых ключей:

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

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

• Технология блокчейна использует асимметричную криптографию для достижения двух целей:

– идентификации учетных записей: учетные записи пользователей представляют собой криптографические открытые ключи;

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

Назад: Глава 11. Хэширование на практике. Рассказ о сравнении данных и создании вычислительных головоломок
Дальше: Глава 13. Авторизация транзакций. Использование цифрового аналога обычных подписей