Передача секрету зашифрованим посиланням
Інструмент для обміну секретами в режимі браузера. Введіть секрет — і отримайте посилання, що шифрує все на стороні клієнта за допомогою AES-GCM 256 біт через Web Crypto API. Ключ шифрування міститься у фрагменті URL (після #) — відповідно до специфікації HTTP браузери ніколи не включають фрагменти в мережеві запити, тому ключ залишається в браузері отримувача. Реєстрація не потрібна. Порівняно з сервісами на кшталт Privnote є компроміс: у режимі браузера цей інструмент не веде бази секретів, тому не може примусово застосувати правило «переглянути один раз і видалити» — посилання розшифровуватиметься стільки разів, скільки хто завгодно з ним спробує.
Як користуватися
До ~4 КБ тексту зручно вміщується в URL у всіх популярних браузерах.
Другий рівень захисту: посилання розшифровується ключем із URL, а потім знімається шар пароля. Передайте пароль іншим каналом.
Надішліть електронною поштою, через Slack, Signal, SMS — будь-яким зручним каналом. Отримувач відкриє посилання в будь-якому браузері.
Без інсталяції та реєстрації. Просто натисніть посилання і (якщо вказано) введіть пароль. Секрет розшифровується локально і відображається.
Надішліть секрет через зашифроване посилання — шифрування відбувається в браузері, реєстрація не потрібна
Параметри
Як це працює (і чого НЕ робить)
- Шифрування AES-GCM 256 біт із випадковим ключем, згенерованим у вашому браузері.
- Ключ шифрування міститься у фрагменті URL (після #) — браузери ніколи не включають фрагменти в мережеві запити.
- Без реєстрації, бази даних і сторонніх сервісів: будь-хто з посиланням може розшифрувати секрет.
- Це не справжній режим «один раз» — будь-хто з копією посилання може розшифровувати скільки завгодно разів. Індикатор «прочитано та знищено» — лише локальна позначка в браузері глядача.
- Для справжнього режиму «один раз» скористайтеся сервісом із серверним сховищем і видаленням після прочитання. Для роботи без сервера цей інструмент — оптимальний компроміс.
Відкрити зашифрований секрет
Можливості
Часті запитання
Чи можете ви прочитати мій секрет на сервері?
У режимі браузера — ні. Ключ шифрування міститься після # в URL, і відповідно до специфікації HTTP браузери ніколи не включають фрагменти в мережеві запити, тому ключ не потрапляє на наш сервер. Зашифровані дані надходять у шляху URL (тому журнали нашого сервера можуть короткочасно фіксувати шифротекст через стандартні журнали доступу nginx), але без ключа шифротекст захищений AES-GCM-256 і не піддається розшифруванню.
Чим це відрізняється від Privnote?
Privnote зберігає зашифровані дані в базі даних і видаляє їх після першого перегляду. У режимі браузера цей інструмент не використовує базу секретів — дані знаходяться в самому URL, тому ми не можемо примусово застосувати «один перегляд». Компроміс: ключ шифрування ніколи не потрапляє на наш сервер, але посилання можна використовувати повторно. (Режим із серверним сховищем цього інструмента більше схожий на Privnote.)
Чому посилання таке величезне?
Бо секрет їде всередині нього. Адреса несе зашифрований текст, вектор ініціалізації, необов'язкову сіль і сам ключ, тому довжина посилання росте разом із довжиною того, що ви надсилаєте: чотири кілобайти тексту дають посилання приблизно на шість, а таке перетравлює будь-який сучасний браузер. Із цього випливає і будова: ніде не лежить копія, яку можна було б потім знайти, — і так само немає способу відновити секрет, якщо посилання втрачено. Два практичні наслідки. Надсилайте його цілком: посилання, розірване на два рядки, склеєне назад не спрацює. А незвично довге варто розбити на пару менших секретів.
Якщо посилання вже зашифроване, навіщо ще пароль?
Бо посилання витікають так, як не витікають секрети. Одного посилання досить, щоб відкрити секрет, — так і задумано, — а воно осяде в історії листування, у пересланому повідомленні, у знімку екрана, у логах того, що його несло. Пароль додає другий чинник, що йде іншою дорогою: посилання ви надсилаєте одним каналом, а пароль називаєте голосом, — і тепер той, хто прочитав листування, однаково нічого не відкриє. Обійдіться без пароля там, де не шкода, якщо побачить колега; ставте його скрізь, де слабке місце — сам канал, а це більшість каналів.
Скільки діє посилання?
У режимі браузера: доки хтось має URL. Стан бази даних для примусового закінчення терміну дії відсутній, тому вважайте надіслані посилання чинними, доки ви не переконаєтеся, що їх видалено з усіх пристроїв отримувачів. (У режимі із серверним сховищем застосовується явний TTL — дивіться «Діє протягом».)
Чи можна зробити справжній режим «переглянути один раз»?
Так — це режим із серверним сховищем. Він використовує серверне сховище з видаленням після прочитання, що передбачає інший рівень довіри (ви маєте довіряти серверу). Режим браузера (шифротекст у URL) доступний поруч як варіант без бази даних.
Звичайно! Просто надішліть нам коротке повідомлення з вашою ідеєю. Якщо хочете обговорити детальніше — залиште email, і ми зв’яжемося з вами. Можна залишитися анонімом.