5 заметок с тегом

защита информации

О протоколе Matrix и self-hosted мессенджерах

На протяжении всего этого лета я пользовался мессенджером Riot, чей сервер я установил себе на хост, как раз когда он вышел из беты и стал готов к использованию. В этой статье я хотел бы рассказать вам о протоколе [matrix] и его клиенте Riot, поделиться опытом использования и дать немного статистики. Также затрону тему self-hosted мессенджеров в целом и каково это держать свой сервер.

Что есть что?

[matrix] logo

[matrix] — это протокол обмена сообщениями. Помимо текстовых сообщений через него можно пересылать документы, картинки, звонить и т. д.

Сервер (homeserver) — удаленный хост, на котором установлено ПО, реализующее протокол Matrix, например, Synapse. Там хранятся ваши сообщения, их вложения и учетная запись. Matrix предлагает свой homeserver — matrix.org, который можно использовать для ознакомления. При желании можно найти другой сервер или создать свой. Имя пользователя будет выглядеть так: @login:server.com. Серверы могут связываться между собой, образуя тем самым федерацию, так что можно спокойно писать пользователю, который зарегистрирован на matrix.org, в то время как сами вы находитесь на matrix.iriscot.org!

Иллюстрация федерации
Иллюстрация федерации. Здесь в сети находятся три пользователя, каждый на своем сервере.

Клиент — программа на компьютере или телефоне конечного пользователя. Через нее устройство связывается с сервером, а пользователь пишет сообщения. Самый популярный клиент матрицы на данный момент — Riot, его мы и рассмотрим в этой статье.

Комната — место, где общаются пользователи. Иными словами, это чат. Может содержать от одного до бесконечности участников. Адреса комнат начинаются с символа #.

Группа (community) — тематическое объединение пользователей и комнат. Адрес начинается с символа +.

В чем профит?

Конечно же, есть более удобные сервисы, тот же Telegram, но есть и нюансы. Во-первых, неизвестно что происходит с вашими сообщениями на сервере, кто их читает и кому их сливают. Во-вторых, большинство мессенджеров привязываются к номеру телефона, что в свою очередь добавляет как минимум две уязвимости: злоумышленники могут перевыпустить вашу сим-карту и без задней мысли войти в аккаунт. Также номер телефона могут сопоставить с аккаунтом в мессенджере, и наоборот. За примерами далеко ходить не надо.

Matrix решает эти проблемы: номер телефона при регистрации необязателен, можно вообще использовать только логин и пароль, а сервер у вас может быть собственный.

Выгодно отличают Matrix от других Open Source решений простота установки и обслуживания. Также доставляет синхронизация ключей в зашифрованных комнатах, то есть вы можете пересесть с одного устройства на другое и все равно будете видеть все сообщения. В прямом конкуренте Jabber такой фичи нет, по крайней мере на момент использования его мной.

Безопасность

Matrix использует алгоритмы Двойного Храповика Olm и Megolm, основанные на AES и SHA2. Эти шифры изначально были разработаны в Signal, а доработаны в Matrix, чтобы поддерживать шифрование сразу на тысячи устройств одновременно.

Имеется проверка подлинности устройств, которая предупреждает пользователя в случае появления в комнате новых непроверенных устройств.

Боты и IoT

Matrix предоставляет хороший SDK для любой платформы, что позволяет не только написать свой клиент, а еще и реализовать ботов наподобие тех, что есть в Telegram, а также использовать протокол Matrix для интернета вещей.

Мосты

Самая вкусная фича — это мосты (bridges). С их помощью можно собрать в одном месте все свои чаты и общаться с пользователями разных мессенджеров. Собственно поэтому Matrix именно так и назван, ведь он объединяет много разных сервисов в одну матрицу.

Официально поддерживаются Slack, IRC, XMPP и Gitter. Сообществом разработаны мосты в Telegram, Discord, WhatsApp, Facebook, Hangouts, Signal, VK, SMS, Instagram и много других.

Более подробно смотрите здесь.

Клиент Riot.im

Если вы обычный пользователь, первое на что вы будете смотреть — это клиент. Вот так выглядит Riot.im:

на десктопе
на телефоне

Комната со скриншотов: #ru.matrix:matrix.org.

Возможности программы:

