Книга: Торстейнсон П., Ганеш Г. А. «Криптография и безопасность в технологии . NET»

Криптография и безопасность в технологии . NET

Серия: "Программисту"

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

Содержание:

Предисловие...... 5 Глава 1. Криптография и безопасность в .NET...... 9 Природа этой книги...... 10 Опасность подстерегает повсюду...... 11 Природа криптографии и других средств обеспечения безопасности...... 14 Почему криптография и средства обеспечения безопасности так важны...... 14 Что возможно и что невозможно сделать с помощью криптографии и средств обеспечения безопасности...... 16 Безопасность в Windows: возраст зрелости...... 21 Среда разработки .NET Framework и «виртуальная машина» CRL...... 23 Как .NET Framework упрощает решение проблем безопасности...... 23 Надежность и платформа .NET Framework...... 24 Управляемый код и безопасность типов...... 25 Программирование с использованием криптографии в .NET...... 26 Программирование с использованием средств обеспечения безопасности в .NET...... 27 Безопасность, основанная на механизме ролей...... 27 CAS, свидетельства, политика и разрешения...... 27 Итоги главы...... 28 Глава 2. Основы криптографии...... 29 Чтобы секреты оставались секретами...... 30 Основные термины криптографии...... 30 Секретные ключи против секретных алгоритмов...... 33 Классические методы сохранения тайны...... 34 Рабочий фактор атаки методом «грубой силы»...... 53 Арифметика произвольной точности...... 54 Стеганография...... 55 Современные шифры...... 56 Криптография и .NET Framework...... 57 Симметричная криптография...... 57 Асимметричная криптография...... 59 Криптографические алгоритмы...... 61 Криптографические протоколы...... 66 Криптоаналитические атаки...... 68 Человеческий фактор...... 69 Риск и выигрыш...... 69 Другие важные концепции...... 70 Итоги главы...... 71 Глава 3. Симметричная криптография...... 72 Симметричные шифры...... 72 DES...... 74 Операционные режимы...... 75 «Тройной» DES...... 84 Rijndael...... 85 RC2...... 86 Программирование при помощи средств симметричной криптографии .NET...... 87 Основные криптографические классы...... 87 Класс SymmetricAlgorithm...... 88 Классы, производные от SymmetricAlgorithm...... 90 Примеры программирования с использованием симметричных алгоритмов...... 93 Криптографические потоки...... 97 Выбор надежных ключей...... 98 Проблемы передачи ключей...... 100 Шифрованные хеши и целостность сообщения...... 102 Хеш-алгоритмы с ключом и целостность сообщения...... 105 Итоги главы...... 106 Глава 4. Асимметричная криптография...... 107 Проблемы, связанные с использованием симметричных алгоритмов...... 107 Проблема распределения ключей...... 108 Проблема доверия...... 108 Идея асимметричной криптографии...... 109 Использование асимметричной криптографии...... 110 Аналогия с кодовым замком...... 111 Односторонняя функция с «черным ходом»...... 112 Преимущества асимметричного подхода...... 114 Сочетание асимметричных и симметричных алгоритмов...... 115 Существующие асимметричные алгоритмы...... 116 RSA: самый распространенный асимметричный алгоритм...... 117 Основания RSA...... 117 Миниатюрный пример RSA...... 119 Предостережение: вопросы вероятности...... 121 Программирование при помощи .NET Asymmetric Cryptography...... 123 Пример использования алгоритма RSA...... 123 Сохранение ключей в формате XML...... 129 Цифровые сертификаты...... 132 Итоги главы...... 132 Глава 5. Цифровая подпись...... 133 Хеш-алгоритмы...... 133 Характеристики хорошей хеш-функции...... 134 Хеш-алгоритмы, поддерживаемые в .NET...... 135 Класс HashAlgorithm...... 138 Классы MD5 и SHA...... 138 Класс KeyedHashAlgorithm...... 140 Идентификаторы объектов...... 140 Как работает цифровая подпись...... 141 RSA в качестве алгоритма цифровой подписи...... 143 Пример программы с использованием подписи RSA...... 144 Алгоритм цифровой подписи DSA...... 147 Математическое основание: теория групп...... 147 Задача о дискретных логарифмах...... 150 Как работает DSA...... 152 Иерархия класса AsymmetricAlgorithm...... 153 Класс DSACryptoServiceProvider...... 154 Пример программы с использованием DSA...... 154 Итоги главы...... 158 Глава 6. Криптография и XML...... 159 XML Encryption – шифрование XML...... 159 XML Encryption против SSL/TLS...... 160 Спецификация шифрования XML...... 161 Что обеспечивает шифрование XML...... 161 Синтаксис XML Encryption...... 162 Как работает шифрование XML...... 166 Классы, используемые в XML Encryption...... 167 Передача асимметричных ключей...... 171 Пример программы XmlEncryption...... 172 XML Signatures – подпись XML...... 184 Спецификация XML Signature...... 184 Что предусматривает спецификация XML Signature...... 185 Синтаксис XML Signature...... 185 Классы, используемые в XML Signatures...... 188 Программа EnvelopingXmlSignature...... 189 Сочетание XML Signing и XML Encryption...... 195 Итоги главы...... 196 Глава 7. Концепция безопасности, основанной на идентификации пользователей в .NET...... 197 Аутентификация и авторизация...... 198 Модель безопасности .NET...... 199 Администрирование безопасности на уровне Windows...... 200 Определение пользователей и ролей в Windows...... 201 Определение прав доступа к общей папке...... 201 Средства безопасности в NTFS...... 201 Администрирование безопасности на уровне .NET...... 205 Разрешения...... 206 Интерфейс IPermission...... 207 Иерархия наследования IPermission...... 208 Класс PrincipalPermission...... 209 Безопасность, основанная на идентификации пользователей...... 211 Объекты Principal и Identity...... 212 Интерфейс IIdentity...... 212 Классы, реализующие интерфейс IIdentity...... 212 Класс GenericIdentity...... 213 Класс WindowsIdentity...... 214 Объекты-принципалы...... 216 Интерфейс IPrincipal...... 217 Класс GenericPrincipal...... 218 Класс WindowsPrincipal...... 220 Два подхода к безопасности, основанной на идентификации пользователей...... 222 Императивный подход...... 222 Декларативный подход...... 229 Мандаты...... 231 Сетевые мандаты...... 232 Дисциплина безопасности...... 232 Принцип минимума полномочий...... 233 Раннее формулирование политики безопасности...... 233 Итоги главы...... 233 Глава 8. Доступ к коду в .NET...... 234 Необходимость в контроле доступа...... 234 Затраты против риска...... 235 Диапазон рисков...... 236 Степень доверия к сборке...... 239 Риски, связанные с обращением к традиционному коду...... 239 Безопасность, управляемый код и среда CLR...... 240 Промежуточный язык Microsoft...... 241 Верифицируемый код с контролем типов...... 242 Запросы разрешений...... 242 Использование CAS...... 243 Гибкий подход к обеспечению безопасности...... 243 Атака «с приманкой» и проход по стеку...... 244 Управление политиками безопасности при помощи групп кода 244 Основные концепции управления политиками безопасности...... 245 Использование средства конфигурирования .NET Framework Configuration...... 246 Использование утилиты Caspol.exe...... 262 Императивный и декларативный подходы в CAS...... 263 Концепция безопасности, основанная на свидетельствах...... 264 Класс Evidence...... 264 Получение свидетельства текущего домена приложения...... 268 Перечисление объектов Evidence...... 268 Пример программы WalkingThruEvidence...... 269 Доступ к WalkingThruEvidence через IIS...... 272 CAS в императивном стиле...... 274 Разрешения доступа кода...... 278 Производные классы CodeAccessPermission...... 278 Класс CodeAccessPermission...... 279 Класс UrlIdentityPermission...... 282 Работа с разрешениями CAS...... 284 Декларативное разрешение доступа...... 290 Синтаксис объявления атрибутов с квадратными скобками...... 290 Атрибут Url Identity Permission...... 291 Класс SecurityAction...... 292 Запросы разрешений...... 294 Пример программы PermissionRequest...... 294 Наборы разрешений...... 296 Класс PermissionSet...... 296 Определение набора разрешений при помощи конфигурационного файла...... 302 Итоги главы...... 306 Глава 9. ASP.NET...... 307 Базовые механизмы безопасности...... 308 Аутентификация: Кто вы?...... 308 Авторизация: Дозволен ли вам доступ к этому ресурсу?...... 308 Заимствование прав: Приложение действует от чьего-то имени...... 308 Реализация механизма аутентификации в ASP.NET...... 309 Конфигурация ASP.NET...... 310 Как устроена система конфигурирования ASP.NET и чем она хороша...... 311 Иерархия конфигурационных параметров...... 312 Описание...... 315 Аутентификация при помощи формы...... 318 Метод 1: хранение регистрационных данных в файле Web.config...... 319 Метод 2: хранение регистрационных данных в XML-файле...... 323 Файл Users.xml...... 323 Файл login.aspx...... 324 Метод 3: хранение регистрационных данных в базе данных...... 326 Классы для аутентификации при помощи форм...... 329 Аутентификация при помощи паспорта...... 331 Аутентификация Windows...... 338 Реализация авторизации ASP.NET...... 342 Авторизация на доступ к файлу...... 342 Авторизация на доступ к URL...... 343 Реализация заимствования прав ASP.NET...... 345 Итоги главы...... 345 Глава 10. Защита Web-служб...... 346 Основные техники защиты Web-служб...... 347 Защищенное соединение...... 347 Аутентификация и авторизация...... 353 Механизмы аутентификации в протоколе HTTP...... 353 Аутентификация Web-служб при помощи заголовков SOAP...... 356 Архитектура сообщения SOAP...... 356 Создание прокси при помощи Visual Studio .NET...... 358 Технологии безопасности XML...... 360 Целостность...... 360 XML Signature...... 361 Защита данных и конфиденциальность...... 364 XML Encryption...... 364 Cпецификация управления ключами XML (XKMS – XML Key Management Specification)...... 367 Язык разметки утверждений безопасности SAML (Security Assertion Markup Language)...... 367 Глобальная архитектура XML Web-служб (Global XML Web Services Architecture – GXA)...... 368 WS-Security...... 369 Начальная спецификация WS...... 371 Следующие шаги спецификаций...... 372 Почему WS-Security?...... 372 Распространение маркеров безопасности...... 374 Целостность сообщения...... 375 Конфиденциальность сообщения...... 376 Организации...... 385 Итоги главы...... 387 Приложение A. Пример атаки на код: перекрытие стека...... 388 Приложение B. Как работаетшифр RSA...... 392 Модульная арифметика...... 392 Пример программы BigRSA...... 393 Пример программы CrackRSAWorkFactorDemo...... 396 Приложение C. Использование библиотекиGNUGMP...... 400 Установка Cygwin...... 400 Тестирование библиотеки Cygwin...... 405 Установка GMP...... 408 Удаление Cygwin из системы...... 411 Приложение D. Ресурсыпо криптографии и безопасности...... 412 Общетеоретические и концептуальные книги...... 412 Книги по криптографической математике...... 413 Книги – руководства по безопасности...... 414 Популярные книги по криптографии...... 415 Группы новостей по криптографии...... 416 Полезные Web-сайты на темы криптографии и безопасности...... 416 Приложение E. ИсследованиеWeb-служб...... 418 Зачем нужны Web-службы...... 418 Определение Web-служб...... 420 Фундамент Web-служб...... 420 Следующее поколение распределенных вычислений: Web-службы...... 421 Преимущества Web-служб...... 422 Web-службы ASP.NET...... 422 Архитектура Web-служб...... 423 Модель кода для Web-службы...... 424 Разработка простой Web-службы...... 426 Concatenate.cs и Concatenate.asmx.cs...... 427 Директива @ WebService...... 431 Пространство имен System.Web.Services...... 432 Атрибут WebServiceAttribute...... 432 Класс WebService...... 433 Атрибут WebMethod...... 434 Управление сеансом...... 437 Протоколы...... 437 Доступ к Web-службе...... 438 Генерация прокси...... 438 Создание прокси-класса при помощи Wsdl.exe...... 439 Создание клиента Windows Form...... 440 Асинхронное программирование Web-служб...... 441 Два асинхронных метода (Begin и End)...... 442 Создание Web-службы ASP.NET «Калькулятор»...... 443 Web-службы все еще развиваются...... 446 Итоги...... 447 Предметный указатель...... 448

