в браузерешифрованиебезопасность

Зашифрованная записка

Шифрует текст или файл паролем прямо в браузере. Получается кусок текста, который можно спокойно отправить в любом чате, — со сроком жизни и QR-кодом для телефона.

Пароль передай отдельно — и записку прочитает только тот, кому она.
ИнКа

Смотрю во вкладку «Сеть» — там пусто. Как и должно быть.

Бит, дрон ИнКи
Выход в интернет

Не выходит

  • Всё считается прямо на странице: текст и файлы никуда не уходят
  • Проверь сам: инструменты разработчика (F12) → вкладка «Сеть»

Зачем это

Пароль от Wi-Fi для соседки, данные карты для мамы, скан паспорта для турагента — в переписке это остаётся навсегда: в истории, в облачной копии чата, на телефоне, который потом кто-то возьмёт «позвонить». Записка превращает это в бессмысленный набор символов. Прочитает только тот, у кого есть пароль.

Как пользоваться

  1. Напиши текст или выбери файл, придумай пароль — лучше фразу.
  2. Выбери, сколько записка живёт: час, сутки, неделю — или без срока.
  3. Нажми «Зашифровать» и отправь то, что получилось, в любом чате. Там уже есть подсказка для получателя, куда это вставить. Нужно перекинуть на свой телефон — открой «QR-код» и наведи камеру: страница откроется сразу с запиской.
  4. Пароль передай другим путём: голосом, при встрече, в другом мессенджере. Записка и пароль в одном чате — это как ключ под ковриком у двери.
  5. Получатель открывает эту страницу, вставляет записку во «Расшифровать» и вводит пароль.
ИнКа с телефоном: отправит записку в любом чате

Как это устроено

  • Пароль превращается в ключ через PBKDF2-SHA256, 600 000 повторов — так рекомендует OWASP. Это делает перебор паролей медленным.
  • Шифрование — AES-256-GCM: оно же и проверяет целостность. Если в записке изменили хоть один символ или пароль не тот, расшифровка просто не получится — подсунуть подделку не выйдет.
  • Всё считается в браузере встроенным WebCrypto. Ни текст, ни пароль никуда не отправляются, на сервере ничего не хранится.
  • Срок жизни лежит внутри шифра, рядом с текстом. Поменяешь дату — сломается проверка целостности, и записка не откроется вовсе.
  • QR-код — это ссылка на эту страницу, а записка в ней после #. Эту часть адреса браузер на сервер не отправляет, так что и по QR записка до нас не доходит. Открылась — страница сразу убирает её из адресной строки.
ИнКа поправляет очки: сейчас разберёмся

Чего записка не умеет

  • Не самоуничтожается по-настоящему. Срок жизни — договорённость, которую соблюдает эта страница: после срока она записку не откроет. Но сама записка лежит в чате, пока её не удалят, и тот, у кого есть пароль и желание написать свой код, прочтёт её и после срока. Срок защищает от «случайно нашёл через полгода», а не от упорного получателя. Пароль по-прежнему главное.
  • Не спасёт, если пароль слабый. «123456» подберут за секунду — и никакие AES не помогут.
  • Не защитит расшифрованное. Если получатель сделает скриншот, это уже его ответственность.
ИнКа скрестила руки: этого записка не умеет