Многофакторная аутентификация (МФА) - это механизм безопасности, который требует от вас дополнительных действий, помимо ввода логина (или электронной почты) и пароля. Самым распространенным методом являются временные коды, которые вы можете получить по СМС или в приложении.
Обычно, если хакеру (или злоумышленнику) удается узнать ваш пароль, то он получает доступ к учетной записи, которую этот пароль защищал. Учетная запись с МФА вынуждает хакера иметь как пароль (то, что вы знаете), так и устройство, которым вы владеете (то, что у вас есть), например, ваш телефон.
Методы MFA различаются по степени безопасности, но в их основе лежит принцип, что чем сложнее злоумышленнику получить доступ к вашему методу MFA, тем лучше. Примеры методов MFA (от самого слабого к самому сильному) включают СМС, коды по электронной почте, пуш-уведомления из приложений, TOTP, Yubico OTP и FIDO.
Сравнение методов МФА¶
МФА по СМС или электронной почте¶
Получение OTP-кодов по СМС или электронной почте - один из самых слабых способов защиты учетных записей с помощью MFA. Получение кода по электронной почте или СМС невилирует принцип "что-то, что у вас есть", поскольку существует множество способов, которыми хакер может завладеть вашим телефонным номером или получить доступ к вашей электронной почте, не имея физического доступа ни к одному из ваших устройств. Если злоумышленник получит доступ к вашей электронной почте, то он сможет использовать этот доступ как для сброса пароля, так и для получения кода аутентификации, что даст ему полный доступ к вашей учетной записи.
Пуш-уведомления¶
MFA через пуш-уведомление представляет собой сообщение, отправленное в приложении на вашем телефоне с просьбой подтвердить новый вход в учетную запись. Этот метод намного лучше, чем СМС или электронная почта, поскольку злоумышленник, как правило, не сможет получить эти пуш-уведомления, не имея уже зарегистрированного устройства. Это означает, что ему придется сначала скомпрометировать одно из ваших других устройств.
Мы все совершаем ошибки, поэтому существует риск, что вы можете случайно одобрить вход в систему. Авторизация входа с помощью пуш-уведомлений обычно отправляется на все ваши устройства одновременно, что расширяет доступность кодов МФА, если у вас много устройств.
Безопасность МФА с пуш-уведомлениями зависит как от качества приложения, серверного компонента, так и от доверия к разработчику, который его создает. Установка приложений также может потребовать от вас выдачу инвазивных разрешений, предоставляющих доступ к другим данным на вашем устройстве. Некоторые приложения также требуют наличие отдельного приложения для каждого сервиса, для открытия которого может не требоваться пароль, в отличие от хорошего приложения генератора TOTP.
Одноразовый пароль основанный на времени (TOTP)¶
TOTP - одна из наиболее распространенных форм MFA. При установке TOTP обычно требуется отсканировать QR-код, который содержит "общий секрет" с сервисом, который вы собираетесь использовать. Общий секрет хранится внутри данных приложения аутентификатора и иногда защищен паролем.
Код, ограниченный по времени, вычисляется из общего секрета и текущего времени. Поскольку код действителен только в течение короткого времени, без доступа к общему секрету злоумышленник не может генерировать новые коды.
If you have a hardware security key with TOTP support (such as a YubiKey with Yubico Authenticator), we recommend that you store your "shared secrets" on the hardware. Такое оборудование, как YubiKey, было разработано с целью сделать "общий секрет" трудноизвлекаемым и копируемым. YubiKey также не подключен к интернету, в отличие от телефона с приложением TOTP.
В отличие от WebAuthn, TOTP не обеспечивает защиту от фишинга или повторных атак. Если злоумышленник получает от вас действующий код, он может использовать его сколько угодно раз, пока не истечет срок его действия (обычно 60 секунд).
Злоумышленник может создать сайт, имитирующий официальный сервис, чтобы обманом заставить вас сообщить свое имя пользователя, пароль и текущий код TOTP. Если злоумышленник затем использует эти записанные учетные данные, он сможет войти в реальный сервис и завладеть учетной записью.
Although not perfect, TOTP is secure enough for most people, and when hardware security keys are not supported authenticator apps are still a good option.
Аппаратные ключи безопасности¶
YubiKey хранит данные на устойчивом к взлому твердотельном чипе, к которому, невозможно получить доступ, без криминалистической лаборатории и дорогостоящего процесса.
Как правило, такие ключи являются многофункциональными и предоставляют несколько способов аутентификации. Ниже приведены наиболее распространенные из них.
Yubico OTP¶
Yubico OTP - это протокол аутентификации, обычно реализуемый в аппаратных ключах безопасности. Когда вы решите использовать Yubico OTP, ключ будет генерировать публичный ID, личный ID и секретный ключ, который затем загружается на сервер Yubico OTP.
При входе на сайт достаточно просто физически прикоснуться к ключу безопасности. Ключ безопасности будет эмулировать клавиатуру и печатать одноразовый пароль в поле пароля.
Затем служба передаст одноразовый пароль на сервер Yubico OTP для проверки. Счетчик увеличивается как на ключе, так и на сервере проверки Yubico. OTP можно использовать только один раз, когда происходит успешная аутентификация, счетчик увеличивается, что предотвращает повторное использование OTP. Yubico предоставляет подробную документацию о процессе.
Существуют некоторые преимущества и недостатки использования Yubico OTP по сравнению с TOTP.
Сервер проверки Yubico - это облачная служба, и вы доверяете компании Yubico в том, что она надежно хранит данные и не занимается их профилированием. Публичный идентификатор, связанный с Yubico OTP, используется повторно на каждом сайте и может стать еще одной возможностью для третьих лиц составить ваш профиль. Как и TOTP, Yubico OTP не обеспечивает защиту от фишинга.
Если ваша модель угроз требует наличия разных идентификаторов на разных сайтах, не используйте Yubico OTP с одним и тем же аппаратным ключом безопасности на этих сайтах, поскольку публичный идентификатор уникален для каждого ключа безопасности.
FIDO (Fast IDentity Online)¶
FIDO включает в себя ряд стандартов, сначала был U2F, а затем FIDO2, который включает в себя веб-стандарт WebAuthn.
U2F и FIDO2 относятся к Client to Authenticator Protocol, который представляет собой протокол между ключом безопасности и компьютером, например ноутбуком или телефоном. Он дополняет WebAuthn, который является компонентом, используемым для аутентификации на сайте ("Relying Party"), на котором вы пытаетесь залогиниться.
WebAuthn - это наиболее безопасная и приватная форма двух-факторной аутентификации. Хотя процесс аутентификации похож на Yubico OTP, ключ не показывает одноразовый пароль и не проверяет его на стороннем сервере. Вместо этого он использует криптографию с открытым ключом для аутентификации.
Когда вы создаете учетную запись, открытый ключ отправляется в службу, затем, когда вы входите в систему, служба потребует от вас "подписать" некоторые данные вашим закрытым ключом. Преимуществом этого является то, что служба никогда не хранит данные пароля, поэтому злоумышленнику нечего украсть.
This presentation discusses the history of password authentication, the pitfalls (such as password reuse), and the standards for FIDO2 and WebAuthn:
FIDO2 и WebAuthn обладают превосходными свойствами безопасности и конфиденциальности по сравнению с любыми методами МФА.
Обычно для веб-сервисов он используется вместе с WebAuthn, который является частью рекомендаций W3C. Он использует аутентификацию с открытым ключом и является более безопасным, чем общие секреты, используемые в методах Yubico OTP и TOTP, поскольку включает имя происхождения (обычно доменное имя) при аутентификации. Аттестация предоставляется для защиты от фишинговых атак, так как помогает определить, что вы используете оригинальный сервис, а не поддельную копию.
В отличие от Yubico OTP, WebAuthn не использует публичный идентификатор, поэтому ключ не идентифицировать на разных сайтах. Он также не использует сторонние облачные серверы для аутентификации. Все коммуникации осуществляются между ключом и веб-сайтом, на который вы заходите. FIDO также использует счетчик, который увеличивается при использовании, чтобы предотвратить повторное использование сеанса и клонирование ключей.
Если сайт или сервис поддерживает WebAuthn для аутентификации, настоятельно рекомендуется использовать его вместо любой другой формы МФА.
Общие рекомендации¶
У нас есть следующие общие рекомендации:
Какой метод мне выбрать?¶
При настройке метода МФА следует помнить, что она настолько безопасна, насколько безопасен её самый слабый метод, который вы используете. Это означает, что важно использовать только лучший из доступных методов МФА. Например, если вы уже используете TOTP, вам следует отключить МФА по электронной почте и СМС. Если вы уже используете FIDO2/WebAuthn, вы не должны использовать Yubico OTP или TOTP на своем аккаунте.
Резервное копирование¶
Вы всегда должны иметь резервные копии для своего метода МФА. Аппаратные ключи безопасности могут потеряться, быть украдены или просто перестать работать со временем. Рекомендуется иметь пару аппаратных ключей безопасности, которые дублируют друг друга, вместо одного.
When using TOTP with an authenticator app, be sure to back up your recovery keys or the app itself, or copy the "shared secrets" to another instance of the app on a different phone or to an encrypted container (e.g. VeraCrypt).
Первоначальная настройка¶
При покупке ключа безопасности важно изменить учетные данные по умолчанию, установить защиту паролем для ключа и включить подтверждение касанием, если ключ поддерживает это. Такие продукты, как YubiKey, имеют несколько интерфейсов с отдельными учетными данными для каждого из них, поэтому вам следует изучить каждый интерфейс и настроить защиту.
Электронная почта и СМС¶
Если вам приходится использовать электронную почту для МФА, убедитесь, что сама учетная запись электронной почты защищена с помощью надлежащего метода МФА.
Если вы используете СМС для МФА, используйте оператора связи, который не будет переключать ваш номер телефона на новую SIM-карту без доступа к учетной записи, или используйте выделенный VoIP-номер от провайдера с аналогичной безопасностью, чтобы избежать подмены SIM-карты.
Инструменты МФА, которые мы рекомендуем
Больше мест для установки МФА¶
Многофакторная аутентификация может использоваться не только для защиты логинов на сайте, но и для защиты локальных логинов, ключей SSH и даже баз данных паролей.
macOS¶
В macOS есть нативная поддержка аутентификации с помощью смарт-карт (PIV). Если у вас есть смарт-карта или аппаратный ключ безопасности, поддерживающий интерфейс PIV (например YubiKey), мы рекомендуем вам следовать документации производителя смарт-карты/аппаратного ключа безопасности и настроить двухфакторную аутентификацию на компьютере с macOS.
Yubico have a guide Using Your YubiKey as a Smart Card in macOS which can help you set up your YubiKey on macOS.
После того как смарт-карта/ключ безопасности настроены, рекомендуется выполнить следующую команду в командной строке:
sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutoLogin -bool YES
Эта команда не позволит злоумышленнику обойти МФА при загрузке компьютера.
Linux¶
Предупреждение
Если имя хоста вашей системы изменится (например, из-за DHCP), вы не сможете залогиниться. Очень важно, чтобы вы установили правильное имя хоста для своего компьютера, прежде чем следовать этому руководству.
Модуль pam_u2f
в Linux может обеспечить двухфакторную аутентификацию для входа в систему в большинстве популярных дистрибутивов Linux. Если у вас есть аппаратный ключ безопасности, поддерживающий U2F, вы можете настроить МФА для входа в систему. Yubico has a guide Ubuntu Linux Login Guide - U2F which should work on any distribution. Команды менеджера пакетов - например, apt-get
- и названия пакетов могут отличаться. Данное руководство не применимо к Qubes OS.
Qubes OS¶
В Qubes OS есть поддержка аутентификации Challenge-Response с помощью ключей YubiKey. If you have a YubiKey with Challenge-Response authentication support, take a look at the Qubes OS YubiKey documentation if you want to set up MFA on Qubes OS.
SSH¶
Аппаратные ключи безопасности¶
МФА с SSH может быть настроена с использованием нескольких различных методов аутентификации, которые популярны при использовании аппаратных ключей безопасности. We recommend that you check out Yubico's documentation on how to set this up.
TOTP¶
МФА с SSH также можно настроить с помощью TOTP. DigitalOcean has provided a tutorial How To Set Up Multi-Factor Authentication for SSH on Ubuntu 20.04. Большинство вещей должны быть одинаковыми независимо от дистрибутива, однако команды менеджера пакетов - например, apt-get
- и названия пакетов могут отличаться.
KeePass (и KeePassXC)¶
Базы данных KeePass и KeePassXC могут быть защищены с помощью Challenge-Response или HOTP в качестве второго фактора аутентификации. Yubico has provided a document for KeePass Using Your YubiKey with KeePass and there is also one on the KeePassXC website.