Специалисты по информационной безопасности давно пришли к выводу, что пароли не обеспечивают должного уровня защиты от несанкционированного доступа. Для защиты от фишинга и подбора паролей разрабатываются специальные алгоритмы многофакторной аутентификации. Вместе с привычной парольной защитой используется второй фактор аутентификации – обычно это одноразовый код, высылаемый через SMS-службы либо по электронной почте или генерируемый специальными приложениями, в том числе на сайтах типа Mos.ru. Такие коды действуют или определенное время, или до момента ввода пользователем (или отправки/генерации нового кода), поэтому их кража бесполезна. Но поскольку человеку трудно запоминать и придумывать одноразовые пароли, то требуются дополнительные технологии, чтобы многофакторная аутентификация работала корректно.
Примечание. На сайте https://twofactorauth.org приведен список сайтов, поддерживающих двухфакторную аутентификацию.
Как следует из названия, при многофакторной аутентификации пользователь проходит два или более этапа «опознания», например для авторизации в системе. На одном из этапов может быть, как обычно, введен пароль (первый и наиболее уязвимый фактор), а на втором – ПИН-код, высланный в SMS-сообщении на зарегистрированный пользователем номер телефона. В этом случае злоумышленнику недостаточно украсть пароль, ему также необходимо получить доступ к устройству, используемому владельцем для дополнительной аутентификации, например смартфону, либо перехватить трафик.
Примечание. ПИН-код может не только отправляться в SMS-сообщении, но и проговариваться роботом при голосовом вызове. Кроме того, ПИН-кодом могут служить последние несколько цифр в номере телефона, с которого пользователь автоматически получает вызов при аутентификации.
Данный способ хоть и повышает уровень защиты, но все-таки небезопасен, так как злоумышленник при наличии достаточного количества ресурсов может дублировать SIM-карту или перехватить сотовый трафик, а вместе с ним и ПИН-код (об этом мы поговорим в соответствующих главах). Кроме того, пользователю приходится указывать на различных сайтах номер своего телефона, тем самым подвергая риску свои персональные данные. Может произойти их утечка, кража, они могут быть собраны коммерческими или государственными организациями, к примеру, с целью их обработки, идентификации владельца или рассылки таргетированной рекламы. А если вы проходите аутентификацию и получаете коды на одном и том же устройстве (например, смартфоне), то в случае кражи устройства двухфакторный метод вообще теряет смысл.
Анонимность и многофакторная аутентификация
К примеру, если на сайте социальной сети вы пользуетесь псевдонимом, включение двухфакторной аутентификации для доступа к сайту вынудит вас раскрыть номер своего мобильного телефона, после чего с помощью оператора сотовой связи можно будет установить вашу личность и связать с ней ваш псевдоним. Если для вас важно сохранять анонимность на определенном сервисе, следует либо пользоваться анонимным мобильным номером (при доступе к которому опять же не светить свой IP-адрес), либо отказаться от многофакторной аутентификации вовсе, что опять же снижает уровень безопасности.
Очевидны неудобства такой системы для пользователя: SMS-сообщение или телефонный вызов он сможет получить, только если смартфон находится в зоне действия сотовой сети. Особенно серьезные трудности могут возникнуть, если пользователь отправится за границу и по организационным или финансовым причинам не сможет использовать ту же SIM-карту, что и в стране постоянного проживания. Так, некоторые сервисы вынуждают клиентов применять исключительно аутентификацию (вторую) с помощью SMS-сообщений, хотя для получения одноразовых кодов можно использовать, например, PUSH-уведомления. Ко всему прочему ПИН-коды могут приходить со значительной задержкой, что замедляет или даже делает невозможной аутентификацию пользователя. К примеру, такая ситуация сложилась на сайте «Госуслуги», после того как в период пандемии COVID-19 правительство РФ ввело в действие меры поддержки населения. На этом ресурсе на ввод ПИН-кода отводится ограниченное количество времени, после чего код становится недействителен. Из-за резкого наплыва посетителей коды отправлялись на устройства пользователей со значительной задержкой, и посетители ресурса не могли аутентифицироваться.
Впрочем, на такой случай крупные ресурсы вроде Google и Facebook предлагают список одноразовых ключей, которые можно распечатать и хранить в безопасном месте. Это не слишком удобно, а также снижает уровень защиты системы, если распечатку носить с собой.
Учитывая небезопасность аутентификации посредством SMS-технологии, Национальный институт стандартов и технологий США (NIST) запретил использовать данный способ в государственных структурах, объявив его «устаревшим»[65]. По словам сотрудников института, хакеры могут при соучастии оператора сотовой связи перевыпустить SIM-карту либо взломать устаревший и уязвимый набор протоколов ОКС-7[66], используемый операторами и телефонными компаниями по всему миру. Поэтому было решено запретить использование дополнительного фактора аутентификации с помощью SMS-сообщений и заменить ее более безопасными методами.
Дополнительный (одноразовый) код может генерироваться специальным приложением-аутентификатором (типа Google Authenticator или Microsoft Authentificator), не требующим подключения к интернету. Приложение генерирует на основе первичного ключа (обычно в виде QR-кода) одноразовый код с ограниченным сроком действия (30–60 секунд). По истечении времени создается новый код. Если злоумышленнику и удастся перехватить один или даже несколько кодов, невозможно предугадать, какой код будет следующим.
Более универсальное и комфортное решение – разработка Authy (https://authy.com). Эта программа может не только генерировать одноразовые коды, но и умеет сохранять полученные сертификаты в облачном хранилище и позволяет копировать их на другие устройства (смартфоны, компьютеры, планшеты и даже «умные» часы). Если одно из устройств будет похищено, вы не потеряете контроль над аккаунтом. Аутентификация в приложении требует ввода ПИН-кода, а ключ, находящийся на скомпрометированном устройстве, можно отозвать[67].
К недостаткам приложений-аутентификаторов можно отнести риск того, что если злоумышленник получит доступ к первичному ключу или взломает сервер, то, зная алгоритмы вычислений, он сможет генерировать пароли самостоятельно. К тому же не всегда можно быть уверенным, что данные из такого приложения не передаются на удаленный сервер, если девайс заражен вредоносным граббером, копирующим изображение на экране (проблема решается запуском аутентификатора на устройстве без доступа к интернету). И, как и в случае с SMS-сообщениями, если для аутентификации и генерации кодов используется одно и то же устройство, защита перестает быть двухфакторной.
Кроме того, если приложение-аутентификатор недоступно, многие сервисы предлагают альтернативные варианты передачи одноразового кода: звонок автоинформатора, отправку кода с помощью SMS-сообщения или даже электронной почты. В таком случае преимущества приложения-аутентификатора теряют весь смысл. Если приложение не работает, а код отправляется в SMS-сообщении, то злоумышленник может получить доступ к телефону жертвы, к примеру, клонировав SIM-карту.
КЕЙС В 2018–2020 гг. в Казани были отмечены многочисленные случаи мошенничества: у абонентов оператора сотовой связи «Мегафон» было похищено свыше 200 000 рублей. Преступления совершались с использованием виртуальных дубликатов SIM-карт и поддельной базовой станции. Проблема заключается в уязвимостях системы безопасности оператора; кроме того, услуга «Мобильные платежи» подключается без согласия абонента[68],[69],[70].
Данный способ объединяет два предыдущих: вы не вводите одноразовый код, а подтверждаете вход с вашего мобильного устройства с установленным приложением службы, к которой вы получаете доступ. На устройстве хранится приватный ключ, который проверяется при каждом входе. Недостатки те же, что и у приложений-аутентификаторов.
Токены безопасности
Для достижения максимального уровня защиты вместо программных инструментов аутентификации применяются аппаратные – специальные магнитные карты или USB-токены (похожи на flash-накопители без возможности записи данных пользователем). В этом случае помимо пароля преступнику необходим физический доступ к токену. Внутри такого токена находится специальный процессор, генерирующий криптографические ключи. Аутентификация осуществляется автоматически при подключении токена к устройству. Существуют версии токенов как для компьютеров, так и для мобильных устройств, например YubiKey (https://thekernel.com/ru/compare-yubikeys/).
В качестве примера можно рассмотреть систему аутентификации SecurID американской компании RSA. При запросе доступа к системе (сайту или устройству) пользователь вводит свой логин и 4-цифровой ПИН-код (который он помнит), а также токен-код, генерируемый аппаратным устройством (или программным токеном-приложением) и меняющийся каждую минуту (отображается на экране устройства и содержит 6 цифр). Введенная информация в зашифрованном виде передается на сервер, где сравнивается с записями в базе данных всех пользователей. При всей кажущейся безопасности система тем не менее подвержена атакам типа MiTM (Man in the middle – «человек посередине»): злоумышленник может заблокировать для пользователя доступ и подключиться к серверу, пока не будет сгенерирован следующий токен-пароль.
Другой ее недостаток в том, что аппаратные токены поддерживаются не всеми сервисами, а установка и настройка программного обеспечения может представлять сложность для неопытного пользователя. Кроме того, такие устройства недолговечны, часто теряются и неудобны из-за необходимости замены батареек, а в случае кражи токена пользователь должен незамедлительно заблокировать доступ в систему или сам токен (если такая услуга предусмотрена разработчиком), пока злоумышленник не успел воспользоваться им.
Примечание. В своем докладе на конференции Usenix Enigma 2018 сотрудник компании Google Гжегож Милка рассказал, что, по его данным, менее 10 % активных учетных записей Google были защищены двухфакторной аутентификацией[71], т. е. 9 из 10 человек получали доступ к своим аккаунтам только с помощью пароля.
Имплантаты
Самый очевидный недостаток аппаратного устройства многофакторной аутентификации заключается в том, что его необходимо всегда иметь при себе. Человек может потерять такое устройство, и ему придется приобретать и настраивать новое, а также восстанавливать доступ в систему. Неудобства и дополнительные финансовые затраты могут заставить пользователя отказаться от многофакторной аутентификации, и тогда его данные будут хуже защищены.
Еще один вариант аппаратного устройства для аутентификации, который можно рассматривать скорее как исключительное решение для гиков, – подкожный имплантат. Это беспроводной ключ, работающий через интерфейс Bluetooth или NFC. Для подтверждения личности достаточно приложить палец, руку или другую часть тела, куда вживлен имплантат, к устройству для считывания ключа, например смартфону. Имплантаты хранят небольшое количество информации и позволяют взаимодействовать с электронными устройствами: смартфонами, планшетами, турникетами в транспорте, терминалами для оплаты и прочими IoT-девайсами. С помощью имплантата можно, к примеру, открывать двери с электронным замком, ключи к которым хранятся в памяти имплантата. При всем кажущемся удобстве имплантаты имеют и отрицательные стороны, например довольно болезненный процесс вживления и проблему замены батареек. Кроме того, если злоумышленник перехватит данные и клонирует имплантат, его владельцу понадобится вновь терпеть боль из-за замены чипа[72].
Еще один вариант второго фактора аутентификации
Интересный вариант второго фактора аутентификации предложили исследователи из Международного университета Флориды и компании Bloomberg L.P. Для его использования понадобится смартфон и специальное приложение Pixie: пользователь фотографирует на камеру смартфона любой повседневно используемый предмет, к примеру свои наручные часы; данное изображение-токен сохраняется в базе данных, и при последующем входе в систему пользователю нужно подтвердить свою личность повторной съемкой часов. Изображение сравнивается с хранящимся в базе данных, в случае совпадения пользователь допускается в систему. Преимущество метода – удобство и относительная безопасность (никто, кроме пользователя, не знает, какой предмет используется в качестве второго фактора аутентификации)[73]. В то же время в большинстве случаев пользователь будет фотографировать существенно ограниченное количество предметов, часто присутствующих вокруг него, и такие предметы может сымитировать преступник. В самом деле, не будет же пользователь таскать с собой домашний будильник или ехать к одному и тому же магазину (фотографировать вывеску), чтобы вне дома получить доступ к системе?
Как правило, обычному пользователю достаточно воспользоваться двухфакторной аутентификацией с помощью специальных приложений, обеспечив тем самым надежный уровень защиты своих персональных данных. Ввод кода из приложения-аутентификатора чаще всего требуется однократно – при доступе к системе (сайту) с нового устройства (либо после смены пароля в настройках аккаунта). Поэтому в случае кражи устройства или получения сообщения о подозрительной активности в аккаунте следует завершить сеансы данного приложения (например, социальной сети) на всех устройствах и сменить пароль. Если вы получили письмо, где сказано, что ваш аккаунт заблокирован за подозрительную активность или нарушение правил сообщества/соцсети, и содержатся ссылки «для восстановления доступа к учетной записи», ни в коем случае не переходите по ним. Такое письмо может быть фишинговым![74]
ВАЖНО! Если вы не пытались войти в систему с поддержкой двухфакторной аутентификации, а вам неожиданно приходит SMS-сообщение или иное уведомление с одноразовым кодом, – самое время задуматься о смене пароля к своему аккаунту. Возможно, его пытаются взломать.
Если нужно защитить более важные данные, составляющие, к примеру, коммерческую или государственную тайну, необходимо использовать аппаратные токены с одноразовыми паролями и прочими средствами защиты, а еще надежнее хранить такие данные исключительно на локальных устройствах без доступа к глобальным и локальным сетям, соблюдая концепцию «контролируемых зон», а также тщательно фильтровать пользователей и настраивать уровни доступа.
О проекте
О подписке