Разработка программного комплекса шифрования пользовательских данных

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    20,87 Кб
  • Опубликовано:
    2016-09-18
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программного комплекса шифрования пользовательских данных

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ






Разработка программного комплекса шифрования пользовательских данных

Пояснительная записка к курсовой работе по дисциплине

Безопасность операционных систем


Выполнил

студент группы БИс-41

Скворцова А.C.

Проверил

Зайнуллин А.Д.

г. Йошкар-Ола 2015

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1. Криптография

1.1 История криптографии

1.2 Алгоритмы шифрования

1.2.1 Сравнение алгоритмов шифрования

1.3 Хэш - функции

1.3.1 Применение хэш - функций

2. Шифрование в операционной системе

3. Анализ продуктов в области пользовательского шифрования

ПРАКТИЧЕСКАЯ ЧАСТЬ

ЗАКЛЮЧЕНИЕ

ИСТОЧНИКИ ИНФОРМАЦИИ

ПРИЛОЖЕНИЕ А. Код программы


ВВЕДЕНИЕ

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

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

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

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

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1. Криптография

1.1 История криптографии

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

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

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

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

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

1.2 Алгоритмы шифрования

Алгоритмы шифрования делятся на два больших класса - симметричные и асимметричные.

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

Обмен информацией осуществляется в три этапа:

) Отправитель передает получателю ключ (в сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);

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

) Получатель получает сообщение и расшифровывает его.

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

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

Схема обмена информацией следующая:

1)Получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным;

2) Отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;

) Получатель получает сообщение и расшифровывает его, используя свой секретный ключ.

1.2.1 Сравнение алгоритмов шифрования

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

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

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

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

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

Ассиметричные системы также называют криптосистемами с открытым ключом. Это такой способ шифрования данных, при котором открытый ключ передается по открытому каналу (не скрывается) и используется для проверки электронной подписи и для шифрования данных. Для дешифровки же и создания электронной подписи используется второй ключ, секретный.

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

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

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

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

1.3 Хэш - функции

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

CRC32 (Cyclic redundancy check - Циклический избыточный код) простая хэш функция разработанная для защиты данных от случайных изменений в компьютерных устройствах, таких как сетевые карты и жёсткие диски. CRC32 определяется международным стандартом CRC32-IEEE 802.3 Алгоритм очень быстр и, несмотря на полную криптографическую незащищённость, широко используется благодаря простоте реализации и скорости. 32-битный хэш-код обычно представляется шестнадцатеричным числом из 8 символов.

MD4 алгоритм хэширования, разработанный Рональдом Л. Ривестом из RSA Data Security, Inc. В настоящее время считается ненадёжным. Это быстрый алгоритм (на 32-битных процессорах) и его используют при вычислении хэшей в peer-to-peer сети EDonkey 2000. Алгоритм описан в RFC 1320. Хэш-код представляет шестнадцатеричное число из 32 символов.

MD5 ещё один алгоритм хэширования, разработанный Рональдом Л. Ривестом из RSA Data Security, Inc. Представляет улучшенную версию MD4. Алгоритм описан в RFC 1321. В течении многих лет MD5 был стандартом интернет, но сейчас считается сломанным. Хэш-код представляет шестнадцатеричное число из 32 символов.

Tiger современная хэш-функция, изобретённая Россом Андерсом и Эли Бихамом. Была специально придумана такой, чтобы быстро вычисляться на 64-битных процессорах. См. описание. Хэш-код представляет шестнадцатеричное число длины 48.

TTH (Tiger Tree Hash) хэш, вычисляющийся в древовидной форме с использованием алгоритма Tiger. См. описание. TTH используется в нескольких peer-to-peer сетях: Direct Connect, Gnutella, Gnutella2, а также в таких программах как DC++, Phex и Shareaza. Хэш-код представляет base32-закодированную строку длины 39.

BTIH (BitTorrent InfoHash) используется в p2p сети BitTorrent. Хэш-сумма зависит не только от данных, но и от имени файла и даже от программы вычисляющей хэш. RHash использует тот же метод, что и uTorrent. Хэш является строкой из 40 шестнадцатеричных чисел.

EDonkey 2000 один из самых быстрых алгоритмов хэширования. Он основан на устаревшем MD4 и используется в p2p сети EDonkey. Описание алгоритма: EDonkey network. Хэш-код представляет шестнадцатеричное число из 32 символов.

AICH (Advanced Intelligent Corruption Handler) хэш, вычисляющийся в древовидной форме с использованием алгоритма SHA1. См. описание. Хэш используется в p2p сети EDonkey и обычно включается в EDonkey-линки. Хэш-код представляет base32-закодированную строку длиной в 32 символа.