Текстовые сообщения. Здесь все стандартно, отметить можно лишь форматирование сообщений с помощью Markdown или визуального редактора, кому как удобно.

Markdown форматирование

Картинки можно отправлять из памяти устройства, камеры или буфера обмена. Единственное, что может встать на вашем пути — лимит на загрузку на сервере. Мобильный клиент Riot умеет сжимать картинки, что очень удобно.

Голосовые сообщения и аудио файлы. Голосовые сообщения доступны только на мобильном клиенте. По сути он просто запускает приложение диктофона и отправляет записанный файл. Также можно отправить любой аудио файл и он отобразится в виде плеера.

Видео. То же самое, что с аудио файлами.

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

Звонки. Аудио- и видео-звонки реализованы через WebRTC. В отсутствие TURN-сервера идут напрямую, что неизбежно взаимно палит IP-адрес собеседников, но здесь уже надо понимать разницу между анонимностью и приватностью.

Оконечное шифрование. Riot реализует поддержку алгоритмов Olm и Megolm, а также резервное копирование ключей.

Стикеры. Так, погодите радоваться. Реализованы они через сервер интеграции, и очень вероятно, что не будут работать, если у вас self-hosted сервер. На официальном сервере не проверял.

Виджеты. То же самое, что и со стикерами.

Говоря о перспективах развития Riot, уже сейчас разрабатывается RiotX — полная переработка Riot на Android с нормальным дизайном. Попробовать можно в Google Play.

О self-hosted чатах в целом

Установить чат на свой сервер будет определенно хорошим решением, если вас волнует вопрос приватности в Сети. Тем не менее, из этого вытекают несколько потенциальных проблем:

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

Те же, кто принял на себя такую ответственность, будут награждены уютным и безопасным мессенджером.

Статистика сервера

В течение двух месяцев я со своим ассистентом тестировали мой сервер каждый день, ни в чем себе не отказывая: были и картинки и голосовые сообщения, в общем полноценное общение. По прошествии указанного времени мой сервер стал весить 343 Мб, из которых 264 Мб составляют медиа-файлы. Проведя несложный расчет, станет ясно, что сервер с каждым днем отъедает в среднем 5.7 Мб, а значит через год будет весить примерно 2 гигабайта. Напомню, что это только для одного чата на двоих пользователей. Выводы оставляю на вас. Что касается остальных ресурсов, в первую очередь обращаем внимание на RAM, поскольку Synapse туда много чего кэширует.

В итоге

Я считаю, что Matrix станет хорошим средством для обеспечения конфиденциальности, в том числе для среднестатистического пользователя. Шифрование и возможность использования собственного сервера увеличивает безопасность вашего общения.

Если вы решили начать использовать матрицу, и не знаете, кому написать, пишите мне на @iriscot:matrix.iriscot.org :).

29 августа   защита информации   обзор   технологии

RAMDisk — или когда накупил оперативки, а на SSD не хватило

Сегодня речь пойдет о так называемом RAMDisk, или использовании оперативной памяти компьютера как дискового хранилища.

Благодаря своему главному преимуществу, огромной скорости, оперативная память используется для хранения данных запущенных программ и операционной системы. Однако, остающуюся память можно использовать также для хранения файлов, и будет даже быстрее, чем на SSD.

Уже заинтригованы? Без лишних слов перейдем к созданию своего рамдиска. Работать, как обычно, будем из-под Linux, здесь рамдиск можно сделать двумя командами, для винды есть какие-то васянопрограммы, гуглите сами.

sudo mkdir -p /mnt/ramdisk
sudo mount  -t tmpfs -o size=1024m tmpfs /mnt/ramdisk

Первая команда создает папку для монтирования диска, вторая подключает туда наш рамдиск с файловой системой tmpfs и объемом 1 гигабайт (1024Мб). Для еще более удобного подключения рамдиска я написал Shell-скрипт.

#!/usr/bin/env

echo "RAMDisk creation script";
read -p "Enter maximum capacity of RAMDisk. For example, 1024m. : " rdsize;

sudo mkdir -p /mnt/ramdisk
sudo mount  -t tmpfs -o size=$rdsize tmpfs /mnt/ramdisk

Здесь вас спросят, какого объема вы хотели бы себе диск, потом это значение подставляется в команду, которую мы рассмотрели выше.

