Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Секреты и безопасность

  • Гейтинг — детерминированный, в реестре, не в промпте: master_only / trusted_only / privileged_only проверяются до исполнения по личности тура и окружению. Из чужого тура мастер-инструмент не исполнится ни при каких уговорах модели — это щит от prompt injection, не зависящий от её послушности. Тем же гейтом заперты обе стороны команды: agent_only — доклад наверх, lead_only — управление подагентами (см. агентские команды).
  • Три оси доверия: master — тур ведёт Господин (sender из master.aliases или отсутствует); trusted — доверенное окружение (флаг trusted от TUI/Android-клиента или личка Господина в телеграме; публичные чаты — никогда); privileged — разрешённый пользователь (телеграм-whitelist; из доверенных клиентов — всегда).
  • Маркеры спикеров ставит только ядро: тело сообщения идёт под маркером цитатой, притвориться чужим голосом текстом нельзя.
  • Гости получают урезанный потолок ответа (max_tokens_guest) и не видят платных инструментов; выборка памяти режется до memory.public_top_k в любом не-мастерском туре (не только гостевом).
  • Меню настроек поверхности не светит приватное: тулы из её master-списка (память, личности…) в групповом меню не показываются даже именами — полная консоль чата уезжает Господину в личку по кнопке.
  • Секреты в конфиге (llm.api_key, web.booru.*.api_key, заголовки MCP) — отдельными файлами через extraConfigFiles, не в settings (тот лежит в world-readable /nix/store).
  • Секреты в выхлопе инструментов затираются до записи: cat .env или env в кодовом туре не увозит токен ни провайдеру, ни в базу (она не архив секретов), ни клиенту в живой стрим. Правила — данные (secrets.rules): встроенный набор покрывает Bearer, sk-, AKIA, AGE-SECRET-KEY, glpat-, gh*_, PEM-блоки и присвоения token=…; новый формат токена — строчка конфига, не пересборка. Плейсхолдер называет вид: [redacted: bearer token]. Это сеть безопасности, а не разрешение читать .env.
  • SSRF-щит на URL от модели: web_fetch и скачивание source для image_generate не ходят в приватные сети — модель могла взять адрес из недоверенного текста, а за 127.0.0.1 живёт само ядро, которое своих не аутентифицирует (токен проверяет реверс-прокси снаружи). Отсекаются loopback, RFC1918, link-local, CGNAT, ULA и прочие спец-диапазоны — на уровне DNS-резолвера (каждый коннект, включая хопы редиректов и rebinding), а редирект на приватный IP-литерал, минующий DNS, режет политика редиректов. Схемы — только http(s). Исключения — явным списком web.allow_private_hosts (пуст по умолчанию). Адреса MCP-серверов приходят только из конфига — это уже явное решение Господина, щит им не нужен.