¿Qué paquetes de OpenVPN protege el digest de auth?
La opción auth cubre menos de lo que sugiere un perfil. Recorra el canal, el caso AEAD y la protección del canal de control antes de fijar una política de digest.
La mayoría de las discusiones sobre los digests de OpenVPN parten del paquete equivocado. Leer auth SHA256 como «acepta solo pares que ofrezcan SHA256» es lo primero que hay que desaprender. La opción nombra un digest para paquetes concretos, y cuáles son esos paquetes depende del canal y de si ese canal es AEAD. Recorra las cuatro preguntas de abajo en orden; cada una acota lo que el ajuste puede significar en su despliegue.
Nombre el canal que el ajuste debe proteger
OpenVPN tiene un canal de control que transporta el tráfico del apretón de manos TLS y un canal de datos que transporta la carga del túnel. El digest de auth tiene un papel en ambos, pero no el mismo, y el perfil rara vez hace visible la diferencia. Anote cuál de los dos intenta restringir antes de tocar un archivo de configuración.
La tabla de abajo es la versión breve de cómo la misma opción aterriza en cada contexto.
| Context | What the auth digest does |
|---|---|
| Data channel without AEAD | Selects the HMAC digest that authenticates each data packet |
| Data channel with AEAD, such as GCM | Unused for the data channel; the cipher authenticates its own packets |
| Control channel protected by tls-auth | Selects the HMAC digest for that protection, even when data is AEAD |
Compruebe si el canal de datos es AEAD antes de confiar en él
Si el cifrado de datos negociado es AES-GCM o CHACHA20-POLY1305, el canal de datos se autentica a sí mismo y el digest separado no hace el trabajo que quizá imagine. Ambos son construcciones AEAD, así que la integridad la produce la misma operación que cifra la carga. No es una degradación, pero significa que una política justificada como «cada paquete de datos es HMAC-SHA256» es factualmente incorrecta en ese túnel. Confirme el valor negociado en el registro del servidor o en la salida de estado del cliente antes de reescribir la política.
Inspeccione el cifrado que realmente se negoció en lugar de la lista del perfil, porque la negociación puede recaer en otro miembro del conjunto. data-ciphers AES-256-GCM:AES-128-GCM es una lista de negociación, y ambas entradas son AEAD, así que ninguna de las dos consume el digest de auth para proteger la carga.
Trate la protección del canal de control como una decisión propia
tls-auth añade un HMAC a los paquetes del canal de control y toma su digest del ajuste auth, por eso un túnel AEAD aún puede tener un digest significativo configurado. tls-crypt es otro arreglo con su propia protección fija, así que no asuma que hereda todas las propiedades de tls-auth. Lea la documentación del mecanismo que eligió en lugar de trasladar supuestos entre ellos.
Los dos pares también deben coincidir en el arreglo y en la dirección de la clave. Un digest que coincide pero un archivo de clave usado en la dirección equivocada produce un apretón de manos que falla por razones que el ajuste del digest no puede explicar.
Mantenga auth separado de la negociación de cifrados y de los certificados
Tres ajustes se confunden constantemente: el digest de auth, la lista de cifrados de datos y el algoritmo de firma del certificado. Cambiar el primero no reemite un certificado, no selecciona su digest de firma y no crea un método de usuario y contraseña. Las definiciones de opciones de protocolo en las fuentes de OpenVPN 2.6 describen cada una en su propia sección, lo que es un recordatorio útil de que son mandos independientes.
Cuando un par se niega a conectar tras un cambio de digest, la causa suele ser una discrepancia en uno de los otros dos ajustes. Lea ambos extremos antes de cambiar cualquiera de ellos.
Escriba la política y compárela con las configuraciones en ejecución
Una declaración de nivel de flota debería nombrar explícitamente los modos de canal de datos permitidos y la protección del canal de control elegida, en la misma frase. Esa frase es verificable; «usamos SHA256» no lo es. Después compárela con los perfiles efectivos de servidor y cliente en lugar de con una plantilla de un repositorio.
Termine registrando qué negoció realmente cada túnel y qué mecanismo autenticó sus paquetes. Una línea auth visible en un perfil solo es prueba de intención de configuración, y la intención es la parte más barata de la comprobación.