Главная Генератор Проверка Приватность Сжечь ссылку Файловый ящик

Почему криптографический расчёт должен оставаться в браузере

Если генератор, проверка и шифрование файлов идут на сервере, открытый текст лишние мгновения живёт в транзите, логах и памяти. Локальный Web Crypto возвращает расчёт на устройство; откройте вкладку Сеть и проверьте, ушёл ли секрет.

Откройте «онлайн-генератор», нажмите создать и посмотрите вкладку Сеть. Если в теле или query только что появился пароль, открытый текст уже покинул устройство. Бренд тут ни при чём: браузер сам раскладывает трафик.

Оставить расчёт в браузере — не лозунг о децентрализации. Это сжать окно открытого текста до устройства: меньше транзита, меньше серверного лога, меньше шанса прочитать дамп. MyPassGen так устроен. Эта заметка не обзор продукта, а ответ: чувствительный расчёт не должен по умолчанию уходить на сервер.

Какое окно открывает серверный расчёт

Окно открытого текста — где реально живёт текст (или ключ, который его восстанавливает). Если считает сервер, это не миг отправки, а цепочка, которую трудно стереть:

  • TLS-сессия до источника: процесс сервера видит уже расшифрованный запрос.
  • Сэмплы тел в прокси, WAF, APM и ошибках; один 500 может унести форму в отчёт о падении.
  • Логи приложения и access log с query. Ключ в ?key= пишется в access log.
  • Промежуточные файлы, бэкапы и реплики.
  • Время, пока эксплуатация, поддержка или злоумышленник касаются любой копии. «Удалим после» не отменяет, что окно уже было.

Юрисдикция и подрядчики делают «мы не смотрим» труднопроверяемой фразой. Проверяются протокол и трафик, не внутренний регламент ЦОД.

Для генерации это особенно резко: нужен секрет, которого ещё нигде не было. Если он родился в чужой машине, первая копия не ваша.

Для проверки то же: отдать привычный пароль удалённому сервису — отдать самый чувствительный навык. MyPassGen не загружает проверяемый пароль; энтропия и список утечек считаются в браузере.

Для файлов схема «загрузить → зашифровать → скачать» оставляет пароль и содержимое в памяти сервера. Локальный поток не даёт серверу открытого текста.

HTTPS — это не локальный расчёт

TLS закрывает подслушивающего на пути, не сервер на той стороне. Если он считает за вас, ему нужен открытый текст. Локальный расчёт отвечает на другое: той стороне этот материал видеть не следует.

Какой слой называется «локальным»

Процесс на вашей машине, не «в облачном аккаунте»

У MyPassGen локально — это вкладка: случайность из crypto.getRandomValues, симметрия через Web Crypto. Ключевой материал живёт в короткоживущем CryptoKey и не уходит полем аналитики.

Алгоритм и лимит файла — проверяемые факты

Только AES-256-GCM. Ящик обрабатывает файл потоком, лимит 5 ГБ, выход .lock или .enc.

Локально — место расчёта; инструменты открываются без аккаунта

Генератор, проверка, приватность, одноразовая ссылка и ящик открываются без регистрации. Локально описывает, где считают, а не то, что открытый текст «никогда не может» уйти: одноразовая ссылка ненадолго отдаёт шифротекст серверу.

ВозможностьОткрывается сразу?Загружается ли чувствительное?
Случайный / читаемый парольДаНет; создаётся в браузере
ПроверкаДаПароль не загружается; сила и список локально
Clean Link / маскированиеДаURL и текст локально; не в аналитику
Создание одноразовой ссылкиДаУходит шифротекст, не исходник
Чтение ссылкиОткрыто получателюКлюч в фрагменте #, не с HTTP
Файловый ящикДаФайл и пароль не загружаются; поток AES-256-GCM

Одноразовая ссылка — единственный путь с серверным хранением, и хранится шифротекст. Ключ после #. Получатель не регистрируется. После первого чтения шифротекст сжигается. Нулевое знание — не «ничего не храним», а «даже храня, не откроем».

Проверить в Сети, ушло ли чувствительное

01

Начните с генератора. Случайный и читаемый должны создаваться сразу. Не путайте статику с загрузкой пароля.

02

Откройте Сеть и Preserve log. Сначала Fetch/XHR, затем все запросы.

03

Сгенерируйте узнаваемую строку. Скопируйте и ищите её в Сети.

04

Смотрите URL, Query и Payload. Если совпадений нет, при «создать» открытый текст не ушёл как HTTP.

05

Повторите на других инструментах. Проверка не должна слать пароль; очистка — POST исходника; ящик — multipart открытого файла.

06

На одноразовой ссылке смотрите шифротекст и fragment. На сервер уходит шифр, не текст. Ключ после #. Получатель не входит.

Что это доказывает и чего нет

Сеть показывает, попал ли открытый текст в HTTP в этом действии. Расширения, XSS и корпоративный прокси она не видит.

Что должно быть локальным

На устройстве должно остаться то, что нельзя отозвать: новый пароль, проверяемый пароль, текст для маскирования, открытый файл, симметричный ключ.

Уйти может то, что серверу криптографически бесполезно: blob одноразовой ссылки и статика без секретов. Аккаунтов и хранилища паролей нет.

Границы и ошибки

Local-first снижает сервер и транзит, не заражённый компьютер. XSS читает поле. Расширения и SSL-прокси компании видят страницу. «Не загружается» — не «без сети»: страница всё равно ходит за скриптами. v1 — AES-256-GCM. Чтение ссылки без регистрации. Мы не утверждаем, что сервер видит открытый текст или ключ.

С чего начать проверку

Дешевле всего генератор: откройте Сеть и найдите только что созданную строку. Файл, который нельзя класть на диск открытым, — ящик, до 5 ГБ, .lock / .enc. Короткий секрет на один раз — сжечь ссылку: ключ после #. Эта заметка просит ответить: после клика открытый текст ещё во вкладке?