Филенко Максим Сергеевич
Магистр ДонНТУ Филенко Максим Сергеевич

Факультет вычислительной техники и информатики

Кафедра электронных вычислительных машин

Специальность: «Компьютерные системы и сети»

Тема выпускной работы: «Разработка механизма распределенного хранения и защиты информации»

Научный руководитель: к.т.н. доц. Мальчева Раиса Викторовна



Реферат по теме выпускной работы

§ Введение

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

Связь работы с научными программами, планами, темами. Магистерская работа выполняется в течение 2008-2009 гг. в соответствии с проектом «Цифровой город». Донецкий национальный технический университет занимает передовую позицию в данной программе.

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

  1. Выполнить анализ: сетевых протоколов передачи информации в одноранговых компьютерных сетях; методов криптографической защиты хранимой информации.
  2. Разработать алгоритм разбиения данных на блоки равного размера.
  3. Разработать схему создания URI для записи/чтения данных.
  4. Исследовать разработанную схему хранения информации с целью определения области их эффективного применения.
Предмет разработки и исследований: децентрализованные компьютерные сети.
Объект исследований: протокол обмена информацией в децентрализованной сети.
Методология и методы исследований. В процессе исследований используется теория вычислительных сетей, теория графов, теория вероятностей, формальный аппарат криптографии, инженерный анализ, теория моделирования.

Научная новизна определяется следующими положениями:

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

Обзор исследований и разработок по теме. К локальным исследованиям можно отнести работы магистров И. В. Бабенко и М. А. Досты, которые занимались идеями вычислительных кластеров, построенных на базе ЛВС. В рамках национальных исследований ведутся интенсивные работы по запуску всеукраинской GRID-инфраструктуры. Глобальные исследования в данной области уже перешли на качественно новый уровень и идея распределения ресурсов выражается в создании новой парадигмы — облачная обработка данных (cloud computing), которая совершенно прозрачно предоставляет свои ресурсы в соответствии с потребностями приложений, скрывая внутреннюю архитектуру и особенности, создавая ощущения работы с единой системой. Разработки в данном направлении активно ведутся на компьютерном факультете Калифорнийского университета.

§ Основное содержание работы

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

В первом разделе выполнен анализ современных методов организации пространства хранения информации, методов оптимизации накопителей, способов передачи информации в одноранговой сети, сформулированы основные задачи исследований.
Сегодня доступно достаточное количество методов формирования единого хранилища данных, принципиально разных, соответствующие различным требованиям к системе хранения.
Менеджер логических томов (Logical Volume Manager, LVM) — система управления томами, «прослойка» между ФС и физическими разделами диска. Управление логическими томами — это способ абстрагировать физическое управление томами в системе в высокоуровневую и, как правило, в более простую парадигму. В рамках LVM все физические диски и разделы вне зависимости от их размера и разбиения могут абстрагироваться и рассматриваться как единое хранилище данных. Например, в схеме отображения томов физического уровня на логический, показанной на рисунке 1, существует возможность создать файловую систему размером, скажем, 150 ГБ, в то время как наибольший диск имеет объем всего 80 ГБ.

Отображение томов физического уровня на логический
Рисунок 1 — Отображение томов физического уровня на логический.

Собирая разделы и целые диски в виртуальный диск, LVM может суммировать небольшие объемы дисковой памяти в больший объединенный диск. Этот виртуальный диск в терминах LVM называется логической группой (volume group).
Возможность иметь файловую систему, которая превышает размер наибольшего диска, не является единственной «волшебной» особенностью этой высокоуровневой парадигмы управления ресурсами хранения данных. LVM также позволяет:

Идея конкатенации физических дисков в единые массивы для хранения информации впервые была озвучена и реализована в калифорнийском университете Беркли. В общем, сама технология RAID (redundant array of independent/inexpensive disks)[1] имеет широкое многообразие реализаций для решения разных задач по хранению данных. Из всех уровней RAID выберем нулевой. RAID 0 — дисковый массив из двух или более жестких дисков. Данный уровень RAID подходит для решения поставленной задачи хранения информации. Схема записи блоков данных на устройство приведена на рисунке 2.
Схема RAID 0
Рисунок 2 — Схема RAID 0.

