Рейтинг:1

Нужно ли менять IV в AES-256 GCM, если я использую шифрование только для обмена запрос-ответ со случайной строкой?

флаг ag

Когда я хочу использовать шифрование только для обмена запрос-ответ, а не для сокрытия содержимого зашифрованного сообщения, это все еще угроза для меня, если я не изменю IV для нового шифрования?

Для облегчения понимания, почему я спрашиваю об этом, вот моя ситуация:

Я использую два Arduino с приемопередатчиками LoRa для связи друг с другом. Один — это мост, подключенный к Интернету, а другой — к сервоприводам и датчикам.

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

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

Вот почему я использую обмен запрос-ответ, чтобы проверить, отправил ли мой мост пакет и т. д.

Но у меня нет способа (по крайней мере, одного, о котором я знаю) обменять IV на другой Arduino, чтобы он мог расшифровать вызов.

Мои вопросы:

Нельзя ли изменение IV в моем случае как-то эксплуатировать? Если да. Как и что это значит для меня?

Есть ли лучший способ сделать это?

Maarten Bodewes avatar
флаг in
CBC-MAC подходит для сообщений фиксированного размера. Вы можете уменьшить его до 64 бит, если вам не хватает места.
kelalaka avatar
флаг in
IV не обменивается, IV генерируется локально, а затем передается с зашифрованным текстом, обычно как $IV|Ciphertext|AuthenticanTag$. ЕСЛИ вас не волнует, что злоумышленник знает ваши данные, возможно, вам нужна только целостность и аутентификация. Вы можете использовать просто HMAC. Имейте в виду, что в вашем случае возможны повторные атаки.
Maarten Bodewes avatar
флаг in
HMAC поддерживается из коробки, кажется, с последней библиотекой. Но для CBC-MAC вам понадобится устаревшая реализация режима CBC (и самостоятельно выполнить битовое заполнение). Это может быть быстрее, хотя это во многом зависит от деталей реализации. HMAC-SHA-1 должен быть достаточно быстрым и безопасным для большинства целей.
kelalaka avatar
флаг in
И более подробная информация о катастрофе повторного использования IV AES/GCM [здесь] (https://crypto.stackexchange.com/q/26790/18298)
Рейтинг:3
флаг ru

Вы должны менять IV каждый раз.

Это отмечалось в разных местах (см., например, Joux «Ошибки аутентификации в версии NIST GCM" раздел 3), что один повторяющийся IV, скорее всего, даст злоумышленнику возможность вычислить теги аутентификации для себя. Вместе с податливостью режима счетчика, если злоумышленник знает XOR двух ответов и аутентифицированное шифрование одного, они тогда свободно сможет подделать другой.

Как отмечено в комментариях, ключ HMAC дает очень хорошую альтернативу. Простым обменом ответами на вызовы могут быть:

  • Бридж: «Я хочу дать вам инструкцию»
  • Сервопривод: одноразовый номер
  • Мост: команда,ХМАС(Секретный ключ,одноразовый номер | команда)

Сервопривод сверяет значение HMAC со своими собственными вычислениями и, если они равны, выполняет команду. При условии, что сервопривод не повторяет одноразовые номера и ключ остается секретным, это должно работать. Nonces может быть даже от счетчика (при условии, что счетчик нельзя принудительно повторить).

kelalaka avatar
флаг in
Ну вообще-то нулевой IV можно долго использовать при детерминированном построении при условии, что нет краха системы. [NIST уже предлагает этот тип использования] (https://crypto.stackexchange.com/q/84357/18298). Все еще рискованно для OP, и GCM имеет много подводных камней, HMAC лучше использовать, поскольку он допускает подводные камни.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.