Настоящие сведения опубликованы в соответствии с ч. 2 ст. 18.1 Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» и описывают правовые, организационные и технические меры, принимаемые оператором по ст. 19 указанного закона для защиты персональных данных от неправомерного или случайного доступа, уничтожения, изменения, блокирования, копирования, предоставления и распространения. Эти же меры обеспечивают защиту информации, предусмотренную ст. 16 Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
Правовые и организационные меры
- оператор — физическое лицо, гражданин Российской Федерации; ответственный за организацию обработки персональных данных — сам оператор;
- изданы и опубликованы политика обработки персональных данных и настоящие сведения; состав данных, сроки хранения и порядок уничтожения определены в них;
- обрабатываются только данные, необходимые для заявленных целей;
- доступ к серверу и базе данных имеет только оператор; провайдер хостинга предоставляет оборудование, на котором размещён сервер, иные лица к обработке не допускаются;
- при изменении состава данных или способов обработки документы пересматриваются, новая редакция публикуется с указанием даты.
Способы авторизации
Авторизация пользователей осуществляется собственной информационной системой оператора: вход по логину и паролю, по passkey и по SSH-ключу проверяется на сервере оператора. Тем самым применяется способ, предусмотренный п. 4 ч. 10 ст. 8 Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации», — иная информационная система, соответствующая требованиям о защите информации, установленным ст. 16 того же закона, владельцем которой является гражданин Российской Федерации, не имеющий гражданства другого государства. Владелец системы — оператор.
Иностранные сервисы входа не используются; вход через социальные сети и иных внешних провайдеров не предусмотрен.
Защита учётных записей
- пароль в открытом виде не хранится: в базе данных хранится только его bcrypt-хэш;
- passkey (WebAuthn) привязан к домену Сервиса и не может быть использован на стороннем сайте; SSH-ключ проверяется по подписи SSHSIG;
- приватные ключи не покидают устройство пользователя: сервер получает и хранит только открытые ключи;
- для каждого passkey хранится счётчик подписей, что позволяет выявить копирование ключа;
- удаление последнего способа входа возможно только вместе с аккаунтом и требует отдельного подтверждения.
Защита канала и запросов
- данные передаются только по HTTPS, сертификат выпускается и продлевается автоматически;
- токены сессии передаются только в cookie с атрибутами httpOnly, SameSite=Lax и Secure и недоступны сценариям страницы; cookie обновления сессии передаётся только на адрес /api/auth/refresh;
- изменяющие запросы проверяются на подделку: значение cookie csrftoken сверяется с заголовком x-csrftoken, при несовпадении запрос отклоняется;
- ответы API запрещено встраивать в чужие страницы (X-Frame-Options: DENY) и интерпретировать с иным типом содержимого (X-Content-Type-Options: nosniff);
- сторонние скрипты, системы аналитики и реклама не подключаются.
Ограничение частоты
- неудачные попытки входа учитываются отдельно по аккаунту и по IP-адресу; при превышении порога вход временно блокируется, успешный вход счётчик не увеличивает;
- число запросов на аутентификацию и число создаваемых с одного IP-адреса аккаунтов ограничены;
- счётчики хранятся в Redis не дольше периода соответствующего ограничения, который зависит от вида ограничения; счётчик по аккаунту содержит хэш идентификатора входа, а не сам идентификатор.
Хранение данных и доступ к ним
- база данных и Redis доступны только во внутренней сети Docker и не принимают подключений извне;
- межсетевой экран сервера блокирует входящие подключения, кроме административного SSH, SSH-интерфейса Сервиса и портов 80 и 443;
- секреты приложения (ключ подписи токенов, пароль базы данных, служебный секрет) хранятся в зашифрованном виде в Ansible Vault и размещаются на сервере в отдельных файлах с доступом только для чтения владельцем;
- контейнеры приложения работают от имени непривилегированных пользователей;
- журнал доступа веб-сервера не ведётся; журнал ошибок веб-сервера хранится 14 дней; технические журналы сервисов ограничены по объёму, срок хранения в днях для них не установлен. Пароли, содержимое списков и токены сессии в журналы не записываются.
Резервные копии и уничтожение
- перед каждым обновлением Сервиса создаётся резервная копия базы данных; копии хранятся на сервере оператора, копии старше 7 дней удаляются ежедневно;
- удаление аккаунта выполняется одной транзакцией: удаляются профиль, желания, ключи и друзья, снимаются брони пользователя в чужих списках;
- данные удалённого аккаунта недоступны немедленно и уничтожаются, в том числе в резервных копиях, в течение 30 дней.