Привет, Хабр! Это команда Eppie. Подробнее о нашем проекте бессерверной электронной почты можно почитать в этом посте.
Мы, параллельно с созданием собственного децентрализованного протокола, интегрируем в клиентское приложение Eppie популярные классические сервисы. Осенью мы познакомились с основателем Proton Энди Йеном и договорились добавить в Eppie возможность подключения почтового ящика ProtonMail. Насколько нам известно, ни один нативный десктопный клиент не умеет авторизоваться на сервере Proton — Eppie будет первым.
В Proton реализована собственная версия протокола SRP (Secure Remote Password). Наш криптограф портировал библиотеку на C#. Если хотите посмотреть код, вот ссылка на репозиторий в GitHub.
SRP — пример «доказательства с нулевым разглашением». Смысл процедуры в том, чтобы доказать факт владения определенной информацией, не раскрывая при этом саму информацию. В частности, аутентификация по SRP позволяет пользователю ProtonMail доказать, что он знает пароль, не передавая пароль серверу. Сейчас расскажем, как это устроено изнутри.
В статье будет несколько несложных формул, но текст не рассчитан на математиков и специалистов по безопасности. Здесь будет неформальный рассказ с некоторыми упрощениями для тех, кто хочет на уровне интуиции понять как устроены современные криптографические протоколы.