После монтирования рамдиска, лично у меня он нигде не отобразился, однако к нему можно получить доступ, перейдя к папке /mnt/ramdisk.

Для того, чтобы каждый раз вручную не включать рамдиск, можно добавить запись в /etc/fstab:

tmpfs       /mnt/ramdisk tmpfs   nodev,nosuid,noexec,nodiratime,size=1024M   0 0

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

Тем не менее, даже так есть много применений рамдиска. Вот несколько из них:

Папка Загрузки

Если вы скачиваете много файлов из Сети, а потом вас бесит, что в Загрузках полно файлов и ничего невозможно найти, назначьте эту папку на рамдиск. Файлы будут быстрее скачиваться, а тот факт, что они удаляются при перезагрузке станет мотивацией быстрее отсортировать скачанное. Также туда удобно скачивать новые эпизоды онгоингов :)

Временная папка
Иногда нужно возиться с кучей файлов, например, при сборке из исходников или чего-то еще. В рамдиске все это можно делать быстрее и не думать о том, что за собой надо будет убирать.

Виртуализация
Если у вас ОЧЕНЬ МНОГО памяти, можно разместить там диск виртуальной машины.

Приватность
Тут все очевидно, после удаления из рамдиска, файлы не оставляют совершенно никаких следов. Идеально для работы с криптоконтейнерами или гостевыми профилями.

Рабочая папка для программ
Из рамдиска хорошо работают программы, которым важна скорость реакции диска, в том числе видеоигры, но здесь, опять же, надо ОЧЕНЬ МНОГО памяти.

Напоследок проведем тест скорости для любителей цифр. Используем команду dd, чтобы записать один гигабайт нулей.

dd if=/dev/zero of=/mnt/ramdisk/testspeed.img bs=1G count=1 conv=fdatasync

Вывод команды:

1073741824 байт (1,1 GB, 1,0 GiB) скопирован, 1,10704 s, 970 MB/s

Т. е. скорость RAMDisk примерно равна 1Гб/c, что в два раза больше, чем у SSD.

Пишите в комменты свой опыт и способы применения RAMDisk.

2018   Linux   защита информации   лайфхак   технологии   хак

Обмазываемся приватностью на Firefox

Среди всех современных браузеров можно выделить Firefox как наиболее безопасный из коробки. Хотя бы потому, что он не принадлежит крупным компаниям, жаждущих получить все ваши данные. Однако, сейчас мы с вами поднимем уровень защищенности на браузере Firefox. Кстати, данные советы могут быть применены также к Chrome-образным и некоторым другим браузерам. Что ж, начнём...

Первое, что нам надо сделать — сменить поисковую систему по умолчанию. Ixquick или DuckDuckGo вполне подойдут на замену Гуглу или Яндексу.

Выкидываем Flash. На дворе 2017, зачем он вообще нужен? Если вы не играете в старые браузерные игры, он точно вам не понадобится. Кто знает, сколько там есть неизвестных уязвимостей. Удаляем через Панель Управления.

NoScript — дополнение, запрещающее выполнение JavaScript как на отдельных сайтах, так и везде. Конечно, при включении этого аддона уровень приватности сразу подскочит до верхних слоев атмосферы, чего нельзя сказать о юзабельности, ведь в эпоху Web 2.0 почти каждый сайт использует скрипты, и без них будут работать не все фичи. Но можно сделать белый список доверенных сайтов, на которых оставить скрипты включенными.

HTTPS Everywhere — однозначно рекомендуется к установке. Этот аддон автоматически перенаправит вас на HTTPS-версию сайта, если это поддерживается самим сайтом. При подключении к сайту через HTTPS все передаваемые данные шифруются с помощью протокола SSL. Также, ваш провайдер увидит в своих логах только домен сайта, к которому вы подключаетесь. В случае HTTP он будет видеть адрес страницы целиком.

Как узнать, используется ли HTTPS

Random Agent Spoofer — позволяет подменять название браузера, которое видят сайты. Причем делается это как рандомно через определенный временной промежуток, так и вручную, можно поставить желаемый User-Agent. Кроме этого, аддон имеет тучу дополнительных функций, среди которых подмена часового пояса, разрешения экрана, отключение множества API. Подробнее в описании на странице расширения.

uBlock — блокировщик рекламы. Заявлено, что потребляет мало ресурсов ПК. Рекламные баннеры в интернетах, кстати, тоже следят за вами.

