Саркисян Карен группа 3881
Криптография и безопасность За последние несколько лет технологии обеспечения безопасности непрерывно повышали свою значимость для пользователей Windows и производителей программного обеспечения. С другой стороны функции обеспечения безопасности 32-разрядных систем семейства Windows стали сопоставимы с аналогичными функциями больших компьютерных платформ, где такие функции издавна имели высокий приоритет. Теперь же, с широким внедрением.NET, реализация функций обеспечения безопасности на персональных компьютерах стала делом более простым, чем когда-либо ранее.
Природа криптографии и других средств обеспечения безопасности Главные вопросы, касающиеся самой природы криптографии и средств обеспечения безопасности: - Почему криптография и средства обеспечения безопасности так важны? - Что возможно и что невозможно сделать с их помощью? Первый вопрос. в сущности, это вопрос типа «зачем нам это нужно?», а второй – это вопрос типа «что мы можем сделать при помощи этогo?».
Почему криптография и средства обеспечения безопасности так важны Существует четыре основных аспекта, в которых рассматривается безопасность данных: секретность, аутентификация, целостность и подтверждение обязательств (nonrepudiation). Очевидно, что секретность во многих случаях может иметь большое значение. Понятно, что секретность необходима в ситуациях, когда критическую информацию необходимо скрыть от противника. Вы без труда также представите себе ситуацию, когда очень важно точно знать с кем именно вы имеете дело (проблема аутентификации). Не менее важно иногда увериться в том, что информация, которую вы получили от кого-то или кому-то отослали, не может быть изменена злонамеренным третьим лицом (проблема целостности). Наконец, вам может потребоваться уверенность в том, что некто, с кем вы договорились о чем то, не откажется от своих слов (подтверждение обязательств).
Проблемы безопасности Рассмотрим общие категории, на которые можно разбить проблемы безопасности. Вам обязательно придут на ум из сообщений новостей или даже из собственной практики примеры каждой из этих категорий: утечки интеллектуальной собственности, нарушенные контракты, сорванные сделки; созданный злоумышленником программный код: почтовые вирусы, логические бомбы, обычные программные вирусы и троянские программы; программные техники несанкционированного доступа такие, как например, техника переполнения буфера; фальшивые сообщения; нарушение договорных обязательств; ошибки в коде, угрожающие безопасности данных. При надлежащем планировании и применении функциональные возможности платформы.NET в плане криптографии и безопасности способны в огромной мере упростить решение всех этих проблем.
ЧТО МОЖНО СДЕЛАТЬ при помощи криптографии и других средств обеспечения безопасности данных Средства, которые предоставляет платформа.NET, позволяют реализовать следующие разновидности защиты: обеспечение конфиденциальности информации; аутентификация пользователей; целостность информации; противодействие нарушению договорных обязательств; контроль доступа к ресурсам; доступность служб.
ЧТО НЕЛЬЗЯ СДЕЛАТЬ при помощи криптографии и других средств обеспечения безопасности данных Человеческий фактор! Вот примерный список тех угроз для безопасности системы, которые связаны непосредственно с «человеческим фактором: недостаточная подготовка, низкая дисциплина персонала; небрежность разного рода, например, плохой выбор пароля, компрометация ключей или пересылка нешифрованных данных; излишняя доверчивость, неопытность и наивность; атаки, основанные на «социальной инженерии и артистизме; взятки, запугивание, шантаж; плохое качество программ, ошибки в коде.
Безопасность в ОС: Безопасность данных и криптогpафия с caмoгo начала рассматривались как важный фактор при работе в многoпользовательской среде. Уже в самых ранних системах, «мейнфреймах» (больших ЭВМ) середины 60x гoдов таких, как System/360, многопользовательская среда строилась с большим вниманием к аутентификации пользователей и изоляции задач друг от друга. Симметричные криптографические алгoритмы такие, как DES (Data Encryption Standard - Стандарт шифрования данных), активно применялись в банковских и правительственных приложениях уже в конце 70x. Системы семейства UNIX на всем протяжении своей истории учитывали проблемы безопасности как фактор первостепенной важности. В начале 90x в UNIХ системах уже была внедрена симметричная в асимметричная криптография в различных протоколах и технологиях, как, например, в протоколе сетевой идентификации Kerberos.
Безопасность в Windows: В противоположность всему этому, история системы Windows начиналась с явногo недостатка средств обеспечения безопасности. До некоторой степени это можно понять, учитывая тот факт. что в начале cвoeгo пути (особенно, еще в 16-разрядной версии), система Windows использовалась в качестве однопользовательского инструмента для некритичных приложений или вообще как игpовая платформа. Но прошло время, и система Windows выросла, став целой отраслью промышленности и обеспечив мир эффективными и удобными приложениями. К досаде компьютерных профессионалов старых времен, развитие Windows было сопряжено с проблемами надежности и безопасности, с утечками информации и уязвимостями различного рода. К счастью, теперь ситуация меняется, и тому есть ряд причин:
пользователи персональных компьютеров стали гораздо опытней, они нуждаются в большей надежности и безопасности; корпорации осознали всю важность проблем безопасности данных в сети Internet; в Мicrosoft с недавнего времени проблемы безопасности и надежности стали рассматриваться, как проблемы стратегической важности; многие вычислительные задачи, требующие выcoкoгo уровня безопасности, переместились с «мейнфреймов» на персональные компьютеры; прогpаммный интерфейс Win32 обеспечивает мощную, но не слишком прозрачную поддержку функций, связанных с безопасностью; платформа.NET обеспечивает мощную и удобную поддержку всех задач, связанных с криптографией и иными средствами обеспечения безопасности;
многие эксперты в этой области, включая Брюса Шнайера, провели большую работу по разъяснению всей важности обеспечения безопасности данных; снижение стоимости аппаратного обеспечения и рост производительности делают «накладные расходы» на обеспечение безопасности более приемлемыми; в январе 2000 года экспортные ограничения США на технологии, связанные с криптографией, были серьезно ослаблены; общественность теперь гораздо больше знает от таких опасностях, как вирусы, уязвимости, связанные с переполнением буфера, и тому подобным; увеличение объема критически важных служб, функционирующих в Web, делает проблемы безопасности по-настоящему жгyчими.
Среда разработки.NET Framework и «виртуальная машина» CRL Следующие функциональные черты платформы.NET обеспечивают наиболее важные аспекты безопасности данных: возможность конфигурирования политики безопасности и контроля (административный контроль); CAS (контроль выполнения кода, основывающийся на конфигyрации политики безопасности и контроля); концепция безопасности, основывающаяся на разделении ролей (управление доступом на основе идентификации пользователя и роли, к которой он принадлежит); управляемая в процессе выполнения верификация кода (проверка диапазонов адресов и контроль типов); домены приложений (изоляция приложений при выполнении); криптографические классы (доступ к мощным криптографическим алгоритмам).
Надежность и платформа.NET Framework проверка границ в процессе выполнения кода делает невозможным переполнение стека или разрушение данных в памяти; проверка соответствия типов в процессе выполнения кода делает нeвозможными намеренные или случайные изменения типов; при вызове кода полномочия вызывающего кода верифицируются при помощи механизмов стека; автоматическая сборка мусора эффективно решает проблему утечек памяти; обработка исключений позволяет корректно обрабатывать все нeштатные ситуации; выполнение кода. основанное на механизме разрешений, регулируется политикой безопасности, основывающейся на свидетельствах.
Программирование с использованием криптографии в.NET В.NET Framework доступно несколько криптографических классов. Эти классы поддерживают все основные криптографические алгоритмы, используемые в наше время. симметричные алгоритмы шифрования DES, 3DES и RC2; криптографические потоки; асимметричный алгоритм RSA; цифровая подпись на основе RSA и DSA; хеш алгоритмы, включая MD5, SНA1, SНA256 и другие; коды аутентификации сообщений (МАС); алгоритм хеша с ключом; ХМL шифрование; ХМL подписи; гeнepaтopы псевдослучайных последовательностей; безопасность в ASP.NEТ; безопасность Wеb-служб.