Как стать автором
Обновить

Блокчейн и облачные вычисления. Улучшение безопасности облачных вычислений с помощью блокчейна

Котик, которого зовут Блокчейн, сидит на облаках. Картинка для привлечения внимания.
Котик, которого зовут Блокчейн, сидит на облаках. Картинка для привлечения внимания.

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

Оглавление

1. Облачные вычисления.

1.1. Модели развертывания облаков.

1.2. Некоторые минусы облаков:

2. Блокчейн.

2.1. Черты блокчейна.

2.2. Типы доступа к блокчейну.

2.3. Узлы блокчейна.

2.4. Смарт-контракты.

2.5. Цифровые подписи.

2.6. Алгоритмы консенсуса.

2.7. Проблемы блокчейна.

3. Интеграция облака и блокчейна.

4. Заключение.

Облачные вычисления

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

Чтобы избежать самостоятельного обслуживания, используются "облачные вычисления". Облачные вычисления - это практика использования сети удаленных серверов для хранения, управления и обработки данных из любой точки мира. Они используются вместо локального сервера или персонального компьютера. Услуги облачных вычислений доставляются на устройства организации через Интернет.

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

Существуют в основном 3 формы облачных вычислений:

1. Первая форма - это программное обеспечение как услуга (SaaS), при которой подписчикам предоставляется готовое прикладное программное обеспечение, полностью обслуживаемое провайдером. Клиенты облака не имеют контроля над облачной инфраструктурой. Примеры SaaS: Amazon веб-сервисы, SalesForce.com, Google Mail, Office 365.

2. Вторая форма - это платформа как услуга (PaaS). Провайдер облачных услуг позволяет нам развернуть наше приложение и средства для разработки и тестирования в рамках платформы. Разница между SaaS и PaaS заключается в том, что SaaS размещает целое приложение в облаке, в то время как PaaS предоставляет платформу для приложения. Google search engine, Heroku являются примерами PaaS.

3. Третья форма - это инфраструктура как услуга (IaaS), которая предлагает пользователю прямой доступ к ресурсам хранения, обработки и другим ресурсам сети. Примеры IaaS: Amazon EC2, GoGrid.

https://gigacloud.ua/ru/blog/navchannja/hmarna-piramida-iaas-paas-i-saas
https://gigacloud.ua/ru/blog/navchannja/hmarna-piramida-iaas-paas-i-saas

Модели развертывания облаков

Публичное облако: Публичное облако - облачная инфраструктура, которая используется одновременно несколькими заказчиками. Она открыта для публичного использования более чем одним клиентом. Примеры: Microsoft Azure и Google App Engine

Частное облако: В основном создается по требованию отдельных клиентов, обеспечивая право собственности на данные и их безопасность. Это безопасное и дорогостоящее удовольствие по сравнению с публичным облаком. Клиенты могут оптимизировать доступ пользователей и могут ограничивать сети, используемые в частном облаке. Пример: Eucalyptus System.

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

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

Некоторые минусы облаков:

  1. Безопасность данных. Хотя большинство провайдеров и обеспечивают безопасность, иногда все-таки происходит утечка данных. Одна из самых громких - утечка из iCloud - "слив" фотографий знаменитостей.

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

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

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

Блокчейн

https://dev.to/rodrigocsoares/the-blockchain-architecture-4j5b
https://dev.to/rodrigocsoares/the-blockchain-architecture-4j5b

По словам авторов статьи, блокчейн - это будущее тех отраслей, для которых безопасность и приватность находятся не на последнем месте.

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

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

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

На хабре есть много крутых статей, посвященных блокчейну.

Черты блокчейна

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

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

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

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

  • Дублирование данных – полные узлы хранят все блоки.

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

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

Типы доступа к блокчейну

Рассмотрим основные типы доступа к блокчейну:

  1. Публичный блокчейн - это блокчейн открытого доступа, к которому может присоединиться любой желающий.

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

  3. Блокчейн-консорциум - это частично децентрализованная цепочка. Ответственность за администрирование блокчейна может лежать на нескольких организациях. Эти заранее выбранные организации устанавливают права доступа для выполнения транзакций или доступа к данным. Остальные узлы могут иметь доступ к транзакциям блокчейна, но не к поиску консенсуса. Примеры: Hyperledger и R3CEV.

Узлы блокчейна

