Безопасность и приватность
Ключи устройств, реле, локальные данные и границы доверия.

В этой главе · 7 разделов
Что GrantTap защищает#
GrantTap связывает телефон с компьютером, на котором работают coding agents. По этой связи передаются сообщения, решения, части истории и сведения проекта. Защита строится на независимых ключах, зашифрованных каналах и проверке конкретного маршрута работы.
При этом важно понимать границу: шифрование сети не делает безопасным уже заражённый компьютер и не заменяет native permissions провайдера. Правила Project не превращают все процессы macOS в изолированную среду. В руководстве эти свойства разделены, чтобы вы могли выбрать подходящий уровень доверия.
Начинайте с подключения passkey или QR, затем проверьте Governance и реальные права coding app. Для учебного GrantTap Lab достаточно локальных демонстрационных данных без токенов и production окружения.
Что получает relay#
Ключи pairing создаются на устройствах. У Tasks есть независимые ключи: знание ключа одной Task не должно раскрывать другую. Project snapshots используют свои ключи; новый destination получает необходимые ключи только по явно разрешённому маршруту.
Relay хранит и пересылает ciphertext. Он не получает provider credentials и plaintext сообщений, команд или Task Capsules через этот механизм. Одноразовый QR включает секрет передачи, который не должен превращаться в публичную картинку.
Однако работа сервиса требует metadata: relay может видеть opaque routing IDs, роль подключения, IP, время, размер пакетов, expiry и технические APNs сведения. Поэтому корректно говорить «содержимое зашифровано», а не «сервису вообще ничего неизвестно».
Push через APNs служит нейтральным сигналом пробуждения. Сам APNs payload не содержит prompt, название Task, команду, путь, delivery ID или Task ciphertext. После пробуждения приложение использует свой авторизованный путь получения данных.
Endpoint — где заканчивается защита сети#
Авторизованный телефон или компьютер получает возможность прочитать те данные, ключи которых ему выданы. Если такое устройство скомпрометировано, E2EE не скрывает от него уже доступные Tasks. Отозвать дальнейшую пересылку можно, а уже скачанный текст нельзя забрать с чужого устройства.
Поэтому совместный доступ задаётся отдельными grants. Выдавайте человеку нужные repository и Project scopes, проверяйте device link и удаляйте ненужное подключение через предусмотренные controls. Display name помогает узнать устройство, но не служит доказательством его полномочий.
GrantTap hooks блокируют распознаваемые прямые обращения agent tools к локальным pairing, key и policy files. Это best-effort self-protection. Процесс с правами того же пользователя может иметь необозреваемый путь к диску, поэтому hooks нельзя называть security boundary операционной системы.
Секреты Project Environment#
Project Environment передаёт выбранные значения компьютерам проекта по подтверждаемому policy path. После применения они доступны новым agent launches как process environment. Компьютер, присоединённый позже, не получает старый secret только по факту membership: нужны повторное применение и endpoint receipt.
Скрытие значения на экране не означает use-only credential. Агент и запущенный им код могут прочитать environment, который им передали. Текущая функция не является изолированным credential broker и не устанавливает финансовый лимит использования ключа.
Опциональный repository export относится к non-secret значениям и управляемому .granttap/env. Он сам не commit и не push. Не включайте в учебный пример настоящий API key, даже если поле отображает точки вместо символов.
Policy и реальное покрытие#
Global/provider Deny и обязательные host restrictions остаются сильнее мобильного Allow. Чатовый Auto allow не расширяет native sandbox. Работоспособность зависит от провайдера, категории действия, доверенного hook и полученной policy revision.
В Governance проверяйте Enforced, Observed only, Unsupported или Unknown для точного computer/provider. Наблюдаемое действие не означает, что его можно остановить заранее. Установленный hook не означает автоматически доверенный и включённый native hook.
Это особенно важно для интеграций с ограниченным контролем и облачных агентов. Не переносите обещания локального Codex hook на другой cloud execution только из-за знакомого имени модели. Честные границы описаны в провайдерах.
Диагностика без раскрытия лишнего#
Для обычной проблемы сохраните версию GrantTap, версию helper, название экрана и воспроизводимые шаги на GrantTap Lab. В screenshot оставьте нужное состояние, но уберите частные conversations и действующие коды. Статус исходного сообщения полезнее повторной отправки реального prompt.
Уязвимости передавайте приватно через security advisory GrantTap MCP. Не прикладывайте working exploit и секреты к публичному issue. Для обычных сбоев используйте диагностику, доставку и локальное хранение.