|CISA | Кадры | Certified Information Systems Auditor | Сертификация специалистов по аудиту информационных систем |
|CISSP | Кадры | Certified Information Systems Security Professional | Сертификация специалистов по безопасности информационных систем |
|Common Criteria | Системы | Common Criteria | Оценка и сертификация безопасности и надежности ИТ-продуктов |
|CPP | Кадры | Certified Protection Professional | Сертификация специалистов в сфере безопасности |
|GIAC | Кадры | Global Information Assurance Certification | Сертификация специалистов |
|Good Housekeeping | Web-сайт | Good Housekeeping Web Certification | Контроль соблюдения конфиденциальности и сертификация |
|SAS70 | Системы | Statement on Auditing Standards 70 | Аудит систем |
|Trust E | Web-сайт | Trust E | Контроль соблюдения конфиденциальности, выдача компаниям свидетельств |
Таблица 1.2.Примеры ассоциаций доверия
По существу эта печать идентифицирует доверие, связанное с рекомендациями авторитетных ассоциаций, и подтверждает обязательства владельцев сайта в отношении предоставленных посетителями сведений. Когда пользователь сталкивается с неизвестным сайтом и видит "печать одобрения" авторитетной ассоциации, то относится с большим доверием к компании-владельцу сайта. Ассоциации доверия берут на себя функции контроля за соблюдением политики конфиденциальности. Если проверка выявляет нарушение, то ассоциация уведомляет об этом компанию и рекомендует ей пересмотреть принятые правила - с тем чтобы либо правила отражали изменения в ее коммерческой деятельности, либо компания отказалась от подобной практики.
Концепция инфраструктуры безопасности
Важным фундаментом доверия в сфере электронных коммуникаций является поддержка инфраструктуры безопасности. Инфраструктура может рассматриваться как базис некоторой масштабной среды. Всем известны такие инфраструктуры, как компьютерные сети, позволяющие выполнять обмен данными между различными компьютерами, и электросети, обеспечивающие работу разнообразного электрооборудования. Несмотря на различия, их объединяет один и тот же принцип: инфраструктура существует для того, чтобы совершенно разные субъекты могли подключиться к ней и использовать ее в своих целях [44].
Инфраструктура, отвечающая целям безопасности, должна строиться на тех же принципах и предоставлять те же преимущества. Инфраструктура безопасности обеспечивает защищенность целой организации и должна быть доступна для всех приложений и объектов организации, которым необходима безопасность. "Точки входа" в инфраструктуру безопасности должны быть удобны и унифицированы, как электрические розетки в стене, - ничто не должно мешать объектам, желающим использовать инфраструктуру.
Инфраструктура безопасности, по сути, является рациональной архитектурой для многих сред. Понятие инфраструктуры безопасности - достаточно широкое, включающее в себя многие аспекты, в том числе совместимость имен, политики авторизации, мониторинг, аудит, управление ресурсами, контроль доступа и т.п.
Большинство технических специалистов связывают доверие в сфере электронных коммуникаций с надежной инфраструктурой, к которой относятся системы, приложения и процессы, обеспечивающие надежную, защищенную обработку транзакций. Важными компонентами этой инфраструктуры являются межсетевые экраны, маршрутизаторы, сканеры вирусов, средства оценки уязвимости и защищенные серверы. Большая доля ИТ-затрат приходится на них, поскольку они образуют наиболее осязаемую материальную базу защиты доверия.
Уровни инфраструктуры
Рассмотрим уровни инфраструктуры безопасности (рис. 1.1). Простейший уровень, находящийся внизу, - это физический уровень. Принимая во внимание ограниченное число рисков, связанных с физическими атаками, этот уровень защищать проще, чем другие. Чтобы гарантировать трудность физического доступа к центру хранения и обработки данных или аналогичным ресурсам, используют одновременно средства сигнализации, охрану и замки. Интересно отметить, что бывает проще физически разрушить хорошо защищенный сайт, чем взломать его. Следовательно, организации важно иметь хорошо проработанный план восстановления после аварии, включая организацию центров "горячего" и "теплого" резервирования данных.
Физический уровень
Хотя физический доступ и не рассматривается как реальная угроза сегодняшнего дня, очевидно, что нарушение физической безопасности может привести к нарушению информационной безопасности. Для обеспечения высокой степени доверия к защите физического уровня необходимы следующие меры:
* Ограниченный доступ с использованием нескольких механизмов аутентификации (например, применение биометрического устройства и считывателя карт).
* Постоянный мониторинг безопасности с использованием видео- и аудиоаппаратуры, сенсорный мониторинг внешней и внутренней среды.
* Обученный персонал, отвечающий за безопасность.
* Журналы, регистрирующие доступ по ID-картам, проверку документов службой охраны и т.п.
Системный уровень
Следующий уровень, системный, включает совокупность взаимодействующих друг с другом систем. Поддержку доверия на этом уровне реализовать сложнее, потому что может быть обеспечена безопасность систем в комплексе, а может быть защищена отдельно каждая система.
На системном уровне должна быть обеспечена безопасность двух ключевых компонентов - операционной системы (ОС) и сети. Бреши в ОС являются базисом многих атак на инфраструктуру. Уязвимость ОС связана с их постоянным обновлением: системные администраторы иногда забывают устанавливать "заплаты" (файлы с исправлениями), чтобы своевременно защищать уязвимые места. Кроме того, модификация разработчиком ОС функций безопасности способна иногда влиять на базовую функциональность, вынуждая системных администраторов откладывать обновление системы.
Рис. 1.1. Уровни инфраструктуры безопасности
Сетевые компоненты еще более уязвимы, чем ОС. Современная сеть подвергается и внутренним, и внешним атакам, для защиты от них требуется сложный набор технологий. Многие исследования показали, что организации часто бывают более уязвимы для внутренних атак, чем для прямых атак из Интернета. Защита сети изнутри немного более сложна и требует строгого контроля доступа, использования межсетевых экранов, контрольных журналов и т.д. Строгий контроль доступа позволяет повысить степень доверия пользователей при доступе к частной сети. В настоящее время угрозу представляет использование карманных персональных компьютеров (Personal Digital Assistants). Эти устройства могут подсоединяться непосредственно к узлу сети и обходить защиту межсетевых экранов, маршрутизаторов и антивирусных средств. Таким образом, вирус или другой злонамеренный код может быть занесен непосредственно в сеть. Для фиксации подозрительной активности и событий после инцидента необходимы контрольные журналы. Важно, чтобы файлы регистрации хранились отдельно, вне функционирующих систем, причем таким способом, который делает их неизменяемыми (во избежание мошенничества системных администраторов).
Уровень приложений
Уровень приложений, вероятно, наиболее сложен для защиты и обеспечения доверия, так как частота использования программных утилит здесь намного выше, чем на любом другом уровне, и, следовательно, потенциально выше риск безопасности. Компрометация уровня приложений чаще всего связана с нехваткой ресурсов памяти и невозможностью управлять данными пользователей, а также с избыточностью функций приложений. Ограниченность ресурсов памяти приводит к переполнению буфера или непреднамеренному принятию фальсифицированных данных, что обычно происходит в результате неадекватной фильтрации пользовательских данных при вводе или попытке получить доступ к большему объему памяти, чем имеется фактически. Для защиты уровня приложений используются:
* программные средства (например, сканирование или блокирование вирусов);
* программное обеспечение превентивного действия (обнаружение уязвимостей или тестирование);
* просмотр кодов приложений вручную с целью выявления возможных проблем безопасности.
Уровень приложений является наиболее сложным для защиты еще и потому, что наиболее доступен. Например, любой, кто может получить доступ к web-сайту компании, занимающейся электронной торговлей, немедленно получает доступ к приложению ( Active X ), которое позволяет выполнить транзакцию [105]. Получить доступ на физическом или системном уровне труднее. Важно понимать, что компрометация одного уровня ведет к компрометации другого. Часто системный уровень атакуется, а затем используется для доступа к данным приложения. Например, злоумышленник может атаковать ОС и использовать бреши в ней для атаки на размещаемые в уровне приложений данные клиентов с целью получения информации о номерах кредитных карт.
Цель и сервисы инфраструктуры безопасности
Главная цель инфраструктуры безопасности состоит в обеспечении безопасной работы приложений. Если проводить аналогию с функционированием инфраструктуры электросетей, то можно сказать, что электросеть обеспечивает правильную работу таких "приложений", как электроприборы. Более того, универсальность инфраструктуры электросетей такова, что она способна поддерживать "приложения", которые были неизвестны в то время, когда она проектировалась (к ним относится практически вся современная бытовая техника, компьютеры и многое другое). Под приложением в контексте инфраструктуры безопасности понимается любой модуль, использующий инфраструктуру в целях безопасности, такой как web-браузер, клиентское приложение электронной почты, устройство, поддерживающее протокол IPsec, и т.п.
Инфраструктура безопасности дает возможность приложениям защищать их собственные данные или ресурсы и придавать безопасность их взаимодействию с другими данными или ресурсами. Доступ к инфраструктуре должен быть простым и быстрым - подобно включению электроприбора в розетку. Инфраструктура безопасности должна обладать знакомым и удобным интерфейсом, пригодностью и предсказуемостью сервисов. Кроме того, устройствам, использующим инфраструктуру, нет необходимости знать, каким образом достигается результат. Так, например, для работы любого электроприбора не имеет значения, каким образом происходит передача электроэнергии, а важно лишь то, что при его включении в электрическую розетку предсказуемый "сервис" обеспечивает прибор электроэнергией, необходимой для его правильной работы. То есть инфраструктура безопасности должна иметь хорошо известные точки входа, которые могут доставить сервис безопасности нуждающемуся в нем устройству. Причем для устройства неважно, как это делается, но существенно, что это делается удобно и корректно.
Рассмотрим наиболее важные аспекты сервисов, предоставляемых инфраструктурой безопасности.
Защищенная регистрация
Концепция регистрации пользователя для доступа к приложению широко известна. Обычно этот процесс заключается в том, что пользователь вводит информацию, которая его идентифицирует (имя или ID пользователя) и аутентифицирует (пароль или другая секретная информация). Процесс регистрации предполагает, что никто, кроме законного пользователя, не знает аутентифицирующую его информацию, и обеспечивает защищенный доступ пользователя к определенному приложению.
Проблемы безопасности, возникающие при регистрации, также хорошо известны. Если приложение, требующее регистрации, удалено от пользователя (находится, например, на другом компьютере), то пароли, передаваемые по незащищенной сети, становятся объектом перехвата. Даже зашифрованные пароли не защищены от атак воспроизведения (replay attacks), когда они могут быть скопированы и использованы позднее для имитации аутентичности. Более того, общеизвестно, что пользователи редко выбирают "хорошие" пароли (достаточной длины и непредсказуемости), как правило, не запоминают их без записывания и не меняют своевременно, когда этого требует локальная политика безопасности.
Инфраструктура безопасности может решить некоторые из этих проблем. Поддержка безопасности подразумевает, что событие регистрации для инфраструктуры происходит локально (на устройстве, посредством которого пользователь физически осуществляет взаимодействие) и что корректный результат регистрации, когда необходимо, защищенно распространяется на удаленное приложение. Рис. 1.2 иллюстрирует этот процесс [44].
Рис. 1.2. защищенная регистрация
Таким образом, для удаленной регистрации пользователей могут использоваться механизмы сильной аутентификации, при этом отпадает необходимость в передаче паролей по сети. Развертывание инфраструктуры безопасности полностью не исключает применение паролей, но решает серьезную проблему передачи паролей по ненадежным и незащищенным сетям.
Защищенная однократная регистрация
Проблемы безопасности при регистрации многократно возрастают, когда пользователю необходим доступ ко многим приложениям. Практика показывает, что если пользователю нужно множество паролей, он просто принимает решение сделать все свои пароли одинаковыми. Это ведет к эффекту "самого слабого звена": при взломе слабейшей из систем (например, при помощи программы-сниффера) злоумышленник получает доступ ко всем системам одновременно. Применение одного и того же пароля для доступа ко всем приложениям снижает общую безопасность, а запоминание множества паролей и трата времени на доступ ко многим системам существенно затрудняют работу пользователя и вынуждают его искать пути обхода этих процедур, что также небезопасно.
Преимущества системы SSO заметны пользователям с первого взгляда: отпадает необходимость запоминать множество паролей и тратить время на аутентификацию при входе в каждую конкретную систему ( см. рис. 1.3). Этим, однако, достоинства системы SSO не ограничиваются. Во-первых, правильно внедренная система SSO оказывает положительное влияние на безопасность: пользователи регистрируются на своих локальных компьютерах, пароли реже "путешествуют" по сети, и выше вероятность, что единственный пароль, выбранный пользователем, будет "хорошим". Во-вторых, однократная регистрация не просто удобна для пользователей, но также снижает нагрузку на централизованную службу поддержки информации о регистрации и обслуживания паролей (плановая или внеплановая смена паролей, работа с забытыми паролями и пр.), которая уязвима к атакам.
Рис. 1.3. Защищенная однократная регистрация
Естественно, определенная доля риска имеется и при внедрении системы SSO (одна процедура обеспечивает доступ ко всем системам), поскольку создается единая точка отказа в защите сети. Однако системы SSO, как правило, хорошо защищены от несанкционированного доступа; к тому же дополнительную защиту создают средства физической аутентификации [42].
Прозрачность для конечных пользователей
Жизненно важным свойством всеобъемлющей инфраструктуры является ее почти полная прозрачность для пользователей. Такой прозрачностью обладает, например, инфраструктура сетевых коммуникаций, большинству пользователей которой необязательно знать о тонкостях сетевых технологий, или уже приводимая в качестве примера инфраструктура электросетей, многим пользователям которой не нужно беспокоиться об уровне напряжения или мощности электрического тока.
Сервисы инфраструктуры для пользователей можно сравнить с "черным ящиком". Правильно спроектированная инфраструктура безопасности должна обладать теми же свойствами: вся технология обеспечения безопасности должна быть виртуально скрыта от пользователей и не требовать никакого ручного вмешательства, знания ключей и алгоритмов, а ошибки пользователей не должны приводить к серьезной компрометации безопасности. Другими словами, идея прозрачности инфраструктуры безопасности может быть выражена следующим образом: средства обеспечения безопасности не должны мешать пользователям выполнять работу. Безопасность не должна требовать от пользователей никаких специальных знаний и процедур, а также ощутимо затруднять и замедлять их деятельность. Инфраструктура должна выполнять все задания, имеющие отношение к безопасности, способом, полностью прозрачным для пользователей.
Следует учитывать, однако, что прозрачность, обеспечиваемая инфраструктурой, подразумевает определенную степень доверия со стороны пользователей к тому, что инфраструктура функционирует корректно и может предоставлять свои сервисы. Когда это не так, пользователи должны быть немедленно уведомлены об этом, поскольку невозможность инфраструктуры обеспечить безопасность, как правило, требует адекватной реакции пользователей. Поэтому установление связи с инфраструктурой (процедура регистрации) и уведомление о невозможности предоставить необходимый сервис обычно бывают непрозрачными для пользователей.
Комплексная безопасность
Наиболее важное достоинство всеобъемлющей инфраструктуры безопасности заключается в том, что она гарантирует сквозную доступность в среде единой, надежной технологии безопасности. В результате в комплексе может работать неограниченное количество приложений, устройств и серверов для защиты процессов передачи, хранения и поиска данных, обработки транзакций, доступа к серверам.
Приложения электронной почты, web-браузеры, межсетевые экраны, устройства удаленного доступа, серверы приложений, файл-серверы, базы данных и т.п. - все они способны понимать и использовать инфраструктуру унифицированным способом. Такая среда существенно упрощает как взаимодействие пользователей с различными устройствами и приложениями, так и сложное администрирование устройств и приложений, гарантируя, что они функционируют в соответствии с требованиями заданного уровня безопасности.
Всеобъемлющая инфраструктура безопасности предоставляет организации ряд существенных преимуществ:
* экономию затрат;
* функциональную совместимость внутри организации и между организациями;
* стандартность решения;
* реальное обеспечение безопасности;
* возможность выбора поставщика технологии.
Реализация единого решения по безопасности для большой организации экономически более эффективна, чем реализация нескольких решений по отдельным проблемам безопасности, поскольку масштабирование среды требует меньших дополнительных капиталовложений. При поддержке нескольких решений подключение к работе дополнительных пользователей или приложений бывает сложной, а иногда и невыполнимой задачей, интеграция нового решения в существующий комплекс также требует значительных усилий и затрат. Стоимость развертывания, поддержки и функционирования набора решений по отдельным проблемам безопасности сопоставима со стоимостью развертывания, поддержки и функционирования единой инфраструктуры.
Использование нескольких разнородных решений может препятствовать функциональной совместимости внутри организации, поскольку они разрабатывались независимо и часто характеризуются несовместимыми базовыми допущениями и принципами функционирования. Инфраструктура же гарантирует функциональную совместимость, поскольку каждое приложение и устройство получает доступ и использует инфраструктуру идентичным образом. Кроме того, на базе единой технологии развертывания инфраструктуры, основанной на открытых международных стандартах, организации проще поддерживать функциональную совместимость с другими организациями.
Инфраструктура безопасности обеспечивает согласованное и стандартное решение для всех использующих ее приложений и устройств. Организации намного проще поддерживать стандартное решение, чем устанавливать, контролировать и поддерживать несколько решений, не всегда совместимых между собой. Стоимость и сложность администрирования также говорят в пользу инфраструктурного решения.
Инфраструктура безопасности обеспечивает реальную защищенность взаимодействий между различными приложениями и устройствами, поскольку все взаимодействия управляются совместимым способом. Более того, функционирование инфраструктуры и взаимодействия внутри нее могут быть проверены на корректность внешними аудиторами. Безопасность взаимодействия набора решений проверить существенно сложнее, а иногда и просто невозможно, даже если каждое решение в отдельности строго контролируется.
Важным достоинством единого решения является возможность выбора одного поставщика (разработчика) технологии с учетом его репутации и опыта работы, стоимости проекта, функциональности и ряда других факторов. В том случае, когда комплексная безопасность организации базируется на функциях безопасности отдельных приложений или устройств (от разных поставщиков), которые приобретались организацией исключительно в целях бизнеса, сложно вообще говорить об инфраструктуре безопасности.
Перечисленные возможности составляют далеко не все аргументы в пользу всеобъемлющей инфраструктуры безопасности. Однако стандартность решения, которая обеспечивает функциональную совместимость и значительно сокращает затраты администрирования, и предлагаемые функции безопасности являются главными преимуществами комплексного решения (в масштабе полной инфраструктуры) во многих средах. Обладающая всеми этими качествами инфраструктура безопасности способна быть фундаментом доверия взаимодействующих сторон в сфере электронных коммуникаций.
Лекция 2. Механизмы аутентификации
Рассматривается аутентификация на основе паролей, механизмы одноразовой аутентификации, описывается механизм аутентификации Kerberos, обсуждается аутентификация при помощи сертификатов открытых ключей, анализируются возможности инфраструктуры открытых ключей PKI как технологии аутентификации.
Эволюция механизмов аутентификации
Инфраструктура безопасности для распространения открытых ключей, управления электронными сертификатами и ключами пользователей получила название инфраструктуры открытых ключей - Public Key Infrastructure (PKI) . Термин "PKI" является производным от названия базовой технологии - криптографии с открытыми ключами, обладающей уникальными свойствами и являющейся основой для реализации функций безопасности в распределенных системах. Инфраструктура открытых ключей реализуется не ради нее самой, а для поддержки безопасности других приложений. Существуют, безусловно, и другие механизмы безопасности, которые не используют криптографию открытых ключей, и они менее сложные, чем PKI. Однако PKI не только предлагает наиболее комплексное решение, но и снимает остроту многих проблем, свойственных более традиционным механизмам безопасности.
Корпоративные системы обычно работают с большим количеством пользователей, причем каждый пользователь взаимодействует с системой по-своему. Аутентификация логически становится первым шагом при взаимодействии человека с системой. Механизмы аутентификации развивались с течением времени, опираясь на свойства своих предшественников. Аутентификация на базе PKI - это логический шаг в этой эволюции, обеспечивающий совершенствование таких характеристик, как применимость, жизнеспособность, масштабируемость и безопасность.
Механизмы аутентификации, которые рассматриваются в этой лекции, могут использоваться для аутентификации пользователя удаленным сервером сети, все они имеют свои достоинства и недостатки. Некоторые механизмы не требуют дополнительного администрирования для аутентификации пользователя несколькими удаленными серверами. Все механизмы обеспечивают как минимум одностороннюю аутентификацию пользователя удаленным сервером, а некоторые - даже взаимную аутентификацию пользователя и сервера. Аутентификация на базе PKI может быть односторонней или взаимной в зависимости от среды, в которой используется инфраструктура. Сравнительный анализ механизмов аутентификации позволяет продемонстрировать сильные стороны PKI.
Аутентификация на основе паролей
Почти каждая компьютерная система требует, чтобы в начале сеанса работы пользователь идентифицировал себя. Обычно пользователю предлагается ввести имя и пароль. Пароль - это секретная информация (или просто секрет), разделенная между пользователем и удаленным сервером. Пользователь помнит этот секрет, а сервер хранит либо копию секрета, либо значение, вычисленное на основе секрета. Во время аутентификации происходит сопоставление пароля, введенного пользователем, и значения, хранимого сервером. Аутентификация при помощи паролей - наиболее распространенный вид аутентификации. Если злоумышленник знает чужой пароль, то имеет возможность выдавать себя за другого субъекта, и сервер не может отличить его от настоящего пользователя.
Рис. 2.1. Аутентификация при помощи пароля
На рис. 2.1 пользователь А передает по сети на сервер свое имя и пароль. Некто, наблюдающий за средой передачи, например, пользователь С, может похитить пароль пользователя А. Как только это происходит, пользователь С может выдавать себя за пользователя А до тех пор, пока пароль не будет изменен, а это может продолжаться достаточно долгое время. Поэтому для безопасности вычислительной среды требуется регулярно менять пароли.
Существует несколько способов получения секретного пароля в сети. Пользователь С может использовать программу-анализатор, или сниффер. Программы-анализаторы легко доступны в Интернете, они позволяют перехватывать сетевой трафик между компьютерами одной локальной сети. Для перехвата пароля пользователю С можно даже не находиться в одном помещении с пользователем А и не иметь доступ к его компьютеру - ему достаточно лишь сетевого подключения к той же самой локальной сети. Эти программы настолько упрощают перехват информации, что хищение пароля часто называют атакой анализатора [64]. После смены пароль остается неизвестен пользователю С только до очередного запуска программы-анализатора. Если пользователь С постоянно запускает свою программу-анализатор, то получает новый пароль пользователя А, как только он выбран.
Некоторые типы локальных сетей более уязвимы для атак анализатора. Особенно это касается тех, которые, как многоканальная сеть Ethernet, используют широковещательную среду. Сети, подобные коммутируемой сети Ethernet, не столь восприимчивы. Концентратор передает трафик только по проводам, соединяющим связывающиеся компьютеры. В этом случае, чтобы получить ту же самую информацию, пользователь С сталкивается с более трудной задачей: инсталлировать программу-анализатор на компьютер пользователя А.
Атаки анализаторов обнажают две серьезные проблемы аутентификации при помощи паролей. Во-первых, для аутентификации пользователь А должен передать свой пароль, разделенный секрет. Выполняя это, пользователь А может раскрыть его. Во-вторых, если разделенный секрет пользователя А используется долгое время, пользователю С достаточно получить пароль один раз, после чего он может выдавать себя за пользователя А, пока последний не изменит свой пароль. Эти слабые стороны делают атаки анализаторов успешными.
Аутентификация при помощи паролей неэффективна в среде со многими серверами [70]. Предположим, что пользователь А регулярно взаимодействует с шестью удаленными серверами. Он может использовать один и тот же пароль для каждой системы или разные пароли для всех систем. Если пользователь А использует один и тот же пароль, то успешная атака анализатора позволяет пользователю С получить доступ к учетным записям пользователя А сразу на всех серверах и в дальнейшем выдавать себя за него. Если пользователь А использует разные пароли для каждого сервера, то успешная атака анализатора позволяет пользователю С получить доступ только к одному серверу, но при этом пользователь А должен помнить шесть разных паролей. Скорее всего, пользователь А запишет свои пароли, в этом случае они могут быть похищены другим способом.
Взаимная аутентификация при помощи паролей возможна только если существует два разделенных между пользователем и сервером секрета, два пароля. В этом случае каждый пользователь должен помнить пароль сервера и также свой пароль. А сервер должен обменяться вторым разделенным секретом с каждым пользователем, причем этот секрет должен быть уникальным, чтобы ни один пользователь не мог маскироваться под сервер перед другим пользователем. Если взаимная аутентификация пользователей отсутствует, то пользователь С может получить пароль пользователя А, создав фальшивый сервер. Когда пользователи попытаются получить доступ к этому серверу, пользователь С сможет собрать их имена и пароли.
Эволюция механизмов аутентификации началась в ответ на атаки анализаторов. Очевидно, что должна была появиться защита от этих атак в виде шифрования. Шифрование предотвращает раскрытие пароля при передаче. Но если все пользователи используют один и тот же ключ шифрования, то любой из них может использовать анализатор, получить чужой пароль и расшифровать его тем же способом, что и сервер. Если каждый пользователь имеет свой ключ, то управление этими ключами обеспечивает более сильную аутентификацию, чем пароли. Следует отметить, что пользователь А защищен и в том случае, если его пароль используется однократно. Удачная атака анализатора позволяет пользователю С получить устаревший пароль А. Ясно, что пользователю А в этом случае необходим новый пароль для каждой попытки аутентификации.
Механизмы одноразовой аутентификации
Одноразовая аутентификация позволяет противостоять атаке анализатора за счет использования во время каждой попытки аутентификации нового секрета. В этом случае, если пользователь С перехватывает данные пользователя А, то не может в дальнейшем их использовать, чтобы выдавать себя за него. Рассмотрим три разных механизма одноразовой аутентификации: аутентификацию типа "запрос-ответ", неявный запрос и аутентификацию на базе хэш-функций.
Аутентификация "запрос-ответ"
Как показано на рис. 2.2, сервер генерирует случайный запрос и отправляет его пользователю А [208]. Вместо того чтобы в ответ отправить серверу пароль, пользователь А шифрует запрос при помощи ключа, известного только ему самому и серверу. Сервер выполняет такое же шифрование и сравнивает результат с шифртекстом, полученным от пользователя А. Если они совпадают, то аутентификация прошла успешно, в противном случае - неудачно.
Этот простой механизм имеет несколько преимуществ по сравнению с простой аутентификацией при помощи паролей. Поскольку запрос генерируется случайным образом, пользователь С не может повторно использовать шифртекст, сгенерированный пользователем А, чтобы выдавать себя за него. Значение, которое отправляет пользователь А, аутентифицирует его идентичность только один раз. Имя пользователя А передается открыто, и нет причин его скрывать. Перехват информации больше не является угрозой, и пользователь А может выполнять аутентификацию на удаленном сервере в открытой сети.
Рис. 2.2. Аутентификация "запрос-ответ"
Механизм усложняется, если пользователю А необходимо пройти аутентификацию на многих серверах, в этом случае, как и при использовании паролей, пользователь А должен иметь для каждого сервера свой ключ шифрования запроса и защищенно хранить все эти ключи.
Чтобы этот механизм был пригоден для взаимной аутентификации, необходимы еще один запрос и ответ. Пользователь А может направить второй запрос вместе с зашифрованным первым запросом, а сервер - вернуть зашифрованный ответ вместе с уведомлением о корректной проверке запроса пользователя А. Таким образом, этот механизм может быть использован для взаимной аутентификации без второго разделяемого ключа шифрования запроса.
В некоторых случаях аутентификация типа "запрос-ответ" невозможна, потому что сервер не имеет средств формирования запроса к пользователю, это характерно для систем, первоначально спроектированных для применения простых паролей. Тогда необходим неявный запрос, который обычно базируется на значении текущего времени.
Неявный запрос на базе времени
Рис. 2.3 иллюстрирует аутентификацию на базе времени [72]. Пользователь А шифрует значение текущего времени на часах своего компьютера и отправляет свое имя и шифртекст на сервер. Сервер расшифровывает значение, присланное пользователем А. Если оно достаточно близко к значению текущего времени на компьютерных часах сервера, то аутентификация проходит успешно, в противном случае - неудачно. Поскольку компьютерные часы пользователя А и сервера не синхронизированы и передача информации занимает некоторое время, сервер должен допускать несколько возможных значений времени.
Однако если сервер признает допустимым слишком большой разброс значений времени, то пользователь С может перехватить значение, сгенерированное пользователем А, и отправить его на сервер, с успехом выдавая себя за А. Эта атака называется атакой воспроизведения. Пользователь С не знает секретного ключа шифрования пользователя А, но, быстро передавая воспроизведенный шифртекст, может имитировать повторное обращение пользователя А к серверу.
Рис. 2.3. Аутентификация при помощи неявного запроса
Этот механизм не слишком серьезно совершенствует схему "запрос-ответ", он также с трудом поддерживает аутентификацию пользователя на многих серверах и не обеспечивает взаимной аутентификации, кроме того, он уязвим для атак воспроизведения. Лучшие свойства механизма "запрос-ответ" и неявного запроса на базе времени удалось совместить при использовании для аутентификации односторонней хэш-функции.
Аутентификация с использованием хэш-функции