Собственный мессенджер с шифрованием
Мы предлагаем решение для организации собственной платформы для общения, с поддержкой групповых чатов, аудио и видео звонков, возможностью работы из браузера (аналог WhatsApp WEB). В данном решении каждый элемент находится под вашим контролем — полностью открытый исходный код, полное и прозрачное управление ключами шифрования, беспрецедентный уровень безопасности, собственные сервера для бекенда и хранения ваших переписок и данных.
Об услуге
Актуальность проблемы
Совершенно очевидно, что актуальность проблемы огромная. Вопросы о том, насколько безопасно можно общаться через WhatsApp, можно ли звонить через Telegram, а можно ли прочитать-перехватить-взломать-получить сообщения и прочие подобные вопросы, задают практически все. Особенно, когда бизнес страдает от утечек информации, потребность в надежном способе общения кратно возрастает.
Люди пытаются найти ответы на свои вопросы, со всех сторон получают разные мнения, советы. Но всю это разнородную информацию невозможно достоверно проверить, доказать или опровергнуть. Все эти мнения фактически сводятся к домыслам из области слухов или «очень серьезный человек мне по ухо шепнул, что….».
Полагаться на экспертизу такого уровня, конечно же, нельзя. Вместе с тем общаться тем не менее как-то нужно. И в итоге складывается ситуация из известного выражения про ежиков, которые плакали, кололись, но продолжали есть кактус.
При таких обстоятельствах ваша безопасность — это игра с лотерею с вопросом «прилетит/не прилетит», а точнее даже «когда прилетит?».
Популярные решения и их недостатки
Какой самый весомый аргумент при выборе средства общения? Шифрование? Открытый исходный код? Советы Эдварда Сноудена или Илона Маска?
Нет, самый популярный и значимый аргумент для людей зачастую лежит в плоскости «одна бабка сказала». Бабкой в данном контексте могут быть:
- Иван Иваныч, уважаемый человек
- Петька, он головастый, катридж в принтере нам чинил — АЙТИШНЕК!
- Василий Иваныч, он работал там-то и знает…он общался аж с тем-то и тот ему сказал…
Мы не будем полагаться или опираться на подобные факты, а проанализируем только то, что достоверно можно доказать.
У нас в блоге есть небольшой обзор мессенджеров с налетом безопасности, вы можете его так же прочитать.
Кто-то советует Telegram, кто-то Signal, кто-то вообще непонятно что советует. Сколько людей, столько и мнений.
Каждый из мессенджеров имеет свои сильные стороны и недостатки. Но нет такого решения, где критичные недостатки будут отсутствовать.
Как в известной поговорке: голову вытянет — хвост увязнет! В одной программе все хорошо, но исходный код закрыт. В другой программе код открыт, но шифрования нет, а в третьей…и так далее. Есть небольшие нюансы, а есть критичные недостатки, с которыми мы не готовы соглашаться.
К основным критичным недостаткам мы относим:
- Не полностью открытый или вообще закрытый исходный код клиентского и серверного ПО
- Отсутствие шифрования по умолчанию
- Невозможность управления ключами шифрования
- Хранение локальной базы данных сообщений в открытом виде на пользовательском устройстве
- Централизованный общий сервер для работы ПО
Если примерить эти требования к любому «приватному мессенджеру», то ни один не подойдет.
В Telegram закрытая серверная часть, откуда мы можем знать, что там на самом деле происходит? А Signal пишет в своих Правилах, что не записывает IP-адреса. Ну а мы откуда знаем? Только верить «на слово». Тогда мы ничем не отличаемся от тех ежиков и кактуса.
И начинаются споры, слухи, предположения, искажение фактов и так далее. А могут ли спецслужбы прочитать Telegram? И понеслась…а я слышал это, а я слышал то…Да мы откуда знаем в конце концов? Даже если кто-то смог получить переписку Telegram, откуда вы знаете, как именно она была получена? Может быть у владельца телефон отобрали, а может сим-карту перевыпустили? Это же не говорит, что этот «кто-то» может так сделать в любых обстоятельствах и с любым аккаунтом? И не говорит о том, что этот мессенджер устойчив, а этот нет.
К тому же, в свете последних событий множество людей сменили место своего жительства и ведения бизнеса. Допустим, переехали в Дубай. А возможности у российских специалистов и специалистов из ОАЭ могут быть совершенно разные. Вот Павел Дуров живет в Эмиратах, например. Зачем вообще об этом думать? Вы все равно не узнаете правильного ответа. А даже если узнаете, то уже завтра он может стать неправильным. Поэтому мы не пытаемся искать ответы про популярные мессенджеры, мы делаем свой.
В общем, в любом мессенджере можно найти какой-то «блок», который невозможно проверить. И в этом их общий недостаток.
Что мы хотим?
Мы хотим, чтобы решение для коммуникаций было лишено критичных недостатков, чтобы на каждом уровне мы могли проверить и убедиться в том, что желаемое совпадает с действительным.
Для этого нам требуется:
- открытый исходный код клиентской и серверных частей
- возможность запуска собственного полностью подконтрольного сервера
- полноценное сквозное шифрование для всего и по умолчанию с использованием общепризнанных мировых стандартов
- возможность полноценной работы с приватными ключами шифрования (экспорт, импорт, резервные копии, парольные фразы на бекапы)
- хранение локальной базы данных сообщений в зашифрованном виде
- отсутствие обязательных требований по предоставлению номера телефона/электронной почты
- поддержка всех основных функций современного мессенджера (группы, групповые чаты, вложения, цитаты, аудио сообщения и т. д. и т. п.)
- поддержка аудио и видео вызовов с шифрованием
- шифрование в групповых чатах
Таким образом решение должно быть подконтрольным на каждом уровне.
Что мы предлагаем?
Мы предлагаем именно то, что хотим.
А именно self-managed инфраструктуру для общения на основе протокола Matrix.
Ключевые особенности протокола Matrix:
- объединение в одном месте всех каналов общения
- децентрализация
Он призван объединить мгновенные сообщения (IM) с голосовым (VoIP) и видео-общением (video chat), что не удалось сделать в рамках SIP(обычная IP-телефония), XMPP (более известный как Jabber).
Вам не нужна отдельно IP-телефония, отдельно текстовый чат, отдельно файлопомойка для обмена документами и так далее. У вас все в одном месте.
Протокол Matrix является децентрализованным. В нем нет более важного или менее важного узла. В нем нет центрального узла. Каждый сервер является независимой Федерацией и самодостаточен сам по себе. Вы можете общаться с пользователями других Федераций, а можете не общаться. Можете общаться только со своими пользователями.
Серверная и клиентская части полностью с открытым исходным кодом.
Сквозное шифрование работает «из коробки».
Ваши данные хранятся на вашем «жестком диске» и нигде больше.
Вы сами себе хозяин. Если кто-то из пользователей вашего мессенджера отправит жалобу на, допустим, спам или запрещенный контент, то эта жалоба попадет к вам же.
На основе протокола Matrix работают корпоративные мессенджеры правительства Франции, Финляндии, Бундесвера (вооружённые силы Германии), мессенджер NI²CE для коммуникаций военнослужащих НАТО. И все это через протокол Matrix.
Безопасность решения
Безопасность решения обеспечена высокими стандартами шифрования алгоритмов OLM, Megolm, Double Ratchet. Последний, кстати говоря, используется в Signal. А ведь мы бы кстати и рады использовать Signal, вот только зачем ему наш телефонный номер? Или открытая мета-информация о том, с кем и когда мы переписывались? Может на запрос российских властей Signal не и ответит. А на запрос властей ОАЭ? Не надо об этом думать, мы все равно не сможем это проверить, а раз так, то рассматриваем самый худший вариант. А худший вариант нас не устраивает. Значит и Signal тоже. Вот и вся логика. Не можем проверить — отказ.
Указанные выше алгоритмы шифрования гарантируют, что только отправитель и получатель могут расшифровать сообщения, а также гарантируют подлинность личностей абонентов путем публичной подписи доверенных устройств. Пройдены публичные аудиты алгоритмов и исходного кода. Кто-то видел аудит MTProto2 — протокола шифрования Telegram? Его не существует, аудита такого. В публичном доступе во всяком случае. В 2015 году было ограниченное исследование MTProto первой версии, в котором нашли существенные уязвимости, после чего вышло их исправление в виде MTProto2, но исследований уже никаких не было.
Открытый исходный код гарантирует корректное, прозрачное и верное применение этих стандартов, а также отсутствие «потайных дверей».
Хранение данных на собственном «железе» гарантирует только ваш доступ к данным. Пускай даже к зашифрованным.
Мы используем PostgreSQL базы данных для хранения сообщений Matrix. Имея доступ к базе данных, хранимой на нашем/вашем собственном сервере мы/вы можете лично сделать к ней запрос и убедиться в том, что локальная база данных сообщений действительно зашифрована.
Даже если произойдет несанкционированный физический доступ к серверу, то с изъятых жестких дисков прочесть получится ни слова.
Так же системный администратор, даже имея полноценный доступ к файловой системе не сможет прочесть переписку. Она хранится в зашифрованном виде.
Вот так будет выглядеть ваше сообщение для тех, кто имеет или получит доступ к серверу и базе данных. Например, системный администратор или злоумышленник. Или просто воришка жестких дисков, который однажды утром пришел и забрал их.
А вот так будет выглядеть то же самое сообщение на оконечном устройстве, на котором имеются ключи дешифровки.
То есть на любом уровне мы можем самостоятельно проверить, что это работает как положено. Нет необходимости гадать или доверять кому-то на слово — возьми сам и проверь.
Вот почему мы доверяем Matrix.
Возможности мессенджера
- Регистрация.
Может быть открытая, может быть закрытая. Но в нашем случае мы, конечно, предпочитаем закрытую. Не требуется никаких данных, кроме логина и пароля. Можно добавить e-mail/телефон, но это не обязательно.
Управление пользователями осуществляется администратором через удобный web-интерфейс.
- Основной функционал
Доступно все — аудио, видео звонки, голосовые сообщения. Программы для общения доступны на Windows, macOS, Android, iOS, а также работа через web-браузер (https://element.indefence.ru). Если вам будет интересно, свяжитесь с нами, сделаем тестовый доступ.
Имеется функционал групповых чатов, приватных чатов, отдельных пространств.
Имеется возможность демонстрации экрана во время видеозвонка, отключение камеры-микрофона, удержание вызова, осуществления групповых видео и аудио звонков. Есть возможность делать групповые обсуждения, что-то вроде топиков на форумах. Допустим, выделяете некоторое сообщение, например, «коллеги, а давайте проверим наш офис на прослушку?», нажимаете обсудить и создается отдельный тред для обсуждения этого вопроса. Если описывать все возможности, то можно написать целую книгу, так что просто скажем — есть все необходимое и даже больше.
Окно авторизации на компьютере
Внешний вид чата на компьютере
Внешний вид интерфейса через браузер
Создание отдельного треда (потока) из любого сообщения для отдельного обсуждения
Создается отдельный поток, где можно обсудить выделенную задачу, очень удобная фишка
- Ключевые особенности:
Программа поддерживает работу с ключами шифрования, экспорт-импорт в чистом виде, шифрование ключей паролем для безопасного резервного копирования этих ключей. Доступна возможность верификации устройства пользователя. Допустим, вы при встрече с коллегой верифицировали девайсы друг друга, после чего появляется дополнительная галочка о том, что вы разговариваете через именно эти самые девайсы. Если коллега купит новый телефон и зайдет в свой аккаунт, или если злой хакер украдет его пароль и войдет в аккаунт, то вы сразу получите предупреждение о том, что ваш друг или тот кто себя за него выдает, сейчас общается с вами с неверифицированного устройства.
Доступна верификация ваших новых устройств с помощью ранее верифицированных через кросс-подпись.
FaceID, pin-блокировка, список активных устройств — список можно продолжать очень долго, это просто комбайн, который умеет все.
Список сессий, удостоверенных через кросс-подпись
Управление активными сеансами, возможность сброса пароля для резервного копирования ключа в случае компрометации аккаунт
Ручной экспорт ключей и возможность сброса кросс-подписи (все подтвержденные ранее устройства потеряют валидацию, допустим вы потеряли телефон, и злоумышленник начал валидировать свои устройства от вашего имени )
Это увидит «злоумышленник», если вдруг украдет ваш пароль. Он столкнется с целым ребусом, чтобы доказать, что он это и есть истинный владелец аккаунт.
А это увидит истинный владелец. В случае компрометации аккаунта просто меняется пароль, завершается «чужие сессии», при необходимости сбрасываются кросс-валидации и пароль от ключей.
Вот такой квест придется решить — в данном случае нам выпал вариант со сравнением смайликов.
А вот и сами смайлики!
А вот, что будет, если не подтвердить себя на другом устройстве или не ввести пароль от приватных ключей
- Серверная инфраструктура (бекенд)
Говоря техническим языком, выше мы обсудили фронтенд, а теперь обсудим что у нас «под капотом», то есть бекенд.
Для работы требуется выделенный или виртуальный сервер. Такой сервер можно купить или арендовать. Его мощность и характеристики зависят от нагрузки. Нагрузка прямо зависит от количества пользователей. Для пары десятков пользователей хватит железки самого начального уровня. Так же придется определиться с юрисдикцией, с датацентром, с безопасной оплатой. Так же понадобится любое доменное имя. Для реализации всего функционала используется открытое ПО, а также применяются все необходимые меры защиты.
Хочу такое, как сделать??
Сделать такое очень быстро и просто — обратиться к нам : -)
Ну или сами делайте….