мультиОТП
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2020 г. ) |
Разработчик(и) | Системы связи SysCo sa |
---|---|
Первоначальный выпуск | 7 июня 2010 г |
Стабильная версия | 5.8.1.1
/ 14 марта 2021 г |
Написано в | PHP |
Операционная система | Линукс , Microsoft Windows |
Платформа | IA-32 , x86-64 , ARM , Raspberry Pi |
Тип | Надежный двухфакторной OTP- аутентификации сервер |
Лицензия | LGPL |
Веб-сайт | www |
multiOTP — это PHP-класс с открытым исходным кодом, инструмент командной строки и веб-интерфейс, который можно использовать для создания независимой от операционной системы системы строгой аутентификации . multiOTP сертифицирован OATH начиная с версии 4.1.0 и разработан по лицензии LGPL . Начиная с версии 4.3.2.5, multiOTP с открытым исходным кодом также доступен в виде виртуального устройства — в виде стандартного файла OVA, настроенного файла OVA с инструментами open-vm, а также в виде загружаемого файла виртуальной машины от Microsoft. , который можно запускать на платформе Hyper-V V — распространенный собственный гипервизор на компьютерах под управлением Windows. [ жаргон ]
QR -код генерируется автоматически при печати страницы пользовательской конфигурации.
Обзор
[ редактировать ]Шпионское ПО, вирусы и другие хакерские технологии или ошибки (например, Heartbleed ) регулярно используются для кражи паролей. надежная система двухфакторной Если используется аутентификации, украденные пароли не могут быть сохранены и впоследствии использованы, поскольку каждый одноразовый пароль действителен только для одного сеанса аутентификации и не будет работать при второй попытке. [ 1 ]
multiOTP — это библиотека классов PHP. Класс можно использовать с любым приложением PHP, использующим версию PHP 5.3.0 или выше. Библиотека multiOTP предоставляется в виде автономного файла «все в одном», не требующего никаких дополнительных включений. Если строгую аутентификацию необходимо выполнить с аппаратного устройства, а не из интернет-приложения, запрос пройдет через сервер RADIUS, который вызовет инструмент командной строки multiOTP. Реализация достаточно легкая, чтобы работать на ограниченных компьютерах, таких как Raspberry Pi .
История
[ редактировать ]2010
[ редактировать ]- Версия 1.0.0 от 7 июня 2010 года представляла собой лишь базовый инструмент командной строки под названием otpauth, уже написанный на PHP. Через несколько дней инструмент был переименован в multiotp в версии 1.1.4, чтобы избежать путаницы с другим проектом с таким же именем.
- Версия 2.0.0 от 19 июля 2010 г. была полностью переписана как класс PHP, а инструмент командной строки стал реализацией этого класса. В операционных системах Windows инструмент командной строки существует в виде исполняемого файла, включающего в себя исходный код и интерпретатор PHP. Эта версия получила премию phpclasses.org Innovation Award в августе 2010 года. [ 2 ]
- Версия 3.0.0 от 2 сентября 2010 г. позволила импортировать незакодированные файлы подготовки PSKC, а внутренняя структура была улучшена.
- Версия 3.1.1 от 19 декабря 2010 г. позволяла хранить данные в внутренней базе данных MySQL.
2011
[ редактировать ]- Версия 3.2.0 от 6 июля 2011 г. позволяла выполнять аутентификацию с использованием общей учетной записи и путем передачи конкретного пользователя и пароля в поле пароля (полезно, если библиотека используется с аутентификацией Windows, для которой требуется определенный пользователь).
- Версия 3.9.2 от 25 октября 2011 г. — это версия, выпущенная для семинара по интеграции строгой аутентификации в интернет-приложения. Этот семинар был представлен во время Форума по безопасности приложений – Западная Швейцария 2011 в Ивердон-ле-Бен (Швейцария). [ 3 ] Библиотека также использовалась для проверки и распространения [ 4 ] начальное число токенов, подаренных Фейтянем, спонсором мероприятия. Каждый участник должен был указать адрес электронной почты, номер мобильного телефона, серийный номер токена и код OTP, отображаемый на токене, после чего участнику было отправлено зашифрованное электронное письмо, а ключ шифрования был отправлен по SMS.
- В версию 4.0.7 от 30 августа 2013 г. добавлено множество улучшений, таких как функция клиент/сервер с локальным кэшем для хранения файлов определений используемых токенов, совершенно новая реализация поддержки MySQL (включая создание и обновление таблиц базы данных). , аутентификация CHAP (в дополнение к аутентификации PAP), генерация QR-кода для прямой настройки в Google Authenticator и быстрое создание пользователя с помощью одной команды.
2013
[ редактировать ]- Версия 4.0.9 от 22 сентября 2013 года была промежуточной версией, которая использовалась для демонстрации концепции строгой аутентификации на нескольких форумах, таких как Rump Session во время форума по безопасности приложений - Западная Швейцария 2013 в Ивердон-ле-Бен (Швейцария). [ 5 ] и 45-минутное выступление на Технологическом форуме Studerus (TEFO) 2013 в Цюрихе (Швейцария). [ 6 ]
- Версия 4.1.0 от 23 декабря 2013 г. сертифицирована OATH для HOTP и TOTP, что означает полную совместимость с сертифицированными аппаратными токенами, включая зашифрованные файлы подготовки PSKC. Эта бета-версия использовалась для 30-минутного выступления во время конференции PasswordsCon 2013 в Бергене (Норвегия). [ 7 ] [ 8 ] Инструкции и все необходимые файлы для создания серверного устройства строгой аутентификации на нанокомпьютере Raspberry Pi включены. Также были добавлены самостоятельная регистрация аппаратных токенов без атрибутов и автоматическая повторная синхронизация/разблокировка во время аутентификации, а также теперь доступен базовый веб-интерфейс.
2014
[ редактировать ]- В версии 4.1.1 от 20 января 2014 г. исправлены некоторые ошибки и улучшена поддержка Microsoft Authenticator. Для повторной синхронизации токена (с использованием двух последовательных OTP) PIN-код больше не требовался.
- Версия 4.2.0 от 7 февраля 2014 г. поддерживает протоколы MS-CHAP и MS-CHAPv2.
- В версии 4.2.1 от 14 февраля 2014 г. добавлена поддержка Active Directory/LDAP для создания учетных записей на основе пользователей, присутствующих в определенной группе.
- Версия 4.2.2 от 3 марта 2014 г. предоставила расширенный веб-интерфейс для импорта аппаратных токенов, создания учетных записей, синхронизации токенов или разблокировки учетных записей. Была добавлена расширенная поддержка TekRADIUS для отправки назад некоторой конкретной информации, что полезно для соединений MS-CHAP или MS-CHAPv2.
- В версии 4.2.3 от 13 марта 2014 г. исправлена ошибка с отправкой обратно в TekRADIUS.
- В версии 4.2.4 от 30 марта 2014 г. улучшена поддержка серверной части MySQL и добавлена поддержка mysqli. Начиная с этой версии, в файле конфигурации также можно определить, какие поля должны быть зашифрованы, а какие нет. Некоторые внешние классы были обновлены или заменены, а также добавлено множество новых тестов контроля качества, как для классов PHP, так и для версий командной строки.
- В версии 4.2.4.1 от 6 апреля 2014 г. добавлена поддержка NT_KEY (для дальнейшей обработки FreeRADIUS, например генерации ключей VPN). Теперь также можно импортировать токены на основе простого файла CSV (
serial_number;manufacturer;algorithm;seed;digits;interval_or_event
). Новый вариант-user-info
также был добавлен, а также исправлены некоторые ошибки. - Версия 4.2.4.2 от 13 апреля 2014 г. объединила обработку XML с помощью одной библиотеки для всего проекта. Также исправлена возможная ошибка импорта токенов на основе простого CSV-файла.
- В версии 4.2.4.3 от 12 июня 2014 года исправлена ошибка с SMS-провайдером aspsms.
- В версии 4.3.0.0 от 4 ноября 2014 г. добавлена поддержка паролей AD/LDAP (вместо только статического PIN-кода). Также добавлен Yubico OTP, включая импорт ключей с использованием файла журнала, предоставленного инструментом персонализации Yubico. Синхронизация пользователей AD/LDAP была полностью переработана. Эта версия использовалась 4 ноября 2014 г. во время тренинга Форума безопасности приложений - Западная Швейцария 2014 г. в Ивердон-ле-Бен (Швейцария). [ 9 ]
- В версии 4.3.1.0 от 9 декабря 2014 г. добавлен специальный прокси-сервер CLI для ускорения внедрения Raspberry Pi. Была добавлена общая поддержка LDAP (как Synology и все реализации на базе Linux). Генерация OTP со встроенным серийным номером теперь также лучше поддерживается (в PAP). Начиная с этой версии, если она активирована, префиксный PIN-код также необходим при использовании скретч-пароля. Теперь поддерживается переменная среды MULTIOTP_PATH, позволяющая определить, где находится корень multiotp (если конкретная реализация не может правильно определить корневой каталог multiotp).
- Версия 4.3.1.1 от 15 декабря 2014 г. обеспечила улучшенную поддержку LDAP и AD, а также обработала больше полей во время синхронизации. Проект multiOTP теперь также доступен на Github. [ 10 ]
2015
[ редактировать ]- В версии 4.3.2.2 от 9 июня 2015 г. улучшены некоторые уродливые детали (!), добавлены/адаптированы некоторые значения по умолчанию, разрешено использование минуса (-) в пароле, по умолчанию включена
-autoresync
вариант, лучше обрабатывал повторную синхронизацию во время аутентификации (непосредственно в классе), включал по умолчанию кэш сервера и очищал некоторую информацию журнала. - Версия 4.3.2.3 от 10 июня 2015 г. содержала некоторые улучшения веб-интерфейса. Именно эта версия была представлена во время Dev(Talks): 2015 в Бухаресте (Румыния). [ 11 ]
- В версии 4.3.2.4 от 24 июня 2015 г. исправлена ошибка, при которой при генерации скретч-пароля использовались специальные символы. Также автоматизировалась поддержка multi_account при синхронизации с AD/LDAP.
- Версия 4.3.2.5 от 15 июля 2015 г. изменила поведение CLI при вызове без параметра, теперь возвращая код ошибки (30) вместо информации (19). Готовое к использованию виртуальное устройство теперь предоставляется в стандартном формате OVA со встроенными инструментами open-vm, а также в формате Hyper-V.
- В версии 4.3.2.6 от 18 июля 2015 г. добавлена генерация QR-кода для mOTP (Mobile-OTP), и теперь реализован новый метод для чтения данных одного пользователя в массиве.
2016
[ редактировать ]- В версии 5.0.2.5 от 16 октября 2016 г. добавлена улучшенная поддержка SSL, возможность выбора определенного атрибута LDAP/AD для синхронизации учетных записей, улучшенная поддержка MS-CHAPv2, улучшенная обработка повторяющихся паролей, теперь проверяется частный идентификатор YUbicoOTP, совместимость SSL AD/LDAP. в Windows 2012(R2), улучшенная поддержка специальных символов AD/LDAP (RFC4515), новые методы реализации асинхронных действий при изменении данных на серверной стороне.
- В версии 5.0.2.6 от 4 ноября 2016 г. улучшены сообщения журнала, обновлены некоторые внешние пакеты и адаптирован формат файла конфигурации резервной копии для совместимости с коммерческой версией.
- В версии 5.0.3.0 от 14 ноября 2016 г. добавлена поддержка IP-адреса для дозвона (включая синхронизацию с атрибутом Active Directory msRADIUSFramedIPAddress), улучшен процесс импорта токенов с поддержкой двоичного ключа шифрования.
2017
[ редактировать ]- В версии 5.0.3.4 от 26 января 2017 г. улучшен процесс синхронизации AD/LDAP для огромных каталогов AD/LDAP за счет использования по умолчанию дискового кэширования во временной системной папке. Несколько команд CLI теперь можно выполнять одновременно. Теперь поддерживается несколько групп для каждого пользователя (предупреждение: не все устройства поддерживают несколько групп). Предлагаемый по умолчанию генератор TOTP/HOTP теперь является FreeOTP (для Android/iOS). Теперь поддерживается формат предоставления токенов многократного назначения PSKCV10.
- В версии 5.0.3.5 от 3 февраля 2017 г. исправлены некоторые ошибки и добавлен метод GetUserInfo.
- В версии 5.0.3.6 от 21 февраля 2017 г. добавлена поддержка base32 и необработанных двоичных файлов для методов SetUserTokenSeed и SetTokenSeed. Метод восстановленияконфигурации был обновлен.
- В версии 5.0.3.7 от 23 февраля 2017 г. добавлены некоторые незначительные улучшения, такие как обрезка имен групп и обработка режима папок Linux.
- Версия 5.0.4.4 от 16 мая 2017 г. усовершенствовала политику отклонения без увеличения счетчика ошибок для того же воспроизводимого токена.
- В версии 5.0.4.5 от 29 мая 2017 г. добавлена поддержка PostgreSQL на основе исходного кода, предоставленного Франком ван дер Аа.
- Версия 5.0.4.6 от 2 июня 2017 г. переопределяет в Linux расположение папок конфигурации, устройств, групп, токенов и пользователей, которые всегда должны находиться в
/etc/multiotp/
- В версии 5.0.4.8 от 6 июня 2017 г. исправлена ошибка подключения SSL/TLS LDAP для PHP 7.x.
- В версии 5.0.4.9 от 7 июля 2017 г. исправлены мелкие ошибки и добавлены методы настройки TLS.
- В версии 5.0.5.0 от 8 сентября 2017 г. исключено использование инструмента nircmd.exe из-за ложного обнаружения вирусов.
- Версия 5.0.5.2 от 29 сентября 2017 г. определила генератор mOTP по умолчанию для Android/iOS для OTP Authenticator.
- Версия 5.0.5.6 от 4 ноября 2017 г. усовершенствовала документацию FreeRADIUS 3.x и исправила некоторые незначительные ошибки.
2018
[ редактировать ]- В версии 5.1.0.3 от 19 февраля 2018 г. добавлена поддержка устаревших паролей AD/LDAP и улучшена обработка Юникода. Также были внесены некоторые улучшения для поставщика учетных данных multiOTP (для Windows).
- В версии 5.1.0.8 от 5 марта 2018 г. усовершенствован поставщик учетных данных multiOTP, и теперь можно использовать записи реестра. Также исправлена ссылка «получить OTP по SMS» для Windows 10.
- Версия 5.1.1.2 от 20 марта 2018 года предоставила первый Dockerfile для создания полного докера сервера multiOTP с открытым исходным кодом.
- В версии 5.2.0.2 от 16 июля 2018 г. улучшена поддержка AD/LDAP для огромной Active Directory и добавлена опция Users DN (которая не является обязательной, в противном случае для поиска пользователей по-прежнему будет использоваться базовое DN).
- В версии 5.3.0.0 от 21 августа 2018 г. добавлено несколько «DN пользователей» (разделенных столбцом с запятой) для синхронизации AD/LDAP (с дополнительными сообщениями отладки синхронизации) и новый алгоритм «без 2FA», если некоторым пользователям просто нужен префикс пароля без токенов.
- В версии 5.3.0.1 от 22 августа 2018 г. добавлены некоторые поля мониторинга, чтобы получить больше информации о процессе синхронизации.
- В версии 5.3.0.3 от 26 августа 2018 г. исправлен процесс восстановления в версии для командной строки и улучшен процесс клиент/сервер.
- В версии 5.4.0.1 от 14 сентября 2018 года исправлен режим совместимости компонента Windows radius server при установке.
- В версии 5.4.0.2 от 13 ноября 2018 г. улучшен импорт файлов определений PSKC с файлом двоичного ключа декодирования и добавлена поддержка нескольких провайдеров SMS (Swisscom LA REST, Afilnet, Clickatell2, eCall, Nexmo, NowSMS, SMSEagle и пользовательские SMS).
2019
[ редактировать ]- В версии 5.4.1.1 от 7 января 2019 г. добавлена поддержка Raspberry Pi 3B+.
- В версии 5.4.1.4 от 18 января 2019 г. добавлена поддержка Debian 9.x (расширенная версия).
- В версии 5.4.1.6 от 25 января 2019 г. исправлена проблема с опцией NTP DHCP.
- Версия 5.4.1.7 от 30 января 2019 года изменила библиотеку генерации QR-кода и предоставила новый двоичный образ Raspberry Pi, готовый к использованию для Raspberry Pi 1B/1B+/2B/3B/3B+.
- В версии 5.4.1.8 от 29 марта 2019 г. добавлена поддержка Access-Challenge.
2020
[ редактировать ]- В версии 5.8.0.2 от 20 сентября 2020 г. добавлено общее определение поставщика SMS через Интернет, автоматическая очистка несуществующих пользователей AD/LDAP и поддержка Debian Buster 10.5, PHP 7.3 и Raspberry PI 4B.
2021
[ редактировать ]- В версии 5.8.1.0 от 12 февраля 2021 г. в веб-интерфейс улучшена информация о состоянии учетных записей.
Функции
[ редактировать ]Для Windows библиотека multiOTP поставляется с предварительно настроенным сервером RADIUS (freeradius), который можно установить как услугу. Предварительно настроенный веб-сервис (на основе mongoose) также может быть установлен как сервис и необходим, если мы хотим использовать библиотеку multiOTP в конфигурации клиент/сервер. В Linux файл readme.txt, поставляемый с библиотекой, указывает, что необходимо сделать для настройки сервера RADIUS и веб-службы. Также предоставляются все необходимые файлы и инструкции для создания устройства строгой аутентификации с использованием нанокомпьютера Raspberry Pi. Начиная с версии 4.3.2.5 готовое к использованию виртуальное устройство предоставляется в стандартном формате OVA со встроенными инструментами open-vm, а также в формате Hyper-V. Клиент может строго аутентифицироваться в приложении или устройстве, используя различные методы:
- программные токены (например, Google Authenticator)
- аппаратные токены (любые токены, сертифицированные OATH/HOTP и OATH/TOTP, например токены NagraID, а также некоторые другие несертифицированные, но совместимые токены, например токены Feitian C200, основанные на времени)
- код отправляется по SMS (начиная с версии 4.0.4)
- список чистых паролей (начиная с версии 4.0.4)
- YubiKey в собственном режиме Yubico OTP (начиная с версии 4.3)
- без 2FA для учетных записей, которым не требуется строгая аутентификация (начиная с версии 5.3)
Стандартизация и нормализация
[ редактировать ]multiOTP является инициативой по открытой аутентификации, сертифицированной для HOTP и TOTP, и в настоящее время поддерживает следующие алгоритмы и RFC:
- HOTP, одноразовый пароль на основе HMAC ( RFC4226 )
- TOTP, одноразовый пароль на основе времени ( RFC6238 )
- Google Authenticator (OATH/HOTP или OATH/TOTP, начальное значение base32, предоставление QR-кода)
- Токены SMS (с использованием aspsms, clickatell, intellisms или местного провайдера)
- PSKC, Дополнительные профили алгоритмов портативного контейнера симметричных ключей ( RFC6030 )
- CHAP, протокол аутентификации с помощью рукопожатия ( RFC1994 )
- MS-CHAP, расширения Microsoft PPP CHAP ( RFC2433 )
- MS-CHAPv2, расширения Microsoft PPP CHAP, версия 2 ( RFC2759 )
- Протокол системного журнала (клиент; RFC5424 )
- SMTP, простой протокол передачи почты ( RFC2821 )
- Расширение службы SMTP для безопасного SMTP через TLS ( RFC2487 )
Область применения класса
[ редактировать ]Класс multiOTP обеспечивает функциональность строгой аутентификации и может использоваться в различных ситуациях строгой аутентификации:
- Добавление строгой аутентификации для идентификации пользователя (чтобы избежать статического пароля)
- Фиксация аппаратного токена в определенном месте и уверенность, что кто-то был там в определенное время (код токена, отображаемый пользователю в определенное время, даст информацию о том, где он был отображен)
- Аутентификация пользователя путем отправки ему кода по SMS, который автоматически подтвердит номер мобильного телефона пользователя.
- Автоматическое создание учетных записей строгой аутентификации для пользователей, присутствующих в определенной группе Active Directory (или LDAP).
Несколько бесплатных проектов используют библиотеку:
- С ноября 2016 года команда multiOTP предоставляет обновленный поставщик учетных данных для Windows 7/8/8.1/10/2012(R2)/2016 с такими опциями, как только RDP и поддержка имен UPN, называемый поставщиком учетных данных multiOTP. [ 12 ] на основе поставщика учетных данных MultiOneTimePassword [ 13 ] создано Last Squirrel IT.
- OTP OTP OwnCloud [ 14 ] — это приложение для одноразового пароля, основанное на классе multiOTP, которое добавляет надежную аутентификацию в проект OwnCloud , альтернативу Dropbox с открытым исходным кодом.
- Поставщик учетных данных 2FA для Windows [ 15 ] — еще один поставщик учетных данных строгой аутентификации для входа в Windows с использованием библиотеки multiOTP.
- Класс multiOTP использовался в качестве инструмента обучения при демонстрациях безопасности. [ 16 ] и бакалаврская диссертация [ 17 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Аслан, Омер; Актуг, Семих Серкант; Озкан-Ладно, Мерве; Йылмаз, Абдулла Асим; Акин, Эрдал (январь 2023 г.). «Комплексный обзор уязвимостей, угроз, атак и решений кибербезопасности» . Электроника . 12 (6): 1333. doi : 10.3390/electronics12061333 . ISSN 2079-9292 .
- ^ «Класс PHP multiOTP: проверка подлинности и управление токенами надежного пользователя OTP» . PHPклассы/Icontem . Проверено 30 октября 2013 г.
- ^ «Форум по безопасности приложений – Западная Швейцария 2011» . Форум по безопасности приложений — Западная Швейцария . Проверено 30 октября 2013 г.
- ^ «Запрос на начальное значение токена Feitian ASF-WS 2011» . Системы связи SysCo sa . Получено 30 октября.
- ^ «Форум по безопасности приложений – Западная Швейцария 2013» . Форум по безопасности приложений - Западная Швейцария.
- ^ «Технологический форум Studerus — ТЭФО'13» . Студерус. Архивировано из оригинала 26 декабря 2013 г. Проверено 25 декабря 2013 г.
- ^ «PasswordsCon 2013 в Бергене» . Securelist.com . 03.12.2013 . Проверено 20 августа 2023 г.
- ^ «ПаролиКон 2013» . ПаролиКон.
- ^ «Форум по безопасности приложений – Западная Швейцария 2014» . Форум по безопасности приложений - Западная Швейцария. 9 августа 2014 г.
- ^ multiOTP (11 августа 2023 г.), multiOTP с открытым исходным кодом , получено 20 августа 2023 г.
- ^ «Дев(Переговоры): 2015» . Катализатор (hipo.ro).
- ^ «Поставщик учетных данных multiOTP» . команда multiOTP . Проверено 1 февраля 2019 г.
- ^ «Поставщик учетных данных MultiOneTimePassword» . Последняя белка ОНО . Проверено 28 июля 2015 г.
- ^ «Бэкенд одноразового пароля для ownCloud» . Команда apps.ownCloud.com . Проверено 30 октября 2013 г.
- ^ «Поставщик учетных данных 2FA для Windows» . Fluid Technology Solutions Ltd. Архивировано из оригинала 2 октября 2013 года . Проверено 30 октября 2013 г.
- ^ «Надежная аутентификация в веб-приложениях: современное состояние, 2011 г.» (PDF) . Компас Секьюрити АГ . Проверено 30 октября 2013 г.
- ^ «Одноразовые пароли. Бакалаврская работа (на чешском языке)» . Экономический университет, Прага . Проверено 30 октября 2013 г.