index
Объяснение
Meshtastic обеспечивает шифрование AES256-CTR для полезной нагрузки каждого пакета при отправке через LoRa с использованием разного ключа для каждого канала. Заголовок пакета всегда отправляется без шифрования, что позволяет узлам ретранслировать пакеты, которые они не могут расшифровать. Это можно отключить, установив другой режим ретрансляции.
По умолчанию у вас есть один основной канал, который зашифрован с использованием простого известного ключа ("AQ=="), поэтому для использования правильного шифрования вы обязаны сначала изменить этот ключ или создать новый канал и поделиться им с теми, с кем хотите общаться. Однако без канала с ключом по умолчанию связь с устройствами, все еще использующими его, будет невозможна.
Прямые сообщения конкретному узлу теперь шифруются с использованием криптографии с открытым ключом (PKC). Каждый узел оснащен уникальной парой открытого/закрытого ключа, и прямые сообщения шифруются открытым ключом получателя. Это гарантирует, что только получатель сможет расшифровать сообщение с помощью своего закрытого ключа. Кроме того, сообщения подписываются закрытым ключом отправителя, что позволяет получателю проверить личность отправителя и обеспечить целостность сообщения.
Все периодические широковещательные сообщения (позиция, телеметрия, traceroutes и т. д.), которые устройство отправляет самостоятельно, передаются по основному каналу и поэтому шифруются с использованием этого ключа.
Устройство расшифровывает полезную нагрузку перед отправкой ее в клиентское приложение через BLE, последовательный порт, Wi-Fi/Ethernet. Для MQTT вы можете указать, хотите ли отправлять зашифрованную или незашифрованную полезную нагрузку.
Насколько это безопасно по сравнению с Wi-Fi WPA3, HTTPS TLS1.3 или Signal?
Нет.
WPA3, TLS1.3, Signal и Meshtastic могут все использовать AES256. Однако AES — это лишь один из многих компонентов, необходимых для современной системы шифрования. Ниже приведены основные функции, «отсутствующие» в Meshtastic.
Perfect-Forward-Secrecy
[Pерфектная [Fутуринговая Sекретность, также известная как PFS означает, что предыдущие коммуникации и, в общем, все пассивно перехваченное не может быть расшифровано даже в случае компрометации ключа.
Это означает, что Meshtastic уязвим к атакам типа « Урожай сейчас, расшифровка позже ». Эта атака сама по себе недостаточна для расшифровки сообщений; она полагается на другую ошибку, приводящую к утечке ключа канала, например:
- Случайное распространение ключа канала не тому человеку.
- Кража одного из ваших узлов.
- Любая неизвестная уязвимость, раскрывающая ключ канала злоумышленнику.
Другие протоколы, такие как неправильно настроенный TLS1.2, гораздо сильнее подвержены атакам «Урожай сейчас, расшифровка позже», поскольку их ключи будут взломаны квантовыми компьютерами в ближайшем будущем, при этом они не обеспечивают PFS.
Шифрование AES256 в Meshtastic считается устойчивым к квантовым атакам[^1], но обмен открытыми/закрытыми ключами для DM не является таковым, поскольку текущие схемы криптографии, устойчивой к квантовым атакам, не помещаются в пакеты LoRa или наше IoT-оборудование; реалистичные векторы атак включают случайное неправильное обращение с ключами каналов, потерю узлов и потенциальные будущие квантовые атаки на обмен ключами DM.
[^1]: О квантовой устойчивости AES256 см. этот вопрос на StackOverflow с некоторым обсуждением и двумя хорошими ответами и раздел FAQ NIST по постквантовой криптографии «Чтобы защититься от угрозы квантовых компьютеров, следует ли сейчас удвоить длину ключа для AES? (добавлено 18.11.18)»
Рекомендации для пользователей, использующих приватные каналы
- Не настраивайте приватные каналы на ненадзираемых узлах. Узлы будут ретранслировать трафик Meshtastic, даже если не смогут его расшифровать. Ваши ненадзираемые маршрутизаторы не должны иметь настроенный приватный PSK, поскольку легко получить физический доступ и извлечь ключ канала.
- Помните, что все, отправленное по каналу, может быть сохранено и расшифровано позже любым, кто получит доступ к ключу, даже если вы локально удалите сообщения.
- Периодически меняйте ключи каналов.
Изменения с момента выпуска прошивки 2.5.0
- Прямые сообщения теперь защищены PKC при общении между устройствами на v2.5.0 или новее и после обмена ключами, сообщения на устаревшие версии прошивки 2.4.3 или старше не защищены.
- Административные сообщения между двумя узлами v2.5.0 или новее теперь защищены, и дополнительная защита от атак повторной передачи реализована.
Целостность
Целостность означает обеспечение невозможности изменения сообщений без ключа.
Meshtastic не проверяет целостность сообщений канала на предмет их подделки (см. issue #4030 для деталей).
Рекомендации
- Помните, что с помощью атаки известного открытого текста кто угодно может отправлять сообщения по каналу, даже если ключ канала приватный и безопасный.
- Для разработчиков сторонних приложений, интегрирующих Meshtastic, добавьте криптографический MAC над содержимым сообщения и PSK. Мы также рассматриваем режим канала с AEAD-защитой, который обеспечит это нативно.
Изменения с момента выпуска прошивки 2.5.0
- Целостность сообщений проверяется для прямых сообщений или административного управления при общении между прошивками v2.5.0 или новее.
Аутентификация
Аутентификация означает, что узлы указывают, кто они есть в сети. Meshtastic не реализует это, поэтому легко подделать кого угодно, если у вас есть доступ к ключу канала.
Это потому, что идентификаторы узлов основаны на аппаратном MAC-адресе, который жестко задан производителем.
Некоторые другие сети, такие как Yggdrasil, cjdns или libp2p, используют пары открытого/закрытого ключа, и открытый ключ становится идентификатором узла. Это делает все сообщения больше и/или требует интерактивного процесса рукопожатия.
Рекомендации
- Помните, что поле отправителя является ориентировочным, и любой с доступом к ключу канала может легко солгать.
Изменения с момента выпуска прошивки 2.5.0
- Вышеуказанное теперь относится только к групповым чатам/каналам, поскольку DM защищены при общении между устройствами на 2.5 или новее, сообщения на устаревшие устройства 2.4 или старше не имеют этой дополнительной аутентификации.
Прямые сообщения
Прямые сообщения (DM) теперь реализованы с использованием криптографии с открытым ключом (PKC). Это обеспечивает значительное улучшение безопасности по сравнению с предыдущим шифрованием на основе канала:
- Шифрование сообщений: Каждое DM шифруется открытым ключом получателя, гарантируя, что только получатель сможет расшифровать сообщение своим закрытым ключом.
- Цифровые подписи: Сообщения подписываются закрытым ключом отправителя, что позволяет получателю проверить личность отправителя и обеспечить целостность сообщения.
До выпуска прошивки 2.5.0
Ранее DM реализовывались как сообщения канала с установленным полем protobuf to. Это означало, что любой в канале мог читать все ваши прямые сообщения. С PKC эта проблема решена, поскольку только предполагаемый получатель может расшифровать и прочитать сообщение.
Рекомендации
- Хотя PKC значительно повышает безопасность DM, все равно рекомендуется избегать передачи чувствительной информации в прямых сообщениях без надлежащей проверки открытого ключа получателя.
Административные сообщения
Административные сообщения/управление теперь защищены улучшенными функциями безопасности, гарантируя, что критические операции в сети более защищены, чем когда-либо.
- Усиленное шифрование: Административные сообщения теперь используют продвинутые методы шифрования, чтобы гарантировать, что только предполагаемые получатели смогут получить доступ и прочитать их.
- Идентификаторы сессий: Каждая административная сессия назначается уникальный идентификатор сессии, который помогает предотвратить несанкционированный доступ и гарантирует, что сообщения не подделаны или не повторены.
До выпуска прошивки 2.5.0
Ранее административные сообщения не были такими безопасными, но с этими обновлениями они теперь гораздо лучше защищены от потенциальных атак и атак повторного воспроизведения.
Рекомендации
- Всегда убедитесь, что ваши устройства используют последнюю прошивку, чтобы воспользоваться этими улучшенными функциями безопасности.
- Регулярно отслеживайте сеть на предмет необычной активности, чтобы поддерживать высокий уровень безопасности.