Информация разбивается на блоки Ai и записывается на оба/несколько дисков одновременно.
Достоинства: Недостатки: Кроме того, мы так и не получаем окончательного и полноценного решения поставленной задачи по организации хранилища, ведь оба подхода (и LVM, и RAID) реализуются в рамках локальной физической системы и неприменимы в условиях ЛВС в силу невозможности монтирования на таком уровне сетевых ресурсов.
Очевидна необходимость унификации всех ресурсов информационной инфраструктуры в некую единую среду, имеющую прозрачный интерфейс для пользователя. Прототипом можно принять кластерные системы — компьютеры, объединенные сетью и прозрачно предоставляющие свои вычислительные мощности так, как будто работа осуществляется с единой машиной. Связью может служить как локальная (ЛВС), так и глобальная сеть. Кластер, в общем случае, предоставляет процессорное время всех узлов для выполнения математических вычислений. Задача состоит в поиске и усовершенствовании или создании механизма хранения файлов в некоем подобии кластера.
В основу построения такой схемы хранения информации положена концепция распространения информации в P2P-сетях.
Одноранговые, децентрализованные или пиринговые (peer-to-peer, P2P) сети — это компьютерные сети, основанные на равноправии участников. В таких сетях отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и сервером. В отличие от архитектуры клиент-сервер, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов.
Впервые фраза «peer-to-peer» была использована в 1984 году Парбауэллом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при разработке архитектуры Advanced Peer to Peer Networking фирмы IBM.
Например, в сети есть 12 машин, при этом любая может связаться с любой. В качестве клиента (потребителя ресурсов) каждая из этих машин может посылать запросы на предоставление каких-либо ресурсов другим машинам в пределах этой сети и получать их. Как сервер, каждая машина должна обрабатывать запросы от других машин в сети, отсылать то, что было запрошено, а также выполнять некоторые вспомогательные и административные функции.
Любой член данной сети не гарантирует никому своего присутствия на постоянной основе. Он может появляться и исчезать в любой момент времени. Но при достижении определённого критического размера сети наступает такой момент, что в сети одновременно существует множество серверов с одинаковыми функциями.
Помимо чистых P2P-сетей, существуют так называемые гибридные сети, в которых существуют сервера, используемые для координации работы, поиска или предоставления информации о существующих машинах сети и их статусе (online, offline и т.д.). Гибридные сети сочетают скорость централизованных сетей и надёжность децентрализованных благодаря гибридным схемам с независимыми индексационными серверами, синхронизирующими информацию между собой. При выходе из строя одного или нескольких серверов, сеть продолжает функционировать. К частично децентрализованным файлообменным сетям относятся например EDonkey, BitTorrent.
Одна из областей применения технологии пиринговых сетей — это обмен файлами, так как, очевидно, такой подход распределяет нагрузку на каналы передачи, повышая скорость и отказоустойчивость. Выглядит это так: пользователи сети выкладывают какие-либо файлы в специальную папку, содержимое которой доступно для скачивания другим клиентам. Какой-нибудь другой пользователь сети посылает запрос на поиск какого-либо файла. Программа ищет у клиентов сети файлы, соответствующие запросу, и показывает результат. После этого пользователь может скачать файлы у найденных источников. Современные файлообменные сети позволяют скачивать один файл сразу с нескольких источников (так быстрее и надёжнее). Чтобы убедиться, что этот файл у всех источников одинаковый, производится сравнение не обязательно по названию файла, а и по контрольным суммам или хэшам типа MD4, TTH, SHA-1. Во время скачивания файла пользователем (и после его окончания) этот файл у него могут скачивать и другие клиенты сети, в результате чего особенно популярные файлы могут в итоге быть доступными для скачивания с многих источников одновременно.
Технология пиринговых сетей применяется также для распределённых вычислений. Они позволяют в сравнительно очень короткие сроки выполнять поистине огромный объём вычислений, который даже на суперкомпьютерах потребовал бы, в зависимости от сложности задачи многих лет и даже столетий работы. Такая производительность достигается благодаря тому, что некоторая глобальная задача разбивается на большое количество блоков, которые одновременно выполняются сотнями тысяч компьютеров, принимающими участие в проекте.

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

  1. Разбиение исходного файла на блоки.
  2. Вычисление хэш-функций.
  3. Распределение блоков, формирование URL.
  4. Запись и сохранение информации.
Как правило, файлы не могут целиком делиться на блоки указанного размера, поэтому последний блок будет неполный. Алгоритм предполагает обработку массивов фиксированного размера. В следствие этого, последняя последовательность будет дополняться специальным маркером конца потока и случайными данными для достижения заданного объема части.
Сама по себе технология не является и не должна быть низкоуровневой файловой системой в классическом понимании этого понятия. Такой подход намеренно применен с целью сделать систему более простой и гибкой, а также легкой для внедрения. На компьютерах-участниках не требуется выделять и форматировать специальным образом раздел(ы) жесткого диска, что безусловно является огромным преимуществом. Блоки, на которые разбивается исходный файл, по отдельности из себя не представляют никакой ценности, поэтому их можно хранить в файловой системе узла в нормальной форме (двоичный файл). Следовательно, программная реализация сводится к кросс-платформенному программированию пользовательского ПО. Современное разнообразие средств разработки универсальных приложений в плане ОС делает задачу тривиальной. Приложение успешно можно написать на следующих языках программирования: Java, C/C++, Python. В качестве библиотеки для организации GUI для последних двух языков следует выбрать GTK, Tkinter или wxWindows. Такой подход позволит приложению запускаться в любой современной операционной среде: Microsoft Windows ®, Linux, Mac OS X, BSD-системы.
Принцип распределенного сохранения файла
Рисунок 3 — Принцип распределенного сохранения файла.
(Анимация. Количество кадров - 3, циклов повторения - 7, размер - 38.263 байт)

