Безопасность для AI-агентов

Пароли
не попадают
в LLM.

Агент создаёт одноразовую ссылку. Пользователь заполняет форму. Данные уходят прямо в хранилище секретов. Агент видит только { status: "ok" }.

GitHub
Схема последовательности · что происходит
Agent                     ZeroCreds                      User
  │                            │                            │
  ├─POST /api/session/create──►│                            │
  │  {fields, destination}     │                            │
  │◄─{url, expires_at}─────────┤                            │
  │                            │                            │
  ├─send URL (TG / email)─────────────────────────────────►│
  │                            │                            │
  │                            │◄─GET /f/{token}───────────┤
  │                            │──form html────────────────►│
  │                            │◄─POST {credentials}────────┤
  │                            │                            │
  │                            ├─write to secret store       │
  │                            │                            │
  ├─GET /session/{t}/status────►│                            │
  │◄─{ status: "done" }──────────┤                            │
  │                            │                            │
  │  never saw credentials      │                            │
LLM не видит учётные данные
Одноразовые ссылки, сгорают после использования
Только запись в хранилище
Проверяемый по коммит-хэшу
MIT лицензия
Для любого агента
Ваш агент вызывает это
curl -X POST https://zerocreds.ru/api/session/create \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title":       "Connect GitHub",
    "description": "Paste your token with repo scope",
    "fields": [
      {"name":"token","label":"Personal Access Token","type":"password"}
    ],
    "destination": "prod-gcp"
  }'

← { "url": "https://zerocreds.ru/f/8a3f…" }

# отправляем ссылку пользователю → ждём → опрашиваем:

curl https://zerocreds.ru/api/session/8a3f…/status \
  -H "Authorization: Bearer YOUR_TOKEN"

← { "status": "done" }  ✓ пароль агент не видел
Что видит пользователь
zerocreds.ru/f/8a3f1c2d…
🔒
Connect GitHub
Вставьте токен с доступом к репозиторию
ghp_●●●●●●●●●●●●●●●●
Вставить
👁

Данные отправляются напрямую в ZeroCreds — минуя агента и LLM-контекст. Когда пользователь нажмёт «Отправить», вы получите { status: "done" }, а данные уже будут в вашем хранилище секретов.

Конфиг Claude Code / Desktop
# ~/.claude/settings.json

{
  "mcpServers": {
    "zerocreds": {
      "command": "npx",
      "args":    ["-y", "zerocreds-mcp"],
      "env": {
        "ZEROCREDS_TOKEN": "your-token-here"
      }
    }
  }
}

# Claude Code вызывает инструмент напрямую:

zerocreds.collect_credentials({
  title:       "Connect GitHub",
  fields:      [{ name: "token", type: "password" }],
  destination: "local-dev"
})

← { status: "done" }  данные в ~/agent-tokens/
Как это работает в Claude Code
Скоро · beta

Добавьте ZeroCreds как MCP-сервер. Claude Code подхватит инструмент автоматически — никаких ручных HTTP-запросов, никакой возни с токенами в промпте.

Claude создаёт сессию, ждёт пользователя и продолжает задачу когда придёт { status: "done" }. Сами данные не попадают в контекст разговора.

> Подключи мой аккаунт GitHub
Claude: собираю учётные данные…
🔗 Заполните форму: zerocreds.ru/f/8a3f…
…пользователь заполняет…
✓ Готово. Продолжаю с доступом к GitHub.
Только запись — никакого чтения
GCP Secret Manager

Google Cloud

ZeroCreds использует роль roles/secretmanager.secretVersionAdder — может добавить версию, но физически не может прочитать секрет. Гарантировано IAM, не кодом.

IAM: secretmanager.versions.add
НЕ выдано: secretmanager.versions.access
Гранулярность: на секрет, не на проект
AWS Secrets Manager

Amazon Web Services

IAM-политика разрешает только secretsmanager:PutSecretValue на конкретный ARN. GetSecretValue в политике не значится — write-only по конструкции.

Action: secretsmanager:PutSecretValue
НЕ выдано: GetSecretValue
Resource: конкретный ARN секрета
HashiCorp Vault

Self-hosted Vault

Политика Vault разрешает create и update на нужном пути. read просто отсутствует — Vault блокирует на уровне политики.

capabilities = ["create", "update"]
"read" не указан = запрещено
path: secret/data/your/path
Local File

Файловая система

Самый простой вариант для локальных агентов. Данные пишутся как JSON в ~/agent-tokens/{uid}/{name} с правами 0600. Без внешних зависимостей.

path: ~/agent-tokens/{uid}/{filename}
permissions: 0600 (только владелец)
format: JSON-объект со значениями полей

Открытый код.
Проверяйте.
Разворачивайте сами.

Специалист по безопасности может проверить точный коммит на вашем сервере через /version, сверить с публичным кодом и убедиться построчно — что происходит с данными пользователя.

Получите токен за 30 секунд на zerocreds.ru, или разверните на своём сервере для полного контроля. MIT лицензия — аудитируйте код, форкайте, запускайте где угодно.

MIT License
→Бесплатно для любого использования, включая коммерческое
→Изменяйте и распространяйте свободно
→Self-host за 5 минут — полный контроль
→Принимаем контрибьюции

Нужна помощь с настройкой?

Настроим ZeroCreds под ваш стек — хранилища, интеграцию с агентом, всё что нужно.

Написать →

Любой может проверить работающий сервер в любой момент.
GET https://zerocreds.ru/version возвращает git-хэш коммита.
Сверьте с исходниками на GitHub. Построчно.

✓ GET /version → хэш коммита
✓ Сверить хэш на github.com
✓ Читайте код, не доверяйте словам