Конфиденциальность данных и безопасность
Конфиденциальность — ключевая ценность DevLingo. Мы подробно объясняем, как данные перемещаются, где хранятся и кто имеет к ним доступ.
Прозрачность потоков данных
Заголовок раздела «Прозрачность потоков данных»Сценарий 1: Одиночный запрос (без облачной синхронизации)
Заголовок раздела «Сценарий 1: Одиночный запрос (без облачной синхронизации)»Шаг 1: Вы выделили "idempotent" в Slack ↓Шаг 2: Нажали ⌘⇧D ↓Шаг 3: Mac-приложение проверяет локальную базу и кэш ↓Шаг 4: Если не найдено, отправляет запрос в Cloudflare Workers (HTTPS-шифрование) Запрос содержит: - Выделенный текст: "idempotent" - Контекст (текст до и после) - Идентификатор приложения (Slack) - Режим: Word ↓Шаг 5: Workers вызывает Claude API ↓Шаг 6: Claude возвращает структурированный JSON-результат ↓Шаг 7: Mac-приложение получает результат ↓Шаг 8: Если пользователь не нажал «Сохранить», результат не сохраняется (после закрытия всплывающего окна данные исчезают)Сценарий 2: Сохранение в словарь
Заголовок раздела «Сценарий 2: Сохранение в словарь»Шаги 1-7: как выше ↓Шаг 8: Пользователь нажимает "Save to Word Book" ↓Шаг 9: Данные сохраняются в локальном SwiftData (полностью на устройстве, не в облаке) ↓Шаг 10: Синхронизация словаря отключена → готово (только локально) Синхронизация словаря включена → Шаг 11 ↓Шаг 11: Устройство пользователя синхронизируется с Cloudflare D1 (личная база данных пользователя, с аутентификацией)Ключевые обязательства
Заголовок раздела «Ключевые обязательства»Текст не используется для обучения моделей
Заголовок раздела «Текст не используется для обучения моделей»Важно: любой текст, отправленный через Claude API из DevLingo, не используется для обучения Claude или любой другой модели. Мы следуем политике Anthropic по умолчанию.
+ Ваш текст используется однократно+ Claude обрабатывает и сразу удаляет (не хранит)+ Не используется ни для какого анализа данных:::note Способ проверки
Все запросы к Anthropic Claude API помечены “user=
Локальное хранилище — облачная синхронизация отключена по умолчанию
Заголовок раздела «Локальное хранилище — облачная синхронизация отключена по умолчанию»Словарь (Word Book) по умолчанию хранится только на вашем Mac с использованием SwiftData:
~/Library/Containers/com.devglish.com/Data/└── default.store/ └── word_entries.db (локальная SQLite)Эта база данных является приватной для устройства, доступ к ней имеет только приложение DevLingo.
Облачная синхронизация опциональна
Заголовок раздела «Облачная синхронизация опциональна»Если вы хотите синхронизировать словарь между несколькими Mac, вы можете явно включить облачную синхронизацию:
Settings → iCloud Sync → Toggle ONПри включении словарь шифруется и загружается в Cloudflare D1:
Шифрование: клиентское шифрование (Curve25519) → хранение на сервереАутентификация: JWT-токен пользователя (безопасный маркер)Контроль доступа: каждый пользователь может получить доступ только к своим даннымИзоляция: изоляция на уровне строк базы данных, предотвращает доступ между пользователями:::caution Перенос данных После включения облачной синхронизации, если вы отменяете подписку или удаляете учётную запись, облачные данные автоматически удаляются через 30 дней. Локальные данные SwiftData не затрагиваются и остаются на вашем устройстве. :::
Что мы не собираем
Заголовок раздела «Что мы не собираем»DevLingo строго следует принципу «минимального сбора данных»:
Данные, которые не собираются
Заголовок раздела «Данные, которые не собираются»- Содержимое кода (хотя вы можете использовать DevLingo в Xcode)- Полная история просмотров или использования приложений- Логи чатов или содержимое электронной почты- Ваша Git-история- Другие приватные файлы на устройствеТолько необходимые данные
Заголовок раздела «Только необходимые данные»+ Выделенный вами текст запроса+ 50 символов контекста до и после (только для понимания ИИ)+ Bundle Identifier текущего приложения (помогает ИИ адаптировать стиль)+ Настройка родного языка (для подсказок по L1-интерференции)+ Содержимое словаря (только при явно включённой облачной синхронизации)Безопасность API-ключей
Заголовок раздела «Безопасность API-ключей»Ключ Claude API
Заголовок раздела «Ключ Claude API»Бэкенд DevLingo (Cloudflare Workers) хранит ключ Claude API. Ваше Mac-приложение не нуждается в прямом доступе к ключу, все API-запросы проксируются через Workers.
Mac App Workers (edge) ↓ (HTTPS) ↓ │── Bearer: user_jwt ────────→ │ │ │ │ (срок действия 1 час) │ (Claude API Key) │ │ │← Structured Response ←────── Claude APIПреимущества:
- Ключ не хранится локально (не может утечь)
- Все API-вызовы обрабатываются на доверенном периметре Cloudflare
- Даже если ваш Mac скомпрометирован, ключ в безопасности
JWT-токен пользователя
Заголовок раздела «JWT-токен пользователя»При входе пользователь получает краткосрочный JWT-токен (срок действия 1 час):
Алгоритм: HS256 (HMAC SHA-256)Ключ подписи: Cloudflare Secret (не хранится локально)Место хранения: macOS Keychain (системное шифрование)Обновление: автоматическое обновление перед истечением срокаУровень безопасности Keychain:
Привязан к ключу разблокировки iCloud на MacКаждый доступ требует подтверждения пользователяДаже при краже жёсткого диска данные невозможно прочитатьБезопасность сетевой передачи
Заголовок раздела «Безопасность сетевой передачи»Вся коммуникация между Mac и Cloudflare Workers зашифрована по HTTPS:
TLS 1.3 (новейший протокол)Сертификат: LetsEncrypt (автоматическое обновление)Полная прямая секретность (Perfect Forward Secrecy)Работа офлайн
Заголовок раздела «Работа офлайн»Система многоуровневых запросов DevLingo обеспечивает работу без интернета:
В режиме полёта выделяете "idempotent" ↓Запрос к локальной базе технических терминов (85+ слов) → Успех! ↓Результат отображается мгновенно, без сетиСеть нужна только для:
+ Запрос новых слов, отсутствующих в локальной базе+ Синхронизация словаря с облаком+ Получение последнего кэша TTS-аудиоОстальные 95% запросов могут быть выполнены полностью офлайн.
Удаление учётной записи и очистка данных
Заголовок раздела «Удаление учётной записи и очистка данных»Если вы решите удалить учётную запись DevLingo:
Шаг 1: Настройки → Учётная запись → Delete Account ↓Шаг 2: Система запросит подтверждение ↓Шаг 3: Cloudflare удаляет: - Учётную запись пользователя - Облачный словарь - Историю входов - Логи использования API (полное удаление через 30 дней) ↓Шаг 4: Локальные данные не затрагиваются (остаются на вашем Mac, удаляете самостоятельно):::caution Необратимость После удаления учётной записи облачные данные невозможно восстановить. Но вы можете экспортировать локальный словарь в CSV для постоянного хранения. :::
Соответствие требованиям
Заголовок раздела «Соответствие требованиям»DevLingo соответствует следующим нормативам:
| Регион | Норматив | Статус |
|---|---|---|
| ЕС | GDPR (Общий регламент защиты данных) | Соответствует |
| США | CCPA / CPRA | Соответствует |
| Другие регионы | Локализация данных | Только локальное хранение; облачная синхронизация через Cloudflare (опционально) |
:::note Ответственный за защиту данных По вопросам конфиденциальности обращайтесь по адресу [email protected]. Мы отвечаем в течение 24 часов. :::
Регулярный аудит безопасности
Заголовок раздела «Регулярный аудит безопасности»Инженерная команда DevLingo регулярно проводит:
- Аудит безопасности кода (OWASP Top 10)- Сканирование зависимостей (npm audit, Xcode security)- Тестирование на проникновение (сторонние специалисты)- Аудит доступа к базе данных (кто к чему обращался)Отчёты об аудите публикуются для пользователей ежеквартально.
Итог: архитектура конфиденциальности DevLingo следует принципу «нулевого доверия» — предполагается, что сеть прослушивается, что устройство может быть скомпрометировано, но благодаря шифрованию, аутентификации и минимальному сбору данных ваши данные всегда остаются под вашим контролем.