Обмен PDF с шифрованием на стороне клиента — объяснение по существу.
«Сквозное шифрование» часто употребляют неточно. Здесь — реальный криптографический механизм за ссылкой на PDF с шифрованием на стороне клиента: AES-256-GCM, обращение с ключом, режим фрагмента и парольной фразы и то, чего сервер буквально не может сделать. Замечание: «нулевое знание» на этой странице означает, что у сервера нет сведений, способных расшифровать ваш файл, а не формальные доказательства с нулевым знанием (ZKP) — продукт ZKP не использует.
Что здесь означает «нулевое знание»
Сразу важное уточнение: эта система не использует доказательства с нулевым знанием (ZKP). Под «нулевым знанием» на этой странице понимается более слабое, но практически полезное свойство: сервер, хранящий ваш общий файл, не обладает никакими сведениями — ни криптографическими, ни операционными, — которые можно было бы использовать для его расшифровки. Ключ никогда не попадает на сервер, поэтому сервер ни при каких обстоятельствах не может его раскрыть. Механизм — обычное шифрование на стороне клиента плюс ключ, который перемещается только во фрагменте URL (или выводится из парольной фразы, которую сервер никогда не видит).
window.crypto.subtle. Поддаётся проверке в DevTools.Как строится ссылка на PDF с шифрованием на стороне клиента
Пошаговое объяснение, что делают браузер отправителя, сервер и браузер получателя — с реальными вызовами Web Crypto.
Режим фрагмента и режим парольной фразы
Два способа доставки ключа получателю. Та же гарантия шифротекста, разные компромиссы между удобством и риском утечки.
Ключ перемещается в хеше URL (#)
Самый простой сценарий: скопировать ссылку, вставить в чат получателю — готово. Часть URL после # ни один соответствующий стандартам браузер не отправляет ни на один веб-сервер — именно это и сохраняет ключ в тайне.
- Один шаг для получателя — кликнуть по ссылке.
- Низкое трение, подходит для обмена низкой и средней чувствительности.
- Риск: если ссылка утечёт через скриншот или синхронизацию браузера, файл утечёт вместе с ней.
- Используйте, когда доверяете каналу (мессенджер с подписью, внутренний чат).
Ключ выводится из парольной фразы (PBKDF2)
Отправитель выбирает парольную фразу. Браузер выводит 256-битный ключ через PBKDF2-SHA256 с 310 000 итераций над случайной 128-битной солью. Соль хранится на сервере; парольная фраза передаётся вне канала (по телефону, в Signal, лично).
- Двухфакторный обмен: ссылка и парольная фраза идут раздельно.
- Одной ссылки недостаточно — шифротекст остаётся нечитаемым.
- Сила парольной фразы важна: 310k итераций замедляют перебор, но не спасут 6-символьную фразу.
- Используйте, когда ссылка может быть переслана или сохранена там, чему вы не вполне доверяете.
| Свойство | Режим фрагмента | Режим парольной фразы |
|---|---|---|
| Носитель ключа | Хеш URL (#) | Парольная фраза + соль |
| Сервер когда-либо видит ключ | Нет | Нет |
| Сервер хранит | Шифротекст + IV | Шифротекст + IV + соль |
| Усилия получателя | Кликнуть по ссылке | Кликнуть по ссылке + ввести парольную фразу |
| Утекаемо через скриншот | Да (ссылка = ключ) | Нет (одной ссылки недостаточно) |
| Устойчив к перебору | 256-битная случайность | Зависит от парольной фразы |
| Лучше всего для | Малотрудозатратный обмен по доверенным каналам | Обмен повышенной чувствительности |
Почему шифротекст, хранящийся на сервере, всё равно защищает вас
Часто спрашивают: «если он на вашем сервере, как это приватно?» Ответ: шифротекст — это не файл. Без ключа это просто случайные на вид байты. Что это значит на практике:
warningЧестные ограничения
Шифрование на стороне клиента не решает проблему безопасности конечной точки. Вредоносное ПО на устройстве отправителя или получателя может украсть ключ из памяти. Скомпрометированное расширение браузера может прочитать расшифрованный файл. А пересланная ссылка в групповом чате сводит на нет любую криптографическую гарантию. Архитектура повышает стоимость взлома; она не устраняет весь риск.
Шифрование на стороне клиента и другие «безопасные» варианты
Чёткое сравнение распространённых вариантов обмена PDF. Большинство опций, помеченных как «безопасные», шифруются только в транспортном слое — они защищают данные в пути, но принимающий сервер по-прежнему хранит открытый текст и ключ.
| Вариант | TLS при передаче | Сервер может прочитать файл | Истечение срока | Учётная запись получателя |
|---|---|---|---|---|
| Вложение в письме | Обычно да | Да — на каждом узле | Навсегда | Не требуется |
| Обычная облачная ссылка | Да | Да | По желанию | Иногда |
| PDF, защищённый паролем | Да | Да (если хост хранит файл) | Никогда | Не требуется |
| PDF Pro (режим фрагмента) | Да | Нет | 24 ч / 30 д | Не требуется |
| PDF Pro (режим парольной фразы) | Да | Нет | 24 ч / 30 д | Не требуется |
Связанное чтение
Обмен на доверии против нулевого знания живая гонка
Цель та же — поделиться PDF. Смотрите, как две модели доверия финишируют бок о бок.
- Загрузить PDF на сервер
- Сервер хранит открытый текстОткрытый текст
- Сервер обещает удалитьДоверие
- Риск взлома на их сторонеРиск
- Получатель скачивает открытый текстРаскрыт
- Зашифровать PDF в браузереE2E
- Сервер хранит только шифротекстНулевое знание
- Получатель расшифровывает локальноГотово
Часто задаваемые вопросы
Что на самом деле означает обмен PDF с шифрованием на стороне клиента?
Какое шифрование PDF Pro использует для обмена с шифрованием на стороне клиента?
В чём разница между режимом фрагмента и режимом парольной фразы?
#), который браузеры никогда не отправляют ни на один сервер. Любой, у кого есть полная ссылка, может расшифровать. В режиме парольной фразы ключ выводится из парольной фразы, выбранной отправителем; без неё шифротекст остаётся нечитаемым. Режим парольной фразы безопаснее, если ссылка утечёт; режим фрагмента проще для обмена с малым трением. См. сравнительную таблицу выше.Действительно ли фрагмент URL безопасен как носитель ключа шифрования?
#) на сервер. Она остаётся на стороне клиента и видна только JavaScript, выполняемому во вкладке получателя. Именно поэтому сама ссылка для обмена становится учётными данными для расшифровки — ключ движется вместе с получателем, а не с загрузкой. Это можно проверить во вкладке Network вашего браузера: URL запроса обрезается на ? или #.Могут ли PDF Pro или суд прочитать файлы, сохранённые при обмене с шифрованием на стороне клиента?
Что произойдёт, если я потеряю ссылку или забуду парольную фразу?
Бесплатен ли обмен PDF с шифрованием на стороне клиента?
Нужна ли получателю учётная запись?
Отправьте одну сквозно зашифрованную ссылку. Пусть истекает по расписанию.
Шифрование AES-256-GCM в вашем браузере. Без регистрации, без открытого текста на сервере, без восстановительного бэкдора.
sendСоздать зашифрованную ссылку