VKCipher: сквозное шифрование для переписки ВКонтакте
Это браузерное расширение, которое добавляет end-to-end шифрование в веб-версию ВКонтакте(и в pwa мессенджер). Работает везде: iPhone /Windows / Mac / Linux / Android
Что умеет:шифрует сообщения, картинки и видео.В планах еще голосовухи.
Репозиторий: VKCipher
Работает через Tampermonkey / Userscripts: Chrome на пк, Safari на iPhone, Firefox на Android. Открываете vk.com, vk.ru или web.vk.me, заходите в чат — в поле ввода появляются кнопки шифрования и управления ключами.

Зачем
У ВК есть огромный плюс: он уже установлен у миллионов людей. У него же есть очевидный минус: обычная переписка не является end-to-end encrypted
VKCipher закрывает именно этот слой. Не пытается заменить мессенджер, не делает VPN, не обещает анонимность. Он делает одну вещь: содержимое сообщения уходит в ВК уже зашифрованным.
ВК, браузерный интерфейс, логи, бэкапы, случайный доступ к аккаунту или серверной стороне видят не текст, а строку вида:
ENC[key<id>:base64(iv ciphertext tag)]
Без ключа это не сообщение, а мусор.
Как устроено?
Криптография не самописная. Используется AES-256-GCM через нативный Web Crypto API браузера. Для каждого сообщения генерируется новый 12-байтный IV/nonce. GCM-tag проверяет целостность: если шифротекст повредили или подменили, расшифровка падает.
Ключи можно получить двумя способами:
Seed-фраза Пользователь вводит фразу, из неё через PBKDF2-SHA256 генерируются k1…k4.
64-hex ключ Можно добавить свой ключ вручную или сгенерировать временный [РЕКОМЕНДУЮ ВРЕМЕННЫЙ НА КАЖДЫЙ ЧАТ И РОТИРОВАТЬ ЕГО РЕГУЛЯРНО].
Seed-фраза не сохраняется.
Сейчас VKCipher умеет:
шифровать исходящие сообщения кнопкой;
автоматически шифровать сообщение при Enter;
расшифровывать входящие(текст/картинки/видео) прямо в чате;
переключать [шифр] / [текст];
работать в личках, беседах и групповых чатах;
использовать несколько слотов ключей;
генерировать временный ключ;
кодировать шифротекст не только Base64, но и emoji-алфавитом.
Последнее не про криптографию, а про UX. Иногда приятнее видеть стену из эмодзи, чем технический Base64. А вероятность такого текста в обычной переписке выше, чем обычного Base64.
Почему не Telegram / Мой_Любимый_Мессенджер?
Потому что это другой сценарий. В Telegram сквозное шифрование есть только в секретных чатах, а обычные чаты — не зашифрованы(Многие этого не знают).VKCipher нужен не для того, чтобы спорить, какой мессенджер «правильный». Он нужен для ситуации, где люди уже сидят во ВК и не хотят/не могут переезжать.
Приватность должна быть не религиозным выбором мессенджера, а функцией, которую можно включить там, где уже идёт общение.
Threat model
VKCipher защищает содержимое сообщений.Он не скрывает:
факт переписки;
участников переписки;
время отправки;
размер сообщения;
IP-адрес;
сам факт использования ВК;
текст, если устройство уже скомпрометировано;
ключ, если пользователь сам отправил его в тот же чат.
То есть это не Tor, не VPN и не «режим невидимости». Это именно E2EE-слой поверх существующего транспорта.
Почему открытый код важен
Криптографический инструмент без открытого кода — это «поверьте нам». Мне такой подход не нравится. Поэтому код открыт. Можно проверить реализацию. Плюс можно добавить Макс/Телеграм/Мой_Любимый_Мессенджер
Если найдёте проблему — issue/PR приветствуются.
Итог
VKCipher — это маленький слой приватности поверх ВК. Не новый мессенджер, не новый клиент. Не самодельный шифр. Не магия. Не анонимность.
Просто нормальный AES-256-GCM в привычном чате, с открытым кодом и установкой за несколько секунд.
Репозиторий: VKCipher
Расширение не является продуктом ВКонтакте.
UPD: Все спрашивают банят ли аккаунты? Уже 2 месяца 50к сообщений с друзьями написали, банов нет. Но используйте доп аккаунт (ВК FAQ:Как добавить несколько профилей)
UPD 2: VKEncrypt было занято другим (закрытым) расширением, переименовал в VKCipher