Это не вопрос программирования как таковой, но он связан с программой 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, не является стандартным. Я что-то упускаю? или есть что-то еще, что я мог бы попробовать?
Спасибо за вашу помощь...