Герои двухфакторной аутентификации, или как «походить в чужих ботинках» / Хабр

Герои двухфакторной аутентификации, или как «походить в чужих ботинках» / Хабр Сертификаты

2021: двухфакторная аутентификация мобильных транзакций

Ученые из корпорации IBM разработали и представили в октябре 2021 года новую мобильную технологию защиты с помощью аутентификации на основе стандарта беспроводной связи малого радиуса действия (near-field communication, NFC).

Согласно результатам отчета исследовательской компании ABI Research, в 2021 г. количество используемых устройств с функцией NFC превысит 500 миллионов. Эти данные, а также тот факт, что к 2021 г. 1 млрд. мобильных пользователей будет совершать банковские транзакции с помощью своих устройств*, подтверждают растущий риск утери данных в связи с мошеннической деятельностью.

Для решения этой проблемы сотрудники лаборатории IBM в Цюрихе, которые также создали операционную систему, обеспечивающую функционирование и безопасность сотен миллионов смарт-карт, разработали дополнительный уровень защиты мобильных транзакций, подразумевающий двухфакторную аутентификацию.

Многие пользователи уже применяют двухфакторную аутентификацию при работе на компьютере, к примеру, вводя не только пароль, но и код подтверждения, полученный в SMS-сообщении. Ученые из IBM применили тот же принцип при обработке номера персональной идентификации (PIN-кода) и использовании бесконтактной смарт-карты.

«Технология двухфакторной аутентификации, основанная на стандарте улучшенного шифрования (Advanced Encryption Standard), обеспечивает высокий уровень безопасности» – прокомментировал Диего Ортис-Епес (Diego Ortiz-Yepes), специалист IBM Research по мобильной безопасности.

Как работает технология

Пользователь держит смарт-карту вблизи NFC-считывателя своего мобильного устройства. После ввода PIN-кода карта генерирует одноразовый код, затем направляя его серверу посредством мобильного устройства.

Технология IBM основывается на абонентском шифровании передачи данных между смарт-картой и сервером по стандарту Advanced Encryption Standard (AES), одобренному Национальным институтом стандартов и технологий (NIST). Современные мобильные технологии, представленные на рынке, требуют наличия у пользователя, к примеру, генератора случайных паролей, что не всегда удобно и в некоторых случаях менее надежно.

Новая технология, которая теперь доступна на любом устройстве под управлением Android 4.0 с функцией NFC, основана на IBM Worklight – мобильной платформе, входящей в портфель решений IBM MobileFirst. Будущие обновления позволят использовать новые NFC-устройства, учитывая тенденции развития рынка.

Результаты нового исследования IBM Institute for Business Value, проведенного среди «мобильных» предприятий, подтвердили, что организации осознают важность обеспечения высокого уровня безопасности мобильных транзакций. По итогам опроса специалистов, безопасность находится на втором месте в списке наиболее сложных задач предприятия.

Go to 2fa (двухфакторная аутентификация для asa ssl vpn)

Потребность предоставить удаленный доступ к корпоративной среде возникает все чаще и чаще, не важно, будь то свои пользователи или партнеры, которым необходим доступ к тому или иному серверу в вашей организации.

Для этих целей, большинство компаний, используют технологию VPN, зарекомендовавшую себя, как надежно защищенный способ предоставления доступа к локальным ресурсам организации.

Моя компания не стала исключением, и мы так же, как и многие другие, пользуемся этой технологией. И, как многие другие, используем, в качестве шлюза удаленного доступа — Cisco ASA 55xx.

При возрастании количества удаленных пользователей появляется потребность в облегчении процедуры выдачи учетных данных. Но в то же время сделать это необходимо не в ущерб безопасности.

Для себя мы нашли решение в применении двухфакторной аутентификации для подключения по Cisco SSL VPN, с применением одноразовых паролей. И эта публикация расскажет, как организовать подобное решение с минимальными затратами по времени и с нулевыми затратами на необходимый софт (с условием, что Cisco ASA в вашей инфраструктуре уже имеется).

Рынок изобилует коробочными решениями для генерации одноразовых паролей, при этом предлагая массу вариантов по их получению, будь то отсылка пароля посредством SMS или использование токенов, как «железных», так и программных (к примеру на мобильном телефоне). Но тяга к экономии и желание сберечь денег для своего работодателя, в условиях нынешнего кризиса заставили меня найти бесплатный способ реализовать сервис по генерации одноразовых паролей. Который, при своей бесплатности, мало чем уступает коммерческим решениям (тут следует оговориться, отметив, что данный продукт имеет и коммерческую версию, но мы же договорились, что затраты, в деньгах, у нас будут нулевыми).

