Проблема
Кто-то скидывает напарнику ключ от прода в Slack. Кто-то отправляет пароль от админки в Telegram «на пять минут». Кто-то — себе же в «Заметки», чтобы не забыть.
Это удобно. Но это не временно.
Сообщение в мессенджере — не записка, которая исчезает. Это запись:
- в истории чата у вас и у получателя;
- в облачной копии телефона;
- на серверах мессенджера;
- иногда — в логах корпоративных систем мониторинга.
Любой, кто получит доступ хотя бы к одной из копий, получит и пароль. Через год. Через пять. Когда вы уже забудете, что его пересылали.
Цена ошибки
Утечки происходят не из-за плохих паролей. Они происходят из-за того, что пароли лежат там, где их не должно быть.
- По отчёту Verizon DBIR за 2024 год украденные учётные данные — один из главных векторов взломов: они задействованы примерно в каждом третьем инциденте.
- IBM оценивает средний ущерб одной компании от утечки данных в $4,88 млн.
- Мировой рынок кибербезопасности — больше $200 млрд в год. Это деньги, которые компании тратят на защиту того, что их же сотрудники сливают в чат.
На бюджеты Microsoft и Сбера вы не повлияете. Но можете не оставлять секрет в истории переписки.
Как работает Getsecret
Идея простая: сервер не должен знать, что вы пересылаете.
Когда вы создаёте секрет, всё происходит в браузере:
- Браузер генерирует случайный ключ. Никто, кроме вас, его не видит.
- Этим ключом браузер шифрует ваш текст алгоритмом AES-256-GCM. На сервер уходит только зашифрованная строка — без ключа её не прочитать.
- Сервер сохраняет два элемента: зашифрованный текст и отпечаток токена доступа. Третий элемент (сам ключ) кладётся в адрес ссылки после символа
#.
Ссылка выглядит так:
https://getsecret.app/s/abc123#xyz789
Часть после # называется фрагментом. Браузеры устроены так, что фрагмент никогда не отправляется на сервер. Это не наше изобретение — так работает интернет с конца девяностых. Фрагмент остаётся у вас и используется только локально.
Что это значит на практике:
- Ключ не попадает в наши логи.
- Ключ не попадает в логи провайдеров между вами и нами.
- Ключ не виден тому, кто перехватит трафик.
Когда получатель открывает ссылку, его браузер достаёт ключ из #, скачивает с сервера зашифрованный текст и расшифровывает его прямо в браузере. После первого просмотра сервер удаляет запись. Восстановить её нельзя — ни нам, ни вам.
Пароль поверх ссылки
Если есть риск, что ссылка попадёт не тому человеку, поставьте на секрет пароль при создании. Тогда одной ссылки мало — без пароля её не открыть.
Как это работает:
- Пароль не уходит на сервер. Браузер по нему вычисляет второй ключ (PBKDF2-SHA256, 600 000 итераций) и шифрует секрет ещё раз — поверх первого слоя.
- Сервер хранит только отпечаток для проверки. Подобрать пароль по отпечатку нельзя.
- На пятой неправильной попытке сервер удаляет запись. Перебирать пароль бессмысленно — секрет уничтожится раньше, чем подберётся.
Смысл появляется, когда ссылку и пароль вы отправляете разными каналами. Ссылка уходит в Slack, пароль — голосом или в SMS. Утечёт один канал — у злоумышленника останется только зашифрованный мусор.
Что Getsecret не делает
Технология не отменяет здравый смысл.
- Если вы отправите ссылку в тот же чат, где обычно пишете пароли, проблема не решена — ссылку прочитают первой.
- Если на устройстве получателя уже есть вредоносная программа, она увидит секрет вместе с получателем.
- Если ссылка без пароля ушла не тому человеку и он её открыл, отозвать её мы не можем.
Getsecret снимает один конкретный риск — след в истории. Не больше и не меньше.
Полная картина — что защищаем, от кого и где явно бессильны — в модели угроз.