Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
wolfGuard — Modulo kernel VPN e strumento utente conformi a FIPS 140-3, sostituto drop-in per WireGuard con crittografia AES-256-GCM, SHA2-256 e SECP256R1 per tunneling sicuro. | Kitploit
Strumenti/GitHubGitHub/wolfssl/wolfguard
Strumenti di Crittografia/DecrittografiaSicurezza di ReteCrittografiaAutenticazione
GitHubwolfssl/wolfguard

wolfGuard

Modulo kernel VPN e strumento utente conformi a FIPS 140-3, sostituto drop-in per WireGuard con crittografia AES-256-GCM, SHA2-256 e SECP256R1 per tunneling sicuro.

Vedi Repository
12418683 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

WolfGuard VPN con crittografia FIPS 140-3

WolfGuard è il refactoring conforme a FIPS di wolfSSL del kernel Linux basato su WireGuard, originariamente progettato e creato da Jason Donenfeld. L'utilizzo è essenzialmente identico. WolfGuard ha due componenti principali: il modulo kernel wolfguard.ko e lo strumento di configurazione wg-fips. wolfguard.ko dipende dal modulo kernel libwolfssl.ko e wg-fips dipende dalla libreria libwolfssl.so — queste dipendenze sono costruite dalla stessa fonte wolfSSL, rispettivamente con configurazione per modulo kernel e libreria utente. Lo script wg-fips-quick funziona esattamente come wg-quick in WireGuard, ma con script di configurazione in /etc/wolfguard contenenti chiavi pubbliche e private SECP256R1.

I collegamenti simbolici vengono installati nella directory bin di installazione da wg a wg-fips e da wg-quick a wg-fips-quick, per una sostituzione trasparente di WireGuard. Se durante l'installazione vengono trovati eseguibili di WireGuard, vengono rinominati in wg-wireguard e wg-wireguard-quick, con wg-wireguard-quick modificato per chiamare wg-wireguard e con una copia di sicurezza lasciata in wg-wireguard-quick.unpatched.

WolfGuard rimappa la crittografia di WireGuard come segue:

Categoria algoritmoWireGuardWolfGuard
ECDHCurve25519SECP256R1
AEADXChaCha20-Poly1305AES-256-GCM
digestBlake2sSHA2-256
digest di autenticazioneBlake2s-HMACSHA2-256-HMAC
hash internoSipHashSHA2-256
DRBGChaCha20 DRBGSHA2-256 Hash-DRBG

Nota che WolfGuard e WireGuard possono coesistere sullo stesso sistema, stabilendo simultaneamente tunnel WolfGuard e WireGuard.

Se libwolfssl.ko è configurato con --enable-intelasm, le prestazioni di WolfGuard eguagliano o superano quelle di WireGuard accelerato via CPU, grazie all'accelerazione CPU delle operazioni AES-256-GCM e SHA2-256. Senza --enable-intelasm, WolfGuard è leggermente più lento di WireGuard accelerato via CPU, ma è comunque in grado di saturare una gigabit ethernet su CPU moderne.

Compilazione e installazione

Di seguito sono riportate due serie di istruzioni: la prima per la compilazione da fonti non-FIPS, e la seconda per la compilazione da fonti certificate FIPS. In entrambi i casi, lo strumento utente e lo script WolfGuard sono denominati wg-fips e wg-fips-quick, a testimonianza del loro utilizzo di algoritmi approvati FIPS indipendentemente dallo stato di certificazione FIPS. Le versioni certificate e non certificate di WolfGuard sono completamente interoperabili tra loro, ma non possono interoperare con WireGuard.

L'opzione --enable-intelasm dovrebbe essere utilizzata solo con target CPU x86 e, per FIPS, solo su fonti FIPS che la supportano. Contattaci a [email protected] per maggiori informazioni.

L'opzione --enable-wolfguard abilita il set minimo di funzionalità della libreria/modulo richiesto per WolfGuard. Per un set di funzionalità più completo, usa invece --enable-all-crypto.

I comandi preceduti da $ devono essere eseguiti da un utente non privilegiato, mentre quelli con # vanno eseguiti con privilegi di root, ma nello stesso contesto della directory di lavoro stabilita.

Nota che se si utilizza un archivio di rilascio wolfSSL invece dei sorgenti git, la versione deve essere 5.8.4 o successiva.

Compilazione e installazione di sorgenti git non-FIPS

(1) Crea una directory di primo livello per i sorgenti e popolala:

$ mkdir wolf-sources
$ cd wolf-sources
$ git clone https://github.com/wolfssl/wolfssl --branch nightly-snapshot
$ git clone https://github.com/wolfssl/wolfguard
$ (cd wolfssl && ./autogen.sh)

