Por qué un paquete VPN cifrado puede costar menos de lo que cree
Otra etiqueta criptográfica no es otra unidad de trabajo. Compare el camino completo: construcción AEAD, soporte de la CPU, almacenamiento en búfer y el modo de datos negociado.
Dos perfiles se someten a prueba en la misma puerta de enlace, uno con cifrado y otro sin él, y el cifrado no es más lento. A veces es más rápido, lo que suele provocar una larga discusión sobre si la prueba se ejecutó correctamente. El resultado es verosímil, porque el coste de un paquete no es el número de palabras criptográficas de la configuración. Es el conjunto de operaciones que realiza la implementación, con el hardware que tiene, sobre la disposición de búfer que eligió.
El síntoma: el lento no es el perfil cifrado
Suponga que una prueba histórica compara un cifrado AEAD con un modo «sin cifrado» que aún calcula un código de autenticación separado por paquete. El segundo perfil oculta el contenido de la carga útil pero mantiene un hash por paquete, y en un procesador sin aceleración para ese hash puede costar más que la construcción integrada a la que debía superar.
La etiqueta de la configuración dice «cifrado», y la etiqueta es todo lo que miran la mayoría de las comparaciones. El camino del paquete dice algo distinto: un perfil realiza una operación combinada para la que la CPU tiene instrucciones, y el otro realiza una separada para la que no las tiene. Leer solo el archivo de configuración nunca revelará esa diferencia, porque ambas entradas parecen una sola línea. Solo el modo negociado y el camino de código que hay detrás explican el resultado.
Esa es toda la explicación, y no exige ninguna afirmación sobre qué primitiva es universalmente más rápida. Ambas pueden ser rápidas, ambas pueden ser lentas, y el orden depende de la máquina y del código.
Cuente operaciones, no etiquetas
Una construcción AEAD, como la describe el RFC 5116, da a la implementación una única interfaz que devuelve el texto cifrado y la etiqueta juntos. AES-GCM es un ejemplo: cifrado en modo contador combinado con un autenticador de Galois. La interfaz no hace gratuita la integridad; hace que la combinación esté bien definida, y eso es lo que permite a una implementación optimizar el par como una unidad.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Son bocetos de procesamiento, no consejos de configuración. El primero no tiene confidencialidad pero aun así gasta CPU en autenticación, y por eso mismo «desactivar el cifrado» no es sinónimo de «desactivar el trabajo criptográfico».
El segundo puede ser más barato porque los procesadores ofrecen instrucciones para ambas mitades: rondas AES y la multiplicación sin acarreo que usa el campo de Galois. Las bibliotecas también procesan búferes independientes en paralelo, lo que mantiene esas instrucciones ocupadas en lugar de esperar a la memoria.
Qué permite realmente el modo negociado
Con Community OpenVPN, un cifrado de datos AEAD significa que la opción auth ya no aporta su propio HMAC separado del canal de datos. La referencia de la opción de cifrado describe ese alcance, y es la razón por la que dos configuraciones que parecen iguales en un archivo de texto pueden diferir en el trabajo por paquete.
Lea el modo negociado en lugar de la lista de deseos. Una lista de cifrados permitidos y un nombre de suite TLS no le dicen qué operaciones se ejecutan sobre la carga útil, y una línea cipher antigua puede no describir lo que eligió la conexión actual.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
El primer comando lista los cifrados que admite el binario, que es una lista de capacidades y no el resultado negociado. El segundo muestra qué pide realmente el servidor. El registro de conexión es el lugar para confirmar la elección final, porque un cliente puede recaer en algo que el servidor permite pero que nadie pretendía.
Mida la carga de trabajo que realmente ejecuta
Una microprueba criptográfica mide una primitiva en sus propias condiciones. Una transferencia VPN también copia búferes, planifica hilos o interrupciones, comprueba políticas y cruza la red. Esas partes suelen dominar, y por eso una primitiva más rápida no siempre produce un túnel más rápido.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Esos dos comandos le dan una comparación local aproximada de las primitivas en la máquina que tiene delante, y son honestos al ser micropruebas. No dicen nada sobre el rendimiento de su túnel, y nunca deberían citarse como tal.
Luego mida la carga que importa, manteniendo todo lo demás constante: mismo extremo, mismos tamaños de paquete, mismo transporte, misma política de compresión. Si el cambio de perfil también alteró el transporte o la ubicación de procesamiento, el resultado describe ese paquete y no la criptografía.
Tenga también el objetivo a la vista. Una ruta de datos con capacidad criptográfica de sobra todavía puede estar limitada por la latencia porque la aplicación espera idas y vueltas, y las ganancias de capacidad masiva no arreglan un protocolo charlatán. Mida la configuración admitida y aprobada por la política en su conjunto, y trate «menos cajas debe ser más rápido» como la hipótesis que es. La pregunta útil no es si el cifrado cuesta algo, sino si el coste aparece en la medición que realmente le importa.