Повышение уровня безопасности с помощью Argon2.

Argon2 - самая надежная функция хеширования для защиты паролей и ключей шифрования.

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


Как вы знаете, мы планируем стать первым постквантовым провайдером защищенной электронной почты и облачных сервисов, и мы очень рады сообщить, что достигли первой вехи в этом проекте!

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

Почему мы переходим на Argon2?

Когда Tutanota только появилась, bcrypt был лучшим способом превращения пароля в криптографический ключ. Он превращает ваш пароль в 192 случайных бита, которые мы можем использовать в криптографических целях. Это гораздо больше энтропии, чем у большинства паролей, так что, конечно, этого достаточно, верно?

Что ж, в рамках обеспечения квантовой безопасности мы хотим перевести все наши AES-ключи на 256-битные, поскольку 128-битные ключи перестанут быть безопасными, как только появится квантовый компьютер, способный выполнять алгоритм Гровера. Но математически подкованные люди заметят, что 256 больше 192.

** Что же делать?

Мы можем растянуть эти 192 бита, например, хэшировав их с помощью SHA-256, и в большинстве случаев это будет нормально.

Но зачем это делать, если можно сделать лучше?

Появился Argon2

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

Argon2 обладает рядом преимуществ по сравнению с bcrypt, таких как твердость памяти и устойчивость к побочным каналам.

Можно ли использовать Argon2 во всех клиентах?

После того как мы определились с алгоритмом, который хотим использовать, перед нами встала проблема, как реально использовать его во всех поддерживаемых нами платформах: Android, iOS, настольные клиенты и веб. Основная проблема заключается в том, что не существует JavaScript-реализации, или, по крайней мере, ни одной, которую мы бы рассматривали для использования. Однако существует ряд JavaScript-биндингов для эталонной реализации на языке C, скомпилированных в WebAssembly.

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

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

Почему мы используем WebAssembly?

WebAssembly уже давно поддерживается всеми основными браузерами. Именно поэтому мы остановили свой выбор на этом решении, поскольку оно дало наилучшие результаты для всех пользователей Tutanota с точки зрения безопасности и скорости.

Небольшая загвоздка заключается в том, что, несмотря на поддержку WebAssembly всеми основными браузерами, в некоторых ситуациях, например, в режиме блокировки в iOS, она все же недоступна.

Мы рассматривали возможность полностью обойти это требование, скомпилировав код на Си в чистый JavaScript (asm.js), но это сделало бы приложение слишком медленным для практического использования.

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

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

Что делают другие провайдеры?

В отличие от таких провайдеров, как Google или Outlook, мы используем ваш пароль не только для аутентификации, но и для генерации ключа, который открывает все ваши зашифрованные данные, поэтому нам действительно нужна функция деривации ключа на основе пароля, а не функция хэширования пароля или протокол аутентификации на основе пароля.

По этому требованию, как уже было сказано выше, Argon2 значительно превосходит bcrypt и делает ваши зашифрованные данные еще более защищенными.

На сегодняшний день ни один из наших конкурентов не использует Argon2, поэтому, перейдя на Argon2, мы еще раз доказываем, что являемся самым защищенным поставщиком услуг электронной почты.

Что необходимо сделать?

Большинству пользователей ничего не придется делать, они просто смогут воспользоваться преимуществами повышенной безопасности после ее внедрения.

Некоторые пользователи, использующие системы, в которых есть проблемы с WebAssembly, могут увидеть предупреждение.

Если вы получаете это предупреждение в браузере Tor, вы можете либо:

  • Перейти на стандартный уровень безопасности в браузере Tor, либо
  • Запустить другой браузер, используя запущенный экземпляр Tor в качестве прокси.

Если вы находитесь в режиме блокировки на iOS, мы настоятельно рекомендуем использовать приложение Tutanota, а не браузер. Если вы используете браузер в режиме блокировки на iOS, вам необходимо добавить исключение для веб-клиента Tutanota.

Если вы столкнулись с проблемами на Android, обновите WebView (это необходимо только при использовании браузера на Android).

Обязательно используйте один из поддерживаемых браузеров или настольный клиент Tutanota.

Мы рады, что можем повысить уровень вашей безопасности, перейдя с bcrypt на Argon2!