WHIRLPOOL - хэш функция, рекоммендованная проектом NESSIE и принятая как ISO/IEC 10118-3:2004 международный стандарт. Хэш представляется 128-цифровым шестнадцатеричным числом.

GOST - хэш-функция определённая в российском государственном стандарте ГОСТ Р 34.11-94. Существует две широко распространённые версии алгоритма - с «тестовым» и CryptoPro наборами параметров. Хэш функция медленнее аналогичных, но используется для цифровой подписи в российских государственных банках и предприятиях. Хэш представляет шестнадцатеричную строку длины 64.

HAS-160 - корейская хэш-сумма, разработанная для корейского алгоритма цифровой подписи (KCDSA). Хэш представляет шестнадцатеричную строку длины 40.

RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) - 160-битная хэш-функция. Спецификация: веб-страница RIPEMD-160. Хэш представляет шестнадцатеричную строку длины 40.

EDON-R - семейство хэш-функций с произвольной длиной хэша. RHash поддерживает 256-битный и 512-битный варианты. 512-битный EDON-R является одним из самых быстрых алгоритмов на 64-битных процессорах. Хэш функция описана в статье: D. Gligoroski, S. Markovski, L. Kocarev Edon-R, An Infinite Family of Cryptographic Hash Functions (2006). 256-битный и 512-битный хэши представляют строку длиной 64 и 128 шестнадцатеричных символов соответсвенно.

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

Хэш 128-битного и 256-битного Snefru представляется шестнадцатеричной строкой длины 32 и 64 символа соответственно.

криптография шифрование электронная подпись

1.3.1 Применение хэш - функций

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

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

·Понижение вычислительной сложности. Как правило, документ значительно больше его хеша.

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

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

Проверка парольной фразы. В большинстве случаев парольные фразы не хранятся на целевых объектах, хранятся лишь их хеш-значения. Хранить парольные фразы нецелесообразно, так как в случае несанкционированного доступа к файлу с фразами злоумышленник узнает все парольные фразы и сразу сможет ими воспользоваться, а при хранении хеш-значений он узнает лишь хеш-значения, которые не обратимы в исходные данные, в данном случае в парольную фразу. В ходе процедуры аутентификации вычисляется хеш-значение введённой парольной фразы, и сравнивается с сохранённым. Примером в данном случае могут служить ОС GNU/Linux и Microsoft Windows XP. В них хранятся лишь хеш-значения парольных фраз из учётных записей пользователей.

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

Пусть некий клиент, с именем name, производит аутентификацию по парольной фразе, pass, на некоем сервере. На сервере хранится значение хеш-функции H (pass, R2), где R2 - псевдослучайное, заранее выбранное число. Клиент посылает запрос (name, R1), где R1 - псевдослучайное, каждый раз новое число. В ответ сервер посылает значение R2. Клиент вычисляет значение хеш-функции H (R1, H (pass, R2)) и посылает его на сервер. Сервер также вычисляет значение H (R1, H (pass, R2)) и сверяет его с полученным. Если значения совпадают - аутентификация верна.

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

2. Шифрование в операционной системе

Операционные системы позволяют защищать данные и восстанавливать их с помощью шифрованной файловой системы (EFS).

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

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

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

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

Кроме того, шифрование или расшифровку файла, или папки можно выполнить командой «Шифровать».

При работе с шифрованными папками и файлами следует учитывать следующие особенности:

)Шифрование возможно только для файлов или папок, расположенных

на томах с файловой системой NTFS. Однако для шифрования файлов можно воспользоваться протоколом распределенной разработки и контроля версий в Интернете (WebDAV), который поддерживает работу с файловой системой NTFS.

)Шифрование сжатых файлов или папок не предусмотрено. Если

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

) При копировании или перемещении шифрованных файлов на том, который не является томом с файловой системой NTFS, файлы будут автоматически расшифрованы.

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

) Не могут быть зашифрованы файлы с атрибутом «Системный», а также файлы, находящиеся в структуре корневого каталога системы.

) Шифрование папки или файла не предотвращает их удаление или просмотр дерева файлов и каталогов. Удаление или просмотр дерева каталогов разрешены для любого пользователя, имеющего необходимые разрешения. По этой причине рекомендуется использовать шифрованную файловую систему EFS совместно с разрешениями файловой системы NTFS.

) Файлы и папки, расположенные на удаленном компьютере, на котором разрешено удаленное шифрование, могут быть зашифрованы и дешифрованы, однако передаваемые при этом по сети данные не шифруются. При шифровании информации, передаваемой по сети, необходимо использовать другие протоколы, например, безопасный протокол передачи данных/протокол безопасности транспортного уровня (SSL/TLS) или протокол IP-безопасности (IPsec). (Кроме того, как ранее упоминалось, для передачи файлов в зашифрованном виде можно использовать WebDAV.)

