‹ назад в библиотеку

Клиент-серверное программное обеспечение безопасного облачного хранилища файлов

Автор: В.Е. Лебедев, А.В. Чернышова
Источник: VIII Международная научно-техническая конференции. 25 мая 2017 г. (ИУСМКМ - 2017) с. 126-130.

Аннотация


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

Постановка проблемы.


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


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

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


Dropbox [3] — файловый хостинг компании Dropbox Inc., включающий персональное облачное хранилище, синхронизацию файлов и программу- клиент. Dropbox позволяет пользователям создать специальную папку на своих компьютерах, которую Dropbox синхронизирует таким образом, что она имеет одинаковое содержимое независимо от того, какое устройство используется для просмотра[6]. Файлы, размещённые в этой папке, также доступны через веб-сайт Dropbox и мобильные приложения. Dropbox в связке с BoxCryptor, который надежно шифрует файлы перед синхронизацией их с облаком, обеспечивает конфиденциальность данных в Dropbox. Данный сервис предлагает тарифы, представленные в таблице 1.


Таблица 1 – Размер облачного хранилища Dropbox

MEGA (MEGA Encrypted Global Access) [4] — файлообменник Кима Доткома. Открыт 19 января 2013 года. Особенностью данного сервиса является то, что Mega шифрует весь контент прямо в браузере с помощью алгоритма AES [5]. Пользователи могут передавать друг другу файлы в зашифрованном виде, при этом все данные хранятся в «облаке». Ключи доступа к файлам не публикуются в открытом доступе, а распространяются по схеме Friend-to-Friend, между доверяющими друг другу пользователями. Однако сервис критиковался экспертами по криптографии из-за фактического отсутствия доверенного объекта на стороне пользователя. Хотя шифрование происходит на стороне клиента при помощи JavaScript, этот код каждый раз заново загружается с сервера и в любой момент может быть подменен без предупреждения, например, в результате взлома сервера третьей стороной. Данный сервис предлагает тарифы, представленные в таблице 2.

Таблица 2 – Размер облачного хранилища MEGA.

Проектирование авторской программы


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

После анализа были сформулированы следующие требования:

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

На основе описанных требований было произведено проектирование разрабатываемой системы.

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

Рисунок 1 – Диаграмма вариантов использования.

Рисунок 1 – Диаграмма вариантов использования.

Для передачи данных используется протокол HTTP. Для обмена ключами используется собственный алгоритм. Для шифрования ключа используется алгоритм RSA [6]. Для шифрования передаваемых данных используется алгоритм AES. В качестве алгоритма электронно цифровой подписи используется DSA [7]. Спроектированная система предполагает шифрование всего трафика между клиетом и сервером. Для этого реализован алгоритм обмена ключами, вклюючающий:

  • генерацию RSA-пары ключей;
  • отпраку публичного ключа;
  • генерацию AES-ключа для шифрования трафика;
  • отпраку на клиет AES-ключа, зашифрованного открытым RSA-ключем;
  • сохранение расшифрованного ключа на клиенте для последующего шифрования трафика от клиента.

Файлы перед загрузкой на сервер шифруются и хранятся на сервере в зашифрованном виде.

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

Для работы сервера была спроектирована база данных с использованием СУБД MySQL. Схема базы данных представлена на рисунке 2.

Рисунок 2 - Схема базы данных сервера.

Рисунок 2 - Схема базы данных сервера.

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

Рисунок 3 – Схема базы данных сервера.

Рисунок 3 – Схема базы данных сервера.

На данный момент в приложении реализованы следующие функции:

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

Выводы


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

Литература


1. Онлайновые хранилища данных // ComputerBild : журнал. — 2010. — № 4. — С. 62—67.
2. Облачное хранилище данных // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Dropbox
3. Dropbox // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Dropbox
4. Mega // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Mega
5. AdvancedEncryptionStandard// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard.
6. RSA // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/RSA
7. DSA // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/DSA