Итак, нам понадобятся:

— Образ Linux со встроенным набором инструментов — multiOTP, FreeRADIUS и nginx, для доступа к серверу по веб (http://download.multiotp.net/ — я использовал готовый образ для VMware)
— Сервер Active Directory
— Собственно Cisco ASA (я, для удобства, использую ASDM)
— Любой софтверный токен, поддерживающий механизм TOTP (Я, к примеру, использую Google Authenticator, но подойдет тот же FreeOTP)

Не стану вдаваться в подробности разворачивания образа. На выходе вы получите Debian Linux с уже установленными multiOTP и FreeRADIUS, настроенными для работы в связке и web-интерфейс для администрирования OTP.

Шаг 1. Инициируем систему и настраиваем под свою сеть
По умолчанию система поставляется с учетными данными root root. Думаю, все догадались, что неплохо было бы сменить пароль пользователя root, после первого логина. Так же необходимо поменять настройки сети (по умолчанию это ‘192.168.1.44’ c шлюзом ‘192.168.1.1’). После можно перезагрузить систему.

Про сертификаты:  Силумин — характеристики, маркировка, применение: tvin270584 — LiveJournal

В Active Directory создадим пользователя otp, с паролем MySuperPassword.

Шаг 2. Настраиваем подключение и импортируем пользователей Active Directory
Для этого нам понадобится доступ в консоль, и, непосредственно файл multiotp.php, используя который мы настроим параметры подключения к Active Directory.

Переходим в директорию /usr/local/bin/multiotp/ и по очереди выполняем следующие команды:

./multiotp.php -config default-request-prefix-pin=0

Определяет, требуется ли наличие дополнительного (постоянного) пина при вводе одноразового пина (0 или 1)

./multiotp.php -config default-request-ldap-pwd=0

Определяет, требуется ли ввод доменного пароля при вводе одноразового пина (0 или 1)

./multiotp.php -config ldap-server-type=1

Указывается тип LDAP-сервер (0 = обычный LDAP-сервер, в нашем случае 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

Указывает, в каком формате представлять имя пользователя (данное значение выведет только имя, без домена)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

То же самое, только для группы

./multiotp.php -config ldap-group-attribute="memberOf"

Указывает метод определения принадлежности пользователя к группе

./multiotp.php -config ldap-ssl=1

Использовать ли безопасное подключение к LDAP-серверу (конечно — да!)

./multiotp.php -config ldap-port=636

Порт для подключения к LDAP-серверу

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

Адрес вашего сервера Active Directory

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Указываем, откуда начинать поиск пользователей в домене

./multiotp.php -config ldap-bind-dn="otp@domain.local"

Указываем пользователя, у которого есть права поиска в Active Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

Указываем пароль пользователя, для подключения к Active Directory

./multiotp.php -config ldap-network-timeout=10

Выставляем таймаут для подключения к Active Directory

./multiotp.php -config ldap-time-limit=30

Выставляем ограничение по времени, на операцию импорта пользователей

./multiotp.php -config ldap-activated=1

Активируем конфигурацию подключения к Active Directory

./multiotp.php -debug -display-log -ldap-users-sync

Производим импорт пользователей из Active Directory

Шаг 3. Генерируем QR-код для токена
Здесь все предельно просто. Открываем веб-интерфейс ОТП-сервера в браузере, логинимся (не забываем сменить пароль для админа, установленный по умолчанию!), и нажимаем на кнопку «Print»:

Результатом этого действия будет страница, на которой содержится два QR-кода. Мы смело забиваем на первый из них (не смотря на привлекательную надпись Google Authenticator / Authenticator / 2 Steps Authenticator), и опять же смело сканируем второй код в софтверный токен на телефоне:

(да, я намеренно подпортил QR-код, чтоб сделать его нечитабельным).

После совершения данных действий у вас в приложении, каждые тридцать секунд, начнет генерироваться шестициферный пароль.

Для верности можно произвести проверку, в том же интерфейсе:

Вбив имя пользователя, и одноразовый пароль из приложения на телефоне. Получили положительный ответ? Значит двигаемся дальше.

Шаг 4. Донастраиваем и тестируем работу FreeRADIUS
Как я упоминал выше — multiOTP уже настроен для работы с FreeRADIUS, на остается провести тесты и внести в конфигурационный файл FreeRADIUS информацию о нашем VPN-шлюзе.

Возвращаемся в консоль сервера, в директорию /usr/local/bin/multiotp/, вводим:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

Включая тем самым более подробное логирование.

В конфигурационном файле клиентов FreeRADIUS (/etc/freeradius/clinets.conf) комментируем все строки, относящиеся к localhost и добавляем две записи:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

— для теста

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

— для нашего VPN-шлюза.

Перезапускаем FreeRADIUS и пробуем авторизоваться:

radtest username 100110 localhost 1812 testing321

где

username

= имя пользователя,

100110

= пароль, выданный нам приложением на телефоне,

localhost

= адрес RADIUS-сервера,

1812

— порт RADIUS-сервера,

testing321

— пароль клиента RADIUS-сервера (который мы указали в конфиге).

Результатом данной команды станет вывод, примерно следующего содержания:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

Теперь нам необходимо удостовериться, что пользователь успешно прошел аутентификацию. Для этого мы заглянем в лог самого multiotp:

tail /var/log/multiotp/multiotp.log

И если последней записью там будет:

2021-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2021-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

То все прошло успешно, и мы можем выполнить

Шаг 5. Настройка Cisco ASA
Условимся, что мы уже имеем настроенную группу и политики для доступа по SLL VPN, настроенную в связке с Active Directory, и нам необходимо добавить двухфакторную аутентификацию для данного профайла.

1. Добавляем новую группу серверов AAA:

2.

Добавляем в группу наш multiOTP сервер:

3.

Правим

профайл подключения

, выставив в качестве основного сервера аутентификации группу серверов Active Directory:

4.

На вкладке

Advanced -> Authentification

так же выбираем группу серверов Active Directory:

5.

На вкладке

Advanced -> Secondary

authentification выбираем созданную группу серверов, в которой прописан multiOTP-сервер. Отмечаем, что Session username наследуется из первичной группы серверов ААА:

Применяем настройки и

Шаг 6, он же последний
Проверяем, работает ли у нас двухфакторная аутентификация для SLL VPN:

Вуа-ля! При подключении посредством Cisco AnyConnect VPN Client так же будет запрашиваться второй, одноразовый, пароль.

Надеюсь, что данная статья поможет кому-то, и что кому-то она даст пищу для размышлений, как можно использовать данный, бесплатный ОТП-сервер, для других задач. Делитесь в комментариях, если будет желание.

Про сертификаты:  Растаможка и перевозка зеленого горошка

Sms-пароли признаны небезопасными

Национальный Институт стандартов и технологий США (The National Institute of Standards and Technology, NIST) представил летом 2021 года предварительную версию будущего Digital Authentication Guideline (документа, который установит новые нормы и правила в отношении цифровых методов аутентификации):

В документе содержится прямое указание на то, что использование SMS-сообщений для двухфакторной аутентификации может являться «недопустимым» и «небезопасным» (секция документа 5.1.3.2).

Полностью данный параграф выглядит так: «Если верификация по внешнему каналу осуществляется посредством SMS-сообщения в публичной сети мобильной телефонной связи, верификатор должен убедиться, что используемый предварительно зарегистрированный телефонный номер действительно ассоциируется с мобильной сетью, а не с VoIP или иным программным сервисом. После возможна отправка SMS-сообщения на предварительно зарегистрированный телефонный номер. Изменение предварительно зарегистрированного телефонного номера не должно быть возможно без двухфакторной аутентификации в ходе изменения. Использование SMS-сообщений в аутентификации по внешнему каналу недопустимо, и не будет дозволяться в будущих версиях данного руководства».

Основные опасения экспертов Национального института стандартов и технологий сводятся к тому, что номер телефона может быть привязан к VoIP-сервису, кроме того, злоумышленники могут попробовать убедить поставщика услуг в том, что номер телефона изменился, и подобные уловки нужно сделать невозможными.

Хотя документ рекомендует производителям использовать в своих приложениях токены и криптографические идентификаторы, авторы поправок также отмечают, что смартфон или другое мобильное устройство всегда могут быть украдены, или могут временно находиться в руках другого человека” – говорится в документе NIST.

Механизмов компрометации SMS паролей существует достаточно много, и они уже были неоднократно использованы в основном для похищения денежных средств клиентов российских банков. Достаточно перечислить лишь несколько методов взлома SMS паролей:

Еще одним методом может считаться взлом шлюза между банком и оператором связи.

То обстоятельство, что механизм SMS-паролей используется всеми банками, открывает для хакеров широкие перспективы. Очевидно, что написав один раз троян для смартфона, его можно использовать для атаки на все российские банки, при его (трояна) минимальной кастомизации.

При этом можно предсказать, что первыми “под раздачу” будут попадать крупные банки – большая клиентская база последних позволяет мошенникам рассчитывать на весомый результат даже при небольших остатках на счетах клиентов.

Одноразовые пароли через SMS

  • задержки в доставке
  • возможность перехвата на уровне канала связи или ввода в систему
  • возможность перехвата на уровне оператора мобильной связи
  • возможность переоформления сим-карты клиента на мошенника по поддельной доверенности (и перехвата SMS)
  • возможность направления клиенту SMS-сообщений с подменного номера
  • рост операционных затрат пропорционально клиентской базе

Одноразовые пароли через PUSH

Детальный способ — создаем приложение с нуля

Запускаем Visual Studio (я сейчас использую VS 2021, версия 15.6.7) с установленным Xamarin. Это можно проверить, запустив Visual Studio Installer и нажав Modify текущей инсталляции Visual Studio.

Xamarin Module
Xamarin Module

Xamarin входит во все версии Visual Studio — даже в бесплатную Community Edition, но нужно убедиться, что он включен и установлен, как показано выше.

Запускаем Visual Studio и создаем новый проект: меню File → New → Project. Выбираем Cross-Platform → Mobile App (Xamarin.Forms).

New Project
New Project

Далее выбираем Blank App и .NET Standard как Code Sharing Strategy.

Code Sharing
Code Sharing

Получив новый проект, проверим запуск мобильного приложения, по умолчанию стартовый проект выделен жирным шрифтом — Android-приложение.

Solution
Solution

Если это не так, сделаем его стартовым: правый клик на проекте App.Android и меню Set as a StartUp Project.

Нажав F5, запустим приложение на эмуляторе Android и увидим:

New App
New App

Убедившись, что все работает, останавливаем отладку (Shift F5).

Чтобы интегрировать многофакторную аутентификацию, подключим библиотеку Azure Active Directory Authentication Libraries (ADAL). Подключить ее надо будет к каждому проекту: правый клик на каждом проекте — всего четыре проекта (общий специфичный под каждую из трех платформ) = 4 раза → Manage NuGet Packages.

Manage NuGet
Manage NuGet

Далее закладка Browse — вводим в поиск adal и подключаем, нажимая на кнопку со стрелкой вниз.

Adal Add
Adal Add

Для реализации логики работы с библиотекой будем использовать следующий подход:

Начинаем с определения интерфейса IAuthenticator в общем для всех платформ проекте, создаем в нем новый файл IAuthenticator.cs с определением интерфейса (правый клик на проекте → Add → New Item → Class).

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.Threading.Tasks;

namespace App17
{
    public interface IAuthenticator
    {
        Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri);
    }
}

Как видишь, мы определяем сигнатуру асинхронного метода аутентификации. AuthenticationResult при успешной аутентификации будет содержать полученный от Azure Active Directory токен. Соберем проекты: правый клик на Solution → Build Solution.

Теперь создаем реализацию этого интерфейса для каждой из платформ. Он будет очень похож — основываться на вызове метода AcquireTokenAsync; единственное различие, почему его, собственно, и приходится создавать платформенно-зависимым, в специфике интеграции с платформенным UI через PlatformParameters для отображения всплывающих веб-диалогов аутентификации.

Представлен новый способ обхода двухфакторной аутентификации

В конце декабря 2021 года группу хакеров, предположительно связанную с китайским правительством, обвинили во взломе сетей по всему миру. Эксперты считают, что хакеры разработали новую методику обхода двухфакторной аутентификации, что встревожило сообщество кибербезопасности.

Про сертификаты:  Как отсканировать qr-код о вакцинации

Впервые хакерскую деятельность, приписываемую группе APT20, обнаружили в 2021 году. Она занималась взломом и доступом к данным государственных структур, крупных компаний и поставщиков услуг в США, странах Южной Америки и Европы.

В 2021–2021 годах группа исчезла из поля зрения специалистов, и лишь недавно голландская компания Fox-IT, специализирующаяся на консалтинговых услугах по кибербезопасности, обнаружила следы вмешательства APT20 в сети одного из своих клиентов, который попросил расследовать нарушения в целостности сети.

Исследователи Fox-IT подробно описали методику взлома. По мнению специалистов, группа хакеров использовала веб-серверы в качестве точки входа, в частности, платформу корпоративных приложений Jboss. Проникнув в систему и установив веб-оболочки, хакеры расходились по сетям жертв.

Но хуже всего оказалось то, что группа APT20 смогла обойти двухфакторную авторизацию, получив доступ к защищенным учетным записям VPN. Наиболее вероятно, что хакеры смогли украсть из взломанной системы программный токен RSA SecurID и модифицировать его таким образом, чтобы разорвать связь с локальной системой.

Обычно без него программа RSA SecurID выдаёт ошибку, однако хакеры обошли весь комплекс начальной проверки и с помощью украденной программы смогли беспрепятственно генерировать одноразовые коды для обхода двухфакторной защиты.[2]

Примеры двухфакторной и многофакторной аутентификации

Методика аутентификации при помощи SMS основана на использовании одноразового пароля: преимущество такого подхода, по сравнению с постоянным паролем в том, что этот пароль нельзя использовать повторно. Даже если предположить, что злоумышленнику удалось перехватить данные в процессе информационного обмена, он не сможет результативно использовать украденный пароль для получения доступа к системе.

А вот пример, реализуемый с применением биометрических устройств и методов аутентификации: использование сканера отпечатка пальца, который имеется в ряде моделей ноутбуков. При входе в систему пользователь должен пройти процедуру сканирования пальца, а затем подтвердить свои полномочия паролем.

Успешно завершенная аутентификация даст ему право на использование локальных данных конкретного ПК. Тем не менее, регламентом работы в ИС может быть предусмотрена отдельная процедура аутентификации для доступа к сетевым ресурсам компании, которая помимо ввода другого пароля может включать в себя целый ряд требований к представлению аутентификаторов субъекта. Но даже при такой реализации, защищенность системы, несомненно, усиливается.

Аналогичным образом могут быть использованы и другие биометрические аутентификаторы:

  • отпечатки пальцев;
  • геометрия кисти руки;
  • очертания и размеры лица;
  • характеристики голоса;
  • узор радужной оболочки и сетчатки глаз;
  • рисунок вен пальцев.

При этом конечно применяется соответствующее оборудование и программное обеспечение, а затраты на его приобретение и поддержку могут отличаться в разы.

Однако, стоит понимать – биометрические аутентификаторы не являются абсолютно точными данными. Отпечатки одного пальца могут иметь отличия под воздействием внешней среды, физиологического состояния организма человека и т.п. Для успешного подтверждения этого аутентификатора достаточно неполного соответствия отпечатка эталону.

Методы биометрической аутентификации содержат определение степени вероятности соответствия действующего аутентификатора эталону. Что касается биометрической аутентификации и удаленного доступа к ИС, то пока у современных технологий нет возможности передать по незащищенным каналам достоверные данные – отпечаток пальца или результат сканирования сетчатки глаза.

Эти технологии в большей степени годятся для использования в корпоративных сетях.

Наиболее популярной технологией в этом направлении в недалеком будущем может стать голосовая аутентификация и признаки тому очевидны. Значительное количество разработок в этой сфере имеется уже сегодня, проекты внедрения подобных механизмов управления/контроля нашли место в ряде крупных банков РФ.

В качестве примера практического применения систем голосовой биометрической аутентификации, можно указать аутентификацию по ключевой фразе, применяемую в ряде колл-центров, аудио-пароли для доступа к системам интернет-банкинга и т.п., подтверждение действий персонала при осуществлении важных операций доступа к информации, контроль физического доступа и присутствия в помещении.

Помимо технологий, связанных с использованием биометрических аутентификаторов, имеются также программно-аппаратные решения, такие как автономные ключи для генерации одноразовых паролей, считыватели RFID-меток, криптокалькуляторы, программные и аппаратные жетоны (токены), электронные ключи различных типов – Touch Memory и ключ/смарт-карта, а также биометрические идентификационные карты.

Все перечисленные в рамках статьи системы и методы многофакторной аутентификации, а помимо них еще и системы контроля и управления доступом (СКУД) могут интегрироваться, комбинироваться, отрабатываться поочерёдно и в комплексе. Отсюда можно сделать вывод: на рынке России существует достаточное количество предложений для усиления защиты информационных систем, как от внутренних, так и внешних вторжений. У компаний имеется возможность выбора, ограничиваемая лишь размером бюджета.

Методам защиты, основанным на методиках многофакторной аутентификации, сегодня доверяет большое число зарубежных компаний, среди которых организации хай-тека, финансового и страхового секторов рынка, крупные банковские учреждения и предприятия госсектора, независимые экспертные организации, исследовательские фирмы.

При этом, частные компании и организации в мире, в целом, не очень охотно распространяются о внедрении у себя технологических новинок в сфере безопасности и защиты информации, по вполне понятным причинам. Гораздо больше известно о проектах в государственном секторе – с 2006 года публично известны успешно реализованные технологические решения в государственных учреждениях Канады, Саудовской Аравии, Испании, Дании и ряда других стран.

Оцените статью
Мой сертификат
Добавить комментарий