Какое сообщение используется для аутентифицированных IP-пакетов с использованием HMAC-MD5?

Это не вопрос программирования как таковой, но он связан с программой c, которую я пытаюсь создать, чтобы отвечать на управляющие сообщения ip sla, отправленные маршрутизатором cisco. Я знаю, что он использует MD5 и цепочку ключей для аутентификации пакета (может быть MD5 или HMAC). Я знаю теорию о HMAC и MD5, и все о сообщении, и о ключе, и обо всем том, что дает нам теория из книги... но у меня есть вопрос, который не кажется очень простым, по крайней мере мне, который находится на конец Какое «сообщение» хешируется и добавляется к пакету, чтобы другой конец мог знать, что пакет действителен?

Спасибо за вашу помощь...

РЕДАКТИРОВАТЬ: У меня есть два маршрутизатора, один из которых действует как генератор ip sla, а другой - как ответчик ip sla. Генератор ip sla аутентифицирует отправленные данные с помощью MD5 и ключа.

Перехватив пакеты, вышедшие из интерфейса генератора ip sla с помощью Wireshark, я обнаружил следующее:

Пакет не аутентифицирован:
Header ip
4500005000000000ff1136E3C0A801C3C0A801A6

Packet Authenticated with key "cisco":
IP Header
4500005000000000ff1136e3c0a801c3c0a801a6
UDP Header
c20107af003cd296
Payload
01040034000000000004001000000000c0a801a6ea6014500001001c00000000*01ff0000b9c0ae94fec238bd43d13129a6625eda*

*где в конце полезной нагрузки вы можете увидеть 0x01ff — номер ключа, используемый для аутентификации пакета, и 0xb9c0ae94fec238bd43d13129a6625ed — строку аутентификации

Capturing another Authenticated packet with key "cisco" I got this:
IP Header
4500005000000000ff1136e3c0a801c3c0a801a6
UDP Header
d47607af003cc021
Payload
01040034000000000004001000000000c0a801a6ea6014500001001c00000000*01ff0000b9c0ae94fec238bd43d13129a6625eda*

Как вы могли видеть, заголовок UDP меняется, но аутентифицированное сообщение остается прежним, что привело меня к выводу, что сообщение для хеширования — это просто полезная нагрузка, но хеширование следующих комбинаций не обеспечивает необходимой аутентификации:

  • MD5 полезной нагрузки не аутентифицирован
  • MD5 полезной нагрузки не аутентифицирован + ключ в шестнадцатеричном формате
  • Hmac-Md5 полезной нагрузки не аутентифицирован
  • Hmac-Md5 полезной нагрузки не аутентифицирован + ключ в шестнадцатеричном формате
  • Слишком много других комбинаций, которые слишком долго перечислять...

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

Спасибо за вашу помощь...


person mercolino    schedule 14.04.2012    source источник


Ответы (1)


Ответ: да, это зависит от протокола (который я не могу найти). Я не вижу никакого упоминания о HMAC в документации, поэтому гораздо более вероятно, что ключ включен как последняя часть в вычисление хэша, но не входит в пакет (конечно). Это отличается от добавления нулей. Затем простой хеш MD5 используется в качестве схемы аутентификации для бедняков.

Все это из-за запутанной документации Cisco и относительно сложного для чтения вопроса — и, конечно же, общих знаний о криптографии.

person Maarten Bodewes    schedule 14.04.2012
comment
Спасибо за ваш комментарий и извините, если вопрос трудно прочитать, я постараюсь объяснить его лучше, отредактировав вопрос... - person mercolino; 15.04.2012
comment
Попробуйте соединить двоичный простой текст полезной нагрузки с двоичной полезной нагрузкой ключа (как после исправления, так и перед исправлением, если это не работает). Обычно вы не подписываете кодировку данных, а только сами данные. Криптографические API обычно работают на уровне байтов. - person Maarten Bodewes; 15.04.2012
comment
К сожалению, не повезло. Я пробовал с двоичной полезной нагрузкой и ключом, но я все еще не получаю того же результата, может быть, я просто делаю что-то неправильно ... Когда вы сказали, что пытаетесь постфикс или префикс ключа, что вы имеете в виду? - person mercolino; 16.04.2012
comment
Я полагаю, что обычно вы должны помещать данные ключа после обычных данных, но может случиться так, что они предварительно подготавливают ключ перед хешированием. Я думаю, вас укусил тот факт, что у нас нет никаких стандартов. Если вы можете указать мне на стандарт, это должно быть легко, прежде чем угадывать. - person Maarten Bodewes; 16.04.2012
comment
Да, я думаю, что это тоже проблема, к сожалению, ipsla является проприетарным протоколом Cisco, и я не смог найти никакой информации о соответствии пакетов UDP и аутентификации, я начинаю думать, что аутентификация не стандартная и является проприетарной Cisco но на основе MD5. - person mercolino; 17.04.2012