Концепция одноразовых паролей в системе аутентификации
Технология One-Time Password – одно из самых перспективных решений задачи аутентификации пользователей при передаче информации по открытым каналам связи.
Как показывают последние исследования, одна из наиболее серьезных угроз в области информационной безопасности для компаний является несанкционированный доступ (НСД) к компьютерным системам. По данным исследования CSI/FBI Computer Crime and Security Survey 2005, в прошлом году 55% компаний зарегистрировали инциденты, связанные с несанкционированным доступом к данным. Более того, в том же году компании потеряли вследствие неавторизованного доступа в среднем по 303 тыс. долл., причем по сравнению с 2004 годом убытки увеличились в 6 раз.
Естественно, для российских компаний цифры этих убытков будут совершенно иными, однако это не отменяет самой проблемы: несанкционированный доступ действительно наносит серьезный ущерб компаниям, независимо от того, осознает это руководство или нет.
Понятно, что надежность защиты от этой угрозы в первую очередь зависит от качества аутентификации пользователей. Сегодня говорить об информационной безопасности без привязки к персонализированному доступу и отслеживанию всех действий пользователей в сети просто не имеет смысла. Впрочем, когда речь идет об аутентификации пользователей на компьютерах, входящих в корпоративную локальную сеть, то особых трудностей не возникает. Рынок предлагает немало различных решений, включая смарт-карты и электронные ключи, биометрические средства аутентификации и даже такие экзотические, как графические пароли.
Несколько иначе обстоят дела, если пользователю необходимо подключиться к корпоративной компьютерной сети удаленно, например, через Интернет. В этом случае он может столкнуться с целым рядом проблем, которые мы и рассмотрим подробнее.
Подводные камни удалённого доступа
Находясь в недоверенной среде (вне офиса) пользователь сталкивается с необходимостью вводить пароль с чужого компьютера (например, из Интернет-кафе). Пароли кэшируются, как и любая другая вводимая в компьютер информация, и при желании ими может воспользоваться кто угодно в своих небескорыстных целях.
Достаточно распространен сегодня и такой вид компьютерного мошенничества, как сниффинг (от англ. sniff – нюхать) – перехват злоумышленником сетевых пакетов с целью выявления интересующей его информации. Используя этот прием, хакер может "вынюхать" пароль пользователя и использовать его для несанкционированного доступа.
Серьёзным испытаниям подвергает простую парольную защиту (особенно при удалённом доступе) новое поколение вирусов-шпионов, незаметно попадающих на компьютер пользователя в ходе обычного "перелистывания" web-страниц. Вирус может быть запрограммирован на фильтрацию информационных потоков конкретного компьютера с целью выявления комбинаций символов, которые могут являться паролями. Эти комбинации "шпион" пересылает своему создателю, а тому остаётся только выявить нужный пароль.
Понятно, что аппаратный способ организации безопасного доступа в сеть в несколько раз надёжнее простых паролей, однако как воспользоваться своей смарт-картой или USB-ключом, находясь опять же вне офиса? Скорее всего, это не удастся, поскольку для первого устройства нужен как минимум считыватель, для второго – USB-порт, который может быть заблокирован (Интернет-кафе) или, хуже того, его может попросту не оказаться в устройстве, с которого пользователь пытается получить доступ (КПК, мобильный телефон, смартфон и др.). Стоит ли даже говорить о том, что для работы аппаратных средств - смарт-карт и USB-ключей – необходимо соответствующее ПО, установить которое в том же Интернет-кафе вряд ли возможно.
Между тем ситуации, когда необходимо удаленно получить или отправить информацию, возникают довольно часто. Возьмем хотя бы системы электронного банкинга: несложно представить себе ситуацию, когда для удаленного управления своим счётом, пользователю потребуется доступ к защищенным банковским ресурсам. Сегодня часть банков осознала необходимость использования аппаратной авторизации с применением USB-ключа. Но воспользоваться им по ряду описанных выше причин, можно далеко не всегда.
Специфика бизнеса многих крупных компаний часто обязывает их предоставлять доступ к собственным ресурсам сторонним пользователям – партнерам, клиентам, поставщикам. Сегодня в России активно набирает обороты такой тип сотрудничества как аутсорсинг: компания-субподрядчик для выполнения работ по заказу может потребоваться доступ к защищенным ресурсам заказчика.
Потребность подключения к корпоративной сети по надежной схеме аутентификации при наличии под рукой лишь КПК или смартфона может стать серьёзной проблемой, если пользователь находится на конференции, переговорах и других деловых мероприятиях.
Как раз для мобильных приложений, а также для организации доступа к нужной информации из тех мест, где не возможно установить специальное ПО, была разработана концепция одноразовых паролей OTP - One-Time Password.
Одноразовый пароль: ввёл и забыл
Одноразовый пароль – это ключевое слово, действительное только для одного процесса аутентификации в течение ограниченного промежутка времени. Такой пароль полностью решает проблему возможного перехвата информации или банального подглядывания. Даже если злоумышленник сможет заполучить пароль "жертвы", шансы воспользоваться им для получения доступа равны нулю.
Первые реализации концепции одноразовых паролей были основаны на статичном наборе ключевых слов, т.е. сначала генерировался список паролей (ключей, кодовых слов и т.п.), которые потом могли применять пользователи. Подобный механизм использовался в первых банковских системах с возможностью удаленного управления счетом. При активации этой услуги клиент получал конверт со списком своих паролей. Затем при каждом доступе к системе он использовал очередное ключевое слово. Дойдя до конца списка, клиент снова ехал в банк за новым. Такое решение имело целый ряд недостатков, главный из которых – низкая надежность. Все-таки постоянно носить с собой список паролей опасно, его легко можно потерять или его могут украсть злоумышленники. И потом, список не бесконечен, а что если в нужный момент не будет возможности доехать до банка?
К счастью, сегодня ситуация изменилась самым кардинальным образом. Вообще, в западных странах использование одноразовых паролей для аутентификации именно в информационных системах стало привычным явлением. Однако в нашей стране технология OTP до недавнего времени оставалась недоступной. И лишь недавно руководство компаний начало осознавать риск НСД, в несколько раз увеличивающийся при удаленном доступе. Спрос, как известно, рождает предложение. Теперь продукты, использующие для удаленной аутентификации одноразовые пароли, стали постепенно занимать своё место и на российском рынке.
В современных технологиях аутентификации с помощью OTP применяется динамическая генерация ключевых слов с помощью сильных криптографических алгоритмов. То есть аутентификационные данные - это результат шифрования какого-либо начального значения с помощью секретного ключа пользователя.
Данная информация есть и у клиента, и у сервера. Она не передается по сети и не доступна для перехвата. В качестве начального значения используется общеизвестная для обеих сторон процесса аутентификации информация, а ключ шифрования создается для каждого пользователя при его инициализации в системе.
Стоит отметить, что на данном этапе развития технологий OTP существуют системы, использующие как симметричную, так и асимметричную криптографию. В первом случае секретным ключом должны обладать обе стороны. Во втором секретный ключ нужен только пользователю, а у сервера аутентификации он открытый.
Реализация
Технологии OTP были разработаны в рамках отраслевой инициативы Open Authentication (OATH), выдвинутой компанией VeriSign в 2004 году. Суть этой инициативы заключается в разработке стандартной спецификации действительно надежной аутентификации для различных интернет-сервисов. Причем речь идет о двухфакторном определении прав пользователей, в процессе которого последний должен "предъявить" смарт-карту или USB-токен и свой пароль. Таким образом, одноразовые пароли со временем могут стать стандартным средством удаленной аутентификации в различных системах.
Сегодня разработано и используется на практике несколько методов реализации систем аутентификации по одноразовым паролям.
Метод "запрос-ответ". Принцип его работы таков: в начале процедуры аутентификации пользователь отправляет на сервер свой логин. В ответ на это последний генерирует некую случайную строку и посылает ее обратно. Пользователь с помощью своего ключа зашифровывает эти данные и отправляет их назад. Сервер же в это время "находит" в своей памяти секретный ключ данного пользователя и кодирует с его помощью исходную строку. Далее проводится сравнение обоих результатов шифрования. При их полном совпадении считается, что аутентификация прошла успешно. Этот метод реализации технологии одноразовых паролей, в отличие от всех остальных, называется асинхронным, поскольку процесс аутентификации не зависит от истории работы пользователя с сервером и других факторов.
Метод "только ответ". При его использовании алгоритм аутентификации выглядит несколько проще. В самом начале процесса программное или аппаратное обеспечение пользователя самостоятельно генерирует исходные данные, которые будут зашифрованы и отправлены на сервер для сравнения. При этом в процессе создания строки используется значение предыдущего запроса. Сервер тоже обладает такими "знаниями". То есть он, используя имя пользователя, находит значение предыдущего его запроса и генерирует по тому же алгоритму точно такую же строку. Зашифровав её с помощью секретного ключа пользователя (он также хранится на сервере), сервер получает значение, которое должно полностью совпадать с присланными пользователем данными.
Метод "синхронизация по времени". В нем в качестве исходной строки выступают текущие показания таймера специального устройства или компьютера, на котором работает человек. При этом обычно используется не точное указание времени, а текущий интервал с установленными заранее границами (например, 30 секунд). Эти данные зашифровываются с помощью секретного ключа и в открытом виде отправляются на сервер вместе с именем пользователя. Сервер при получении запроса на аутентификацию осуществляет те же действия: получает текущее время от своего таймера и зашифровывает его. После этого ему остается только сравнить два значения: вычисленное и полученное от удаленного компьютера.
Метод "синхронизация по событию". В принципе, этот метод практически полностью идентичен предыдущей рассмотренной технологии. Вот только в качестве исходной строки в нем используется не время, а количество успешных процедур аутентификации, проведенных до текущей. Это значение подсчитывается обеими сторонами отдельно друг от друга. В остальном же данный метод полностью идентичен предыдущему.
В некоторых системах реализуются так называемые смешанные методы, где в качестве начального значения используется два или даже больше типов информации. Например, существуют системы, которые учитывают как счетчики аутентификаций, так и показания встроенных таймеров. Такой подход позволяет избежать множества недостатков отдельных методов.
Уязвимости технологий ОТР
Технология одноразовых паролей считается достаточно надежной. Однако объективности ради отметим, что и у нее есть свои недостатки, которым подвержены все системы, реализующие принцип OTP в чистом виде. Подобные уязвимости можно разделить на две группы. К первой относятся потенциально опасные "дыры", присущие всем методам реализации. Наиболее серьезной из них является возможность подмены сервера аутентификации. При этом пользователь будет отправлять свои данные прямо злоумышленнику. Ну а он может тут же использовать их для доступа к настоящему серверу. В случае применения метода "Запрос-ответ" алгоритм атаки немного усложняется (компьютер хакера должен сыграть роль "посредника", пропуская через себя процесс обмена информацией между сервером и клиентом). Впрочем, стоит отметить, что на практике осуществить такую атаку совсем непросто.
Другая уязвимость присуща только синхронным методам реализации одноразовых паролей, поскольку существует риск рассинхронизации информации на сервере и в программном или аппаратном обеспечении пользователя. Допустим, в какой-то системе начальными данными является показания внутренних таймеров. И по каким-то причинам они начинают не совпадать друг с другом. В этом случае все попытки пользователей пройти аутентификацию будут неудачными (ошибка первого рода). К счастью, в подобных случаях ошибка второго рода (ложный допуск "чужого") возникнуть не может. Впрочем, стоит отметить, что вероятность возникновения описанной ситуации также крайне мала.
Некоторые атаки применимы только к отдельным способам реализации технологии одноразовых паролей. Для примера можно опять взять метод синхронизации по таймеру. Как мы уже говорили, время в нем учитывается не с точностью до секунды, а в пределах какого-то установленного заранее интервала. Это необходимо для учета возможности рассинхронизации таймеров, а также появления задержек в передаче данных. И именно этим моментом теоретически может воспользоваться злоумышленник для получения несанкционированного доступа к удаленной системе. Для начала хакер "прослушивает" сетевой трафик от пользователя к серверу аутентификации и перехватывает отправленные "жертвой" логин и одноразовый пароль. Затем он тут же блокирует его компьютер (перегружает его, обрывает связь и т.п.), а сам отправляет авторизационные данные уже от себя. И если он успеет сделать это так быстро, чтобы интервал аутентификации не успел смениться, то сервер признает его за зарегистрированного пользователя.
Понятно, что для такой атаки злоумышленник должен иметь возможность "прослушивания" трафика, а также быстрого блокирования компьютера клиента, а реально осуществить это - задача не из лёгких. Проще всего выполнить эти условия тогда, когда атака задумывается заранее, причем для подключения к удаленной системе "жертва" будет использовать компьютер из чужой локальной сети. В этом случае хакер может заранее "поработать" над одним из ПК, получив возможность управлять им с другой машины. Защититься от такой атаки можно только путем использования "доверенных" рабочих машин (например, собственный ноутбук или КПК) и "независимых" защищенных, например, с помощью SSL, каналов выхода в Интернет.
Качество реализации
Надежность любой системы безопасности в значительной степени зависит от качества ее реализации. То есть у практических решений есть свои недостатки, которые могут быть использованы злоумышленниками в своих целях. Причем эти "дыры" зачастую не относятся напрямую к реализуемой технологии. В полной мере это правило применимо и к системам аутентификации на базе одноразовых паролей. Как уже говорилось выше, в их основе лежит использование криптографических алгоритмов. Это накладывает определенные обязательства на разработчиков таких продуктов. Ведь некачественное исполнение какого-либо алгоритма или, например, генератора случайных чисел, может поставить под угрозу безопасность информации.
Генераторы одноразовых паролей могут быть реализованы двумя способами: программным и аппаратным. Первый из них, естественно, менее надежен. Дело в том, что клиентская утилита должна хранить в себе секретный ключ пользователя. Сделать это более-менее безопасно можно только с помощью шифрования самого ключа на основе персонального пароля. При этом необходимо учитывать, что клиентская утилита должна быть установлена на компьютере (КПК, смартфон и т.п.), с которого в данный момент человек осуществляет сессию. Таким образом, получается, что аутентификация сотрудника зависит от одного пароля. Между тем существует множество способов узнать или подобрать его. И это далеко не единственная уязвимость программного генератора одноразовых паролей.
Несравнимо большей надежностью обладает широкий спектр устройств для аппаратной реализации OTP-технологий. Например, есть устройства, по виду напоминающие калькулятор (см. рис.2): при вводе в них набора цифр, присланного сервером, на основе вшитого секретного ключа они генерируют одноразовый пароль (реализация метода "Запрос-ответ"). Главная уязвимость подобных устройств заключается в возможности его утери или воровства. Если ваш "калькулятор" попадет в руки злоумышленнику, то последний сможет получить желаемый доступ к удаленной системе. Обезопасить систему от подобных действий можно только при условии использования надежной защиты памяти устройства с секретным ключом.
Именно такой подход реализован в смарт-картах и USB-токенах. Для доступа к их памяти пользователь должен ввести свой PIN-код. Причем данные устройства защищены от его подбора: при трехкратном вводе неправильного значения они блокируются. Надежное хранение ключевой информации, аппаратная генерация ключевых пар и выполнение криптографических операций в доверенной среде (на чипе смарт-карты) делают невозможным попытки злоумышленника извлечь секретный ключ и изготовить дубликат устройства генерации одноразовых паролей.
Пример реализации ОТР
Итак, мы определились с тем, что наиболее надежными генераторами одноразовых паролей, защищенными практически от всех уязвимостей реализации, являются смарт-карты и USB-токены. Причем последние явно удобнее в использовании: применять их можно на любом персональном компьютере или ноутбуке без использования дополнительных устройств считывания, как в случае со смарт-картами. Более того, как парадоксально, на первый взгляд, это звучит: существует реализация USB-ключа с технологией OTP, который может работать и без USB-порта. Примером такого электронного ключа может служить eToken NG-OTP от компании Aladdin.
Стоит отметить, что компания Aladdin принимает активное участие в продвижении упомянутой выше инициативы OATH, а рассматриваемый здесь ключ был выбран в качестве основного компонента решения VeriSign Unified Authentication. Правда, называется он в этой системе немного иначе: eToken VeriSign. Главное назначение данного решения – повысить доверие к сделкам, заключенным через Интернет, а в основе его лежит строгая двухфакторная аутентификация на основе аппаратного ключа. Такие OEM-поставки продукта eToken NG-OTP подтверждают его качество и соответствие всем спецификациям OATH.
Устройства серии eToken достаточно широко распространены в России. Такие ведущие производители как Microsoft, Cisco, Oracle, Novell и др., обеспечивают их поддержку в своих продуктах (в "послужном списке" eToken более 200 реализаций с приложениями для информационной безопасности).
Итак, в основе eToken NG-OTP лежит другой аппаратный ключ, самая популярная модель в линейке - eToken PRO. Он представляет собой полноценный токен, выполненный на базе чипа смарт-карты с защищенной памятью, который может служить для безопасного хранения ключевой информации, профилей пользователей и других конфиденциальных данных, для аппаратного выполнения криптографических вычислений и работы с асимметричными ключами и сертификатами Х.509.
В ключе eToken NG-OTP помимо модулей, реализующих описанные выше возможности, есть аппаратный генератор одноразовых паролей (см. рис. 4 Компоненты eToken NG-OTP). Работает он по методу "синхронизация по событию". Это наиболее надежная из синхронных вариантов реализация технологии OTP (с минимальным риском рассинхронизации). Алгоритм генерации одноразовых паролей, реализованный в ключе eToken NG-OTP, разработан в рамках инициативы OATH (он основан на технологии HMAC). Суть его заключается в вычислении значения HMAC-SHA-1, а затем выполнении операции усечения (выделения) из полученного 160-битового значения 6-ти цифр. Именно они и являются тем самым одноразовым паролем.
Интересная особенность комбинированного ключа eToken NG-OTP – возможность использовать одноразовые пароли даже без его подключения к компьютеру. Процесс генерации OTP может запускаться путем нажатия на специальную кнопку, размещенную на корпусе устройства (рис. 5), а его результат в этом случае будет отображаться на встроенном жидкокристаллическом дисплее. Такой подход позволяет использовать технологию OTP даже на тех устройствах, на которых отсутствуют USB-порты (смартфоны, КПК, сотовые телефоны и т.п.), и на компьютерах, на которых они заблокированы.
Наиболее надежен смешанный режим работы рассматриваемого ключа. Для его использования устройство должно быть подключено к ПК. В этом случае речь идет уже о двухфакторной аутентификации, которая может быть реализована несколькими способами. В одном случае для получения доступа к сети необходимо применять собственный пароль пользователя для входа в нее, а также значение ОТР. Другой вариант - требует использования одноразового пароля и значения OTP PIN (отображается на экране ключа).
Естественно, ключ eToken NG-OTP может работать в качестве стандартного USB-токена – для аутентификации пользователей с помощью цифровых сертификатов и технологии PKI, для хранения персональных ключей и т.п. Таким образом, рассматриваемый продукт целесообразно использовать для реализации широкого спектра проектов, связанных с необходимостью безопасного удаленного доступа и двухфакторной аутентификации. Применение таких ключей-гибридов в масштабе предприятия позволит получить возможность использовать свои ключи как в офисе, так и вне его пределов. Этот подход уменьшает затраты на создание системы информационной безопасности, не снижая ее надежности.
Подводим итоги
Итак, концепция одноразовых паролей вкупе с современными криптографическими методами могут использоваться для реализации надежных систем удаленной аутентификации. При этом данная технология обладает рядом серьезных достоинств. Во-первых, это, надежность. Сегодня разработано не так уж и много способов действительно "сильной" аутентификации пользователей с передачей информации по открытым каналам связи. Между тем такая задача появляется все чаще и чаще. И одноразовые пароли – одно из самых перспективных ее решений.
Второе преимущество одноразовых паролей – это использование "стандартных" криптографических алгоритмов. Так что для реализации системы аутентификации с их применением прекрасно подходят уже существующие разработки. Собственно говоря, это наглядно доказывает тот же eToken NG-OTP, совместимый с отечественными криптопровайдерами. Ну а это влечет за собой возможность использования таких токенов в уже существующих системах корпоративной безопасности без их перестройки. Таким образом, внедрение технологии одноразовых паролей можно провести с относительно небольшими затратами.
Еще один плюс одноразовых паролей заключается в низкой зависимости защиты от человеческого фактора. Правда, это относится не ко всем ее реализациям. Как мы уже говорили, надежность многих программ для создания одноразовых паролей зависит от качества используемого пользователем PIN-кода. В аппаратных генераторах на базе USB-токенов используется полноценная двухфакторная аутентификация. И наконец, четвертое преимущество концепции OTP – удобство ее для пользователей. Получать доступ к необходимой информации с помощью одноразовых паролей не сложнее чем применять для этой цели статичные ключевые слова. Особенно приятно то, что некоторые аппаратные реализации рассмотренной технологии можно использовать на любых устройствах независимо от существующих на нем портов и установленного ПО.