My Authors
Read all threads
Если вы желаете 2FA — не делайте SMS. Лучше сделайте поддержку двух технологий: TOTP (6-значные ключи) и FIDO/WebAuthn (аппаратные ключи).

Не забывайте про WebAuthn. TOTP тоже не очень безопасен.
Давайте начнём с терминологии.

Одноразовые пароли. Когда у вас есть программа или устройство, которое генерирует разные коды. Перехватив код нельзя понять какие коды будут идти дальше.

Такая штука защищает не только от перехвата, но и от плохих привычек пользователей с паролями
2FA (двухфакторная) — вы подтверждаете себя на сайте двумя вещами из трёх: знание (пароль), обладание предметом (аппаратным ключом с одноразовыми паролями), биометрия.

Каждый фактор требует разной атаки (цифровой взлом, кража) и сложно найти специалиста сразу в обоих областях.
SMS — самый плохой способ 2FA. За пару тысяч долларов можно сделать фейковую соту и перехватить пароль. Или получить смс через дырявые протоколы роуминга. А можно и просто с фотошопом паспорта прийти к оператору и заменить симку. Ну и гос-во имеет полный доступ
Гораздо лучше TOTP. Сайт говорит вам векретный код. Вы вбиваете его в приложение на телефоне и оно генерирует 6-значные коды.

Поскольку секретный код генерирует ваш сайт, то это решает популярные плохие привычки пользователей (отсутствие уникальных паролей).
Но TOTP часто не является 2FA. Люди часто сохраняют TOTP-секрет в менеджере паролей, где они хранят и сами пароли (то есть исчезает идея двух факторов). Ваш телефон могут взломать и перехватить как пароль, так и код.

TOTP будет 2FA только если секрет находится на отдельном ключе
Плюс, на практике, оказалось, что люди придумали плохие привычки и для TOTP.

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

Круто, что они задумываются об этом. Но правильное решение — записать одноразовые пароли и сохранить их куда-то надёжно дома.
У меня, например, есть секретная папка, в которой содержимое зашифровано. Кроме моего ню там хранятся и коды восстановления на случай утери 2FA-ключа (я дальше объясню почему я больше не пользуюсь TOTP-приложением для телефона).
Пара примеров, почему TOTP всё-таки не идельны:

Уже есть приложения под Андроид, которые воруют 2FA
zdnet.com/article/androi…

Всякий раз когда вы вызываете sudo npm install -g — любая npm-зависимость может перехватить ваш доступ к 1Password, где у многих лежат TOTP
Сейчас есть протокол лучше, чем TOTP — WebAuthn. У него много применений — но самое популярное 2FA через аппаратные ключи.

Ваш сайт вызывает API браузера, браузер показывает всплывающее окно, вы вставляете ключ и USB и сайт ваш впускает.
Плюсы WebAuthn 2FA:
1. Он сделан с рассчётом, чтобы пользователи не использовали его неправильно
2. Он может гарантировать, что это имено 2FA (то есть для взлома нельзя будет ваш хакнуть, нужно будет именно красть ключ)
3. UX проще — не надо вводить ключ.
Минус WebAuthn — нужно купить ключ. Я за 50$ купил YubiKey 5C. USB-C позволяет использовать его и с ноутбуком и с Андроидом. У них есть ключ и с USB-C/Lightning.

Сейчас я расскажу, как я его ежедневно использую.
Гитхаб и Гугл поддерживают WebAuthn, там я добавил мой ключ.

YubiKey может хранить и TOTP-коды. С помощью спецмального приложения для Линукса/Андроида я могу считать коды, но нельзя скопировать секрет.

Так же на ключе GPG-ключ цифровой подписи (но это не всем нужно).
Что вам нужно делать, как разработчику или продукт-менеджеру сайта.

Если у вас есть критические данные — добавьте опцию TOTP-кодов и WebAuthn. Это реально очень сильно увеличивает безопасность.

Если вы тимлид — купите всем ключи и перейдите на WebAuthn в почте/гитхабе.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Андрей Ситник

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!