BLOG.TAUBETELE.COM

Блог инженера Таубе Константина

Анализ принципа Meshtastic шифрования

Следующий контент переведен из официальной статьи блога Meshtastic «Meshtastic Encryption: Evolving from Simple Messaging to a Universal Solution». Заинтересованные читатели могут прочитать оригинальный текст.

 

Meshtastic начал с простой цели: поддерживать связь с друзьями-путешественниками, когда на улице нет покрытия сотовой связи. То, что начиналось как простой проект, теперь расширяет границы возможностей, движимое увлеченным сообществом.

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

Баланс между практичностью шифрования и безопасностью

Для многих возможности шифрования Meshtastic являются ключом к его привлекательности. Однако на протяжении многих лет задача заключалась в том, чтобы найти баланс между достижением надежного шифрования, не исключая маломощные устройства IoT и не перегружая ограниченную пропускную способность LoRa. До версии 2.5 Meshtastic использовал статический предварительный ключ (PSK) для каждого канала. Этот метод довольно надежен, но имеет один существенный недостаток: прямое сообщение.

Примечание редактора
Оригинальная статья была опубликована в сентябре 2024 года, когда Meshtastic только что выпустил версию v2.5.x. Можно предположить, что все пользователи уже должны использовать версию v2.5.x, а это означает, что новый механизм шифрования, упомянутый в статье, включен на вашем устройстве по умолчанию.

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

Проблемы удаленного управления

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

Meshtastic представляет криптографию с открытым ключом (PKC)

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

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

Большой шаг вперед в области безопасности

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

Подробный технический обзор: как работает новая система шифрования Meshtastic

Ядром новой системы шифрования Meshtastic является обмен ключами Диффи-Хеллмана на основе эллиптической кривой X25519. Процесс разделен на два ключевых этапа:

  1. Генерация ключей : при первом запуске каждое устройство случайным образом генерирует закрытый ключ и использует алгоритм X25519 для получения соответствующего открытого ключа. Этот открытый ключ передается в ячеистую сеть как часть обычных широковещательных сообщений узла.
  2. Безопасная связь : когда узел инициирует личное сообщение, он объединяет свой собственный закрытый ключ и открытый ключ получателя для завершения обмена ключами X25519, тем самым генерируя уникальный общий ключ. Этот общий ключ затем используется для шифрования личных сообщений. Принимающий узел может независимо получить один и тот же общий ключ, используя свой закрытый ключ и открытый ключ отправителя, что обеспечивает безопасное дешифрование.

Процесс обмена ключами Meshtastic X25519
Рисунок 1. Визуальное представление процесса обмена ключами Meshtastic X25519.

Схема шифрования использует AES-CCM (режим счетчика в сочетании с CBC-MAC), который обеспечивает конфиденциальность и подлинность. Отличительной особенностью является то, что сообщение содержит короткий код аутентификации сообщения (MAC), который используется для проверки личности отправителя и обеспечения целостности сообщения. В целях дальнейшего повышения безопасности к личному сообщению добавляется дополнительное 4-байтовое случайное число для эффективного предотвращения уязвимостей безопасности, которые могут быть вызваны повторным использованием случайных чисел.

Удаленное управление также было значительно улучшено. Сообщения управления теперь содержат 8-байтовый ключ сеанса, установленный управляемым узлом. Этот ключ включается в ответ и должен присутствовать в любом пакете, пытающемся его изменить. Благодаря таймауту 300 секунд этот механизм обеспечивает надежную защиту от атак повторного воспроизведения на трафик управления.

Подвести итог

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

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

Заглядывая в будущее, эта новая платформа шифрования открывает безграничные возможности для разработки Meshtastic. Мы приглашаем сообщество изучить эти новые функции, оставить отзыв и продолжать продвигать Meshtastic вперед. Работайте вместе, чтобы построить более безопасное и связанное будущее для автономных коммуникаций.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *