Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wolfGuard — Módulo de kernel VPN y herramienta de usuario compatibles con FIPS 140-3, reemplazo directo de WireGuard con criptografía AES-256-GCM, SHA2-256 y SECP256R1 para túneles seguros. | Kitploit
Herramientas/GitHubGitHub/wolfssl/wolfguard
Herramientas de Cifrado/DescifradoSeguridad de RedesCriptografíaAutenticación
GitHubwolfssl/wolfguard

wolfGuard

Módulo de kernel VPN y herramienta de usuario compatibles con FIPS 140-3, reemplazo directo de WireGuard con criptografía AES-256-GCM, SHA2-256 y SECP256R1 para túneles seguros.

Ver Repositorio
1241868hace 3 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

WolfGuard VPN con criptografía FIPS 140-3

WolfGuard es la refactorización compatible con FIPS de wolfSSL del WireGuard basado en el kernel de Linux, originalmente diseñado y escrito por Jason Donenfeld. El uso es esencialmente idéntico. Hay dos componentes principales de WolfGuard: el módulo del kernel wolfguard.ko y la herramienta de configuración wg-fips. wolfguard.ko depende del módulo del kernel libwolfssl.ko, y wg-fips depende de la biblioteca libwolfssl.so — estas dependencias se construyen a partir de la misma fuente de wolfSSL, con configuración de módulo del kernel y biblioteca de usuario respectivamente. El script wg-fips-quick funciona exactamente como wg-quick en WireGuard, pero con scripts de configuración en /etc/wolfguard que contienen claves públicas y privadas SECP256R1.

Se instalan enlaces simbólicos en el directorio bin de instalación desde wg a wg-fips, y desde wg-quick a wg-fips-quick, para un reemplazo directo transparente de WireGuard. Si se encuentran ejecutables de WireGuard durante la instalación, se renombran a wg-wireguard y wg-wireguard-quick, con wg-wireguard-quick modificado para llamar a wg-wireguard, y con una copia de seguridad dejada como wg-wireguard-quick.unpatched.

WolfGuard reasigna la criptografía de WireGuard de la siguiente manera:

Categoría de algoritmoWireGuardWolfGuard
ECDHCurve25519SECP256R1
AEADXChaCha20-Poly1305AES-256-GCM
digestBlake2sSHA2-256
digest autenticanteBlake2s-HMACSHA2-256-HMAC
hash internoSipHashSHA2-256
DRBGChaCha20 DRBGSHA2-256 Hash-DRBG

Tenga en cuenta que WolfGuard y WireGuard pueden coexistir en el mismo sistema, estableciendo túneles WolfGuard y WireGuard simultáneamente.

Si libwolfssl.ko está configurado con --enable-intelasm, el rendimiento de WolfGuard iguala o supera al de WireGuard acelerado por CPU, gracias a la aceleración de CPU de las operaciones AES-256-GCM y SHA2-256. Sin --enable-intelasm, WolfGuard es ligeramente más lento que WireGuard acelerado por CPU, pero aún es capaz de saturar gigabit ethernet en CPUs modernas.

Construcción e Instalación

A continuación se presentan dos conjuntos de instrucciones, el primero para construir a partir de fuentes no FIPS, y el segundo para construir a partir de fuentes certificadas FIPS. En ambos casos, la herramienta de usuario y el script de WolfGuard se denominan wg-fips y wg-fips-quick, reflejando su uso de algoritmos aprobados por FIPS independientemente del estado de certificación FIPS. Las compilaciones certificadas FIPS y no certificadas de WolfGuard son completamente interoperables entre sí, pero no pueden interoperar con WireGuard.

La opción --enable-intelasm solo debe usarse con objetivos de CPU x86, y para FIPS, solo en fuentes FIPS que lo soporten. Contáctenos en [email protected] para más información.

La opción --enable-wolfguard habilita el conjunto mínimo de características de biblioteca/módulo requerido para WolfGuard. Para un conjunto de características más completo, use --enable-all-crypto en su lugar.

Los comandos precedidos por $ deben ser ejecutados por un usuario sin privilegios, mientras que aquellos con # deben ejecutarse con privilegios de root, pero en el mismo contexto de directorio de trabajo establecido.

Tenga en cuenta que si se utiliza un archivo de lanzamiento de wolfSSL en lugar de las fuentes git, el lanzamiento debe ser la versión 5.8.4 o más reciente.

Construcción e instalación de fuentes git no FIPS

(1) Cree un directorio de nivel superior para las fuentes y complételo:

$ 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) Construya e instale la biblioteca de usuario libwolfssl:

Nota: este paso es opcional en Linux, donde por defecto wg-fips descarga las operaciones de generación y conversión de claves al módulo del kernel, en lugar de realizarlas internamente.

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

(3) Construya e instale la herramienta de usuario wg-fips -- tenga en cuenta que la instalación moverá los ejecutables y páginas man existentes de WireGuard wg y wg-quick en los directorios de destino (si están presentes) a wg-wireguard y wg-wireguard-quick respectivamente, e instalará enlaces simbólicos para wg y wg-quick que apunten a las versiones de WolfGuard.

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

Para forzar el uso de operaciones de clave internas en Linux, en lugar de la descarga predeterminada al módulo del kernel, reemplace make -j con make -j NO_IPC_LLCRYPTO=1.

Hay soporte disponible para claves públicas comprimidas, cuyas longitudes exportadas en base64 son las mismas que las claves públicas Curve25519 de WireGuard. Esto se puede habilitar sustituyendo

$ make -j EXTRA_CFLAGS=-DWG_USE_PUBLIC_KEY_COMPRESSION

en lo anterior. Sin embargo, tenga en cuenta que WolfGuard con WG_USE_PUBLIC_KEY_COMPRESSION es incompatible con la configuración predeterminada de WolfGuard -- cuando se establece, se suministran y esperan claves públicas comprimidas, tanto en la configuración local como en las negociaciones a través de la red.

(4) Construya e instale el módulo del kernel libwolfssl. Reemplace /usr/src/linux con la ruta a su árbol de fuentes del kernel de destino real, que debe estar completamente configurado y construido, y coincidir exactamente con el kernel que arrancará en su sistema de destino. El modprobe al final asume que está apuntando al sistema nativo en ejecución.

$ 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

Antes de poner el módulo del kernel libwolfssl en producción, debe construirlo y cargarlo con la autocomprobación extendida habilitada. Reemplace la receta ./configure anterior con lo siguiente:

$ ./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

Las opciones adicionales no son apropiadas para producción, pero un módulo configurado con ellas debe cargarse en un entorno de ejecución representativo para confirmar que todos los algoritmos funcionan correctamente.

(5) Construya e instale el módulo del kernel de WolfGuard. Nuevamente, reemplace /usr/src/linux con la ruta a su árbol de fuentes del kernel de destino real, y reemplace 6.16.5-gentoo con el valor real devuelto por uname -r en el sistema de destino. Y nuevamente, el modprobe después de la construcción asume que está apuntando al sistema nativo en ejecución.

$ 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

El valor KERNELRELEASE es, efectivamente, el nombre exacto del directorio bajo /lib/modules/ donde están instalados los módulos del kernel de destino.

Las operaciones genkey y pubkey en la línea final son pruebas de funcionalidad básica. Si todo está bien, tendrá éxito e imprimirá una clave pública aleatoria.

Descargar herramienta