← На главную

Веб-криптография фикция: сервер подменяет JS, Meta использует E2E как трюк

05.07.2026 08:01 · hackernews

Веб-криптография — это всегда «змеиное масло». Любые сервисы в браузере, которые обещают «end-to-end» шифрование (файлообменники, менеджеры паролей, криптокошельки), врут. И не могут не врать, потому что веб-платформа не даёт нужных механизмов.

Автор формулирует закон: криптосистема бессмысленна, если её реализацию распространяет тот же субъект, от которого она должна защищать. В вебе код клиента всегда отдаёт сервер. Если сервер захочет сжульничать, он просто пришлёт другой JavaScript. Защита от посторонних уже работает через TLS, так что никакого дополнительного профита от «E2E» нет. Проблема врождённая, исключений не бывает.

Этот закон работает и за пределами веба: проприетарные WhatsApp и Signal сами распространяют клиентов и запрещают сторонние — их «E2E» такая же фикция. Любую такую систему можно считать backdoored: вендор в любой момент может обойти шифрование.

Зачем же компании вроде Meta вбухивают деньги в этот цирк? Ответ — юриспруденция, а не безопасность. Приняв snake oil «E2E», компания театрально разводит руками перед ордером: «Мы бы рады, но ничего не можем сделать». Обработка запросов — это затратный центр, а магия шифрования позволяет от него откосить. На деле компания может выпустить обновление с закладкой, но делает ставку на юридическую теорию: «вы не можете заставить нас это сделать». Это не криптография, а «cryptography theatre» — правовой трюк.

Проблема в том, что правительства с этой теорией не согласны. Два кейса: инцидент с Lavabit (владельца заставляли скомпрометировать код, чтобы прочитать почту Сноудена; он предпочёл закрыть сервис) и дело FBI против Apple (хотели заставить выпустить уязвимую прошивку для взлома iPhone; отступили, только найдя обходной путь). Оба раза власти доказывали, что могут принудить.

Рассчитывать на эту «магию» опасно. Любое новое решение суда может её разрушить. К тому же, правительства рутинно нарушают законы ради слежки (программа PRISM).

Можно ли это починить? Теоретически — привязать service worker через Subresource Integrity (SRI) хэш, чтобы браузер намертво зафиксировал код клиента. Но это модель TOFU (доверие при первом подключении), пользователю нужно проверять хэш вручную, работает, только если все запросы через service worker, и есть риск навсегда «убить» сайт при ошибке (как с HTTP Public Key Pinning, который уже отключили). Суть в том, что веб спроектирован так, что код и сервис связаны. Разорвать эту связь для нормальной криптографии — смена парадигмы, которая вряд ли случится.

Читать оригинал →