PWR Radar

Herramienta de auditoría de seguridad de red. Analiza configuraciones TLS/SSL, WiFi (WPA2/WPA3), VPN (IKE/IPsec) y DNS (DNSSEC, CAA, DANE) para evaluar la preparación ante criptografía post-cuántica (PQC). Scoring A-F ponderado.

Instalación

Radar es un único archivo PHP sin dependencias externas.

PHP
require_once __DIR__ . '/core/radar.php';

Requisitos mínimos

  • PHP 7.4 o superior
  • Extensión openssl para análisis TLS
  • Acceso a red para analizar hosts remotos
  • Funciones dns_get_record() para análisis DNS

Uso rápido

Análisis completo de un host con una sola llamada.

PHP
require_once 'core/radar.php';

// Análisis completo
$r = pwr_radar_analizar_completo('ejemplo.com');

// Nota global
echo $r['scoring']['global']['nota']; // A, B, C, D, E, F

// PQC readiness
echo $r['pqc']['nivel']; // preparado, parcial, en_riesgo, vulnerable

Análisis TLS

Analiza el certificado TLS/SSL de un host: tipo de clave (RSA/ECDSA), tamaño, cipher suites, protocolo, cadena de certificados y preparación PQC.

PHP
$tls = pwr_radar_analizar_tls('ejemplo.com', 443);

echo $tls['tipo_clave'];       // RSA, ECDSA
echo $tls['tamano_clave'];     // 2048, 4096, 256, 384
echo $tls['protocolo'];        // TLSv1.3
echo $tls['cipher_suite'];     // TLS_AES_256_GCM_SHA384
echo $tls['dias_restantes'];   // 254
echo $tls['pqc_ready'];        // true/false
Conexión SSL: Radar usa stream_socket_client() con contexto SSL para capturar el certificado y los parámetros de la conexión. No requiere cURL.

Campos del resultado TLS

CampoTipoDescripción
tipo_clavestringRSA, ECDSA, DSA o Desconocido
tamano_claveintBits de la clave pública
protocolostringVersión TLS negociada (TLSv1.2, TLSv1.3)
cipher_suitestringCipher suite negociada
validoboolSi el certificado es válido ahora
dias_restantesintDías hasta expiración
pqc_readyboolSi usa algoritmos post-cuánticos
vulnerabilidadesarrayLista de vulnerabilidades detectadas
recomendacionesarraySugerencias de mejora

Análisis WiFi

Evalúa la seguridad de una configuración WiFi: versión WPA, cifrado, intercambio de claves y PMF.

PHP
$wifi = pwr_radar_analizar_wifi([
    'protocolo'   => 'WPA3',
    'cifrado'     => 'GCMP-256',
    'intercambio' => 'SAE',
    'pmf'         => true,
]);

echo $wifi['wpa_version'];      // WPA3
echo $wifi['nivel_seguridad'];  // alto, medio, bajo, critico
echo $wifi['puntuacion'];       // 0-100
echo $wifi['pqc_vulnerable'];   // true/false

Protocolos soportados

ProtocoloEvaluaciónNivel
WPA3-SAE + GCMP-256 + PMFÓptimoAlto
WPA2-PSK + CCMP + PMFAceptableMedio
WPA2-PSK + TKIPDébilBajo
WEP / Red abiertaInseguroCrítico

Análisis VPN

Analiza la configuración de una VPN IPsec/IKE: versión IKE, grupos DH, cifrado, hash y PFS.

PHP
$vpn = pwr_radar_analizar_vpn([
    'tipo'        => 'IPsec',
    'ike_version' => 2,
    'dh_group'    => 20,
    'cifrado'     => 'AES-256-GCM',
    'hash'        => 'SHA-384',
    'pfs'         => true,
]);

echo $vpn['nivel_seguridad'];  // alto, medio, bajo
echo $vpn['puntuacion'];       // 0-100
PQC: Todos los intercambios DH y ECDH son vulnerables al algoritmo de Shor. Radar señala esta vulnerabilidad y recomienda planificar la migración a ML-KEM cuando esté disponible en los estándares IETF.

Análisis DNS

Verifica registros DNS de seguridad: DNSSEC, CAA, DANE/TLSA, SPF y DMARC.

PHP
$dns = pwr_radar_analizar_dns('ejemplo.com');

echo $dns['dnssec']['presente']; // true/false
echo $dns['caa']['presente'];    // true/false
echo $dns['dane']['presente'];   // true/false
echo $dns['spf']['presente'];    // true/false
echo $dns['dmarc']['presente'];  // true/false

Registros evaluados

RegistroPesoFunción
DNSSEC25 ptsAutenticidad de respuestas DNS
CAA25 ptsLimita CAs autorizadas para el dominio
DANE/TLSA25 ptsAnclaje de certificados vía DNS
SPF10 ptsProtección contra suplantación de correo
DMARC15 ptsPolítica anti-phishing

