Статьи
Май 2013
OATH-парадокс
OATH, унифицируя строгую аутентификацию и продвигая идею полной совместимости OPT-генераторов (one-time password, генераторы одноразовых паролей) и серверов аутентификации, породила парадокс: OATH-сертифицированный OTP-генератор зачастую работает только с переделённым сервером аутентификации и наоборот: OATH-сертифицированный сервер аутентификации поддерживает только определенный перечень генератор одноразовых паролей. Как объяснить эту ситуация?
Начнем с начала. Фундаментально описывая платформу строгой аутентификации на базе одноразовых паролей необходимо упомянуть 2 базовых компонента: сервер аутентификации (или проверки, в английском Authentication или Validation) и устройство аутентификации (аутентификатор)— генератор одноразовых паролей. В обоих случаях, когда речь идет об одноразовых паролях на основе события (HOTP) или на основе времени (TOTP), оба основных компонента (сервер и генератор) должны использовать общий секрет — симметричный ключ, который задействован при расчете одного и того же одноразового пароля по тому или иному алгоритму для конкретного пользователя. Именно уникальность этого симметричного ключа, что видно при анализе обоих алгоритмов, и определяет уникальность каждого генератора. Как правило, этот параметр определяется и жестко прошивается производителем. Таким образом, возникает необходимость в транспортировке и загрузке этого секретного значения до/в сервер аутентификации (на самом деле, для каждого генератора загружается не только этот секрет, но и начальное состояние счетчика событий и некоторые другие параметры, то есть речь идет о конфиге).
Это требует отправки покупателю не только самих генераторов, но и ключей (конфигов) – делается этот как правило, в зашифрованном виде. Эти ключи загружаются (или импортируются) в сервер аутентификации и связаны с серийным номером генератора одноразовых паролей. Далее выполняется привязка серийного номера (а значит и секретного значения) к тому или иному пользователю. В конечном счете это и позволяет «понять» серверу, какой именно секрет использовать при расчёте (в процессе проверки) одноразового пароля, полученным от определенного логина (пользователя).
Вот тут-то, хе-хе, и начинается самое интересное: каждый производитель использует свой собственный формат конфигурационного файла, что делает крайне затруднительным поддержку одним сервером аутентификации всех производителей генераторов. Для решения это задачи OATH разработала RFC 6063, описывающий PSKC-формат (Portable Symmetric Key Container, перемещаемый контейнер симметричного ключа) — формат конфигурационного файла, что и обеспечит сквозную совместимость серверов аутентификации и генераторов одноразовых паролей разных вендоров (при условии правильной реализации импорта и экспорта XML-конфигов, выполненных в этом формате). По своей сути это просто контейнер, опционально зашифрованный, который содержит симметричный ключ и мета-данные.
Цель OATH — это стандартизация и унификация процессов строгой аутентификации, продвижение и разработка алгоритмов и стандартов для устройств аутентификации (аутентификаторов) и интерфейсов, что позволят разрабатывать и использовать открытые архитектуры. Для решения описанного выше парадокса (оба компонента: сервер и генератор — OATH-совместимы, но не могут работать друг с другом) была разработана программа Сертификации (OATH Certification Program), для подтверждения совместимости и возможности совместной работы продуктов и решений, реализующих OATH-алгоритмы. Идея заключается в следующем: заказчик может выбрать сервер аутентификации и аутентификаторы (генераторы одноразовых паролей) разных производителей и при этом быть уверенным в их корректной работе.
Сейчас, оба компонента: сервер аутентификации и аутентификаторы (генераторы одноразовых паролей) для прохождения сертификации должны поддерживать стандарт PSKC. Имеется в виду следующее: производитель должен предоставлять конфиги в зашифрованном PSKC-формате, а разработчик сервера аутентификации должен реализовать возможность загрузки (импорта) этого формата. Однако, что интересно, OATH-сертифицированные серверы аутентфиикации могут прекрасно работать с OATH-генераторами, которые не сертифицированы сами по себе. На самом деле, на рынке масса производителей генераторов одноразовых паролей, которые реализуют тот или иной OATH-алгоритм (HOTP RFC 4226 – по событию, TOTP RFC 6238 – по времени), но при этом используют проприетарные форматы конфигурационных файлов. Вопрос в том, почему?
Кроме того, большинство генераторов поддерживают PSKC-формат только для формальной OATH-сертификации, оставаясь привязанными к определенному (того же производителя) серверу аутентификации. Складывается ощущение, что производители комплексных решений не хотят продавать свои генераторы отдельно от софта.
Вот вам и парадокс: генераторы одноразовых паролей с PSKC-поддержкой могут быть проданы только вместе с определенным сервером аутентификации, а сервер аутентификации, поддерживающий PSKC, все еще должен реализовывать «уникальные» парсеры для каждого типа OATH-генераторов, что значительно затрудняет их «отдельную» продажу. Складывается ощущение, что разработка стандарта PSKC и его обязательная реализация для прохождения OATH-сертификации ни к чему не привела, и это не принесло какого-либо эффекта в повышении совместимости серверов аутентификации и генераторов одноразовых паролей разных производителей.