Политика конфиденциальности
1. О чём этот документ
knower.dev — личный инструментарий: заметки, финансы, канбан, покупки, цвета, DSL-редактор. Этот документ объясняет, какие именно данные мы собираем, зачем, как долго храним и как ты можешь ими управлять. Никаких сторонних трекеров, рекламных сетей и аналитических систем мы не используем.
2. Какие данные мы собираем
| Данные | Зачем | Срок хранения |
|---|---|---|
| Авторизация; восстановление пароля; служебные уведомления (например, об изменениях в отслеживаемых данных или существенных правках этой политики). | До удаления аккаунта. | |
| Имя (display name, опционально) | Отображение в интерфейсе. | До удаления / изменения. |
Логин (короткий уникальный ID, напр. alice) |
Идентификатор для упоминания в общих списках/досках через
@логин. По умолчанию ставится автоматически как
u<id> (например, u1); можно сменить
в профиле. Виден другим участникам в шерящихся
ресурсах (см. § 2.1).
|
До удаления аккаунта. |
Упоминания (@логин в shopping/kanban) |
Когда кто-то упоминает тебя в общем списке или доске, мы сохраняем: кто, где, фрагмент текста (до 280 символов) и timestamp. Видно только тебе на странице /mentions + счётчик в шапке. Удаляется каскадно вместе с аккаунтом или с исходным ресурсом (item/карточкой). | До удаления аккаунта или исходного ресурса. |
| Хэш пароля (Argon2id) | Проверка пароля при логине. Сам пароль в открытом виде мы не храним и не можем восстановить — только сбросить. | До удаления аккаунта. |
| IP-адрес |
Защита сервиса от DoS/DDoS, brute-force подбора паролей,
ботов. Используется в логах nginx и rate-limit на эндпоинтах
/login, /register, /auth/ws-token.
Эти записи не связаны с профилем. Единственное исключение —
IP в момент принятия политики при регистрации: он сохраняется вместе
с аккаунтом как доказательство согласия (см. строку «Факт принятия политики» ниже).
|
Логи — до 30 дней (ротация). IP принятия политики — до удаления аккаунта. |
| Cookies | Поддержание авторизации и защита форм от CSRF. Подробности — в разделе 5. | См. ниже. |
| Содержимое заметок | Хранение твоего контента. Содержимое заметок передаётся и хранится только в зашифрованном виде (AES-GCM 256), ключ шифрования никогда не уходит на сервер. Сервер видит имя заметки и hex-blob — содержимое расшифровать не может. | До удаления пользователем. |
| Прочие пользовательские данные | Финансовые операции, список покупок, kanban-карточки — всё что ты явно вводишь в соответствующих модулях. Привязано к твоему аккаунту. По умолчанию видно только тебе; при шеринге списка / доски — также другим участникам (см. § 6). | До удаления пользователем или аккаунта. |
| Факт принятия политики | При регистрации сохраняем timestamp и IP — фиксируем что ты согласился именно с этой версией политики (нужно при спорах / GDPR-аудите). | До удаления аккаунта. |
2.1. Видимость данных другим пользователям
По умолчанию все твои данные приватны — никто кроме тебя их не видит. Видимость появляется только в одном случае: ты сам пригласил другого пользователя в общий список / доску через invite-ссылку.
Конкретно — при шеринге:
-
Покупки. Когда ты делишься списком, его участники видят:
content (items: имя, количество, статус «куплено / нет»), твой email
и логин (отображаются в списке участников и в auth-метаданных).
Если у тебя задано «отображаемое имя» (display name) — оно показывается рядом с email.
Если ты упомянул кого-то через
@логин— он увидит это в /mentions. -
Канбан. По той же модели: участники доски видят
карточки, заголовки, описания, а также email/имя/логин участников.
@логин-упоминания в карточках тоже создают запись в /mentions у того, кого упомянули. - Трекер. Когда ты делишься рабочим пространством, его участники видят: релизы (версия, подпись, описание, статус), всё дерево задач со статусами, а также email/имя/логин участников (в списке участников). Роли: owner (управление пространством и участниками), editor (правка релизов и задач), viewer (только чтение).
- Заметки, финансы, цвета — не шерятся вовсе.
Ты управляешь видимостью: можешь отозвать invite до использования, убрать участника из списка, или покинуть список (если ты не owner). После удаления участника он сразу теряет доступ.
3. Чего мы НЕ делаем
- Не используем Google Analytics, Яндекс.Метрику, Hotjar, Mixpanel и любые другие аналитические/трекинговые сервисы.
- Не используем рекламные сети и пиксели (Facebook Pixel, Google Ads и т.п.).
- Не продаём и не передаём данные третьим лицам в маркетинговых целях.
- Не читаем содержимое заметок — оно хранится в зашифрованном виде, ключа у нас нет.
- Не используем «маркетинговые», «аналитические» или сторонние cookies — только функциональные.
- Не профилируем поведение пользователей.
4. Правовые основания обработки
- Согласие (ст. 6 GDPR / ст. 6 152-ФЗ) — ты регистрируешься, принимая эту политику. Согласие можно отозвать в любой момент — см. раздел 7.
- Легитимный интерес — защита сервиса от атак (хранение IP в логах, rate-limit).
- Исполнение договора — оказание услуги, ради которой ты регистрировался (хранение твоих заметок, операций и т.д.).
5. Cookies — подробно
Мы используем только функциональные cookies. Без них авторизация и связанные с ней функции работать не будут.
| Cookie | Зачем | Срок | Флаги |
|---|---|---|---|
knower_sid |
Session-id для поддержания авторизации. | 24 часа (продлевается при активности). | HttpOnly, Secure, SameSite=Strict |
_csrf |
Токен защиты от CSRF-атак на формы и POST-эндпоинты. | До конца сессии. | HttpOnly, Secure, SameSite=Strict |
Решение о принятии политики использования cookies хранится в
localStorage браузера (ключ knower_cc_v1) —
это не cookie, мы ничего не пишем в headers браузера до твоего согласия.
6. Как мы защищаем данные
- Пароли хэшируются алгоритмом Argon2id (memory-hard, защита от ASIC-перебора).
- Соединение между браузером и сервером — только по HTTPS (TLS 1.2/1.3), с HSTS.
- Содержимое заметок шифруется AES-GCM 256 прямо в браузере, ключ выводится через PBKDF2-SHA256 · 100 000 итераций. На сервер уходит уже зашифрованный blob.
- Cookies сессии —
HttpOnly(недоступны JavaScript),Secure(только по HTTPS),SameSite=Strict(не уходят с чужих сайтов). - CSRF-токен проверяется через
hash_equalsна каждом мутирующем запросе. - Rate-limit на эндпоинтах авторизации (10 запросов в минуту с одного IP).
- Регулярное обновление зависимостей и применение security-патчей.
7. Твои права
В любой момент ты можешь:
- Получить копию своих данных — кнопка «Скачать JSON» в профиле, либо запрос на privacy@knower.dev. JSON содержит профиль, заметки (с зашифрованными blob'ами), финансы, покупки, канбан, mail-log за 90 дней. Соответствует GDPR Article 20 (right to data portability).
- Исправить email или имя — через профиль.
- Удалить отдельные заметки/операции/карточки — через интерфейс соответствующего модуля.
- Отказаться от служебных нотификаций — чекбокс в разделе «Уведомления» на странице профиля. Критичные сообщения (восстановление пароля, подтверждение email, уведомления о смене пароля/email) продолжают приходить — это lock-out защита.
- Управлять видимостью данных другим участникам — отзывай invite-ссылки, убирай участников из своих списков, покидай чужие списки (см. § 2.1).
- Удалить аккаунт полностью — кнопка «Опасная зона» в профиле (требует пароль и фразу-подтверждение). Каскадно удалятся все связанные данные: заметки, финансы, покупки, канбан, сессии, invite-ссылки, ваше членство в shared-списках.
- Отозвать согласие — равнозначно удалению аккаунта (без согласия мы не можем продолжать обработку).
- Подать жалобу в надзорный орган по защите персональных данных (Роскомнадзор / DPA по месту жительства).
8. Передача данных третьим лицам
Мы не передаём персональные данные третьим лицам, кроме случаев, когда этого требует закон (например, мотивированный запрос суда или правоохранительных органов в рамках их компетенции).
Сервис размещён на собственном VPS, MariaDB и логи — там же. Мы не используем сторонние SaaS-хранилища или CDN, через которые могли бы утечь твои данные.
9. Служебные email-рассылки
Сервис может отправлять тебе email-сообщения только по делу:
- подтверждение регистрации;
- восстановление пароля по твоему запросу;
- уведомления об изменениях в отслеживаемых тобой данных (если ты явно включил уведомления);
- уведомления о существенных правках этой политики или условий использования;
- предупреждения о подозрительной активности в аккаунте (логин с нового устройства/региона).
Маркетинговых рассылок мы не делаем. От служебных уведомлений (кроме критичных — смена пароля, безопасность аккаунта) можно отказаться в настройках профиля.
10. Изменения политики
Мы можем менять эту политику. При существенных изменениях (расширение целей обработки, новые категории данных, появление третьих лиц-обработчиков) мы уведомим тебя по email и попросим повторно подтвердить согласие. Несущественные правки (опечатки, уточнения) публикуются молча с обновлением даты в шапке документа.
11. Контакты
По любым вопросам обработки персональных данных, доступа, удаления или жалоб — пиши на privacy@knower.dev. Постараюсь ответить в течение 7 рабочих дней.