Основным препятствием на пути к использованию «облачных» технологий является проблема доверия. Вы не знаете, где и как будут храниться ваши данные, а главное — кто будет иметь к ним доступ. Будет ли это единственный центр обработки данных или распределенная сеть таких центров? Будут ли они располагаться в одной стране, а если в разных, то в каких? Вы ничего не знаете о том, шифруются ли ваши данные и каким способом. Словом, все это приводит к тому, что вы не знаете, можно ли доверять тому или иному поставщику. А если и можно, то на чем основывается это доверие кроме начальных знаний о торговой марке и престижности провайдера (см. рисунок 1).

 

Хранение данных в «облаке»
Рисунок 1. Хранение данных в «облаке»

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

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

 

Схема сети Kairos
Рисунок 2. Схема сети Kairos

Как работает сеть Kairos

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

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

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

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

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

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