Объединение SSO с E2EE

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

Недавно также поступил запрос на внедрение SSO. Из этого кажется, что реализация SSO, а также E2EE без необходимости в настольном или мобильном приложении возможна, но это единственное упоминание, которое я нашел.

Есть ли способ получить секрет от поставщика единого входа, уникальный для каждого пользователя и безопасный для шифрования пользовательских данных? Или это вообще не очень хорошая идея?

Я просмотрел документы AWS Cognito и Auth0, но не нашел ничего полезного. В настоящее время мы реализуем некоторую реализацию в AWS Cognito, но мы не против перейти на другого поставщика.

1 ответ

Основной принцип E2EE заключается в том, что поставщики услуг не знают о секретном ключе пользователя. Это означает, что секретный ключ, каким бы он ни был, должен храниться на стороне пользователя.

С другой стороны, основной принцип SSO заключается в том, что поставщики услуг не запрашивают пароли пользователей, как правило, скоропортящиеся токены, которые пользователи получают с сервера идентификации.

Таким образом, на первый взгляд два принципа действительно кажутся несовместимыми, если в механизме шифрования используется пароль пользователя.

Этот блог-пост от Дэйва Бейкера объясняет, как матричный протокол справляется с этими трудностями и достигает реализации E2EE и SSO и нескольких устройств.
Спойлер: от пользователей требуется дополнительная работа, так как им необходимо ввести кодовую фразу один раз на каждом используемом ими устройстве, а собеседникам также необходимо подтвердить личность друг друга хотя бы один раз внеполосным образом.

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