PWR Antena
Herramienta de gestion PQC (Post-Quantum Cryptography) para routers WiFi y puntos de acceso. Audita configuraciones existentes, genera configs seguras WPA3-SAE para hostapd, OpenWrt y MikroTik, evalua passwords y verifica compatibilidad post-cuantica.
Instalacion
Antena es un unico archivo PHP sin dependencias externas.
require_once __DIR__ . '/core/antena.php';
Requisitos minimos
- PHP 7.4 o superior
- Sin extensiones adicionales necesarias
- Sin Composer, sin dependencias externas
- Un unico archivo PHP de ~400 lineas
Uso rapido
Auditoria completa de un router WiFi en pocas lineas.
require_once 'core/antena.php';
// Configuracion del router a auditar
$config = [
'wpa_version' => 'wpa3',
'cifrado' => 'gcmp-256',
'key_exchange' => 'sae',
'password' => 'Mi-P@ssword-Seguro!',
'ssid' => 'MiRedWiFi',
'pmf' => 'required',
'wps_activo' => false,
];
// Auditar
$resultado = pwr_antena_auditar($config);
$scoring = pwr_antena_scoring($resultado);
echo "Nota: {$scoring['nota']} ({$scoring['puntos']}/100)";
Auditar router
La funcion pwr_antena_auditar() recibe un array con la configuracion del router
y devuelve un informe completo con hallazgos, puntuacion y detalles por categoria.
Parametros de configuracion
| Parametro | Tipo | Descripcion |
|---|---|---|
wpa_version | string | open, wep, wpa, wpa2, wpa2/wpa3, wpa3 |
cifrado | string | none, wep, tkip, ccmp, gcmp-256, sae |
key_exchange | string | psk, sae, eap, owe, sae-ext |
password | string | Password de la red WiFi |
ssid | string | Nombre de la red |
management | array | ['https' => bool, 'puerto' => int, 'password_admin' => string] |
puertos_abiertos | array | Lista de puertos abiertos (ej: [80, 443, 23]) |
wps_activo | bool | Si WPS esta activo |
pmf | string | disabled, optional, required |
Categorias de auditoria
La auditoria evalua 9 categorias:
- WPA version — Protocolo de seguridad wireless (25 puntos)
- Cifrado — Algoritmo de cifrado (20 puntos)
- Intercambio de claves — Metodo de autenticacion (15 puntos)
- Password WiFi — Fortaleza del password (15 puntos)
- SSID — Exposicion de informacion (5 puntos)
- Interfaz de gestion — Seguridad de la administracion (10 puntos)
- Puertos abiertos — Puertos de riesgo (5 puntos)
- WPS — Estado de Wi-Fi Protected Setup (5 puntos)
- PMF — Protected Management Frames / 802.11w (5 puntos)
Generar configuraciones
Antena genera configuraciones WPA3-SAE optimizadas para tres plataformas: hostapd, OpenWrt y MikroTik. Todas las configuraciones incluyen PMF obligatorio, GCMP-256 y protecciones adicionales.
hostapd
$hostapd = pwr_antena_generar_hostapd([
'ssid' => 'MiRedSegura',
'password' => 'P@ssw0rd-Fuert3!',
'interfaz' => 'wlan0',
'canal' => 36,
'country' => 'ES',
'banda' => '5ghz',
]);
file_put_contents('/etc/hostapd/hostapd.conf', $hostapd['config']);
OpenWrt
$openwrt = pwr_antena_generar_openwrt([
'ssid' => 'MiRedSegura',
'password' => 'P@ssw0rd-Fuert3!',
'dispositivo' => 'radio0',
'banda' => '5ghz',
'canal' => 36,
]);
// Aplicar: uci commit wireless && wifi reload
MikroTik
$mikrotik = pwr_antena_generar_mikrotik([
'ssid' => 'MiRedSegura',
'password' => 'P@ssw0rd-Fuert3!',
'interfaz' => 'wlan1',
'banda' => '5ghz',
'canal' => 48,
'country' => 'spain',
]);
// Pegar en terminal de RouterOS
Password evaluation
pwr_antena_evaluar_password() analiza la fortaleza de un password WiFi
evaluando longitud, complejidad, entropia, patrones y diccionario de passwords comunes.
$eval = pwr_antena_evaluar_password('Mi-P@ssw0rd-2026!');
// $eval['puntuacion'] = 80 (0-100)
// $eval['entropia'] = 95.2 (bits)
// $eval['nivel'] = 'Excelente'
// $eval['problemas'] = [] (vacio = sin problemas)
Criterios de evaluacion
| Criterio | Puntos | Descripcion |
|---|---|---|
| Longitud >= 20 caracteres | 30 | Password largo recomendado |
| Longitud >= 12 caracteres | 20 | Longitud minima aceptable |
| 4 tipos de caracteres | 25 | Mayusculas + minusculas + numeros + simbolos |
| Entropia >= 80 bits | 25 | Resistencia maxima a fuerza bruta |
| Sin patrones repetitivos | -10 | Penalizacion por caracteres repetidos |
| Sin secuencias (abc, 123) | -5 | Penalizacion por secuencias predecibles |
| No en diccionario | max 5 | Si esta en diccionario, puntuacion limitada a 5 |
PQC Readiness
pwr_antena_pqc_compatible() verifica si una configuracion WiFi esta preparada
para la era post-cuantica. Evalua 5 requisitos clave para resistencia PQC.
$pqc = pwr_antena_pqc_compatible($config);
// $pqc['compatible'] = true/false
// $pqc['nivel'] = 'PQC Ready' | 'PQC Parcial' | 'Preparacion necesaria' | 'No compatible'
// $pqc['puntuacion'] = 0-100
// $pqc['detalles'] = array de checks individuales
Requisitos PQC
- WPA3 (30 puntos) — Base necesaria para PQC
- SAE / SAE extendido (25 puntos) — Intercambio de claves seguro
- Cifrado 256 bits (20 puntos) — GCMP-256 para resistencia PQC
- PMF obligatorio (15 puntos) — Proteccion de tramas de gestion
- Password fuerte (10 puntos) — Entropia suficiente
Scoring
El scoring traduce la puntuacion numerica (0-100) a una nota letra A-F.
| Nota | Puntos | Significado |
|---|---|---|
| A | 90-100 | Excelente — Configuracion segura WPA3 |
| B | 80-89 | Buena — Seguridad solida con mejoras menores |
| C | 65-79 | Aceptable — Mejoras necesarias |
| D | 50-64 | Deficiente — Problemas serios |
| E | 30-49 | Malo — Multiples vulnerabilidades |
| F | 0-29 | Critico — Configuracion insegura |
Recomendaciones
pwr_antena_recomendaciones() genera una lista priorizada de acciones
a partir del resultado de la auditoria. Las recomendaciones se ordenan por criticidad.
$resultado = pwr_antena_auditar($config);
$recs = pwr_antena_recomendaciones($resultado);
foreach ($recs as $r) {
echo "[P{$r['prioridad']}] {$r['titulo']}\n";
echo " Accion: {$r['accion']}\n";
}
Cada recomendacion incluye:
prioridad— 1 (critico) o 2 (aviso)categoria— Categoria del hallazgotitulo— Titulo del problemadescripcion— Descripcion del hallazgoaccion— Accion correctiva recomendada
Plataformas soportadas
hostapd (Linux)
Genera un archivo hostapd.conf completo con WPA3-SAE, GCMP-256, PMF obligatorio,
802.11ax, aislamiento de clientes y logging. Compatible con cualquier distribucion Linux
que soporte hostapd 2.10+.
OpenWrt (UCI)
Genera configuracion UCI para /etc/config/wireless. Incluye wifi-device
y wifi-iface con encryption sae, ieee80211w=2 y sae_pwe=2.
Compatible con OpenWrt 22.03+ y posteriores.
MikroTik RouterOS
Genera script RSC para RouterOS 7.x. Crea un perfil de seguridad WPA3 con
management-protection=required, disable-pmkid=yes y
wps-mode=disabled. Pegar directamente en la terminal de RouterOS.
API de funciones
pwr_antena_info()
Devuelve informacion del modulo: version, nombre y capacidades.
pwr_antena_info(): array
pwr_antena_auditar()
Audita una configuracion de router/AP y devuelve hallazgos con puntuacion.
pwr_antena_auditar(array $config): array
pwr_antena_evaluar_password()
Evalua la fortaleza de un password WiFi.
pwr_antena_evaluar_password(string $password): array
pwr_antena_pqc_compatible()
Verifica si una configuracion es PQC-compatible.
pwr_antena_pqc_compatible(array $config): array
pwr_antena_generar_hostapd()
Genera configuracion hostapd.conf WPA3-SAE.
pwr_antena_generar_hostapd(array $params): array
pwr_antena_generar_openwrt()
Genera configuracion UCI para OpenWrt.
pwr_antena_generar_openwrt(array $params): array
pwr_antena_generar_mikrotik()
Genera configuracion MikroTik RouterOS.
pwr_antena_generar_mikrotik(array $params): array
pwr_antena_recomendaciones()
Genera recomendaciones priorizadas a partir de una auditoria.
pwr_antena_recomendaciones(array $resultado_auditoria): array
pwr_antena_scoring()
Devuelve la nota A-F de una auditoria.
pwr_antena_scoring(array $resultado): array
pwr_antena_informe()
Genera informe completo en formato array, JSON o texto.
pwr_antena_informe(array $resultado, string $formato = 'array'): mixed
| Parametro | Tipo | Descripcion |
|---|---|---|
$resultado | array | Resultado de pwr_antena_auditar() |
$formato | string | 'array', 'json' o 'texto' |