Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
защита данных / Криптография в MS Visual Studio.doc
Скачиваний:
56
Добавлен:
31.03.2015
Размер:
743.42 Кб
Скачать

2

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

____________________________

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ»

___________________________________________________________

П.Б. Хорев

ИСПОЛЬЗОВАНИЕ СРЕДСТВ ШИФРОВАНИЯ ДАННЫХ В ПРИЛОЖЕНИЯХ ДЛЯ MICROSOFT .NET

Учебное пособие по курсу

«Защита данных»

для студентов, обучающихся по направлению

«Прикладная математика и информатика»

Москва Издательский дом МЭИ 2012

УДК

621.398

Х-792

Утверждено учебным управлением НИУ «МЭИ» в качестве учебного пособия

Подготовлено на кафедре прикладной математики

Рецензенты: канд. техн. наук, доц. М.М.Маран,

канд. техн. наук, доц. А.А.Крюков

Хорев П.Б.

Х-792 Использование средств шифрования данных в приложениях для

Microsoft.Net: учебное пособие / П.Б.Хорев.

– М.: Издательский дом МЭИ, 2012. – 81с.

ISBN

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

Изложение материала сопровождается примерами использования рассматриваемых средств защиты в приложениях на языке C# в среде программирования Microsoft Visual Studio.

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

____________________________

Учебное издание

Хорев Павел Борисович

ИСПОЛЬЗОВАНИЕ СРЕДСТВ ШИФРОВАНИЯ ДАННЫХ В ПРИЛОЖЕНИЯХ ДЛЯ MICROSOFT .NET

Учебное пособие по курсу

«Защита данных»

Для студентов, обучающихся по направлению

«Прикладная математика и информатика»

Редактор издательства

Темплан издания МЭИ 2012 (II), учебн. Подписано к печати

Формат 60x84/16 Печать офсетная Печ. л. 5

Тираж 60 экз. Изд. № Заказ

ЗАО «Издательский дом МЭИ», 111250, Москва, Красноказарменная ул., д.14

Отпечатано в ООО «Галлея-Принт», 111024, Москва, ул. 5-я Кабельная, д.2Б

ISBN  Национальный исследовательский университет

«МЭИ», 2012.

Введение

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

  • неправомерный доступ к конфиденциальной информации (коммерческой тайне предприятия, персональным данным его сотрудников и клиентов и т.п.);

  • несанкционированное изменение, подмена, уничтожение важной информации;

  • блокирование доступа к информации;

  • внедрение в компьютерные сети предприятия вредоносного программного обеспечения.

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

Настоящее учебное пособие посвящено вопросам изучения криптографических средств платформы Microsoft .Net, предназначенных для обеспечения конфиденциальности, аутентичности (подлинности) и целостности информации.

Microsoft .NET Framework представляет собой управляемую среду для разработки и исполнения приложений. Среда контролирует все аспекты выполнения программы: выделяет память, отвечает за освобождение или повторное использование ресурсов, а также разрешает или запрещает программе выполнять те или иные действия. Состоит из двух основных компонентов: библиотеки классов .NET Framework (FCL, framework class library) и общеязыковой среды выполнения (CLR, common language runtime).

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

Библиотека классов .NET Framework содержит огромный набор классов. Типы данных из библиотеки являются полностью объектно-ориентированными и обеспечивают интеграцию приложений, написанных на различных языках программирования для .NET Framework.

Библиотека FCL организована в виде пространств имен и содержит достаточно большое число классов, созданных для криптографической защиты данных и содержащихся в пространстве имен System. Security. Cryptography [12, 13].

Криптографические классы библиотеки FCL имеют иерархическую структуру с тремя уровнями. Первые два уровня являются абстрактными (например, AsymmetricAlgorithm или HashAlgorithm, RSA или SHA1). Классы, непосредственно реализующие криптографические алгоритмы, находятся на третьем иерархическом уровне.

Например, класс RSACryptoServiceProvider, реализующий асимметричную криптографическую систему RSA [6, 7, 11], обеспечивает связь с криптопровайдером (установленным в операционной системе Microsoft Windows криптографическим программным или программно-аппаратным модулем) для выполнения им криптографических операций в неуправляемом коде (вне контроля среды Microsoft .NET). Класс RSACryptoServiceProvider является наследником абстрактного класса RSA, который, в свою очередь, наследует свойства и методы от абстрактного класса AsymmetricAlgorithm.

Класс SHA1Managed, реализующий алгоритм криптографического хеширования SHA1 [7, 11] полностью в управляемом коде, наследует свойства и методы абстрактного класса SHA1, который, в свою очередь, является наследником абстрактного класса HashAlgorithm.

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

Например, при создании новой реализации криптосистемы RSA потребуется создать новый класс третьего уровня, наследуемый от класса RSA (например, с именем RSAMyImplementation). Данный новый класс должен будет реализовывать все абстрактные методы класса RSA, благодаря чему будет иметь интерфейс, аналогичный интерфейсу класса RSACryptoServiceProvider.

Библиотека классов FCL включает в себя и другие пространства имен, связанные с реализацией криптографических методов защиты данных:

  • пространство имен System. Security. Cryptography. Xml включает классы, связанные с защитой данных, представленных на языке XML;

  • пространство имен System. Security. Cryptography. X509Certificates включает классы для работы с сертификатами открытых ключей, соответствующими стандарту X.509 v.3 [6].

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

  • классы, содержащие реализации популярных алгоритмов шифрования или хеширования (например, алгоритма симметричного потокового шифрования RC4 или алгоритма хеширования MD4);

  • классы, содержащие реализации российского алгоритма симметричного шифрования, определенного в ГОСТ 28147-89 [2], алгоритма электронной цифровой подписи (ГОСТ Р 34.10-2001) [3], алгоритма хеширования (ГОСТ Р 34.11-94) [4].

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

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

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

В этой главе также содержится пример использования в программе на языке C# реализации алгоритма потокового шифрования RC4, имеющейся во входящих в состав Windows криптопровайдерах.

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

В третьей главе учебного пособия рассматриваются средства обеспечения целостности данных: классы для реализации функций хеширования, классы для вычисления кодов аутентификации сообщений (MAC, message authentication code, и HMAC, hash-based message authentication code).

Изложение материала сопровождается в учебном пособии многочисленными примерами использования методов и средств защиты информации в приложениях на языке программирования C#, разрабатываемых в среде Microsoft Visual Studio. В конце учебного пособия приведен список контрольных вопросов.

Соседние файлы в папке защита данных