TRIBLY
Документация Tribly → Безопасность входа: карантин новых устройств

Безопасность входа: карантин новых устройств

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

Приложение запоминает устройства, с которых вы входите. Первое устройство учётной записи становится доверенным сразу. После того как в учётной записи побывало устройство на карантине, подтверждения ждёт каждое незнакомое устройство — и тогда, когда список устройств снова опустел.

Собственный выход — исключение. Когда после него у учётной записи не осталось ни одного устройства, вход с этого же устройства открывается сразу. Вход с другого устройства подтверждается обычным порядком.


Порядок подтверждения

  1. Кто-то вводит ваш верный пароль с незнакомого устройства.
  2. Вход остаётся в карантине. На экране появляется сообщение: «Устройство помещено в карантин. Вход откроется, когда вы подтвердите его с доверенного устройства (сообщение BotMother) или это сделает администратор».
  3. Вам в личный чат от BotMother приходит сообщение с деталями (какое устройство, откуда, когда) и двумя кнопками:
    • Разрешить устройство — устройство становится доверенным, с него можно войти;
    • Заблокировать — вход с этого устройства запрещён, а если у него уже были живые сессии, они закрываются сразу.
  4. После нажатия сообщение меняется на итог («Разрешено» или «Заблокировано»), кнопки убираются — решение принимается один раз.
  5. Пока решение не принято, повторные попытки входа получают ответ «Устройство на карантине. Вход откроется…»; новое сообщение по ним приходит один раз.

Срок карантина

Карантин действует до решения: устройство ждёт кнопки в чате BotMother или действия администратора.

Администратор сервера задаёт срок автоснятия переменной окружения DEVICE_QUARANTINE_DAYS в файле .env — целое число дней. При заданном сроке карантин без решения снимается сам: устройству разрешается вход, а сообщение BotMother обновляется на «Карантин снят автоматически». Дата снятия стоит в сообщении BotMother, срок в днях — в подсказке на экране входа. Значение 0 означает карантин до решения.

Снятие доверия с собственного устройства

Устройство сотрудника перестаёт быть доверенным, когда на нём исчерпаны десять попыток ввода PIN-кода блокировки приложения или выбрана кнопка «Забыли PIN?». Приложение выходит из всех учётных записей на этом устройстве, все его сессии закрываются, а запись устройства пропадает из списка.

Следующий вход идёт по паролю и второму фактору, а устройство проходит проверку на общих основаниях. Когда у учётной записи остались другие устройства, вход подтверждается с них: в вашу личную переписку приходит сообщение BotMother, и Разрешить устройство нажимается с доверенного устройства. Когда это была единственная запись учётной записи, вход с того же устройства открывается сразу: оно снова становится доверенным, а вход с любого другого ждёт подтверждения. Устройство доверяет и администратор с правом управлять пользователями — Администрирование → Пользователи → Устройства входа.

Выход из учётной записи и завершение сеанса

Выход вычёркивает устройство из доверенных вместе с закрытием сеанса. То же делает Настройки → Безопасность → Сеансы: и завершение одного сеанса, и «выйти со всех устройств, кроме этого».

Запись устройства при этом удаляется, и следующий вход с него идёт как вход с нового: с других доверенных устройств учётной записи он подтверждается. Когда записей у учётной записи не осталось, вход сразу открывается устройству, которое вы держите в руках: после собственного выхода — ему же, после завершения сеанса на потерянном телефоне — тому, с которого нажата кнопка. Текущее устройство при «выйти со всех, кроме этого» остаётся доверенным — именно с него подтверждают возвращение остальных.

Заблокированное устройство остаётся заблокированным.

Снятие блокировки со своего устройства

Блокировка действует до вашей разблокировки; срок автоснятия относится к карантину. Если устройство заблокировано по ошибке, откройте Настройки → Безопасность → Заблокированные устройства и нажмите Разблокировать. Запись о блокировке убирается, и следующий вход с этого устройства проходит проверку устройства заново — с подтверждением, которое вы даёте с доверенного устройства.

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

