Декриптиране на пакет в lua dissector

Работя върху персонализиран дисектор за Wireshark в lua.

Някои PDU в протокола са шифровани с помощта на AES и бих искал да ги дешифрирам, за да мога да покажа ясното съдържание в Wireshark. Възможно ли е това с lua dissector и какви API мога да използвам, за да направя дешифрирането?

Или трябва да направя c/c++ дисектор, за да направя дисектор, който дешифрира данни?


person www.jensolsson.se    schedule 11.12.2013    source източник


Отговори (2)


Лично аз използвам lua-crypto, но изисква OpenSSL. Можете да проверите lua-wiki. Наскоро създадох обвивка за това AES изпълнение, наречено bgcrypto. Той няма външни зависимости, но наистина не го използвам все още в реална работа.

person moteus    schedule 11.12.2013
comment
Интересно, lua-crypto ще работи ли на OSX, Windows и Linux? - person www.jensolsson.se; 11.12.2013
comment
Използвам го на Windows. И провеждам тестове на Linux Mint и на travis. - person moteus; 11.12.2013

В момента Wireshark (2.0) не излага крипто API на LUA дисекторите, така че трябва да го внедрите в Lua дисектора.

За чисто решение на Lua можете да използвате lua-lockbox (както е споменато в Lua wiki). Това не се препоръчва, ако имате нужда от производителност, но може да е полезно за създаване на прототипи.

По-бързите реализации на AES декриптиране обикновено използват собствена библиотека, например:

  • LuaCrypto - използва OpenSSL, въпреки че не изглежда поддържан
  • lcrypt - използва libtomcrypt, но изглежда също няма развитие

Тъй като нито една от тези библиотеки не задоволи нуждите ми, разработих нова, базирана на Libgcrypt поради следните причини:

  • Wireshark вече се свързва с Libgcrypt за неща като SSL декриптиране.
  • Библиотеката Libgcrypt поддържа достатъчно много шифри и хешове.
  • Libgcrypt е широко достъпен и има активен екип за разработка.
  • Luagcrypt API е достатъчно прост и документиран.

Резултатът е luagcrypt, който работи на платформите, поддържани от Wireshark (Linux, OS X, Windows). Използва се в дисектора на KDNET, този комит показва трансформацията от lua-lockbox към luagcrypt .

person Lekensteyn    schedule 27.03.2016