Параметры политики EFS. Ряд параметров политики EFS можно настроить с помощью групповой политики. Эти параметры политики находятся в разделе Конфигурация компьютера\Параметры Windows\Параметры безопасности\Политики открытого ключа\Шифрованная файловая система.

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

Включение и отключение шифрования на эллиптических кривых. Можно включить или отключить использование вместе с файловой системой EFS шифрования на эллиптических кривых (ECC). Если не выполняется настройка каких-либо параметров политики для EFS, шифрование ECC включено. Благодаря шифрованию ECC организации могут обеспечить соответствие стандартам шифрования Suite B.B - это набор алгоритмов шифрования. В стандарт Suite B входят следующие компоненты: стандарт AES с 128- и 256-разрядными ключами для симметричного шифрования, алгоритм ECDSA для цифровых подписей, алгоритм ECDH (эллиптическая кривая Диффи-Хеллмана) для согласования ключей, а также алгоритмы SHA-256 и SHA-384 для хэша.

3. Анализ продуктов в области пользовательского шифрования

В ходе выполнения курсового проекта был проведен сравнительный анализ некоторых персональных средств шифрования. Результат анализа представлен в таблице 1.

Таблица 1. Сравнение персональных средств шифрования

TrueCryptSecret DiskZecurion ZdiskВерсия7.1a4Нет данныхСтоимостьБесплатноОт 4 240 руб. на 1 компьютерОт 5250 руб. на 1 компьютерОперационная системаWindows 7, Windows Vista, Windows XP, Windows Server 2003, Windows Server 2008: (32-х и 64-разрядные версии); Windows Server 2008 R2; Windows 2000 SP4; Mac OS X 10.7 Lion (32- и 64-разрядные версии); Mac OS X 10.6 Snow Leopard; Mac OS X 10.5 Leopard; Mac OS X 10.4 Tiger; Linux (32-х и 64-разрядные версии, ядро 2.6 или совместимое)Windows 7, Windows Vista, Windows XP: (32-х и 64-разрядные версии)Windows 98; Windows Me; Windows NT Workstation; Windows 2000 Professional; Windows XP; Windows VistaВстроенные алгоритмы шифрованияAES Serpent TwofishНетНетРежим шифрования XTSДаНетНетКаскадное шифрованиеAES-Twofish-Serpent; Serpent-AES; Serpent-Twofish-AES; Twofish-SerpentНетНетПрозрачное шифрование ДаДаДаАутентификация до загрузки ОСПарольПин + токенНетШифрование разделов дискаДаДаНетСоздание файлов-контейнеровДаДаДаСоздание скрытых разделовДаНетНетСоздание скрытой ОСДаНетНетШифрование переносных накопителейДаДаДаРабота по сетиДаНетДаМногопользовательский режимСредствами NTFSДаДаАутентификация только по паролюДаНетНетПоддержка токенов и смарт-картПоддерживающие протокол PKCS #11 2.0 или вышеUSB-ключ eToken PRO/32K (64К); USB-ключ eToken PRO/72K (Java); Смарт-карта eToken PRO/32K (64К); Смарт-карта eToken PRO/72K (Java); Комбинированный ключ eToken NG-FLASH Комбинированный ключ eToken NG-OTP eToken PRO AnywhereRainbow iKey 10xx/20xx/30xx; ruToken; eToken R2/ProЭкстренное отключение шифрованных дисковГорячие клавишиГорячие клавишиГорячие клавишиЗащита от ввода пароля под принуждениемНетДаДа

Выводы, определения и пояснения по результатам анализа:

Встроенные алгоритмы, криптопровайдеры, XTS и каскадное шифрование.

Криптопровайдеры - это подключаемые модули, которые определяют метод кодирования (декодирования), используемый программой. Коммерческие решения используют пакеты криптопровайдеров так как:

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

. В мире разрабатываются, тестируются и внедряются международные стандарты, но для российских государственных структур необходимо соответствие требованиям ФСТЭК и ФСБ. Эти требования подразумевают лицензирование создания и распространения средств защиты информации.

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

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