Privacy Badger — блокирует все скрытые трекеры, а также шпионскую рекламу. Можно выбрать три уровня защиты (красный — заблокировано, желтый — трекер не получит ваши куки и реферы, зеленый — разблокировано).

Ещё можно скрыть ваш реальный IP адрес с помощью VPN и прокси, но их, я думаю, вы найдете сами.

Всем удачи и добра!

2017   защита информации

Развод на ДР / полный срыв покровов с интернет-магазина PhoneBookshop.ru

Вчера у меня был день рождения, сидел я, значит, праздновал, как вдруг в ВК мне приходит сообщение:

Что ж, подумал я, подожду до вечера, все равно от меня ничего не требуется. Хотя посмотрев страницу отправителя, я насторожился — регистрация полторы недели назад и ноль друзей. Хм, ну, ладно.

Вечером, уже часов в девять я вспомнил о розыгрыше, но сообщения так и не пришло. Я уже было подумал, что это развод, как вдруг вижу новое сообщение от того же подозрительного отправителя:

Интересно ещё, что отправитель вышел из сети сразу после отправки. Первым делом я решил проверить домен, на котором находится их электронный адрес. Да, по нему открывается интернет-магазин на OpenCart со стандартной темой. Никаких отзывов, ничего. Только каталоги товаров в которых есть смартфоны, планшеты наушники, электронные книги и приставки. Сам домен зарегистрирован в 2017 году (а на сайте написано, что работают с 2015, азаза) на некого Артема Е. Москвина. Адрес находится в Канаде, номер телефона также явно не российский.

Недолгий поиск в гугле приводит к лишь одному отзыву

Казалось бы, уже достаточно, но я всё же решил пойти дальше и отправить письмо на указанный адрес. Ответ пришел моментально (автоответчик?):

Так-с, интересно, даже видеопруф имеется. Видео доступно только по ссылке, имеет всего 5 просмотров и 17 подписчиков на канале. Тоже странновато. В видео показывается запись экрана Windows 7, где в девелоперской версии Firefox (зачем она обычному пользователю?) на небезисвестном сайте-генераторе случайных чисел определяют победителя — полученные числа записывают в блокнот напротив мест с призами. Я думаю, что видео было записано далеко не в 19 вечера, хоть это и написано в углу экрана. Числа были сгенерированы на камеру, а потом подставлялись в рассылаемое сообщение.

Но вернемся к письму. Чтобы получить выигрыш, его надо заказать в их интернет-магазине со специальным промокодом. Ну, ок. Захожу на сайт, добавляю в корзину, оформляю заказ. И... Эм... А куда вводить промокод? Раз уж заморочились с таким, добавили бы лишнее поле, хотя это же очень сложно, надо быть программистом. А вот способ доставки выбрать можно было:

Да, кажется, зарабатывают они именно на этом. Деньги кажутся небольшими, но кто знает, какие там обороты и сколько таких сообщений отправляется в ВК.

Такие дела, ребята, не ведитесь на подобную халяву.

2017   защита информации   кулстори   срыв покровов

Пасс-фразы — обо всем по порядку

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

Обычно мы используем короткие пароли по 10-15 символов, зачастую они содержат дату рождения, либо какую-нибудь другую общедоступную информацию, либо такие проявления сверхразума, как qwerty или 123456...

В этой статье я предлагаю вам перейти на новое изобретение параноиков, хотя, не такое уж оно и новое, но распространено не так, как те пароли — пасс-фраза.
В отличие от пароля, пасс-фраза содержит уже 40-50 символов (никто не мешает придумать и больше) и состоит из слов. Можно, например, составить предложение из нескольких слов и оно станет пасс-фразой. Да, именно составить. Откажитесь от заимствования предложений из художественных произведений и откуда-то еще, они должны быть уникальными. К примеру, оглядитесь по своей комнате. Что мы видим? Допустим, перед нами есть колонка, монитор, ковер, окно. Нам не обязательно связывать эти слова, мы можем оставить их как есть и заучить. Еще можно разделить их спецсимволами вместо пробелов для больше надежности, добавить знаки пунктуации, ошибки в словах, и... у нас есть мощная защита, которую невозможно взломать подбором.

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

2017   защита информации   обзор