2

lua で Wireshark のカスタム ディセクタに取り組んでいます。

プロトコルの特定の PDU は AES を使用して暗号化されており、Wireshark でクリア コンテンツを表示できるようにこれらを復号化したいと考えています。これは lua ディセクタで可能ですか? また、復号化に使用できる API は何ですか?

それとも、データを復号化するディセクタを作成するために ac/c++ ディセクタを作成する必要がありますか?

4

2 に答える 2

3

現時点では、Wireshark (2.0) は暗号 API を LUA ディセクタに公開していないため、Lua ディセクタに実装する必要があります。

純粋な Lua ソリューションの場合は、lua-lockboxを使用できます( Lua wikiで説明されているように)。これは、パフォーマンスが必要な場合はお勧めしませんが、プロトタイピングには役立つ場合があります。

より高速な AES 復号化の実装では、通常、次のようなネイティブ ライブラリを使用します。

  • LuaCrypto - OpenSSL を使用しますが、維持されていないようです
  • lcrypt - libtomcrypt を使用していますが、開発も行われていないようです

これらのライブラリはどれも私のニーズを満たしていなかったので、次の理由から Libgcrypt に基づいた新しいライブラリを開発しました。

  • Wireshark は、SSL 復号化などのためにすでに Libgcrypt にリンクしています。
  • Libgcrypt ライブラリは、十分な数の暗号とハッシュをサポートしています。
  • Libgcrypt は広く利用可能であり、活発な開発チームがいます。
  • Luagcrypt API は十分に単純で、文書化されています。

その結果が、Wireshark がサポートするプラットフォーム (Linux、OS X、Windows) で動作するluagcryptです。これは KDNET ディセクタで使用され、このコミットは lua-lockbox から luagcrypt への変換を示しています。

于 2016-03-27T18:18:46.683 に答える
3

個人的にはlua-cryptoを使用していますが、OpenSSL が必要です。lua-wikiを確認できます。最近、このAES 実装のbgcryptoというラッパーを作成しました。外部依存関係はありませんが、実際の作業ではまだ使用していません。

于 2013-12-11T14:52:35.260 に答える