Является ли совместное использование одного и того же TOTP между несколькими серверами менее безопасным?

Существуют ли ("несущественные") последствия для безопасности при использовании одного и того же секрета OTP на нескольких серверах?

В моей сети я использую gitlab-ce, nextcloud и пароль самообслуживания LTB среди нескольких других сервисов. GL и NC поддерживают 2FA через TOTP, но как отдельные надстройки, а не через центральную аутентификацию (такую ​​как LDAP) или каким-либо другим общим способом.

Я работаю над PR для SSP, чтобы включить 2FA для смены пароля, но потом мне интересно, возможно ли, чтобы GL использовал тот же секретный пароль OTP, хранящийся в LDAP. Я хочу предложить поддержать это GL, но только если это не ослабляет систему.

Последствия отсутствия централизации невелики: каждое приложение / сервер будет хранить свои собственные секреты 2FA, поэтому пользователь должен управлять ими всеми индивидуально. В отличие от паролей, которые технически не требуют менеджера паролей, я не знаю никого, кто мог бы запомнить их секрет OTP и генерировать коды в своей голове, поэтому пользователи вынуждены использовать управляющее приложение (такое как Google Authenticator или FreeOTP Authenticator). Сокращение списка из нескольких секретов до одного - в основном просто удобство.

Аналогично, помимо удобства, есть ли известные преимущества для централизации секретного хранилища OTP?

1 ответ

Решение

Проблема заключается в том, что, как указал @HBruijn, значение TOTP, которое вы использовали для входа в один сервис, может быть использовано злоумышленником для входа в другой сервис. И это в течение промежутков времени от двух минут. Хотя ваш временной шаг может быть только 30 секунд, RFC указывает, что проверяющая служба должна искать значение OTP назад и вперед во времени. Это рекомендуется из-за дрейфа часов. https://tools.ietf.org/html/rfc6238

Другой момент заключается в том, что вся ваша система защищена настолько же, насколько и самая недельная часть. Если какая-либо из систем / баз данных теряет секрет OTP, все системы подвергаются риску.

Закончив свой вопрос, вы должны подумать об использовании централизованной системы, которая хранит секреты и выполняет проверку. Таким образом, нет возможности воспроизвести атаки, и вам нужно только защитить секрет OTP в одном месте.

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

Проблема в том, что все подключенные приложения должны быть подключены, то есть каждое приложение должно иметь возможность общаться с privacyIDEA. Для этого приложение должно быть в состоянии действовать как клиент RADIUS или общаться с REST API аутентификации. Есть несколько плагинов для различных приложений, таких как OTRS, ownCloud, Wordpress, dokuwiki, Typo3...

Другие вопросы по тегам