Repository navigation
encryption
Сквозное шифрование
Сквозное шифрование (E2EE) защищает содержимое сообщений. Оно отличается от TLS: TLS защищает соединение между устройством и сервером, а E2EE шифрует сам текст сообщения.
Чем отличаются TLS и E2EE
TLS
Защищает данные при передаче между устройством и IRC-сервером. Сам сервер может видеть содержимое сообщений.
Сквозное шифрование (E2EE)
Сообщение шифруется на устройстве отправителя и расшифровывается на устройстве получателя. Сервер получает зашифрованный текст, а не исходное сообщение.
Режимы шифрования
AES-256-GCM ("+AGM")
Симметричное шифрование с использованием общего ключа. Отправитель и получатель должны иметь один и тот же ключ.
AES-256-GCM также позволяет обнаруживать изменения зашифрованных данных.
Автоматический обмен ключами ("+AGE")
Вместо ручной передачи общего ключа используется пара криптографических ключей и автоматический обмен между участниками.
Для личных сообщений применяется механизм обновления ключей. В каналах используется общий ключ группы и подписи сообщений отправителей.
Blowfish ("+OK")
Устаревший режим шифрования с общей парольной фразой.
Он сохранён для совместимости со старым форматом FiSH. Для новых переписок предпочтительнее использовать AES-256-GCM, если он доступен обеим сторонам.
Настройка шифрования
Настройка выполняется отдельно для нужного канала или личного диалога.
AES-256-GCM ("+AGM")
- Откройте канал или личный диалог.
- Откройте меню настройки шифрования.
- Создайте ключ.
- Передайте ключ собеседнику по доверенному каналу связи.
- Импортируйте тот же ключ на другом устройстве.
- Сравните контрольные номера безопасности, если они доступны.
Оба участника должны использовать одинаковый ключ.
Автоматический обмен ключами ("+AGE")
- Откройте канал или личный диалог.
- Откройте меню настройки шифрования.
- Выберите режим "+AGE" и включите его.
- При первом использовании создаётся пара ключей, после чего обмен ключами происходит автоматически.
Перед передачей конфиденциальной информации рекомендуется проверить номер безопасности собеседника по независимому доверенному каналу.
Blowfish ("+OK")
Для этого режима обе стороны должны использовать одинаковую парольную фразу.
Blowfish считается устаревшим вариантом. Не используйте короткие или легко угадываемые пароли.
Проверка ключей безопасности
Контрольный номер безопасности, также называемый отпечатком, помогает убедиться, что у участников совпадают ключи.
- Сравнивайте номера через отдельный доверенный канал связи.
- Если номера различаются, не передавайте конфиденциальные данные.
- При несовпадении ключей проверьте их и повторно передайте правильный ключ.
Контрольный номер не заменяет ключ шифрования.
Что защищает сквозное шифрование
При корректной настройке шифрование помогает защитить содержимое сообщений от просмотра сервером и участниками, у которых нет нужного ключа.
При этом оно не скрывает все сведения о переписке.
Сквозное шифрование не скрывает:
- кто подключён к серверу;
- кто с кем общается и когда;
- факт передачи сообщений;
- текст, уже расшифрованный на скомпрометированном устройстве.
Если общий ключ станет известен постороннему, он сможет читать сообщения, защищённые этим ключом.
Хранение ключей
Ключи шифрования следует хранить в безопасности и не передавать посторонним.
При смене устройства или переустановке приложения доступ к прежним ключам может быть утрачен. Перед переносом данных убедитесь, что необходимые ключи сохранены безопасным способом.
При подозрении на утечку ключа замените его и передайте новый ключ всем участникам переписки.
Устранение неполадок
Вместо сообщения отображается зашифрованный текст
Возможно, у получателя нет нужного ключа или ключи отправителя и получателя различаются.
Не удаётся расшифровать сообщение
Проверьте, что обе стороны используют одинаковый ключ и один режим шифрования.
Не совпадают номера безопасности
Не отправляйте конфиденциальные данные, пока причина несовпадения не выяснена.
После переустановки сообщения не расшифровываются
Проверьте, сохранился ли необходимый ключ. Если нет, его потребуется получить повторно у участника, который располагает правильным ключом.
DimLife IRC — IRC-клиент для Android, с помощью которого можно подключаться к IRC-сетям, общаться в каналах и личных сообщениях.
Для начала достаточно выполнить три действия: добавить сеть, подключиться к серверу и войти в канал. Остальные настройки можно изменить позже.
- Откройте главное меню приложения и перейдите в раздел Networks (Сети).
- Выберите готовую сеть или нажмите Add (Добавить).
- Укажите название сети, адрес сервера и порт.
- Оставьте TLS включённым, если сервер поддерживает защищённое подключение.
- Укажите свой никнейм. При необходимости задайте запасной ник, имя пользователя и настоящее имя.
Для большинства IRC-серверов с TLS используется порт 6697, однако точный порт зависит от сети.
Чтобы сеть отображалась в боковой панели, включите параметр Show in network sidebar. Закрепить её вверху списка можно значком звезды.
Откройте нужную сеть, нажмите Connect (Подключиться) и дождитесь завершения подключения.
Сообщения сервера появятся в отдельном окне сети. Если подключение прошло успешно, вы сможете переходить в каналы и общаться с другими пользователями.
Чтобы приложение подключалось автоматически при запуске, включите Auto-connect on startup в настройках сети.
В окне сети можно использовать команды:
-
/join #channel— войти в канал. -
/join #channel key— войти в канал, защищённый паролем. -
/list— открыть список доступных каналов.
Замените #channel на название нужного канала.
Если хотите автоматически входить в каналы после подключения, добавьте их в список автоматического входа в настройках сети.
Если у вас ещё нет выбранной сети, можно попробовать одну из перечисленных ниже. Перед подключением уточните актуальный адрес сервера и порт на официальном сайте соответствующей сети.
| Сеть | Сервер | Обычный Порт | SSL/TLS-порт | Особенности |
|---|---|---|---|---|
| DimLife | irc.dimlife.ru | 6667 | 6697 | Сообщество DimLife IRC |
| RusChat | irc.ruschat.net | 6667 | 6697 | Русскоязычная Сеть RusChat |
Для защищённого подключения оставляйте TLS включённым. Если сервер не отвечает на порту 6697, проверьте документацию выбранной сети.
Чтобы подключиться к IRC-серверу DimLife, создайте сеть в приложении и введите адрес и порт, предоставленные администратором сервера. Убедитесь, что настройки TLS соответствуют настройкам сервера.
На многих IRC-сетях можно зарегистрировать никнейм или отдельный аккаунт. Способ регистрации зависит от сервисов конкретной сети.
Если сеть поддерживает SASL:
- Откройте настройки сети.
- Перейдите в раздел Authentication (Аутентификация).
- Включите SASL.
- Выберите поддерживаемый сервером механизм аутентификации.
- Укажите имя аккаунта и пароль.
SASL позволяет пройти аутентификацию во время подключения, до входа в каналы.
Основные механизмы:
- PLAIN — имя пользователя и пароль. Используйте только через защищённое TLS-соединение.
- SCRAM-SHA-256 — проверка с криптографическим обменом, если поддерживается сетью.
- EXTERNAL — аутентификация с помощью клиентского TLS-сертификата, если она настроена на сервере.
Если SASL не поддерживается, некоторые сети позволяют авторизоваться после подключения через NickServ или другой сервис. Команды и порядок регистрации уточняйте в документации своей сети.
IRC не является обычным мессенджером с серверным почтовым ящиком: если клиент отключён, вы можете пропустить сообщения.
Чтобы сохранять соединение:
- Откройте Settings (Настройки).
- Перейдите в раздел Connection (Подключение).
- Включите Keep alive in background.
Android может показывать постоянное уведомление, пока приложение поддерживает соединение в фоновом режиме. Это ожидаемое поведение.
При потере соединения приложение может автоматически выполнять повторные попытки подключения. Если Android завершает работу приложения после закрытия экрана, проверьте настройки энергосбережения и разрешения для фоновой работы на своём устройстве.
Приложение может уведомлять о:
- упоминании вашего никнейма в канале;
- новых личных сообщениях;
- появлении заданных вами ключевых слов.
На Android 13 и более новых версиях необходимо разрешить отправку уведомлений. Проверить разрешение можно в системных настройках Android в разделе приложений.
Некоторые IRC-серверы поддерживают передачу истории сообщений. Если сервер поддерживает эту функцию, клиент может загружать недавние сообщения при входе в канал.
Количество загружаемых сообщений настраивается в параметре History limit. Доступность истории зависит от возможностей сервера и его настроек.
TLS шифрует соединение между приложением и IRC-сервером. По возможности используйте защищённый порт и не отключайте проверку сертификатов без необходимости.
При первом подключении приложение может запомнить отпечаток сертификата сервера. Если впоследствии отпечаток изменится, внимательно проверьте причину перед повторным подключением: это может быть обычное обновление сертификата, но также может указывать на проблему безопасности.
Если используемая версия приложения поддерживает прокси, для отдельной сети можно настроить SOCKS-прокси в её параметрах.
Для подключения через Tor можно использовать локальный SOCKS-прокси, предоставляемый Orbot или другим совместимым сервисом. Адрес и порт зависят от конфигурации прокси.
Прокси может скрыть от IRC-сервера ваш прямой IP-адрес, но сам по себе не гарантирует полной анонимности. Учитывайте особенности выбранной сети и настройки устройства.
Баунсер — это сервис, который поддерживает соединение с IRC-сетью вместо вашего устройства и может сохранять историю сообщений.
Если вы используете баунсер, откройте настройки нужной сети, включите Bouncer mode и выберите тип сервиса, если такая настройка доступна.
Поддерживаемые форматы имени пользователя зависят от типа баунсера. Например, soju и ZNC используют разные варианты записи имени пользователя, сети и идентификатора клиента. Уточните параметры у администратора своего баунсера.
Если приложение поддерживает экспорт настроек:
- Откройте Settings → Backup & Restore.
- Нажмите Export и сохраните файл резервной копии.
- На новом устройстве откройте тот же раздел.
- Нажмите Import и выберите сохранённый файл.
После восстановления проверьте настройки сетей и подключения. Пароли SASL и клиентские TLS-сертификаты могут не включаться в резервную копию, поэтому при необходимости добавьте их заново.
Если не удаётся подключиться к серверу:
- проверьте адрес и порт;
- убедитесь, что TLS включён или выключен в соответствии с требованиями сервера;
- проверьте интернет-соединение;
- уточните, не требуется ли регистрация аккаунта;
- проверьте документацию или обратитесь к администратору сети.
Если приложение отключается в фоновом режиме, проверьте разрешения на уведомления, работу фоновых служб и системные ограничения энергосбережения.
DimLife IRC — проект на основе свободного программного обеспечения. Лицензия и сведения об исходном проекте доступны в репозитории приложения.