Аутентификация по многоразовым паролям
Учетные записи пользователей современных операционных систем включают в себя службу аутентификации, которая может хранить простейший идентификатор (login) и пароль (password) пользователя в своей базе данных. При попытке логического входа в сеть пользователь набирает свой пароль, который поступает в службу аутентификации. По итогам сравнения пары login/password с эталонным значением из базы данных учетных записей пользователей пользователь может успешно пройти процедуру простейшей аутентификации и авторизоваться в информационной системе. В зависимости от степени защищенности в рамках эволюционного развития операционных систем Windows компанией Microsoft использовались протоколы LAN Manager (LM), NT LAN Manager (NTLM), NT LAN Manager версии 2 (NTLM v2) и Kerberos. В качестве примера кратко рассмотрим Kerberos, как наиболее распространенный и защищенный на сегодняшний день протокол аутентификации в локальных сетях.
Протокол аутентификации Kerberos
Протокол Kerberos' был разработан специально для того, чтобы обеспечить надежную аутентификацию пользователей. Данный протокол использует централизованное хранение аутентификационных данных и является основой для построения механизмов Single Sign-On (возможность одноразовой аутентификации в нескольких приложениях). Протокол Kerberos предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними с учетом того, что начальный обмен информацией между клиентом и сервером может происходить в незащищённой среде, а передаваемые пакеты - перехвачены и модифицированы. Протокол использует понятие Ticket (билет, удостоверение). Ticket является зашифрованным пакетом данных, выданным выделенным доверенным центром аутентификации, в терминах протокола Kerberos -KDC (Key Distribution Center, центр распределения ключей). Когда пользователь выполняет первичную аутентификацию, после успешного подтверждения его подлинности KDC выдаёт первичное удостоверение пользователя для доступа к сетевым ресурсам - TGT (Ticket Granting Ticket). В дальнейшем при обращении к отдельным сетевым ресурсам пользователь, предъявляя TGT, получает от KDC удостоверение для доступа к конкретному сетевому ресурсу - Service Ticket.
Одним из преимуществ протокола Kerberos, обеспечивающих очень высокий уровень сетевой безопасности, является то, что во всех сетевых взаимодействиях в открытом виде не передаются ни пароли, ни хэши паролей. Все удостоверения являются зашифрованными пакетами данных. В качестве примера реализации протокола Kerberos следует отметить доменную аутентификацию пользователей в операционных системах компании Microsoft, начиная с Windows 2000.
Протоколы аутентификации для удалённого доступа
Часть протоколов сетевой аутентификации были разработаны специально для обеспечения удаленного доступа к информационным ресурсам посредством открытых каналов связи (к примеру, телефонные линии, Internet). В качестве примера можно привести протоколы PAP, CHAP, EAP, RADIUS, TACACS и другие. В качестве примера кратко рассмотрим работу протокола RADIUS.
Протокол аутентификации RADIUS
Протокол аутентификации Remote Authentication Dial-in User Service (RADIUS)2 рассматривается как механизм аутентификации и авторизации удалённых пользователей в условиях распределённой сетевой инфраструктуры, предоставляющий централизованные услуги по проверке подлинности и учёту для служб удалённого доступа.
В рамках стандарта выделяются следующие роли:
Клиент RADIUS. Клиент RADIUS принимает от пользователей запросы на аутентификацию. Все принятые запросы переадресовываются серверу RADIUS для последующей аутентификации и авторизации. Как правило, в качестве клиента протокола RADIUS выступает сервер удалённого доступа.
Сервер RADIUS. Основная задача сервера RADIUS заключается в централизованной обработке информации, предоставленной клиентами RADIUS. Один сервер способен обслуживать несколько клиентов RADIUS. Сервер осуществляет проверку подлинности пользователя и его полномочий. При этом в зависимости от реализации сервера RADIUS для проверки подлинности используются различные базы данных учётных записей.
Посредник RADIUS. Взаимодействие клиентов и серверов RADIUS осуществляется посредством специальных сообщений. В распределённых сетях клиент и сервер RADIUS могут быть разделены различными сетевыми устройствами (такими, например, как маршрутизатор). Под посредником RADIUS понимается сетевое устройство, способное осуществлять перенаправление сообщений протокола RADIUS.
Поддержка протокола RADIUS реализована на многих современных платформах, что позволяет использовать его в межплатформенных решениях.
В качестве примера сервера и посредника RADIUS можно привести реализованную в Windows Server 2003 службу проверки подлинности в Интернете (Internet Authentication Service, IAS). Эта служба позиционируется как механизм централизованной аутентификации и авторизации пользователей, использующих различные способы подключений к сети. Служба IAS интегрирована с другими сетевыми службами Windows Server 2003, такими, как служба маршрутизации и удалённого доступа и служба каталога Active Directory.
Аутентификация на основе одноразовых паролей
Для организации удаленного доступа пользователей к защищенным информационным ресурсам были разработаны достаточно надежные схемы с применением одноразовых паролей (OTP – One Time Password). Суть концепции одноразовых паролей состоит в использовании различных паролей при каждом новом запросе на предоставление доступа. Одноразовый пароль действителен только для одного входа в систему. Динамический механизм задания пароля является одним из лучших способов защитить процесс аутентификации от внешних угроз. Известно четыре метода аутентификации с применением технологии ОТР:
использование механизма временных меток на основе системы единого времени;
применение общего пароля для легального пользователя и проверяющего списка случайных паролей и надежного механизма их синхронизации;
использование общего пароля для пользователя и проверяющего генератора псевдослучайных чисел с одним и тем же начальным значением;
применение фиксированного числа случайных (псевдослучайных) последовательностей, скопированных на носители в виде скретч-карт.
Наиболее распространены аппаратные реализации одноразовых паролей, рассмотренные в работе 8. Их называют ОТР-токенами. Они имеют небольшой размер и выпускаются в виде различных форм-факторах:
карманного калькулятора;
брелока;
смарт-карты;
устройства, комбинированного с USB-ключом.
В качестве примера решений OTP можно привести линейку RSA SecurID, ActivCard Token, комбинированный USB-ключ Aladdin eToken NG-OTP. В частности, одной из распространенных аппаратных реализаций одноразовых паролей является технология SecurID, предлагаемая компанией RSA Security. Она основана на специальных калькуляторах — токенах, которые каждую минуту генерируют новый код. В токен встроена батарейка, заряда которой хватает на 3 – 5 лет, после чего токен нужно менять. Аутентификация с помощью SecurID интегрирована в сотни приложений, а недавно при поддержке Microsoft она была встроена в операционную систему Windows. Впрочем, имеются реализации "в железе" и другие алгоритмы генерации одноразовых паролей. Например, можно генерировать пароль по событию — нажатию клавиши на устройстве. Такое решение предлагает компания Secure Computing в виде продукта Safeword. Аппаратную реализацию технологии "запрос-ответ" продает корпорация CryptoCard. Имеются даже универсальные аппаратные реализации, которые позволяют перепрограммировать токены. В частности, решения, выпускаемые компанией VASCO, допускают реализацию нескольких десятков алгоритмов аутентификации с помощью одноразовых паролей. В целом технология ОТР основана на использовании двухфакторных схем аутентификации и может быть классифицирована как усиленная технология аутентификации.
Аутентификация по предъявлению цифрового сертификата
Механизмы аутентификации с применением сертификатов обычно используют протокол с запросом и ответом. Согласно этому протоколу, сервер аутентификации направляет пользователю последовательность символов, называемую запросом, а программное обеспечение клиентского компьютера для генерирования ответа вырабатывает с помощью закрытого ключа пользователя цифровую подпись под запросом от сервера аутентификации. Общий процесс подтверждения подлинности пользователя состоит из следующих стадий:
получение открытого ключа СА (одноразовый процесс),
получение по некоторому незащищенному каналу от этого пользователя его сертификата открытого ключа.
Аутентификация с открытым ключом используется как защищенный механизм аутентификации в таких протоколах как SSL, а также может использоваться как один из методов аутентификации в рамках рассмотренных протоколов Kerberos и RADIUS.
Использование смарт-карт и USB-ключей
Несмотря на то, что криптография с открытым ключом согласно спецификации Х.509 может обеспечивать строгую аутентификацию пользователя, сам по себе незащищенный закрытый ключ подобен паспорту без фотографии. Закрытый ключ, хранящийся на жёстком диске компьютера владельца, уязвим по отношению к прямым и сетевым атакам. Достаточно подготовленный злоумышленник может похитить персональный ключ пользователя и с помощью этого ключа представляться этим пользователем. Защита ключа с помощью пароля помогает, но недостаточно эффективно -пароли уязвимы по отношению ко многим атакам. Несомненно, требуется более безопасное хранилище.
Смарт-карты
Смарт-карты - пластиковые карты стандартного размера банковской карты, имеющие встроенную микросхему. Они находят всё более широкое применение в различных областях, от систем накопительных скидок до кредитных и дебетовых карт, студенческих билетов и телефонов стандарта GSM.
Для использования смарт-карт в компьютерных системах необходимо устройство чтения смарт-карт. Несмотря на название - устройство чтения (или считыватель), - большинство подобных оконечных устройств, или устройств сопряжения (IFD), способны как считывать, так и записывать информацию, если позволяют возможности смарт-карты и права доступа. Устройства чтения смарт-карт могут подключаться к компьютеру посредством последовательного порта, слота PCMCIA или USB. Устройство чтения смарт-карт также может быть встроено в клавиатуру. Как правило, для доступа к защищенной информации, хранящейся в памяти смарт-карты, требуется пароль, называемый PIN-кодом.
USB-ключи
USB-ключи достаточно привлекательны, поскольку USB стал стандартным портом для подключения периферийных устройств и организации не нужно приобретать для пользователей какие бы то ни было считыватели.
Аутентификацию на основе смарт-карт и USB-ключей сложнее всего обойти, так как используется уникальный физический объект, которым должен обладать человек, чтобы войти в систему. В отличие от паролей, владелец быстро узнаёт о краже и может сразу принять необходимые меры для предотвращения её негативных последствий. Кроме того, реализуется двухфакторная аутентификация. Микропроцессорные смарт-карты и USB-ключи могут повысить надёжность служб PKI: смарт-карта может использоваться для безопасного хранения закрытых ключей пользователя, а также для безопасного выполнения криптографических преобразований. Безусловно, данные устройства аутентификации не обеспечивают абсолютную безопасность, но надёжность их защиты намного превосходит возможности обычного настольного компьютера.
Для хранения и использования закрытого ключа разработчики используют различные подходы. Наиболее простой из них - использование устройства аутентификации в качестве защищенного носителя аутентификационной информации: при необходимости карта экспортирует закрытый ключ, и криптографические операции осуществляются на рабочей станции. Этот подход является не самым совершенным с точки зрения безопасности, зато относительно легко реализуемым и предъявляющим невысокие требования к устройству аутентификации. Два других подхода более безопасны, поскольку предполагают выполнение устройством аутентификации криптографические операций. При первом пользователь генерирует ключи на рабочей станции и сохраняет их в памяти устройства. При втором пользователь генерирует ключи при помощи устройства. В обоих случаях, после того как закрытый ключ сохранён, его нельзя извлечь из устройства и получить любым другим способом.
Генерация ключевой пары вне устройства
В этом случае пользователь может сделать резервную копию закрытого ключа. Если устройство выйдет из строя, будет потеряно, повреждено или уничтожено, пользователь сможет сохранить тот же закрытый ключ в памяти нового устройства. Это необходимо, если пользователю требуется расшифровать какие-либо данные, сообщения, и т.д., зашифрованные с помощью соответствующего открытого ключа. Однако при этом закрытый ключ пользователя подвергается риску быть похищенным, что означает его компрометацию.
Генерация ключевой пары с помощью устройства
В этом случае закрытый ключ не появляется в открытом виде, и нет риска, что злоумышленник украдёт его резервную копию. Единственный способ использования закрытого ключа - это обладание устройством аутентификации. Являясь наиболее безопасным, это решение выдвигает высокие требования к возможностям самого устройства: оно должно обладать функциональностью генерации ключей и осуществления криптографических преобразований. Это решение также предполагает, что закрытый ключ не может быть восстановлен в случае выхода устройства из строя, и т. п. Об этом необходимо беспокоиться при использовании закрытого ключа для шифрования, но не там, где он используется для аутентификации или в других службах, использующих цифровые подписи.