Есть ли («немаловажные») последствия для безопасности использования одного и того же секрета OTP на нескольких серверах?
В моей сети я бегу gitlab-ce, nextcloud, и Пароль самообслуживания LTB среди нескольких других услуг. GL и NC поддерживают 2FA через TOTP, но как отдельные надстройки, а не через центральную аутентификацию (например, LDAP) или какой-либо другой общий путь.
Я работаю над PR для SSP, чтобы включить 2FA для смены пароля, но затем мне интересно, возможно ли, чтобы GL использовал тот же секрет OTP, сохраненный в LDAP. Я хочу предложить поддержать это GL, но только если это не ослабит систему.
Последствия отсутствия централизации невелики: каждое приложение / сервер будет хранить свои собственные секреты 2FA, поэтому пользователь должен управлять ими всеми индивидуально. В отличие от паролей, которые технически не требуют диспетчера паролей, я не знаю никого, кто мог бы запомнить свой OTP-секрет и генерировать коды в своей голове, поэтому пользователи вынуждены использовать управляющее приложение (например, Google Authenticator или FreeOTP Authenticator). Сокращение списка из нескольких секретов до одного - это просто удобство.
Точно так же, помимо удобства, есть ли известные преимущества централизации секретного хранилища OTP?
Проблема в том, что, как указал @HBruijn, значение TOTP, которое вы использовали для входа в одну службу, может использоваться злоумышленником для входа в другую службу. И это в пределах временного окна, может быть, от двух минут. Хотя ваш временной шаг может составлять всего 30 секунд, RFC указывает, что служба проверки должна искать значение OTP взад и вперед во времени. Это рекомендуется из-за дрейфа часов. https://tools.ietf.org/html/rfc6238#section-6
Другой момент заключается в том, что вся ваша система защищена ровно настолько, насколько она безопасна. Если какая-либо из систем / баз данных теряет секрет OTP, все системы скомпрометированы.
Закончив вопрос, вы должны подумать об использовании централизованной системы, которая хранит секреты и выполняет проверку. Таким образом, нет возможности атак повторного воспроизведения, и вам нужно только защитить секрет OTP в одном месте.
Вы можете взглянуть на конфиденциальность, что именно это и делает. Это система аутентификации, которая централизованно управляет устройствами аутентификации, такими как токены TOTP или приложения. Все приложения проходят аутентификацию в этой службе. (Отказ от ответственности: я основной разработчик privacyIDEA)
Проблема в том, что все подключенные приложения должны быть подключены, т.е. каждое приложение должно иметь возможность взаимодействовать с privacyIDEA. Для этого приложение должно работать как клиент RADIUS или разговаривать с аутентификация REST API. Есть несколько плагины для множества различных приложений как OTRS, ownCloud, Wordpress, dokuwiki, Typo3 ...