Проверьте, что ретранслятор вернул оригинальный ответ
Вставьте ответ API с доказательством в верификатор ниже. Он проверит подпись прямо в браузере и покажет, с какого официального upstream-хоста пришёл ответ и не изменил ли его ретранслятор. Данные не покидают ваш компьютер.
- Данные остаются в браузере
- Open-source верификатор
- Бесплатно, без регистрации
Проверка ответа в три шага
- 1
Включите проверку для ключа
На странице API включите для ключа переключатель «Проверка официального подключения». Доказательство есть только у ответов Claude Messages и GPT Responses, переданных без изменений.
- 2
Сохраните ответ целиком
Отправьте потоковый запрос и запишите байты ответа в файл без изменений с помощью curl -o; в конце должно быть event: tee.proof. Для непотоковых запросов добавьте заголовок x-wokey-tee-proof-mode: multipart и сохраните multipart-ответ целиком. В Windows используйте curl.exe -o, а не перенаправление > в PowerShell или пересохранение в Блокноте: они меняют переводы строк или кодировку.
- 3
Вставьте его в верификатор
Вставьте или перетащите полный ответ в верификатор ниже и запустите проверку. Она выполняется в вашем браузере на этой странице без сетевых запросов.
curl -sN https://api.wokey.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":256,"stream":true,"messages":[{"role":"user","content":"Hello"}]}' \
-o captured-responseВерификатор выше публикуется напрямую из open-source репозитория через GitHub Pages и не проходит через серверы Wokey, поэтому Wokey не может подменить его на версию, которая всегда пишет «пройдено». Можно также сохранить страницу и открыть её офлайн.
Верификатор попросит сверить PCR0 — измерение образа анклава. Используйте значение, опубликованное в open-source репозитории (любой может воспроизвести его из исходного кода), а не значение, пришедшее вместе с ответом.
Как читать результат
- Все проверки пройдены
- Аттестация выстраивается в цепочку до корневого сертификата AWS Nitro, PCR0 совпадает с опубликованным значением, подпись действительна, а байты ответа совпадают с подписанным хешем. Показанный upstream-хост (например, api.anthropic.com) — это источник ответа, и ретранслятор его не изменял.
- Доказательство действительно, но нет тела ответа
- Вы вставили только событие tee.proof. Доказательство подписано настоящим анклавом, но без тела ответа хеш пересчитать нельзя, поэтому неизменность увиденного вами содержимого не подтверждена. Вставьте ответ целиком.
- PCR0 не совпадает
- Аттестация подлинная, но в анклаве работает не проверенный образ. Считайте ответ непроверенным.
- Ошибка проверки подписи или хеша
- Доказательство или ответ были изменены, либо байты изменились при сохранении или копировании (например, при смене кодировки). Сохраните исходный ответ заново с помощью curl -o; если проверка снова не проходит, не доверяйте ответу. Если программа при сохранении заменила переводы строк на CRLF или сохранила файл в UTF-16, верификатор преобразует его обратно и сообщит об этом; результат по-прежнему определяется подписанным хешем.
- Нет tee.proof
- Ответ не подтверждён: возможно, для ключа не включена проверка, запрос прошёл через преобразование формата или анклав был недоступен. Считайте ответ непроверенным.
Как проверить другие ретрансляторы: что выявляет каждый метод и что упускает
Без подписи upstream возможны только косвенные проверки. Они выявляют очевидные проблемы, но лучший возможный итог — «ничего подозрительного не найдено», а не «подтверждено, что это официальный API». Ниже — распространённые методы и их ограничения.
| Метод | Как проверить | Что выявляет | Что упускает |
|---|---|---|---|
| Подсчёт токенов | Как проверить: Отправьте один и тот же фиксированный промпт одной и той же модели через официальный API и через ретранслятор и сравните input_tokens в usage. | Что выявляет: Модель другого вендора: токенизаторы у вендоров разные, поэтому числа заметно не совпадут. | Что упускает: Модели одного вендора часто используют общий токенизатор, так что подмену на более дешёвую модель того же семейства не заметить. Кроме того, нужно эталонное значение из официального API. |
| Кэширование промптов | Как проверить: Дважды отправьте один и тот же префикс длиннее минимальной кэшируемой длины для модели. Убедитесь, что второй ответ содержит cache_read_input_tokens и тарифицируется по цене чтения из кэша. | Что выявляет: Бэкенд, который не является официальным upstream, или ретранслятор, который ломает кэширование, но берёт полную цену. | Что упускает: Попадание в кэш показывает только, что бэкенд поддерживает кэширование, но не говорит, какая это модель. |
| Длинный контекст | Как проверить: Отправьте текст, близкий к заявленному пределу контекста, спрячьте в середине один ключевой факт и задайте вопрос о нём. | Что выявляет: Модель с меньшим контекстным окном, выдаваемую за настоящую, или ретранслятор, который незаметно обрезает историю. | Что упускает: Правильный ответ не доказывает версию модели, и эта проверка расходует больше всего токенов. |
| Детали протокола | Как проверить: Сравните порядок потоковых событий (от message_start до message_stop), формат id сообщений, заголовки и формат ошибок с официальной документацией. | Что выявляет: Грубые обёртки, которые подгоняют вывод чужой модели под формат Claude. | Что упускает: Все эти поля легко подделать; аккуратная обёртка воспроизведёт их в точности. |
На что не стоит полагаться
- Спрашивать модель «кто ты?» или «какая у тебя дата среза знаний?»: официальные модели сами часто ошибаются, а ретранслятор с помощью системного промпта может заставить любую модель называть себя Claude.
- Оценивать качество или скорость ответов на глаз: промпты, нагрузка и случайность слишком сильно на них влияют; это лишь подсказка.
Почему здесь нет проверки любого ретранслятора в один клик
- Для проверки нужно отправлять запросы с вашим API-ключом от этого ретранслятора. Пропускать их через наши серверы означало бы передать нам ключ от чужого сервиса, а хранить такие ключи мы не хотим.
- Запрос к ретранслятору напрямую из браузера не сработает: большинство ретрансляторов не разрешают кросс-доменные запросы.
- Проверки выше могут сказать только «подозрительно» или «ничего не найдено». Если упаковать их в итоговый балл, он будет выглядеть авторитетно и вводить в заблуждение.
Чек-лист для самопроверки ретранслятора
Перед выбором ретранслятора или если вы сомневаетесь в текущем, проверьте по порядку:
- Есть ли в ответе доказательство от upstream, которое можно проверить офлайн? Если да, официальный ли подписанный upstream-хост — например, api.anthropic.com для Claude?
- Совпадают ли input_tokens для фиксированного промпта с официальным API?
- После повтора длинного префикса возвращаются ли поля чтения из кэша и тарифицируется ли запрос по цене кэша?
- Обрабатывается ли контекст, близкий к заявленному пределу, без обрезки?
- Публикует ли ретранслятор, откуда берутся его мощности и логирует или хранит ли он содержимое запросов?
- Если ретранслятор нельзя проверить, не отправляйте через него секреты, данные клиентов и другую конфиденциальную информацию.
Что доказательство показывает, а что нет
Показывает
- С какого официального upstream-хоста пришёл ответ.
- Байты ответа в точности совпадают с тем, что вернул upstream, включая поле model; ретранслятор ничего не изменил.
- В анклаве работает образ, собранный из открытого исходного кода (PCR0 воспроизводим).
Не показывает
- Конфиденциальность: при пересылке ретранслятор по-прежнему обрабатывает открытый текст.
- Ответы без доказательства — например, запросы с преобразованием формата и генерация изображений.
- Повторное воспроизведение старого ответа при побайтно одинаковых запросах.
Частые вопросы
Вставленный ответ куда-нибудь загружается?
Нет. Верификатор — это страница, работающая только на стороне браузера: подписи проверяются встроенным в браузер WebCrypto без сетевых запросов. Это можно проверить на вкладке «Сеть» в инструментах разработчика или сохранить верификатор и пользоваться им офлайн.
Законно ли пользоваться AI API-ретрансляторами?
Это зависит от законов страны, где находитесь вы и ретранслятор, а также от условий использования upstream-провайдера, которые различаются по регионам и провайдерам; эта страница не является юридической консультацией. Перед использованием ознакомьтесь с условиями upstream и местными правилами, особенно если речь идёт о конфиденциальных или регулируемых данных. Этот инструмент отвечает только на один вопрос, который можно проверить технически: является ли полученный ответ оригиналом от официального upstream.
Как понять, что ретранслятор отдаёт «урезанную» модель?
Если модель через ретранслятор кажется глупее, обычно причина одна из следующих: незаметная подмена на более дешёвую модель, обрезанная история диалога, пониженный лимит вывода или отключённый режим рассуждений (thinking). Ответ с доказательством исключает первый вариант: подпись покрывает исходные байты upstream, поэтому поле model приходит от официального API. Обрезка истории и изменение параметров происходят на стороне запроса, которую доказательство ответа не покрывает; здесь помогут проверки длинного контекста и подсчёта токенов, описанные выше.
Чем зеркало Claude отличается от официального сайта?
Официальные продукты — это claude.ai и Anthropic API. Зеркало — это сторонний чат-сайт, который может работать через официальный API, общие аккаунты или модель другого вендора, со своими функциями и политикой конфиденциальности, и пользователь обычно не может понять, что именно внутри. Если вы используете API из таких инструментов, как Claude Code или Cursor, речь идёт об API-ретрансляторах, и критерий тот же: может ли сервис дать доказательство от upstream, которое вы проверите сами?
Что делать, если в ответе нет tee.proof?
Убедитесь, что для ключа включена «Проверка официального подключения» и что вы вызываете маршрут с передачей без изменений — Claude Messages или GPT Responses. Запросы с преобразованием формата, например Claude через Chat Completions, никогда не содержат доказательства. Если анклав временно недоступен, запрос переключается на резервный путь, и у такого ответа тоже нет доказательства. Любой ответ без доказательства считайте непроверенным.
Можно ли проверить этим инструментом другие ретрансляторы?
Верификатор проверяет только ответы с доказательством Proof-of-Observation. Протокол открыт, и любой ретранслятор может его реализовать; для тех, кто этого не сделал, остаются только косвенные проверки выше, и лучший возможный итог — «ничего подозрительного не найдено».