Издательство: "БИНОМ. Лаборатория знаний" (2015)

ISBN: 9785996329526

Другие книги схожей тематики:

АвторКнигаОписаниеГодЦенаТип книги
Питер ТорстейнсонКриптография и безопасность в технологии .NETПодробно излагаются вопросы реализации на .NET-платформе симметричной и асимметричной криптографии… — Лаборатория знаний, Программисту (Бином) электронная книга Подробнее...2004
330электронная книга

См. также в других словарях:

  • Information Protection and Control — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей …   Википедия

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

  • Windows API — (англ. application programming interfaces)  общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт» и совместимой с ними свободной… …   Википедия

  • CryptoAPI — CryptoAPI  интерфейс программирования приложений, который обеспечивает разработчиков Windows приложений стандартным набором функций для работы с криптопровайдером. Входит в состав операционных систем Microsoft. Большинство функций CryptoAPI… …   Википедия

  • Циммерманн, Филипп — Филипп Циммерманн нем. Philip R. Zimmermann …   Википедия

  • CryptGenRandom — CryptGenRandom  функция криптографически стойкого генератора псевдослучайных чисел. Она включена включена в Microsoft’s Cryptographic Application Programming Interface. Microsoft рекомендует использовать её во всех Win32 программах, где… …   Википедия

Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»