Не бывает достаточной безопасности. С другой стороны, использование глючной или слабой защиты может дать вам шаткую иллюзию безопасности, в то время, как вы остаётесь уязвимым к разного рода угрозам.
Использование только паролей, в общем – плохая идея, мы выяснили это с тех пор, как появился Интернет. Мы осуществляем прогресс, двигаясь к миру без паролей, но в то же время, многие веб-сайты предлагают дополнительную защиту пользовательских аккаунтов с помощью Двух-Факторной Аутентификации (2FA).
В общем и целом, существует 2 типа такой аутентификации: Временный одноразовый пароль (TOTP) а также Универсальный Двух-Фактор (U2F). Вы можете быть уже знакомы с первым типом, поскольку он используется наиболее часто: во время логина, предлагается ввести одноразовый пароль, генерируемый вашим приложением на смартфоне, отдельным аппаратным устройством, или же присылаемый в СМС. Метод прост, но есть несколько простых способов, делающих его опасным.
Я видел предупреждения типа “мой телефон взломали” от трёх людей из Кремниевой Долины/Биткойн среды/венчурной тусни. Будьте на чеку, и включите 2FA.
Как работает TOTP?
Временный одноразовый пароль, в основном популяризованный приложением Google Authenticator, подтверждает вашу личность на основании общего секрета. Этот секрет дложен быть известен вам и вашему провайдеру.
Когда вы заходите на веб-cайт под своей учеткой, ваше устройство генерирует уникальный код, основываясь на общем секрете и текущем времени. Затем вам нужно вручную ввести этот код. Сервер генерирует точно такую-же штуку, основанную на том-же секрете, чтобы успешно сравнить и подтвердить запрос на авторизацию.
Обе стороны генерируют одинаковый хеш, из одинаковых исходных данных, делясь секретом в момент регистрации.
В чём неадекватность TOTP?
Метод весьма прост в использовании, однако, он не лишён нескольких уязвимостей и неудобств.
1. Вам необходимо вручную вводить код во время авторизации (логина)
2. Слишком громоздкий бэкап. Вам необходимо совершать много шагов, чтобы сделать бэкап секрета. Кроме того, хорошие сервисы обычно предоставляют резервные коды, вместо того, чтобы явным образом призывать сохранять секрет. Если вы потеряете ваш секрет, и логин вместе с резервным кодом, вам придётся выполнить весь процесс регистрации TOTP заново.
3. Коды бекапа высылаются через Интернет, что совершенно небезопасно.
4. У вас и провайдера один и тот же секрет. Если атакующий хакнет компанию и получит доступ и к базе паролей, и к базе секретов, он сможет проникать в любой аккаунт совершенно незаметно.
5. Секрет показывается простым текстом или QR-кодом. Он не может быть представлен в виде хеша. Это также означает, что скорее всего секрет хранится в виде текстового файла, на серверах провайдера.
6. Секрет может быть раскрыт во время регистрации, так как провайдеру необходимо выдать вам сгенерированный секрет. Используя TOTP, вам нужно верить в способность провайдеров защитить приватность секрета. Но можете ли вы верить?
Полная статья и продолжение на Crypto-newspaper.info