Вопрос про безопасность приложения

С ростом приложения возникла необходимость подумать о безопасности приложения. В документации не нашел полного описания всех возможных настроек модуля Auth. Что-то интуитивно понятно как работает, что не совсем и хотелось бы понять как этим пользоваться по полной. Знаю, что последняя версия модуля поддерживает передачу токена авторизации в зашифрованном виде, но как это можно использовать в приложении не понятно. Очень полезно было бы иметь какую-то информацию о возможных или предпринятых атаках на приложение. Также неплохо было бы получить информацию о настройке 2FA аутентификации. В общем, любая информация, которая поможет обезопасить приложение. Эту информацию, пожалуйста, разместите в вашей документации или в комьюнити в ветке How To.

Еще я думаю, что не будет лишним документация по вкладкам при настройке эндпоинта.

Лучшие практики:

  • Включите ECDSA подписи на всех эндпоинтах без исключения (не совместимо с мобильными пока, вы не сможете делать запросы из Postman или Swagger)
  • Включите шифрование на эндпоинте, где вы передаете чувствительные данные типа авторизации (не работает с мобильными, не работает с Postman и Swagger)
  • Каждый раз перед авторизацией генерируйте на клиенте сессионный ключ и передавайте его вместе с кредами на авторизацию. После такой авторизации каждый запрос будет иметь авторизационную подпись. (Пока не работает в мобилках, никогда не будет работать в Postman или любой сторонней системе)

В настройках каждого эндпоинта можно задать нужно ли ему проверять подтвержденный второй фактор или нет. Полезно когда вы частью продукта позволяете пользоваться до подтверждения и для “опасных операций” требуете пройти доп проверку.

1 Like

@OlegSotnikov не совсем понял, что такое ECDSA подписи и как их включить?
п.3 сделал, а как можно проверить, что все работает (касаемо п.3 - это в панели разработчика параметр x-auth-sign)?

Подписи на эндпоинтах (x-client-sign)

Проверка сессионных подписей работает следующим образом: если при авторизации был передан открытый ключ, то потом с каждым авторизованым запросом требуется подпись x-auth-sign. Проверить легко: авторизуйтесь в приложении, потом попытайтесь любым инструментом видоизменить запрос убравь x-auth-sign и проверить результат. Пример инструмента - Burp. Второй вариант проверки тоже самое, только с отключенными подписями на эндпоинтах - можно проверить реплизировав запрос в Postman или аналогичном туле.

1 Like