Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
20.06.2014
Размер:
193.02 Кб
Скачать

Методы и средства защиты компьютерной информации

Лабораторная работа №3

Реализация криптографической защиты данных

Цель работы

Изучить архитектуру криптографических сервисов, встроенных в современные операционные системы, получить практические навыки использования криптографических средств Microsoft .Net Framework при программировании прикладных приложений.

Теоретические сведения

В операционных системах семейства Microsoft Windows NT реализация криптографических алгоритмов инкапсулирована в провайдерах криптографических сервисов (Cryptographic Service Providers, CSP) – независимых программных модулях, выполненных в виде динамически подключаемых библиотек. Различные провайдеры могут реализовывать все или некоторые из перечисленных сервисов:

  • симметричное шифрование;

  • шифрование с открытым ключом;

  • цифровая подпись;

  • обмен ключами;

  • защищенный канал передачи (SSL и др.).

С операционной системой поставляется набор провайдеров, реализующих основные криптографические алгоритмы и отличающихся поддерживаемыми алгоритмами и защищенностью по допустимому размеру используемых ключей (Microsoft Base Cryptographic Provider, Strong Cryptographic Provider, Enhanced Cryptographic Provider и др.). Этот набор провайдеров может расширяться, в том числе за счет сторонних производителей (например, криптопровайдер КриптоПро CSP российской компании «Крипто-Про» реализует принятые в качестве стандартов в РФ алгоритмы шифрования и цифровой подписи, имеет сертификат соответствия ФСБ России). Для работы в операционных системах Microsoft провайдеры должны иметь цифровую подпись от Microsoft, подтверждающую корректность и надежность их реализации (в частности, такую цифровую подпись имеет КриптоПро CSP).

Рис. 1. Архитектура подсистемы поддержки криптопровайдеров

Провайдеры реализуют системный интерфейс CryptoSPI, который используется операционной системой при обращении к реализации криптографических сервисов. В свою очередь операционная система предоставляет прикладным приложениям интерфейс CryptoAPI, через который эти приложения могут использовать криптографические сервисы. Общая архитектура подсистемы поддержки провайдеров криптографических сервисов в операционных системах семейства Windows NT представлена на рис. 2.

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

  1. Класс типа алгоритма, например SymmetricAlgorithm или HashAlgorithm. Это абстрактный уровень.

  2. Класс алгоритма является производным от класса типа алгоритма, например RC2 или SHA1. Это также абстрактный уровень.

  3. Реализация класса алгоритма, который является производным от класса алгоритма, например RC2CryptoServiceProvider или SHA1Managed. Это полностью реализуемый уровень.

Рис. 2. Иерархия классов, реализующих криптографические алгоритмы

Часть классов криптографических алгоритмов реализованы в рамках .NET Framework (Managed-классы), другие классы являются оберткой для реализации криптопровайдеров Win32 (CryptoServiceProvider-классы).

Задание

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

Схема защиты файла должна иметь вид:

Схема открытия защищенного файла должна иметь вид:

Цифровая подпись должна формироваться для хэша файла и присоединяться к файлу перед шифрованием. Функция сжатия может быть реализована по желанию.

При защите файла утилита должна генерировать пару ключей и выгружать открытый ключ в формате XML (соответствующий личный ключ используется при цифровой подписи). Секретный ключ шифрования должен запрашиваться у пользователя.

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

Содержание отчета

  1. Титульный лист.

  2. Задание.

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

  4. Листинг программы.

  5. Тестовые примеры.

    1. Для случая неизменного зашифрованного файла.

    2. Для случая изменения зашифрованного файла.

  1. Литература.

Контрольные вопросы

  1. Способы аутентификации сообщений.

  2. Основные способы применения хэш-функций.

  3. Общая схема алгоритма хеширования MD5.

  4. Использование криптосистем с открытым ключом для обеспечения конфиденциальности.

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

  6. Алгоритм RSA.

  7. Алгоритм DSA.

  8. Алгоритм ГОСТ 34.10-94.

  9. Криптосистема Диффи-Хеллмана.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Столингс, В. Криптография и защита сетей: принципы и практика, 2-е изд.: пер. с англ. [Текст] / В. Столингс. – М.: Издательский дом «Вильямс», 2001. – 672 с.

  2. Панасенко, С.П. Алгоритмы шифрования. Специальный справочник [Текст] / С.П. Панасенко. – СПб.: БХВ-Петербург, 2009. - 576 с.

  3. Баричев, С.Г. Основы современной криптографии. [Текст] / С.Г. Баричев, В.В. Гончаров, Р.Е. Серов. – М.: Горячая линия - Телеком, 2001. – 120 с.

  4. Нечаев, В.И. Элементы криптографии. Основы теории защиты информации: учеб. пос. [Текст] / В.И. Нечаев. – М.: Высшая школа, 1999. – 109 с.

  5. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си, 2-е изд. [Текст] / Б. Штайер. – М. Триумф, 2002. – 816 с.

  6. Microsoft Software Developer Network – MSDN [Электронный ресурс]. – http://msdn.microsoft.com

  7. Сайт КриптоПро CSP [Электронный ресурс]. – http://www.cryptopro.ru/cryptopro/products/csp/default.htm

Приложение 2. Варианты заданий для лабораторной работы №3

Алгоритм хэширова-ния

Алгоритм цифровой подписи

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

Алгоритм хэширова-ния

Алгоритм цифровой подписи

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

1.

MD5

RSA

DES

11.

MD5

RSA

Rijndael

2.

MD160

RSA

DES

12.

MD160

RSA

Rijndael

3.

SHA1

RSA

DES

13.

SHA1

RSA

Rijndael

4.

SHA256

RSA

DES

14.

SHA256

RSA

Rijndael

5.

SHA1

DSS

DES

15.

SHA1

DSS

Rijndael

6.

MD5

RSA

RC2

16.

MD5

RSA

Triple-DES

7.

MD160

RSA

RC2

17.

MD160

RSA

Triple-DES

8.

SHA1

RSA

RC2

18.

SHA1

RSA

Triple-DES

9.

SHA256

RSA

RC2

19.

SHA256

RSA

Triple-DES

10.

SHA1

DSS

RC2

20.

SHA1

DSS

Triple-DES

Соседние файлы в папке Лабораторная работа №3