Расскажем, как в Carrot Quest устроена работа с паролями участников рабочего пространства: как пароль задаётся, кто и как может его изменить, как восстановить доступ и какими механизмами защищены пароли.
Как задаётся пароль?
Пароль создаётся участником при регистрации или при принятии приглашения в рабочее пространство. Минимальная длина пароля — 6 символов (максимальная — 128).
Пароль задаёт сам участник; администраторы и другие сотрудники проекта не имеют доступа к паролям в открытом виде.
После заполнения формы регистрации на указанную вами почту поступит письмо с адреса no-reply@carrot-mail.io с указанными данными для авторизации (логин и пароль).

Кто и как может изменить пароль?
Изменить пароль может только сам участник в личном кабинете. Для смены требуется подтвердить текущий пароль. Пароли других участников недоступны для просмотра и прямого редактирования — это исключает возможность узнать или подменить чужой пароль внутри команды. Доступ к операциям с паролем разграничен на уровне ролей и прав участника.
После смены пароля все активные сессии участника автоматически завершаются, и требуется повторный вход. Это защищает аккаунт, если доступ мог быть скомпрометирован.
Восстановление доступа
Если участник забыл пароль, восстановление выполняется по кнопке «Забыли пароль» (можно воспользоваться ссылкой для перехода на форму):

- Участник указывает email.
- На почту приходит письмо со ссылкой для сброса пароля.
- Ссылка содержит одноразовый токен со сроком действия 1 час; после использования или истечения срока она становится недействительной.
Если письмо о регистрации или смене пароля не появляется в почтовом ящике, проверьте все папки (Спам, Промоакции и другие). Также убедитесь, что email-адрес указан правильно.
Безопасность хранения и обработки паролей
- Хранение только в виде необратимого хэша. Пароли никогда не хранятся в открытом виде. В базе хранится необратимое криптографическое представление пароля, вычисленное по современному отраслевому алгоритму одностороннего хэширования с индивидуальной солью для каждого пользователя. Восстановить исходный пароль из хранимого значения невозможно даже при получении доступа к данным, а индивидуальная соль защищает от атак по заранее вычисленным таблицам (rainbow tables).
- Защищённая передача. Пароль передаётся между браузером и сервисом только по зашифрованному каналу (TLS/HTTPS) и не сохраняется в логах или во временных хранилищах в открытом виде.
- Подтверждение личности при смене. Смена пароля возможна только после проверки текущего пароля владельцем аккаунта.
- Инвалидация сессий. При смене пароля все ранее выданные сессии и токены доступа немедленно аннулируются.
- Контролируемое восстановление. Сброс пароля выполняется по одноразовой ссылке с ограниченным сроком жизни (1 час) и однократным использованием.
- Разграничение доступа. Операции с паролями доступны в рамках роли и прав конкретного участника.
- Аудит. Операции с паролями (в том числе сброс) фиксируются в системном журнале (при условии, что на проекте подключен модуль Повышенной безопасности).
Текущие требования к составу пароля
- Минимальная длина — 6 символов.
- Требования к обязательному наличию цифр, специальных символов или заглавных букв в настоящий момент не предъявляются.
- Возможность настраивать парольные политики на уровне рабочего пространства (минимальная длина, обязательный состав символов и т. п.) не реализована.