lua で Wireshark のカスタム ディセクタに取り組んでいます。
プロトコルの特定の PDU は AES を使用して暗号化されており、Wireshark でクリア コンテンツを表示できるようにこれらを復号化したいと考えています。これは lua ディセクタで可能ですか? また、復号化に使用できる API は何ですか?
それとも、データを復号化するディセクタを作成するために ac/c++ ディセクタを作成する必要がありますか?
lua で Wireshark のカスタム ディセクタに取り組んでいます。
プロトコルの特定の PDU は AES を使用して暗号化されており、Wireshark でクリア コンテンツを表示できるようにこれらを復号化したいと考えています。これは lua ディセクタで可能ですか? また、復号化に使用できる API は何ですか?
それとも、データを復号化するディセクタを作成するために ac/c++ ディセクタを作成する必要がありますか?
現時点では、Wireshark (2.0) は暗号 API を LUA ディセクタに公開していないため、Lua ディセクタに実装する必要があります。
純粋な Lua ソリューションの場合は、lua-lockboxを使用できます( Lua wikiで説明されているように)。これは、パフォーマンスが必要な場合はお勧めしませんが、プロトタイピングには役立つ場合があります。
より高速な AES 復号化の実装では、通常、次のようなネイティブ ライブラリを使用します。
これらのライブラリはどれも私のニーズを満たしていなかったので、次の理由から Libgcrypt に基づいた新しいライブラリを開発しました。
その結果が、Wireshark がサポートするプラットフォーム (Linux、OS X、Windows) で動作するluagcryptです。これは KDNET ディセクタで使用され、このコミットは lua-lockbox から luagcrypt への変換を示しています。
個人的にはlua-cryptoを使用していますが、OpenSSL が必要です。lua-wikiを確認できます。最近、このAES 実装のbgcryptoというラッパーを作成しました。外部依存関係はありませんが、実際の作業ではまだ使用していません。