Нарушение целостности информации: как общаться в мессенджере и не быть прочитанным третьими лицами

Наверное, все мы когда-нибудь слышали дискуссии о том, что наши мессенджеры читают, что WhatsApp набит бэкдорами, а Telegram прогнулся… Я уже не говорю о тех, чьи аккаунты взломали и вытащили самые откровенные переписки. Согласитесь, не очень хочется писать, когда боишься, что прочитает не тот, кто должен был.

Этот пост не о том, кто и как хранит нашу переписку и куда сливает. Здесь я хочу предложить вам идею разрыва целостности информации. Что же это такое?

Предположим, кто-то отжал у Вас телеграм и теперь читает всё подряд, в надежде найти логин и пароль от сервера, который Вы отправили другу неделю назад. Не пройдет и десяти минут, и сервер у Вас тоже отожмут взломают. Но злоумышленник не знал ни логина, ни пароля. А что если отправлять только пароль, а логин прислать где-то еще. Тогда чтобы взломать сервер, надо будет сперва украсть целых два аккаунта.

Это и есть нарушение целостности информации: Вы делите информацию на кусочки и отправляете разными каналами. Так эту информацию сложнее будет собирать.

Сервисы одноразовых записок

Отправлять информацию разными каналами это, конечно, хорошо, но когда-нибудь к ним ко всем у злоумышленника появится доступ. А у спецслужб он мог быть и раньше. К тому же, собеседнику будет не очень удобно бегать по комнате и ловить ваши сообщения в каждом углу искать данные во всех чатах. Что же делать? Решение есть! В качестве второго канала можно использовать сервис одноразовых записок.

Как это работает?

Вы заходите на нужный сайт, пишете свой пароль или какие-либо другие данные в поле для ввода и нажимаете «Создать записку». Вам выдают ссылку, которую Вы копируете и вставляете в мессенджер вместе с остальной информацией.

Ссылка на записку
Ссылка на записку

— Почему никто не сможет прочитать записку, кроме собеседника?

Это одноразовая записка. После того, как Ваш друг прочитает послание оно навсегда удалится с сервера. Поэтому когда кто-то еще найдет у Вас эту ссылку и попытается узнать, что там было, то останется с носом ни с чем. А ежели за вами тотальная слежка и записку прочитает кто-то вперёд Вашего друга, то вы оба об этом узнаете, когда не сможете её открыть, и будете впредь общаться лично.

— А админы сайта не узнают мой пароль?

Здесь самое интересное. При создании записки Ваш браузер генерирует случайный ключ и шифрует им записку. Зашифрованное содержание летит на сервер и ждёт Вашего друга, а ключ приписывается в конец ссылки как якорь, который никогда не отправляется на сервер (RFC, раздел 2.4.1). Когда друг открывает записку, он получает с сервера зашифрованное содержание записки, которая сразу же удалится, а его браузер расшифровывает её ключом из ссылки. Бадумс! Остаётся только сохранить себе все данные, а то второй раз записку уже не откроешь.

Когда я занялся этой темой, я решил тут же и сделать такой сервис, в первую очередь, для себя, чтобы было и удобно, и функционально, и надёжно. Получилось, на мой взгляд весьма неплохо, и этот сервис, пожалуй, даже обогнал все остальные в некоторых своих деталях, поэтому далее я немного похвастаюсь, а Вы решите, что мне стоило бы допилить.

Private-Net.work Notes — что это и чем отличается от других

Private-Net.work — сервис одноразовых записок, созданный мной. Я постарался объединить всё лучшее, что когда-либо видел и что умею сам: минималистичный дизайн и понятный интерфейс сделают сайт удобным в использовании, шифрование AES защитит Вас от утечек, а отсутствие чего-либо лишнего сыграет на благо обоим пунктам. Кстати, насчёт лишнего.

— А пока я пишу записку, не будут ли на неё смотреть скрипты?

Все необходимые для работы сайта библиотеки и javascript-скрипты хранятся непосредственно на моём сервере. Не используется ничего, что хранится на других сайтах и CDN, чтобы быть уверенным, что всё, что используется, не собирает данные с нашего сайта, открытые в браузерах наших пользователей. На сайте нет ни рекламы, ни трекинговых скриптов. Тоже для того, чтобы расшифрованные записки никто не брал.