В третьем разделе решается вопрос шифрования блоков, которые будут размещаться на узлах сетевого хранилища. Шифрование осуществляется по схеме одноразовых блокнотов (шифр Вернама).
Шифр Вернама (схема одноразовых блокнотов) — в криптографии система симметричного шифрования, изобретённая в 1917 году сотрудниками AT&T Мейджором Джозефом Моборном и Гильбертом Вернамом. Шифр Вернама является единственной системой шифрования, для которой доказана абсолютная криптографическая стойкость.
Для произведения шифртекста открытый текст объединяется операцией «исключающее ИЛИ» с ключом (называемым одноразовым блокнотом или шифроблокнотом). При этом ключ должен обладать тремя критически важными свойствами:

Шифр назван в честь телеграфиста AT&T Гильберта Вернама, который в 1917 году построил телеграфный аппарат, который выполнял эту операцию автоматически — надо было только подать на него ленту с ключом. Не будучи шифровальщиком, тем не менее, Вернам верно заметил важное свойство своего шифра — каждая лента должна использоваться только один раз и после этого уничтожаться. Это трудноприменимо на практике — поэтому аппарат был переделан на несколько закольцованных лент с взаимно простыми периодами.
В 1949 году Клод Шеннон опубликовал работу, в которой доказал абсолютную стойкость шифра Вернама. Других шифров с этим свойством не существует. Это по сути означает, что шифр Вернама является самой безопасной криптосистемой из всех возможных.
Для работы шифра Вернама необходима истинно случайная последовательность нулей и единиц (ключ). По определению, последовательность, полученная с использованием любого алгоритма, является не истинно случайной, а псевдослучайной. То есть, нужно получить случайную последовательность неалгоритмически (например, используя распад ядер, создаваемый электронным генератором белый шум или другие достаточно случайные события). Чтобы сделать распределение предельно близким к равномерному, случайная последовательность обычно прогоняется через хэш-функцию наподобие MD5. В сочетании с реализацией сетевого распространения информации данный недостаток не является критичным.
Приняв во внимание распределение данных по сети, можно утверждать, что сборку сохраненной информации несанкционировано практически осуществить невозможно, ибо нельзя «объять необъятное». Дополнительное применение устойчивого метода шифрования делает систему на практике абсолютно защищенной.

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

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

Важное замечание! При написании данного автореферата работа над магистерской диссертацией еще не завершена. Окончание запланировано на декабрь 2009 года. Для получения дополнительной информации свяжитесь с автором или научным руководителем.

§ Список литературы

  1. David A. Patterson, Garth Gibson, Randy H. Katz, A Case for Redundant Arrays of Inexpensive Disks, University of California Berkley, 1988.
  2. Gupta, Meeta, Storage Area Network Fundamentals, Cisco Press. Appendix A.
  3. Advantages of peer-to-peer networks - http://www.solyrich.com/p2p-pros-cons.asp
  4. Lewis, LVM HOWTO, Linux Documentation Project - http://tldp.org/HOWTO/LVM-HOWTO
  5. Баранов Константин, Linux Logical Volume Manager - http://const.tltsu.ru/articles/lvm.pdf
  6. Javed I. Khan, Adam Wierzbicki, Foundation of Peer-to-Peer Computing, Elsevier Journal of Computer Communication, February 2008. Volume 31, Issue 2.
  7. Ross J. Anderson, The eternity service, Pragocrypt, 1996.
  8. Marling Engle, J. I. Khan, Vulnerabilities of P2P systems and a critical look at their solutions, May 2006 - http://www.medianet.kent.edu/techreports/TR2006-11-01-p2pvuln-EK.pdf
  9. Stephanos Androutsellis-Theotokis, Diomidis Spinellis, A survey of peer-to-peer content distribution technologies, ACM Computing Surveys, December 2004.
  10. John F. Buford, Heather Yu, Eng Keong Lua, P2P Networking and Applications, Morgan Kaufmann, December 2008.
  11. Ralf Steinmetz, Klaus Wehrle, Peer-to-Peer Systems and Applications, Lecture Notes in Computer Science, September 2005.
  12. Detlef Schoder, Kai Fischbach, Core Concepts in Peer-to-Peer Networking, Idea Group Inc, 2005 - http://www.idea-group.com/downloads/excerpts/Subramanian01.pdf
  13. Marcus J. Ranum, One-Time-Pad (Vernam's Cipher) Frequently Asked Questions, 1995 - http://www.ranum.com/security/computer_security/papers/otp-faq
  14. Savory, Stuart, One-Time-Pad, Chiffriergerätebau - http://home.egge.net/~savory/chiffre9.htm
  15. Kahn, David, The Codebreakers, Macmillan, 1967.