Технология шифрования XTS (XEX - based Tweaked CodeBook mode (TCB) with CipherText Stealing (CTS)) - логическое развитие предыдущих блочных методов шифрования XEX и LRW, в использовании которых обнаружены уязвимости. Так как операции чтения или записи на носителях информации производятся по секторам блоками, то использование потоковых методов кодирования неприемлемо. Таким образом, 19 декабря 2007 года метод шифрования XTS-AES для алгоритма AES был описан и рекомендован международным стандартом защиты хранимой информации IEEE P1619.

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

)Генерация вектора, шифруя номер сектора первым ключом;

)Сложение вектора с исходной информацией;

)Шифрование результата сложения вторым ключом;

)Сложение вектора с результатом шифрования;

)Умножение вектора на порождающий многочлен конечного поля.

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

.Описан международным стандартом;

.Имеет высокую производительность за счет выполнения предварительных вычислений и распараллеливания;

.Позволяет обрабатывать произвольный блок сектора за счет вычисления вектора инициализации.

В IEEE P1619 рекомендуется использовать метод XTS с алгоритмом шифрования AES, однако архитектура режима позволяет использовать его совместно с любым другим блочным шифром.

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

Экстренное отключение дисков, ввод пароля «под принуждением», отрицание причастности.

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

Наступает этап «принуждения». «Оппонент» будет использовать физические или юридические меры воздействия, чтобы заставить владельца открыть информацию. Удаление ключа шифрования подтверждает тот факт, что информация важна, а запасной ключ спрятан. Без ключа информация все еще доступна для криптоанализа и взлома.


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

Рисунок 2. Диск с фиктивной и скрытой информацией

Выводы. К преимуществам бесплатной программы TrueCrypt стоит отнести:

.Функционал

.Возможность участвовать в тестировании и улучшении

.Избыточное количество открытой информации по работе приложения

К недостаткам можно отнести:

.Отсутствие поддержки;

.Высокая сложность для рядового пользователя;

.Отсутствие двухуровневой аутентификации перед стартом ОС;

.Невозможность подключать модули сторонних криптопровайдеров.

Коммерческие продукты имею множества достоинств: техническая поддержка, хорошая комплектация, низкая стоимость, наличие сертифицированных версий, возможность использовать алгоритм ГОСТ 28147-89, многопользовательский режим с разграниченной двухуровневой аутентификацией. А недостатки: ограниченная функциональность и наивность в поддержании секретности хранения зашифрованных данных.

TrueCrypt продолжает оставаться самым мощным, надежным и функциональным средством криптографии.

Zdisk и Secret Disk имеют версии, сертифицированные ФСТЭК. Следовательно, эти продукты имеет смысл использовать для соответствия требованиям законодательства РФ в области защиты информации, например, защиты персональных данных, как того требует Федеральный Закон 152-ФЗ и подчиненные ему нормативные акты.

Версия TrueCrypt 7.1а вышла в 2011 году, однако она остается последней полноценной функциональной версией продукта.

ПРАКТИЧЕСКАЯ ЧАСТЬ

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

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

Реализация этого алгоритма представлена в классе RC4 (код в приложении А). Входными данными выступает массив байт. Ключ выбирается и вводится пользователем самостоятельно, по умолчанию используется ключ «key». Для данного алгоритма RC4 он может быть от 8 до 2048 бит, но обычно используется диапазон 40 - 256 бит. Для генерации ключевого потока шифр использует скрытое внутреннее состояние, состоящее из двух частей - перестановки, содержащей все возможные байты от 0x00 до 0xFF (массив permutation) и переменных - счетчиков x и y. Для начальной инициализация вектора - перестановки ключом, используется алгоритм ключевого расписания (Key-Scheduling Algorithm), реализованный в методе Ini. Также реализован генератор псевдослучайной последовательности (Pseudo-Random Generation Algorithm), который представлен в методе keyItem. При каждом вызове метод выдает последующий байт ключевого потока, который объединяется с помощью XOR c байтом исходных данных. Для каждого байта потока входных исходных данных происходит запрос байта ключа и объединение их при помощи XOR (метод Encode).

Помимо шифрования или расшифровки одиночных файлов, пользователь имеет возможность работать с файловым контейнером, настроив его при выборе соответствующего пункта меню. При запуске программы и выборе пользователем контейнера, создается виртуальный жёсткий диск, который исчезает при закрытии программы, либо при нажатии клавиши «Отключить» в пункте Меню «Контейнер». (ОПИСАНИЕ!)

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

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

Пример работы программы:

Главное меню

Шифрование и расшифровка данных

Настройки


Контейнер



ЗАКЛЮЧЕНИЕ

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

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

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


ИСТОЧНИКИ ИНФОРМАЦИИ

1.Мельников В. В. Защита информации в компьютерных системах. - М.: Финансы и статистика, 1997.