— Вы ведёте какую-то аналитику? Что собираете?

Ничего не собираем. Что касается аналитики, то у меня есть всего 2 счётчика: количество созданных записок и количество прочитанных. Всё.

— А Вы можете узнать, что я заходил на сайт? Ведь наверняка в логах есть ip адреса?

Я стараюсь не собирать лишней инфы. Поэтому в своих основных журналах запросов к сайту хранится только часть хеша от ip-адреса, чтобы отличать разных посетителей, при поиске ошибок в работе сайта. Ещё хеш ip-адреса используеся в антиспам-системах для защиты от ботов и злоумышленников. Но пока всё работает как надо, никто и на хеш не смотрит.

— Что известно о записке и её авторе?

Когда Вы создаёте записку, ни Вы, ни тот, кто её получит, не связывается с ней. Из-за того, что велико количество записок, которые никто никогда не читает, пришлось установить период, в течении которого записки в любом случае удаляются. Чтобы нельзя было идентифицировать создателя записки по дате её написания, хранится только дата, к которой она должна быть удалена, предоставляя возможность пользователям самим выбирать, как долго она будет храниться. По умолчанию, записки удаляются через 7 дней.

Сейчас в базе данных каждой записке соответствуют 4 поля: её идентификатор, зашифрованное содержимое, дата, к которой она будет удалена, если её не прочитают до этого и счетчик (также необходимый для расшифровки). Вот так выглядит одна из тестовых записок в базе данных:

id

content

delete_date

counter

hHQ8eny

4b4fd1a3

2022-01-23 13:39:22.546147

114186091782275

Форматирование

На своем сайте я сделал возможность форматирования записок. Так что если Вы кому-то отправите инструкцию к чему-то, не забудьте сделать это красиво)

Заключение

Я надеюсь, что некоторым из вас удалось открыть для себя что-то новое, а те, кто и раньше был в теме, скажут в комментариях пару-тройку слов о моем сайте. Я точно не считаю себя профи в кибербезопасности и потому рассчитываю на конструктивную критику. Спасибо, что уделили время на чтение моего первого поста!

P.S. Если найдутся желающие поковыряться в моем сайте, скриптах и что-нибудь взломать, то я против не буду. Но прошу рассказать мне о Ваших находках по контактам, указанным на сайте, чтобы я мог всё исправить. Открывать код бэкенда я пока всё же не планировал, так как считаю такой вариант более безопасным в моём случае.

Читайте так же:

  • Как запустить работу с инновациями в корпорации в 2021 годуКак запустить работу с инновациями в корпорации в 2021 году Описание Как запустить работу с инновациями в корпорации в 2021 году?7 сентября в 17:00 «Акселератор ФРИИ» проведёт онлайн-конференцию, на которой эксперты ФРИИ и бизнеса разберут пошаговую инструкцию запуска инноваций в корпорациях и поделятся рекомендациями, что можно сделать до конца […]
  • [Перевод] Как производитель защищенных телефонов обеспечивал преступникам тайну связи[Перевод] Как производитель защищенных телефонов обеспечивал преступникам тайну связи Есть такая традиция, перед Новым Годом рассказывать разные истории. Сегодня я поддержу этот обычай и расскажу историю взлета и падения канадского бизнесмена Винсента Рамоса, который хотел, чтобы его компания Phantom Secure стала лидером в области телефонов класса люкс, ориентированных на […]
  • Число запросов в DuckDuckGo в 2021 году выросло на 46%Число запросов в DuckDuckGo в 2021 году выросло на 46% В 2021 году число запросов в ориентированном на приватность поисковике DuckDuckGo выросло на 46% и теперь достигает в среднем более 100 миллионов в день.В 2020 году в DuckDuckGo было зафиксировано 23,6 млрд поисковых запросов, и к концу декабря поисковик обрабатывал в среднем 79 млн […]
  • Глава «МегаФона» рассказал, когда деградирует качества сетей 4GГлава «МегаФона» рассказал, когда деградирует качества сетей 4G Гендиректор «МегаФона» Хачатур Помбухчан считает, что качество связи в мобильных сетях четвертого поколения (4G) может ухудшиться, если операторам не выделят новые частоты. «Если в наших агломерациях в течение какого-то осмысленного времени не появится нормальный стандарт 5G, то качество […]