Технологии и продукты Microsoft в обеспечении ИБ Лекция 7. Криптографические функции в .NET Framework Цели Изучить основные элементы пространства имен Cryptography Рассмотреть принципы работа с потоками Познакомиться с особенностями реализации и использования генераторов псевдослучайных чисел 2 Высшая школа экономики - 2009 Основные элементы пространства имен Cryptography Криптографические алгоритмы Вспомогательные классы Сертификаты X.509 Цифровые подписи XMLCMS/PKCS#7 3 Высшая школа экономики - 2009 Криптографические алгоритмы Набор классов, применяемых для реализации алгоритмов симметричного и асимметричного шифрования, а также хеширования 4 Высшая школа экономики - 2009 Вспомогательные классы Классы, обеспечивающие генерацию криптографически стойких последовательностей псевдослучайных чисел, выполнение преобразований, взаимодействие с хранилищем CryptoAPI и шифрование на основе потоковой модели 5 Высшая школа экономики - 2009 Сертификаты X.509 Классы, определенные в пространстве имен System.Security.Cryptography.X509Certificates и предоставляющие цифровые сертификаты и (начиная с .NET 2.0) классы для доступа к хранилищу сертификатов Windows 6 Высшая школа экономики - 2009 Цифровые подписи Классы, определенные в пространстве имен System.Cryptography.Xml и предоставляющие цифровые подписи в XML-документах в соответствии со стандартами, опубликованными консорциумом W3C 7 Высшая школа экономики - 2009 XMLCMS/PKCS#7 Начиная с версии .NET 2.0, осуществляется управляемая поддержка упакованных CMS/PKCS сообщений непосредственно от вызовов неуправляемого кода. (CMS – Cryptographic Message Syntax – синтаксис криптографических сообщений, PKCS – Public-Key Cryptography Standard – стандарт шифрования с открытым ключом ) 8 Высшая школа экономики - 2009 Фрагмент иерархии классов: криптографические алгоритмы System.Object SymmetricAlgorithm AsymmetricAlgorithm HashAlgorithm KeyedHashAlgorithm 9 Высшая школа экономики - 2009 Фрагмент иерархии классов: вычисление хеш-значения HashAlgorithm KeyedHashAlgorithm MD5 SHA1 MD5Crypto ServiceProvider HMACSHA1 MACTripleDES SHA1Crypto ServiceProvider 10 SHA256 SHA384 SHA512 SHA256Managed SHA384Managed SHA512Managed SHA1Managed Высшая школа экономики - 2009 Расширение криптографической объектной модели Добавление новой реализации криптоалгоритма, уже определенного в .NET Framework Добавление нового криптоалгоритма 11 Высшая школа экономики - 2009 Модель ICryptoTransform математическое преобразованию над блоком данных фиксированной длины – например, шифрование секретным ключом реализуется посредством «заворачивания» входного потока в ICryptoTransform с использованием класса Входной блок ICryptoTransform Выходной блок CryptoStream 12 Высшая школа экономики - 2009 Схема работы с потоками CryptoStream (реальное время) Буфер ICryptoTransform 13 Буфер Любой поток Высшая школа экономики - 2009 Генераторы псевдослучайных чисел Генератор является псевдослучайным, если порождаемые им последовательности неотличимы никаким полиномиальным вероятностным алгоритмом от случайных последовательностей той же длины В реализации .NET наследуются от класса RandomNumberGenerator по умолчанию - класс RNGCryptoServiceProvider не создает воспроизводимых последовательностей (в отличие от System.Random в .NET Framework или rand() и random() в библиотеке языка C) 14 Высшая школа экономики - 2009 Использованные источники Авдошин С.М., Савельева А.А. Криптотехнологии Microsoft // М.: Новые технологии, 2008. - ISSN 1684-6400. – 32 с. (Библиотечка журнала "Информационные технологии"; Приложение к журналу "Информационные технологии"; N9, 2008). Введение в криптографию / Под общей ред. В.В. Ященко // СПб.: Питер, 2001 15 Высшая школа экономики - 2009 Спасибо за внимание!