2.Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф. Защита информации в компьютерных системах и сетях. - М.: Радио и связь, 1999.

3.Харин Ю. С., Берник В. И., Матвеев Г. В. Математические основы криптологии. - Мн.: БГУ, 1999.

4.Герасименко В. А., Малюк А. А. Основы защиты информации. - М.: МГИФИ, 1997.

5.Леонов А.П., Леонов К.П., Фролов Г.В. Безопасность автоматизированных банковских и офисных технологий. - Мн.: Нац. кн. палата Беларуси, 1996.

6.Зима В. М., Молдовян А. А., Молдовян Н. А. Компьютерные сети и защита передаваемой информации. - СПб.: СПбГУ, 1998.

7.Реализация RC4 [Электронный ресурс].- #"justify">ПРИЛОЖЕНИЕ А. Код программы

Класс RC4:

public class RC4

{

private byte[] permutation = new byte[256];

private int x = 0;

private int y = 0;

public RC4(string key)

{

byte[] byteKey = ASCIIEncoding.ASCII.GetBytes(key);

Ini(byteKey);

}

private void Ini(byte[] key)

{

int keyLength = key.Length;

for (int i = 0; i < 256; i++)

{

permutation[i] = (byte)i;

}

int j = 0;

for (int i = 0; i < 256; i++)

{

j = (j + permutation[i] + key[i % keyLength]) % 256;

byte temp = permutation[i];

permutation[i] = permutation[j];

permutation[j] = temp;

}

}

public byte[] Encode(byte[] data)

{

byte[] cipher = new byte[data.Length];

for (int i = 0; i < data.Length; i++)

cipher[i] = (byte)(data[i] ^ keyItem());

}

return cipher;

}

public byte[] Decode(byte[] data)

{

return Encode(data);

}

private byte keyItem()

{

x = (x + 1) % 256;

y = (y + permutation[x]) % 256;

byte temp = permutation[x];

permutation[x] = permutation[y];

permutation[y] = temp;

return permutation[(permutation[x] + permutation[y]) % 256];

}

}

Класс VirtualDrive

class VirtualDrive

{

#region Win32

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]

private static extern bool DefineDosDevice(

int dwFlags,

string lpDeviceName,

string lpTargetPath

);

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]

private static extern int GetDriveType(

string lpRootPathName

);

private const int DDD_RAW_TARGET_PATH = 0x00000001;

private const int DDD_REMOVE_DEFINITION = 0x00000002;

private const int DDD_EXACT_MATCH_ON_REMOVE = 0x00000004;

private const int DRIVE_UNKNOWN = 0;

private const int DRIVE_NO_ROOT_DIR = 1;

private const int DRIVE_FIXED = 3;

#endregion // Win32

#region Public methods

#region Create

public static bool Create(char driveChar, string path)

{

return DDDOperation(driveChar, path, true);

}

#endregion // Create

#region Delete

public static bool Delete(char driveChar, string path)

{

return DDDOperation(driveChar, path, false);

}

#endregion // Delete

#endregion // Public methods

#region Private methods

#region DDDOperations

private static bool DDDOperation(char driveChar, string path, bool create)

{

if (!Directory.Exists(path))

return false;

string drive = string.Format("{0}:", driveChar.ToString().ToUpper());

int type = GetDriveType(string.Format("{0}{1}", drive, Path.DirectorySeparatorChar));

if ((create && type != DRIVE_UNKNOWN && type != DRIVE_NO_ROOT_DIR) ||

(!create && type != DRIVE_FIXED))

return false;

int flags = DDD_RAW_TARGET_PATH;

if (!create) flags |= (DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE);

return DefineDosDevice(

flags,

drive,

string.Format("{0}??{0}{1}", Path.DirectorySeparatorChar, path)

}

#endregion // DDDOperations

#endregion // Private methods

}

Контроль файлов и папок

private void MonitoringFiles(string Path)

{

try

{

watcher.Path = Path;

watcher.SynchronizingObject = null;//форма

watcher.Filter = "*"; // любые папки файлы

watcher.IncludeSubdirectories = true; //контроль вроженных папок файлов

// Add event handlers.

watcher.Changed += new FileSystemEventHandler(OnChanged);

watcher.Created += new FileSystemEventHandler(OnCreated);

watcher.Deleted += new FileSystemEventHandler(OnDeleted);

watcher.Renamed += new RenamedEventHandler(OnRenamed);

watcher.EnableRaisingEvents = true;// Begin watching.

}

catch (Exception)

{

return;

}

}

Похожие работы на - Разработка программного комплекса шифрования пользовательских данных

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!