Узел - устройство, принадлежащее к сети блокчейна. Тип узла определяется в зависимости от выполняемой им задачи. Существуют следующие типы узлов:

  1. Узлы майнинга. Узлы для майнинга всегда производят блоки для блокчейна. Эти узлы в процессе майнинга просто проверяют, может ли блок быть добавлен в список. Узлы майнинга не отвечают за поддержание блоков - они только создают блоки и добавляют их в цепочку. Добавленные блоки публикуются в сети, где "полные узлы" проверяют их и добавляют в блокчейн.

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

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

Смарт-контракты

В 1994 году (т.е. даже раньше, чем появление блокчейна) Ник Сабо впервые применил идею смарт-контрактов. Смарт-контракт может быть определен в цифровой форме как серия обязательств, они создают доверие между незнакомыми сторонами.

Смарт-контракты применяются во многих сценариях, таких как страхование, деловые соглашения, финансовые данные записи, ипотечные кредиты, цепочки поставок продуктов питания и т.д. Ethereum является одним из примеров, использующих смарт-контракты.

Цифровые подписи

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

Алгоритмы консенсуса

https://amy.ru/blockchain/algoritmyi-konsensusa.html
https://amy.ru/blockchain/algoritmyi-konsensusa.html

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

  1. Proof-of-work. Используется в криптовалютных блокчейнах. Механизм PoW основан на следующей идее. Каждый участник сети может взять набор транзакций, ожидающих внесения в журнал, и сформировать новый блок. Однако процесс формирования блока не может в среднем быть быстрее определенного времени, которое подбирают заранее в зависимости от суммарной вычислительной мощности блокчейн сети (например, в биткоине ~10 минут).
    Участник сети, назвавший себя майнером, решает сложную математическую задачу перебором. Тот майнер, который решит её первее, формирует новый блок и получает вознаграждение. Иногда достоверные блоки могут генерироваться параллельно, когда целевое значение найдено почти одновременно несколькими майнерами. В этом случае будут формироваться ветви блоков (конкурирующие вилки). Подлинной в таком случае будет считаться наиболее длинная цепочка.
    В PoW майнерам приходится использовать много вычислительной мощности, а следовательно тратить много энергии. Также пользователям приходится платить комиссию майнерам за проверку транзакций.

  2. Proof-of-Stake (Доказательство доли владения) является лучшей альтернативой PoW. Цель данного алгоритма - исправить основные недостатки PoW: низкую скорость и слабую масштабируемость сети. PoS отказывается от идеи майнинга. Вместо этого используется стейкинг - механизм формирования новых блоков в зависимости от доли криптовалюты, принадлежащей узлу. Чем больше валюты имеется у участника сети, тем более вероятней именно он сформирует новый блок. Такой подход не требует больших энергозатрат, он более масштабируем, по сравнению с PoW, и гораздо быстрее. Из минусов - угроза централизации.

  3. PBFT. Используется для разных распределенных систем. Узел, получивший транзакцию, рассылает ее всем узлам в текущей сети. Содержание транзакции не проверяется, ведь большинство узлов сети априори считаются носителями валидной информации. Каждый узел, получивший данные от всех других узлов сети, сверяет их и в случае получения более 2/3 голосов за транзакцию и принимает ее. Такой алгоритм не требует больших энергозатрат и обладает относительно высокой производительностью при малом числе участников сети.

  4. И прочее (DPoS, Ripple, Tendermint)

Проблемы блокчейна

Несомненно, блокчейн является перспективной развивающейся технологией. Однако она сталкивается с некоторыми проблемами. К ним относятся:

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

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

Интеграция облака и блокчейна

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

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

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

  1. Благодаря анонимности блокчейна, утечка персональных данных невозможна.

  2. Благодаря неизменности, блокчейн защищает данные от фальсификации.

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

Рассмотрим вариант применения интеграции блокчейна в облачные вычисления.

Отказоустойчивые системы с шифрованием данных

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

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

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

Заключение

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

Технология блокчейн - это развивающаяся технология, хорошо известная своей безопасностью в применении к криптовалютам. Но у нее есть и минусы, например, масштабируемость.

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

Статья, упомянутая во вступлении:
C. V. N. U. B. Murthy, M. L. Shri, S. Kadry and S. Lim, "Blockchain Based Cloud Computing: Architecture and Research Challenges," in IEEE Access, vol. 8, pp. 205190-205205, 2020, doi: 10.1109/ACCESS.2020.3036812.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.