Введение
Устройство, используемое для доступа к электронно защищенному ресурсу
Токен безопасности – это периферийное устройство, используемое для получения доступа к электронно защищенному ресурсу. Токен используется в дополнение к паролю или вместо него. Примеры токенов безопасности включают беспроводные ключевые карты для открытия запертых дверей, банковский токен, используемый как цифровой аутентификатор для входа в онлайн-банкинг или подписания транзакций, таких как банковский перевод. Токены безопасности могут использоваться для хранения информации, такой как пароли, криптографические ключи для генерации цифровых подписей или биометрические данные (например, отпечатки пальцев). Некоторые модели оснащены защищенной от взлома упаковкой, а другие – небольшой клавиатурой для ввода PIN-кода или простой кнопкой для запуска процесса генерации с возможностью отображения сгенерированного номера ключа. Подключаемые токены используют различные интерфейсы, включая USB, Near Field Communication (NFC), радиочастотную идентификацию (RFID) или Bluetooth. Некоторые токены имеют аудиофункции, предназначенные для людей с нарушениями зрения.
Типы паролей
Все токены содержат некоторую секретную информацию, которая используется для подтверждения личности. Существует четыре различных способа использования этой информации:
Статический токен пароля: Устройство содержит пароль, который физически скрыт (не виден владельцу), но который передается при каждой аутентификации. Этот тип уязвим к повторным атакам. Синхронный динамический токен пароля: Таймер используется для последовательной генерации различных комбинаций, полученных с помощью криптографического алгоритма. Токен и сервер аутентификации должны иметь синхронизированные часы. Асинхронный токен пароля: Одноразовый пароль генерируется без использования часов, либо на основе одноразовой шифровальной таблицы, либо с помощью криптографического алгоритма. Токен вызова-ответа: Используя криптографию с открытым ключом, можно доказать владение закрытым ключом, не раскрывая его. Сервер аутентификации шифрует запрос (обычно случайное число или, по крайней мере, данные с некоторыми случайными элементами) с помощью открытого ключа; устройство доказывает, что владеет копией соответствующего закрытого ключа, предоставив расшифрованный запрос. Одноразовые пароли с временной синхронизацией постоянно меняются через заданные промежутки времени, например, раз в минуту. Для этого требуется определенная синхронизация между токеном клиента и сервером аутентификации. Для автономных токенов эта синхронизация времени выполняется до передачи токена клиенту. Другие типы токенов синхронизируются при вставке в устройство ввода. Основная проблема синхронизированных токенов заключается в том, что они могут со временем потерять синхронизацию. Однако некоторые системы, такие как RSA SecurID, позволяют пользователю повторно синхронизировать сервер с токеном, иногда путем ввода нескольких последовательных паролей. Большинство из них также не имеют заменяемых батарей и могут работать до 5 лет, прежде чем потребуется замена, что влечет за собой дополнительные расходы. Другой тип одноразового пароля использует сложный математический алгоритм, например, цепочку хэшей, для генерации серии одноразовых паролей из секретного общего ключа. Каждый пароль уникален, даже если известны предыдущие пароли. Алгоритм OATH с открытым исходным кодом стандартизирован, а другие алгоритмы защищены патентами США. Каждый пароль непредсказуем и независим от предыдущих, что делает невозможным для злоумышленника угадать следующий пароль, даже зная все предыдущие.
Физические типы
Токены могут содержать чипы с функциями, варьирующимися от очень простых до очень сложных, включая несколько методов аутентификации. Самые простые токены безопасности не требуют подключения к компьютеру. Такие токены оснащены физическим дисплеем, и пользователь, проходящий аутентификацию, просто вводит отображаемый номер для входа в систему. Другие токены подключаются к компьютеру по беспроводным каналам, например, через Bluetooth. Эти токены передают последовательность ключей локальному клиенту или ближайшей точке доступа. Альтернативно, широко распространенным типом токена на протяжении многих лет является мобильное устройство, которое взаимодействует по стороннему каналу (например, через голосовую связь, SMS или USSD). Некоторые токены подключаются к компьютеру и могут потребовать ввода PIN-кода. В зависимости от типа токена, операционная система компьютера либо считывает ключ с токена и выполняет над ним криптографическую операцию, либо запрашивает прошивку токена выполнить эту операцию. Схожим применением является аппаратный донгл, необходимый некоторым компьютерным программам для подтверждения прав на программное обеспечение. Донгл подключается к устройству ввода, и программное обеспечение обращается к соответствующему устройству ввода/вывода для авторизации использования данного программного обеспечения. Коммерческие решения предлагаются различными поставщиками, каждый из которых имеет собственную (и часто запатентованную) реализацию различных функций безопасности. В Соединенных Штатах конструкции токенов, соответствующие определенным стандартам безопасности, сертифицируются как соответствующие федеральному стандарту безопасности FIPS 140. Токены без какой-либо сертификации иногда вызывают подозрения, поскольку они часто не соответствуют общепринятым государственным или отраслевым стандартам безопасности, не проходят тщательное тестирование и, вероятно, не обеспечивают такого же уровня криптографической защиты, как токены, конструкция которых была независимо проверена сторонними организациями.
Отключенные токены
Отключенные токены не имеют ни физической, ни логической связи с клиентским компьютером. Как правило, им не требуется специальное устройство ввода, вместо этого они используют встроенный экран для отображения сгенерированных данных аутентификации, которые пользователь вводит вручную с помощью клавиатуры или кодовой панели. Отключенные токены – наиболее распространенный тип токенов безопасности, используемых (обычно в сочетании с паролем) для двухфакторной аутентификации при онлайн-идентификации.
Соединенные токены
Подключенные токены – это токены, которые должны быть физически подключены к компьютеру, с помощью которого пользователь проходит аутентификацию. Токены этой категории автоматически передают информацию для аутентификации на клиентский компьютер после установления физического соединения, избавляя пользователя от необходимости вводить эту информацию вручную. Однако для использования подключенного токена необходимо установить соответствующее устройство ввода. Наиболее распространенными типами физических токенов являются смарт-карты и USB-токены (также называемые ключами безопасности), которым соответственно требуются считыватель смарт-карт и USB-порт. Все большую популярность приобретают токены FIDO2, поддерживаемые открытой группой спецификаций FIDO Alliance, с поддержкой в основных браузерах, начиная с 2015 года, и используемые популярными веб-сайтами и социальными сетями. Более старые токены PC Card предназначены в основном для использования с ноутбуками. Карты типа II предпочтительнее, поскольку они вдвое тоньше, чем карты типа III. Аудиоразъем – относительно удобный способ подключения мобильных устройств, таких как iPhone, iPad и Android, к различным аксессуарам. Наиболее известным устройством является Square – ридер для кредитных карт для устройств iOS и Android. Некоторые используют специализированный интерфейс (например, криптографический ключ зажигания, используемый Агентством национальной безопасности США). Токены также могут использоваться в качестве удостоверения личности с фотографией. Мобильные телефоны и КПК также могут служить в качестве токенов безопасности при соответствующем программировании.
Умные карты
Многие подключенные токены используют технологию смарт-карт. Смарт-карты могут быть очень дешевыми (около десяти центов) и содержат проверенные механизмы безопасности (как используемые финансовыми учреждениями, например, банковскими картами). Однако вычислительная мощность смарт-карт часто довольно ограничена из-за крайне низкого энергопотребления и строгих требований к ультратонкому форм-фактору. USB-токены на основе смарт-карт, содержащие чип смарт-карты, обеспечивают функциональность как USB-токенов, так и смарт-карт. Они позволяют реализовать широкий спектр решений в области безопасности и предоставляют возможности и уровень безопасности традиционной смарт-карты без необходимости в специальном устройстве ввода. С точки зрения операционной системы компьютера такой токен представляется как USB-подключенный считыватель смарт-карт с одной установленной несъемной смарт-картой.
Бесконтактные токены
В отличие от подключенных токенов, бесконтактные токены устанавливают логическую связь с клиентским компьютером, но не требуют физического подключения. Отсутствие необходимости физического контакта делает их более удобными, чем как подключенные, так и отсоединенные токены. В результате бесконтактные токены стали популярным выбором для систем бесключевого доступа и электронных платежных решений, таких как Mobil Speedpass, использующий RFID для передачи информации об аутентификации с брелока-токена. Однако после того, как исследователи из Университета Джона Хопкинса и RSA Laboratories обнаружили, что RFID-метки можно легко взломать и клонировать, были высказаны различные опасения по поводу безопасности RFID-токенов. Другой недостаток заключается в относительно коротком сроке службы батареи бесконтактных токенов – обычно всего 5–6 лет, что меньше, чем у USB-токенов, которые могут прослужить более 10 лет. Однако некоторые токены позволяют заменять батареи, что снижает затраты.
Токены Bluetooth
Протоколы Bluetooth Low Energy обеспечивают длительное время работы от батареи при беспроводной передаче данных. Передача встроенных данных идентификации Bluetooth имеет наименьший уровень защиты для поддержки аутентификации. Двунаправленное соединение для обмена данными в рамках транзакций используется для наиболее сложных процедур аутентификации. Автоматическая регулировка мощности передачи пытается оценить радиус досягаемости. Однако, предусмотрена возможность отключения от стандартизированного алгоритма управления мощностью Bluetooth для калибровки минимально необходимой мощности передачи. Bluetooth-токены часто комбинируются с USB-токенами, что позволяет им работать как в подключенном, так и в отключенном режиме. Аутентификация Bluetooth работает на расстоянии до 32 футов (10 метров). Если Bluetooth-соединение не работает должным образом, токен можно вставить в USB-устройство для функционирования. Другая комбинация – использование смарт-карты для локального хранения больших объемов идентификационных данных и обработки информации. Также существует бесконтактный BLE-токен, сочетающий в себе безопасное хранение и токенизированный выпуск данных биометрической идентификации по отпечатку пальца. В режиме работы через USB отключение требует осторожности при механическом подключении токена к USB-разъему. Преимущество режима работы Bluetooth заключается в возможности объединения отключения с измерением расстояния. Соответствующие продукты находятся в разработке, основываясь на концепции "электронного поводка".
Токены NFC
Токены ближней бесконтактной связи (NFC) в сочетании с токеном Bluetooth могут работать в нескольких режимах, обеспечивая функционирование как в подключенном, так и в отключенном состоянии. Аутентификация NFC работает на расстоянии менее 30 см (0 м). Протокол NFC обеспечивает связь на коротких расстояниях с устройством чтения, а соединение Bluetooth используется для передачи данных с токена, необходимых для аутентификации. Кроме того, когда соединение Bluetooth отсутствует, токен может предоставлять локально сохраненную информацию для аутентификации, определяя приблизительное местоположение относительно считывателя NFC и избавляя от необходимости точного позиционирования.
Токены для программного обеспечения с единой регистрацией
Некоторые типы решений для единого входа (SSO), такие как корпоративный единый вход, используют токен для хранения программного обеспечения, обеспечивающего бесшовную аутентификацию и автоматическое заполнение паролей. Поскольку пароли хранятся на токене, пользователям не требуется их запоминать, что позволяет им выбирать более надежные пароли или использовать более надежные пароли, назначенные им. Как правило, большинство токенов хранят криптографический хэш пароля, чтобы даже в случае компрометации токена пароль оставался защищенным.
Программируемые токены
Программируемые токены позиционируются как простая замена мобильным приложениям, таким как Google Authenticator (miniOTP). Их можно использовать вместо мобильного приложения, а также параллельно с ним в качестве резервного варианта.
Потеря и кража
Самая простая уязвимость любого хранилища паролей – кража или потеря устройства. Вероятность этого, или того, что это произойдет незаметно, можно снизить с помощью мер физической безопасности, таких как замки, электронные замки-тросы или датчики присутствия и сигнализация. Украденные токены можно сделать бесполезными, используя двухфакторную аутентификацию. Как правило, для аутентификации необходимо ввести персональный идентификационный номер (PIN) одновременно с информацией, предоставляемой токеном, и кодом, генерируемым токеном.
Наступаем .
Любая система, позволяющая пользователям проходить аутентификацию через незащищенную сеть (например, Интернет), уязвима для атак типа "человек посередине". При такой атаке злоумышленник перехватывает взаимодействие между пользователем и легитимной системой, выманивая у пользователя данные токена и затем передавая их системе аутентификации от своего имени. Поскольку значение токена математически корректно, аутентификация проходит успешно, и злоумышленник получает доступ. В 2006 году Citibank подвергся атаке, когда бизнес-пользователи, использующие аппаратные токены, стали жертвами масштабной украинской фишинговой операции, основанной на перехвате данных.
Нарушение кодексов
В 2012 году исследовательская группа Prosecco в INRIA Paris Rocquencourt разработала эффективный метод извлечения секретного ключа из ряда криптографических устройств, соответствующих стандарту PKCS #11. Результаты исследования были задокументированы в техническом отчете INRIA RR 7944, ID hal 00691958, и опубликованы на конференции CRYPTO 2012.
Цифровая подпись
Цифровая подпись, пользующаяся доверием как рукописная, должна быть создана с использованием закрытого ключа, известного только авторизованному лицу. Токены, обеспечивающие безопасную генерацию и хранение закрытых ключей непосредственно на устройстве, позволяют создавать защищенные цифровые подписи и могут также использоваться для аутентификации пользователя, поскольку закрытый ключ служит подтверждением его личности. Для идентификации пользователя токены должны иметь уникальный идентификационный номер. Некоторые подходы не соответствуют требованиям к цифровым подписям, установленным национальным законодательством. Токены, не оснащенные встроенной клавиатурой или другим пользовательским интерфейсом, не могут быть использованы в определенных сценариях подписания, например, для подтверждения банковской транзакции на основе номера счета получателя.