(2) Compila e installa la libreria utente libwolfssl:

Nota: questo passaggio è opzionale su Linux, dove per impostazione predefinita wg-fips scarica le operazioni di generazione e conversione delle chiavi sul modulo kernel, invece di eseguirle internamente.

$ cd wolfssl
$ ./configure --quiet --enable-wolfguard --enable-all-asm
$ make -j
$ ./wolfcrypt/test/testwolfcrypt
# make install
$ cd ..

(3) Compila e installa lo strumento utente wg-fips -- nota: l'installazione sposterà gli eseguibili e le pagine man esistenti di WireGuard wg e wg-quick nelle directory di destinazione (se presenti) rispettivamente in wg-wireguard e wg-wireguard-quick, e installerà collegamenti simbolici per wg e wg-quick che puntano alle versioni WolfGuard.

$ cd wolfguard/user-src
$ make -j
# make install
$ cd ../..

Per forzare l'uso delle operazioni chiave interne su Linux, invece del default di scarico sul modulo kernel, sostituisci make -j con make -j NO_IPC_LLCRYPTO=1.

È disponibile il supporto per chiavi pubbliche compresse, le cui lunghezze esportate in base64 sono le stesse delle chiavi pubbliche Curve25519 di WireGuard. Ciò può essere abilitato sostituendo

$ make -j EXTRA_CFLAGS=-DWG_USE_PUBLIC_KEY_COMPRESSION

nel comando sopra. Nota, tuttavia, che WolfGuard con WG_USE_PUBLIC_KEY_COMPRESSION è incompatibile con le impostazioni predefinite di WolfGuard -- quando è impostato, le chiavi pubbliche compresse vengono fornite e attese, sia nella configurazione locale che nelle negoziazioni di rete.

(4) Compila e installa il modulo kernel libwolfssl. Sostituisci /usr/src/linux con il percorso del tuo albero dei sorgenti del kernel target, che deve essere completamente configurato e compilato, e corrispondere esattamente al kernel che avvierai sul tuo sistema target. Il modprobe alla fine presuppone che tu stia puntando al sistema nativo in esecuzione.

$ cd wolfssl
$ ./configure --quiet --enable-wolfguard --enable-cryptonly --enable-intelasm \
   --enable-linuxkm --with-linux-source=/usr/src/linux \
   --prefix=$(pwd)/linuxkm/build
$ make -j module
# make install
# modprobe libwolfssl

Prima di mettere in produzione il modulo kernel libwolfssl, dovresti compilarlo e caricarlo con l'auto-test esteso abilitato. Sostituisci la ricetta ./configure sopra con la seguente:

$ ./configure --quiet --enable-wolfguard --enable-cryptonly --enable-intelasm \
   --enable-linuxkm --with-linux-source=/usr/src/linux \
   --prefix=$(pwd)/linuxkm/build --enable-crypttests \
   CFLAGS=-DWOLFSSL_LINUXKM_VERBOSE_DEBUG

Le opzioni extra non sono appropriate per la produzione, ma un modulo configurato con esse dovrebbe essere caricato in un ambiente runtime rappresentativo per confermare che tutti gli algoritmi funzionino correttamente.

(5) Compila e installa il modulo kernel WolfGuard. Ancora, sostituisci /usr/src/linux con il percorso del tuo albero dei sorgenti del kernel target, e sostituisci 6.16.5-gentoo con il valore effettivo restituito da uname -r sul sistema target. E ancora, il modprobe dopo la compilazione presuppone che tu stia puntando al sistema nativo in esecuzione.

$ cd ../wolfguard/kernel-src
$ make -j KERNELDIR=/usr/src/linux KERNELRELEASE=6.16.5-gentoo
# make install
# modprobe wolfguard
$ ../user-src/wg-fips genkey | ../user-src/wg-fips pubkey

Il valore KERNELRELEASE è, di fatto, il nome esatto della directory sotto /lib/modules/ dove sono installati i moduli del kernel target.

Le operazioni genkey e pubkey nell'ultima riga sono test di funzionalità di base. Se tutto è a posto, avranno successo e stamperanno una chiave pubblica casuale.

Come per la compilazione di wg-fips sopra, il supporto per chiavi pubbliche compresse può essere abilitato aggiungendo EXTRA_CFLAGS=-DWG_USE_PUBLIC_KEY_COMPRESSION alla ricetta make sopra. L'impostazione WG_USE_PUBLIC_KEY_COMPRESSION deve essere corrispondente in tutto l'ecosistema.

Scarica lo strumento