ProofSnap API

Безопасность данных в API ProofSnap: хранение в ЕС

По состоянию на октябрь 2026 г. API ProofSnap делает снимки веб-страниц на серверах в ЕС (AWS, Франкфурт), хранит каждый пакет доказательств в зашифрованном виде (AES-256), а для пакетов, созданных в рабочем режиме, создаёт резервную копию в Ирландии. Каждый пакет запечатывается хешами SHA-256 и подписью RSA-4096 и хранится 10 лет, доступ к нему разграничен. Соглашение DPA предоставляется по запросу.

Обновлено

Автор: Радим Мотычка, основатель и ведущий инженер ProofSnap. Он разработал API и описанные здесь меры защиты.

Что происходит с вашими данными при создании снимка

Создание снимка через API ProofSnap или в панели проходит в пять этапов:

  1. Вы передаёте URL по HTTPS: через API (с вашим ключом API) или в панели.
  2. Браузер на серверах ProofSnap во Франкфурте загружает страницу. Этот браузер подключается только к публичным адресам. В рабочем режиме URL также отправляется в Internet Archive, если вы этого не отключили.
  3. Для каждого файла вычисляется хеш SHA-256, а манифест подписывается. В календари OpenTimestamps и, если вы запросили квалифицированную метку времени, в Disig a.s. уходит только хеш манифеста.
  4. Запечатанный пакет хранится в зашифрованном виде во Франкфурте, а для пакетов, созданных в рабочем режиме, создаётся вторая копия в Ирландии.
  5. Когда пакет готов, вы скачиваете его или получаете подписанный вебхук.

Где хранятся данные

Для хранения и защиты данных API ProofSnap использует четыре сервиса:

API
Amazon Web Services в ЕС, Франкфурт (eu-central-1).
Данные аккаунта и снимков
Google Cloud Firestore в ЕС, Франкфурт (europe-west3).
Вход в аккаунт
Firebase Authentication, глобальный сервис Google.
Пакеты доказательств
Amazon S3 в ЕС, Франкфурт (eu-central-1). У каждого пакета, созданного в рабочем режиме, есть вторая копия в Ирландии (eu-west-1).

Что обрабатывается за пределами ЕС

Пакеты доказательств и данные снимков остаются во Франкфурте и Ирландии. Сервисы за пределами ЕС могут обрабатывать только следующие данные:

Снимок на сервере

Страница загружается, и снимок с неё делается на серверах ProofSnap, а не на вашем компьютере. Вы передаёте URL и получаете запечатанный пакет доказательств. Браузер, который делает снимок, подключается только к публичным адресам: частные IP-адреса, loopback-адреса и адреса облачных служб метаданных отклоняются, в том числе после перенаправления.

По умолчанию URL страницы в рабочем режиме также отправляется в Internet Archive (web.archive.org), чтобы могла появиться независимая публичная копия. URL, похожие на приватные (например, ссылки для входа, сброса пароля или общего доступа) или содержащие токен, не отправляются никогда, а URL с параметрами запроса отправляется только в том случае, если вы зададите параметру снимка external_archive значение true. Задайте значение false, чтобы полностью отключить архивирование. Результат архивирования фиксируется в пакете.

Как запечатывается каждый пакет

Хеши
Для каждого файла доказательств в пакете вычисляется хеш SHA-256, который записывается в файл manifest.json.
Подпись
Файл manifest.json подписывается ключом RSA-4096, созданным только для этого пакета. После подписания закрытый ключ удаляется, а открытый ключ добавляется в пакет. Подпись подтверждает целостность пакета.
Метка времени в блокчейне Bitcoin
Хеш манифеста отправляется в календари OpenTimestamps для привязки к блокчейну Bitcoin. После подтверждения привязки полное доказательство метки времени сохраняется вместе с пакетом; оно показывает, что пакет существовал не позднее момента привязки. Если доказательство метки времени добавить не удалось, это указывается в пакете.
Квалифицированная метка времени
По вашему запросу (только с рабочими ключами API; каждая метка оплачивается отдельно) ProofSnap запрашивает квалифицированную электронную метку времени (RFC 3161) у Disig a.s., квалифицированного поставщика доверительных услуг из доверенного списка ЕС. Если метку времени добавить не удалось, это указывается в пакете.
Проверка без подключения к интернету
Каждый пакет содержит скрипты проверки (verify.sh для macOS и Linux, verify.ps1 для Windows), с помощью которых его можно проверить офлайн и независимо от ProofSnap.

Реестр выданных пакетов

ProofSnap записывает в реестр хеши манифестов всех выданных им пакетов. Любой может проверить хеш через GET /v1/ledger/{hash}: если хеш есть в реестре, это подтверждает, что ProofSnap выдал именно этот пакет. Подробности об эндпоинте приведены в документации API.

Резервная копия во втором регионе ЕС

Каждый пакет доказательств, созданный в рабочем режиме, копируется в отдельное хранилище Amazon S3 в другом регионе ЕС (Ирландия). Копия появляется в течение нескольких минут после создания пакета, а эндпоинт GET /v1/captures/{id} показывает состояние этой копии для каждого снимка. Копия удаляется вместе с оригиналом. Пакеты, созданные в тестовом режиме, не копируются.

