{
  "name": "Фаервол для агентов",
  "version": "1.0",
  "published": "2026-10-19",
  "url": "https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/faervol/",
  "license": "CC BY 4.0",
  "author": {
    "name": "ООО «САРМАТЕХ»",
    "inn": "4725011864"
  },
  "summary": "Сайт пропускает агента не по имени, а по паспорту: правило → карантин и проверка паспорта → виза → выход.",
  "terms": [
    {
      "name": "Правило",
      "definition": "Заявленная политика сайта: кого и куда он пускает. Сегодня это robots.txt и строка Content-Signal. Правило — просьба: честный агент подчиняется ему сам, нечестный — нет."
    },
    {
      "name": "Карантин",
      "definition": "Состояние запроса, пока подлинность агента не подтверждена. Пока агент в карантине, выход закрыт."
    },
    {
      "name": "Паспорт",
      "definition": "То, чем агент подтверждает, кто он и кто за ним стоит: адрес из списка, опубликованного оператором; обратный DNS; подпись запроса (HTTP Message Signatures, Web Bot Auth); паспорт ИИ-агента в формате 0.1. Имя в строке user-agent паспортом не является — его может написать кто угодно."
    },
    {
      "name": "Виза",
      "definition": "Решение сайта по итогам карантина и по его политике. Три степени: полная, ограниченная, отказ."
    },
    {
      "name": "Выход",
      "definition": "Точка, где виза сверяется перед доступом к содержимому. Открывается только после выдачи визы."
    }
  ],
  "steps": [
    {
      "step": "1. Правило",
      "question": "Пускает ли сайт такого агента?",
      "checked_by": "robots.txt, Content-Signal",
      "outcomes": "Честный агент с запретом уходит сам. Нечестный идёт дальше — его остановит выход."
    },
    {
      "step": "2. Карантин",
      "question": "Тот ли это агент, за кого себя выдаёт?",
      "checked_by": "Список адресов оператора, обратный DNS, подпись запроса, паспорт ИИ-агента",
      "outcomes": "Подлинность подтверждена · паспорта нет · подделка"
    },
    {
      "step": "3. Виза",
      "question": "На каких условиях пустить?",
      "checked_by": "Политика сайта и итог карантина",
      "outcomes": "Полная · ограниченная · отказ"
    },
    {
      "step": "4. Выход",
      "question": "Есть ли виза?",
      "checked_by": "Правило сервера или CDN",
      "outcomes": "Доступ (200) · «зайдите позже» (429) · доступ закрыт (403)"
    }
  ],
  "visa": [
    {
      "grade": "Полная",
      "when": "Правило разрешает, паспорт подтверждён",
      "http": "200",
      "example": "Поисковый бот с адреса из списка оператора; агент с верной подписью запроса"
    },
    {
      "grade": "Ограниченная",
      "when": "Правило разрешает, паспорта нет",
      "http": "200 в пределах лимита, сверх — 429",
      "example": "Незнакомый бот без списков и подписи: например, 1 запрос в секунду"
    },
    {
      "grade": "Отказ",
      "when": "Запрет не соблюдён или паспорт не подтвердился",
      "http": "403",
      "example": "Бот, закрытый в robots.txt, который его не слушает; «поисковик» с чужого адреса"
    }
  ],
  "passport_methods": [
    "ip_list",
    "reverse_dns",
    "signature",
    "agent_passport"
  ],
  "principles": [
    {
      "name": "Имя — не паспорт",
      "text": "Решение о доступе не принимается по строке user-agent: её может написать кто угодно."
    },
    {
      "name": "Сначала правило, потом проверка",
      "text": "Сайт заранее и открыто заявляет политику. Проверка без заявленного правила — произвол, правило без проверки — просьба."
    },
    {
      "name": "Нет паспорта — не значит виновен",
      "text": "Агент без паспорта получает ограниченную визу, а не отказ вслепую. Отказ — подделкам и тем, кто нарушил запрет."
    },
    {
      "name": "Честный ответ",
      "text": "Отказ — это 403, ограничение — 429. Сайт не подменяет содержимое и не делает вид, что страницы нет."
    }
  ],
  "related": {
    "constitution_articles": [
      "https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-2",
      "https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-17"
    ],
    "passport_format": "https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/pasport/",
    "how_to": "https://agentfirewall.ru/model/",
    "demo": "https://agentfirewall.ru/#post"
  },
  "based_on": [
    {
      "name": "robots.txt — RFC 9309",
      "url": "https://www.rfc-editor.org/rfc/rfc9309"
    },
    {
      "name": "HTTP Message Signatures — RFC 9421",
      "url": "https://www.rfc-editor.org/rfc/rfc9421"
    },
    {
      "name": "Web Bot Auth: подпись запросов агентов; так подписывает запросы ChatGPT agent (справка OpenAI)",
      "url": "https://help.openai.com/en/articles/11845367"
    },
    {
      "name": "Visa Trusted Agent Protocol (октябрь 2025): проверка агентов подписью в платежах",
      "url": "https://corporate.visa.com/en/sites/visa-perspectives/newsroom/visa-unveils-trusted-agent-protocol-for-ai-commerce.html"
    },
    {
      "name": "Идея паспорта ИИ-агента: «Билайн», 6 октября 2026",
      "url": "https://beelinenow.ru/articles/beeline-predlagaet-vvesti-pasport-ii-agenta/"
    },
    {
      "name": "Черновик IETF Agent Passport System (draft-pidlisnyi-aps)",
      "url": "https://datatracker.ietf.org/doc/draft-pidlisnyi-aps/"
    }
  ],
  "cite": "«Фаервол для агентов», модель 1.0 (19 октября 2026 г.), ООО «САРМАТЕХ» — https://конституция-агента.рф/faervol/"
}