PQC Readiness

Evalúa la preparación de la infraestructura ante la amenaza de la computación cuántica. Puntuación 0-100% basada en los cuatro análisis.

PHP
$resultados = pwr_radar_analizar_completo('ejemplo.com');
$pqc = pwr_radar_pqc_readiness($resultados);

echo $pqc['porcentaje'];   // 0-100
echo $pqc['nivel'];        // preparado, parcial, en_riesgo, vulnerable
echo $pqc['descripcion'];  // Texto descriptivo

Niveles PQC

PuntuaciónNivelSignificado
80-100%PreparadoInfraestructura lista para la era post-cuántica
60-79%ParcialSe requieren actualizaciones específicas
30-59%En riesgoMúltiples componentes sin protección
0-29%VulnerableSin protección post-cuántica

Pesos por categoría

CategoríaPesoFactores evaluados
TLS40 ptsTLS 1.3, tamaño de clave, cipher suites, PQC nativo
WiFi20 ptsWPA3, PQC, PMF
VPN20 ptsIKEv2, PFS, PQC, cifrado fuerte
DNS20 ptsDNSSEC, CAA, DANE, SPF, DMARC

Scoring

Calificación A-F basada en análisis ponderado por categoría.

PHP
$scoring = pwr_radar_scoring($resultados);

echo $scoring['global']['nota'];    // A, B, C, D, E, F
echo $scoring['global']['puntos'];  // 0-100

// Desglose por categoría
foreach ($scoring['categorias'] as $cat => $datos) {
    echo "{$cat}: {$datos['nota']} ({$datos['puntos']})\n";
}

Escala de notas

NotaPuntosSignificado
A90-100Excelente — configuración óptima
B80-89Buena — detalles menores pendientes
C65-79Aceptable — mejoras recomendadas
D50-64Deficiente — problemas serios
E30-49Malo — riesgos significativos
F0-29Crítico — acción inmediata requerida

Pesos del scoring

CategoríaPeso
TLS/SSL35%
DNS25%
WiFi20%
VPN20%

API de funciones

pwr_radar_info()

Devuelve información del módulo: versión, capacidades, disponibilidad de extensiones.

Firma
pwr_radar_info(): array

pwr_radar_analizar_tls()

Analiza la configuración TLS de un host: certificado, cipher suites, protocolo, PQC.

Firma
pwr_radar_analizar_tls(string $host, int $port = 443): array
ParámetroTipoDescripción
$hoststringHostname o dominio del servidor
$portintPuerto TLS (por defecto 443)

pwr_radar_analizar_wifi()

Evalúa la seguridad de una configuración WiFi.

Firma
pwr_radar_analizar_wifi(array $config): array
Clave configTipoDescripción
protocolostringWPA3, WPA2, WPA, WEP, OPEN
cifradostringGCMP-256, CCMP, TKIP
intercambiostringSAE, ECDH, PSK, DPP
pmfboolProtected Management Frames

pwr_radar_analizar_vpn()

Analiza la configuración de una VPN IPsec/IKE.

Firma
pwr_radar_analizar_vpn(array $config): array
Clave configTipoDescripción
tipostringIPsec, OpenVPN, WireGuard
ike_versionint1 o 2
dh_groupint|stringGrupo DH (2, 5, 14, 20, ecp384...)
cifradostringAES-256-GCM, AES-128, 3DES...
hashstringSHA-384, SHA-256, SHA-1, MD5
pfsboolPerfect Forward Secrecy

pwr_radar_analizar_dns()

Verifica registros DNS de seguridad de un dominio.

Firma
pwr_radar_analizar_dns(string $dominio): array

pwr_radar_pqc_readiness()

Calcula la puntuación de preparación post-cuántica (0-100) con desglose por categoría.

Firma
pwr_radar_pqc_readiness(array $resultados): array

pwr_radar_scoring()

Calcula nota A-F basada en resultados ponderados de todos los análisis.

Firma
pwr_radar_scoring(array $resultados): array

pwr_radar_informe()

Genera un informe completo en formato array o JSON.

Firma
pwr_radar_informe(array $resultados, string $formato = 'array'): mixed
ParámetroTipoDescripción
$resultadosarrayResultados de los análisis
$formatostring'array' o 'json'

pwr_radar_analizar_completo()

Ejecuta todos los análisis disponibles para un host en una sola llamada.

Firma
pwr_radar_analizar_completo(string $host, array $opciones = []): array
OpciónTipoDescripción
portintPuerto TLS (defecto 443)
wifiarrayConfig WiFi para incluir en el análisis
vpnarrayConfig VPN para incluir en el análisis
skip_tlsboolSaltar análisis TLS
skip_dnsboolSaltar análisis DNS