Разбираемся почему сервис одноразовых секретных записок PrivNote считается красным.
Сразу оговорюсь, что не работаю в команде PrivNote, TimeNote, Temp или OneTimeSecret. Статью написал так как многие в ЛС и в дискуссиях спрашивают какой сервис одноразовых секретных записок использовать, и почему я не рекомендую использовать PrivNote. Я не хочу грузить вас разными IT терминами, я постараюсь объяснить все на пальцах.
В начале, чем по настоящему опасен PrivNote? - он хранит данные даже после удаления/прочтения записки, поэтому после открытия, повторно перейдя по ссылке или обновив страницу, ты видишь время когда записка была прочитана, что свидетельствует о том что на сервере остались какие-то данные о записке. Есть также другие популярные сервисы секретных записок например OneTimeSecret, Temp и TimeNote, где после прочтения записки просто не существует и отсутствуют следы, что она вообще существовала.
Для сравнения я возьму TimeNote, только потому что в отличие от остальных, у него нет ограничения на срок хранения записки.
Начнем погружение с примера TimeNote:
Тут реально существовавшая ранее записка: https://timenotez6konkktolg6om6squo3um4zizebzehpb7ynw3vrb3rzgvyd.onion/94b9648132dd6af13408b46cebb7a826
И просто придуманная ссылка заполненная буквой а: https://timenotez6konkktolg6om6squo3um4zizebzehpb7ynw3vrb3rzgvyd.onion/aaaaaaaaaaaaaaaaaaaaaaaaa
Мы прекрасно видим что они выдают один и тот же результат: The message has either been read/expired/deleted or this URL is invalid.
Это говорит что записка уже была прочитана, то-есть нельзя доказать что записка вообще была на сервере. Так же мы понимаем что записка после прочтения сразу уничтожается со всеми данными и уже неоткуда взять время прочтения.
В отличие от PrivNote, в котором, если записка реально существовала, ты увидишь таймер времени открытия, а это доказывает что записка реально присутствовала на сервере. Что хуже всего, это доказывает то что на сервере точно остались следы. И если не будет хватать доказательной базы, достаточно выйти на PrivNote и вежливо попросить у них минимальные данные вида: когда создавалась записка, с какого IP и браузера. Самое худшее, что если есть время (часть данных), на сервере может находиться и сама записка, то-есть при наличии энной, PrivNote могут выдать и сам текст записки(возможно, я не утверждаю). А это уже реальная угроза, поэтому его и называют красным сервисом.
Ну и для наглядности тот же самый пример на PrivNote:
Тут реально существовавшая ранее записка: https://privnote.com/aKDATF25#t7Cb2mtMv
И просто придуманная ссылка заполненная буквой а: https://privnote.com/aaaaaaaaaaaaaaaaaa
Отчетливо видим что в первом случае с реальной ссылкой мы получаем: Note destroyed The note with id aKDATF25 was read and destroyed 46 seconds ago (была уничтожена 46 секунд назад).
А во втором с придуманной запиской: Error 404 (то-есть PrivNote знает что такой записки не существует на сервере).
По итогу мы снова видим то, что на серверах PrivNote точно хранятся сведения о записках. Как и в каком виде, нам остаётся только догадываться. Главное они там однозначно есть и могут использоваться против вас в суде (конечно только если вы передаёте через него что-то особо важное).
В статье не стал разбирать технические аспекты и подробности архитектуры, так как записка это одно модельное приложение. Оно в своей основе содержит лишь текст шифрованный с возможностью обратной расшифровки (например crypt) и одноразовую уникальную ссылку на алгоритме md5 (старый с возможностью коллизий) или sha1 (что бы не бояться коллизий, хотя на мой взгляд коллизии тут ничего не решают, а наоборот даже вносят определённую перчинку).