Срок хранения

Доказательства хранятся 10 лет с даты снимка. Для страницы, снимки которой делаются по расписанию, срок отсчитывается с момента, когда в последний раз было установлено, что зафиксированная версия всё ещё актуальна:

После окончания подписки у вас есть 30 дней, чтобы скачать все свои данные. В тарифе «Archive only» ваши доказательства остаются доступными для чтения, скачивания и проверки, даже если вы больше не делаете новых снимков.

Удаление

Пакет, который вы удаляете в панели или через API, сначала попадает в корзину, откуда его можно восстановить в течение 30 дней. Затем все сохранённые версии удаляются из обеих копий. Если вы выбираете безвозвратное удаление, пакет удаляется сразу. По истечении срока хранения или 30 дней, отведённых на скачивание данных аккаунта, все сохранённые версии удаляются тем же способом. Снимок под юридическим удержанием нельзя удалить, пока удержание действует. Кто и когда удалил пакет, фиксируется; само содержимое не сохраняется.

Кто имеет доступ к снимкам

Ключи API
Полный ключ хранится только в виде хеша SHA-256 и показывается один раз, при создании. Отозванный ключ перестаёт работать в течение 60 секунд. В тарифе Website Archive ключи API дают доступ только на чтение: с их помощью можно просматривать, скачивать и проверять снимки и управлять подписками на вебхуки. Снимки и расписания в этом тарифе запускаются в панели.
Вход в панель
Firebase Authentication. Прежде чем создавать ключи, запускать снимки или покупать тариф, нужно подтвердить адрес электронной почты.
История доступа
Если снимок скачивает, проверяет, перемещает в корзину, восстанавливает или удаляет не автор, а другой пользователь (например, владелец корпоративного аккаунта или сотрудник, назначенный на дело), это отражается в истории снимка.
Лимиты запросов
На снимки, заверения и другие платные операции действует ограничение частоты запросов на аккаунт (rate limit), общее для всех ключей этого аккаунта.

Шифрование при хранении и передаче

При передаче
Весь трафик API, панели и вебхуков идёт по HTTPS (TLS).
При хранении
Пакеты доказательств в обоих хранилищах зашифрованы алгоритмом AES-256 (шифрование на стороне сервера Amazon S3, SSE-S3: ключами шифрования управляет Amazon S3). В обоих хранилищах заблокирован любой публичный доступ.

Вебхуки: подпись и адреса доставки

Подпись
Вебхуки (webhook) подписываются HMAC-SHA256 по спецификации Standard Webhooks. Вебхуки, отправляемые на webhook_url, заданный в запросе или в расписании, подписываются секретом вебхука того ключа API, с помощью которого задан этот адрес. Этот секрет можно сменить (ротировать) с переходным периодом 24 часа. У подписки на вебхуки на уровне аккаунта есть собственный секрет подписи, который показывается один раз, при создании подписки.
Адреса доставки
Вебхуки отправляются только на публичные HTTPS-эндпоинты. Имя хоста заново разрешается и проверяется перед каждой доставкой, а соединение устанавливается только с проверенным IP-адресом, поэтому частные IP-адреса, loopback-адреса и адреса облачных служб метаданных отклоняются и после изменения DNS-записей. Перенаправления игнорируются.

Вебхуки: повторные попытки и подписки

Повторные попытки
Если доставка завершилась тайм-аутом, ошибкой соединения или HTTP-кодом ошибки (кроме 410 Gone), она повторяется до 5 раз примерно в течение 35 часов (через 5 мин, 30 мин, 2 ч, 8 ч и 24 ч) с тем же webhook-id, чтобы получатель мог отбросить дубликаты. На каждую попытку ответ ожидается не более 10 секунд.
Скачивание
В повторных доставках и в доставках по подписке на вебхуки нет ссылки для скачивания (она действует 24 часа). Получатель может запросить новую ссылку через GET /v1/captures/{id}.
Подписки на вебхуки
Подписка на вебхуки на уровне аккаунта отключается, если эндпоинт возвращает 410 Gone, после 5 дней без успешной доставки или, если она создана с помощью ключа API, при отзыве этого ключа. События хранятся 30 дней, их можно запросить через GET /v1/events.

Внешние сервисы

Оплата
Платежи обрабатывает Stripe. ProofSnap не хранит номера карт.
Служебные письма
Письма для подтверждения адреса электронной почты и письма со ссылкой для сброса пароля отправляются через MailerSend.
Метки времени
Календари OpenTimestamps и, если запрошена квалифицированная метка времени, Disig a.s. получают только хеш манифеста, а не сами доказательства.
Запросы DNS и WHOIS
Чтобы задокументировать сайт, с которого сделан снимок, имя хоста разрешается через Google Public DNS и Cloudflare DNS, а регистрационные данные домена запрашиваются в публичных сервисах RDAP и WHOIS.

Вопросы, сообщения об уязвимостях и соглашение DPA

Напишите нам на support@getproofsnap.com, если у вас есть вопросы, вы хотите сообщить о проблеме безопасности или запросить соглашение об обработке данных (DPA). Как создать аккаунт и сделать первый снимок, рассказано в руководстве «Первые шаги в ProofSnap Dashboard».

Начать бесплатно: 50 тестовых снимков