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)»

Рекомендации для пользователей, использующих приватные каналы

Изменения с момента выпуска прошивки 2.5.0

Целостность

Целостность означает обеспечение невозможности изменения сообщений без ключа.

Meshtastic не проверяет целостность сообщений канала на предмет их подделки (см. issue #4030 для деталей).

Рекомендации

Изменения с момента выпуска прошивки 2.5.0

Аутентификация

Аутентификация означает, что узлы указывают, кто они есть в сети. Meshtastic не реализует это, поэтому легко подделать кого угодно, если у вас есть доступ к ключу канала.

Это потому, что идентификаторы узлов основаны на аппаратном MAC-адресе, который жестко задан производителем.

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

Рекомендации

Изменения с момента выпуска прошивки 2.5.0

Прямые сообщения

Прямые сообщения (DM) теперь реализованы с использованием криптографии с открытым ключом (PKC). Это обеспечивает значительное улучшение безопасности по сравнению с предыдущим шифрованием на основе канала:

До выпуска прошивки 2.5.0

Ранее DM реализовывались как сообщения канала с установленным полем protobuf to. Это означало, что любой в канале мог читать все ваши прямые сообщения. С PKC эта проблема решена, поскольку только предполагаемый получатель может расшифровать и прочитать сообщение.

Рекомендации

Административные сообщения

Административные сообщения/управление теперь защищены улучшенными функциями безопасности, гарантируя, что критические операции в сети более защищены, чем когда-либо.

До выпуска прошивки 2.5.0

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

Рекомендации