Разблокировать можно своё устройство: чужие записи в этом разделе не показываются и командой не открываются. Устройства сотрудников ведёт администратор с правом управлять пользователями — Администрирование → Пользователи → Устройства входа.

Смена пароля: закрытие всех карантинов

Когда попыток входа много, смените пароль в разделе Настройки → Безопасность. Тогда:

  • все ожидающие подтверждения устройства отклоняются, в их сообщениях появляется отметка «Отказано — смена пароля пользователем», кнопки исчезают;
  • все остальные сессии закрываются — вы остаётесь в системе только на текущем устройстве;
  • отклонение действует до следующего входа: ваше устройство пройдёт карантин заново с новым паролем.

Как приложение узнаёт устройство

При первом запуске приложение придумывает себе случайный номер — 128 бит из криптостойкого источника — и хранит его на самом устройстве, в двух местах сразу (защищённое хранилище и настройки приложения). По этому номеру сервер и отличает знакомое устройство от нового.

Номер не выводится из железа: ни серийный номер, ни адрес сетевой карты в нём не участвуют. Такие сведения можно подсмотреть и подделать, а случайный номер знает только само устройство и передаёт его один раз, при входе. Поэтому знание пароля не открывает вход с чужого устройства.

Выход из учётной записи номер не стирает — иначе каждый повторный вход шёл бы через карантин. Он исчезает при переустановке приложения, при очистке его данных и при входе из браузера с галочкой «Чужой компьютер»: во всех трёх случаях устройство считается новым.

В сообщениях BotMother рядом с кнопками стоит номер устройства из вашего списка — например, /device_allow 4. Это номер строки в списке ваших устройств, а не номер сообщения: сколько бы попыток входа ни пришло, каждая кнопка относится к своему устройству.

Особенности карантина

  • Сообщение «пытаются войти» означает, что пароль ввели верно. Если это были не вы — считайте, что пароль скомпрометирован: заблокируйте устройство и смените пароль.
  • Подтверждают и блокируют устройство с доверенного устройства — там, где приходит сообщение от BotMother.
  • Вы управляете своими устройствами; чужие подтверждает их владелец.
  • Решения ждут до пяти устройств одновременно; дальше попытки входа отклоняются — разберите ожидающие устройства в чате BotMother и смените пароль.
  • Вход из браузера с включённой галочкой «Чужой компьютер» каждый раз приходит с нового устройства. На своём компьютере галочку снимают: браузер запоминается доверенным устройством.
  • Карантин действует для учётных записей сотрудников.
  • Список активных сессий, заблокированные устройства и кнопки «Выйти» и «Разблокировать» — в разделе Настройки → Безопасность.

Потеря единственного доверенного устройства

Если доверенное устройство утеряно (например, переустановили приложение), новый вход попадёт в карантин, а подтвердить его неоткуда. Есть два выхода:

  1. Обратиться к администратору с правом управлять пользователями. Прямо в приложении, в разделе Администрирование → Пользователи, у каждого сотрудника есть кнопка «Устройства входа»: администратор может доверить ваше новое устройство, заблокировать чужое или очистить список устройств.

    Вход возвращает кнопка «Доверить» на нужном устройстве — это обычный способ помочь коллеге. Удаление устройства из списка возвращает его в состояние незнакомого: следующий вход с него снова ждёт подтверждения.

  2. Обратиться к системному администратору — у него есть служебный инструмент восстановления доступа на самом сервере (пригодится и в случае, если заблокирован сам владелец системы).

При заданном администратором сроке автоснятия (DEVICE_QUARANTINE_DAYS) карантин по его истечении снимается сам.

Смежные страницы: «Блокировка приложения: PIN-код и биометрия», «Роли и права (RBAC)», «Администрирование сервера».