Двухфакторная аутентификация: зачем и как

Чтобы авторизоваться в своём аккаунте, в большинстве случаев нужно ввести логин и пароль. Как правило, логин похож на отображаемое имя пользователя, совпадает с ним, является адресом электронной почты или просто является не очень сложным. Пароль делают более устойчивым к перебору (угадыванию) и неочевидным для посторонних. Однако чем он сложнее, тем проще его забыть. Очень устойчивый пароль крайне трудно запомнить. Любой пароль, особенно сложный, люди склонны записывать или пересылать, из-за чего его могут украсть.

На этот случай придумана так называемая многофакторная аутентификация. «Факторами» в данном контексте являются способы доказать, что вы настоящий владелец аккаунта. Они делятся на знание (логина, пароля, ПИН-кода), свойство (голос, отпечаток пальца, сетчатка глаза) и владение (физический ключ). Знания, как видно из первого абзаца, может быть недостаточно для одновременно безопасной и удобной авторизации. Для считывания свойства нужны специальные аппараты и свойство нельзя передать в пользование другому человеку. Остаётся владение.

Владением могут быть, например, обычные ключи или магнитные карточки, правда, для входа в аккаунт на сайте их не применить. Владением может быть номер телефона, на который приходит одноразовый пароль. Но есть и другой метод, очень распространённый. Он на всех сайтах работает почти одинаково, не раскрывает никакой информации о вас сайту (в отличие от номера телефона) и будет описан на примере сайта HYDRA.

На электронное устройство (обычно это телефон) устанавливается приложение наподобие Google Authenticator. Параллельно на другом устройстве (например, на компьютере) или на этом же самом (на телефоне) пользователь авторизуется на сайте HYDRA (hydraruzxpnew4af.onion), вводя логин-пароль. Далее в настройках профиля находится пункт «Двухфакторная аутентификация». По нажатию сайт показывает QR-код и код из букв и цифр. В приложение на телефоне нужно ввести либо буквы-цифры, либо отсканировать QR-код. После этого в приложении появится строка, показывающая код из 6 цифр. Каждый 15 секунд код сменяется новым. Его нужно ввести на сайте, чтобы 2ФА была активирована. Теперь для входа на сайт нужно будет вводить не только логин-пароль, но и код из 6 цифр с экрана телефона. Его можно «размножить» на любое количество телефонов, в каждый из них вводя код из цифр и букв, показываемый сайтом в самом начале процесса. Он постоянный, и его обязательно нужно куда-то отдельно от телефона сохранить. Иначе, если телефон потерять / переустановить систему / как-то «снести» приложение с 6-тизначным кодом, доступ к аккаунту будет потерян (вам не откуда будет взять 6 цифр для входа). Также важно, чтобы время на телефоне с приложением было точным до секунд, иначе коды будут показываться слишком рано или поздно относительно их актуальности для сайта, куда их нужно вводить. На Гидре это может привести к автобану аккаунта после нескольких неправильных вводов кода, как мера против перебора кодов злоумышленниками.

Этот метод аутентификации имеет свои ограничения по устойчивости против кибератак. Возможен перехват кода методом man-in-the-middle при его передаче через незашифрованное (или слабозашифрованное) соединение, например, через незапароленную точку доступа Wi-Fi. Если ввести код на фишинговом сайте, перехватчики могут за несколько секунд успеть повторно ввести этот же код на сайт уже для отключения 2ФА от вашего аккаунта, после чего они вольны делать с аккаунтом всё, что им угодно: продать, вывести с него деньги или использовать для реализации мошеннических схем.