Как Rabbithole проверяет ваши файлы
Почему это важно
Когда файл хранится вне браузера, возникают два разных вопроса:
- Может ли кто-то прочитать файл?
- Может ли кто-то заменить файл так, чтобы вы этого не заметили?
Шифрование отвечает на первый вопрос. Проверка файла отвечает на второй.
Если файл незаметно подменят по пути к вам, Rabbithole не должен открыть его.
Вместо подменённого файла вы увидите ошибку загрузки или проверки целостности.
Проверка для Blob Storage

При Blob Storage браузер не доверяет gateway-сервису вслепую.
Запросить у канистры ожидаемые данные о файле
Браузер получает у канистры ожидаемый хеш файла и связанные метаданные.
Проверить, что эти данные действительно подлинные
Метаданные передаются через механизм сертификации Internet Computer, поэтому браузер может проверить, что они действительно пришли от вашей канистры.
Сравнить скачанный файл с этим хешем
Если файл не совпадает, браузер отвергает его до открытия.
Проверка для On-chain Storage
При On-chain Storage внешнего gateway-сервиса хранения в пути файла нет, поэтому и путь проверки получается проще.
При этом браузер всё равно проверяет полученные данные до расшифровки, просто здесь не нужен отдельный внешний путь доставки файла.
Что именно сертифицирует Internet Computer
Для Blob Storage Rabbithole сертифицирует метаданные, которые говорят браузеру, какой именно файл он должен ожидать.
Сюда входят, например:
- хеш файла
- размер файла
- тип содержимого
Это позволяет обнаружить подмену ещё до расшифровки.
Что браузер проверяет локально
Браузер заново вычисляет хеш скачанного файла и сравнивает его с сертифицированным значением из канистры.
Только если они совпадают, начинается расшифровка.
Сертификация доказывает, что ожидаемые метаданные действительно пришли от вашей канистры.
Локальная проверка доказывает, что скачанный зашифрованный файл совпадает с этими метаданными.
Технические детали
Сертифицированные метаданные и локальное хеширование
Путь Blob Storage
Для Blob Storage браузер выполняет две связанные проверки:
- Проверяет сертифицированные метаданные, которые вернула ваша канистра.
- Локально хеширует скачанный blob и сравнивает его с сертифицированным хешем.
Сертифицированные метаданные сейчас включают:
- ожидаемый хеш файла
- размер файла
- тип содержимого
Сначала браузер проверяет, что эти метаданные действительно сертифицированы Internet Computer, а затем проверяет, что скачанный blob побайтно совпадает с ожидаемым значением.
Какой хеш используется
Rabbithole использует SHA-256 для сертифицированного хеша файла и для локального сравнения в браузере.
Почему сертификации и хеширования недостаточно по отдельности
- Сертификация доказывает, что ожидаемые метаданные действительно пришли от вашей канистры.
- Локальное хеширование доказывает, что скачанный blob совпадает с этими метаданными.
Обе проверки нужны одновременно. Одна только сертификация не доказывает, что gateway-сервис отдал правильный файл. Одно только локальное хеширование не доказывает, что ожидаемый хеш был надёжным.
Путь On-chain Storage
При On-chain Storage отдельного внешнего слоя доставки нет, поэтому путь проверки короче:
- браузер скачивает данные файла из канистры
- браузер всё равно проверяет целостность до открытия
- расшифровка начинается только после успешной проверки