¿Cómo se debe configurar IPSec para proporcionar una protección al menos tan buena como la configuración actual de Stunnel?

3

En una red privada (como en el uso de un espacio de direcciones IP privadas) en un proveedor de la nube, otros clientes tienen acceso a la misma red privada. He asegurado la comunicación entre muchos hosts y servicios con TLS provisto por Stunnel.

Fondo: Configuración de Stunnel actual

Para simplificar la situación actual, concentrémonos en la comunicación entre dos nodos, A (dirección IP IP_A ) y B ( IP_B ). Un ejemplo del Stunnel, desde el host A:

; [ This config only shows the crypto-relevant parts ]

; Disable support for insecure SSLv2 protocol and low-strength ciphers
ciphers = TLSv1.2:TLSv1.1:TLSv1:SSLv3:!SSLv2:!SSLv1:!LOW:!eNULL:!aNULL:!ADH:!EXP:!MD5@STRENGTH
sslVersion = TLSv1

; The following options provide additional security at some performance penalty
; Default ECDH/DH parameters are strong/conservative, so it is quite safe to
; comment out these lines in order to get a performance boost
options = SINGLE_ECDH_USE
options = SINGLE_DH_USE

verify = 2

[my-service-B]
client = yes
accept = 127.0.0.1:15674
connect = IP_B:15675
CApath = /etc/stunnel/ssl/my-service/certs
CRLfile = /etc/stunnel/ssl/my-service/ca-crl.pem
cert = /etc/stunnel/ssl/my-service/certs/my-service-cert.pem
key = /etc/stunnel/ssl/my-service/private/my-service-key.pem

La configuración de Stunnel en el host B es idéntica, excepto que La sección de servicio ha sido reemplazada por:

[my-service-localhost]
client = no
accept = IP_B:15675
connect = localhost:15674
; [ … the key and certificates are the same … ]

Los certificados utilizan una clave RSA de 2048 bits. Cuando incluyo la salida de depuración en el registro, Stunnel informa

Could not load DH parameters from /etc/stunnel/ssl/my-service/certs/my-service-cert.pem
Using hardcoded DH parameters
DH initialized with 2048-bit key
ECDH initialized with curve prime256v1

durante el inicio. Además, cuando el host A se conecta, el registro incluye las entradas

SSL accepted: new session negotiated
Negotiated TLSv1/SSLv3 ciphersuite: ECDHE-RSA-AES256-SHA (256-bit encryption)

IPSec

Ahora, me pregunto qué configuración de IPSec proporcionará el mismo nivel de seguridad de transporte que la configuración TLS / Stunnel anterior, tanto con respecto a los algoritmos de cifrado y las claves utilizadas para los encabezados de autenticación IPSec (AH), que encapsulan la carga útil de seguridad (ESP). y las políticas de seguridad? Sé que IPSec protege todo el tráfico de red entre los hosts afectados, mientras que TLS solo protege el tráfico para los puertos / aplicaciones configurados, por lo que no es lo que estoy preguntando.

De acuerdo con la página de manual setkey(8) , los algoritmos de autenticación disponibles para AH son:

algorithm       keylen (bits)
hmac-md5        128             ah: rfc2403
                128             ah-old: rfc2085
hmac-sha1       160             ah: rfc2404
                160             ah-old: 128bit ICV (no document)
keyed-md5       128             ah: 96bit ICV (no document)
                128             ah-old: rfc1828
keyed-sha1      160             ah: 96bit ICV (no document)
                160             ah-old: 128bit ICV (no document)
null            0 to 2048       for debugging
hmac-sha256     256             ah: 96bit ICV
                                (draft-ietf-ipsec-ciph-sha-256-00)
                256             ah-old: 128bit ICV (no document)
hmac-sha384     384             ah: 96bit ICV (no document)
                384             ah-old: 128bit ICV (no document)
hmac-sha512     512             ah: 96bit ICV (no document)
                512             ah-old: 128bit ICV (no document)
hmac-ripemd160  160             ah: 96bit ICV (RFC2857)
                                ah-old: 128bit ICV (no document)
aes-xcbc-mac    128             ah: 96bit ICV (RFC3566)
                128             ah-old: 128bit ICV (no document)
tcp-md5         8 to 640        tcp: rfc2385 (tcp-md5 support only on BSD)

y los algoritmos de cifrado disponibles para ESP son:

algorithm       keylen (bits)
des-cbc         64              esp-old: rfc1829, esp: rfc2405
3des-cbc        192             rfc2451
null            0 to 2048       rfc2410
blowfish-cbc    40 to 448       rfc2451
cast128-cbc     40 to 128       rfc2451
des-deriv       64              ipsec-ciph-des-derived-01
3des-deriv      192             no document
rijndael-cbc    128/192/256     rfc3602
twofish-cbc     0 to 256        draft-ietf-ipsec-ciph-aes-cbc-01
aes-ctr         160/224/288     draft-ietf-ipsec-ciph-aes-ctr-03
camellia-cbc    128/192/256     rfc4312

Note that the first 128 bits of a key for aes-ctr will be used as AES
key, and the remaining 32 bits will be used as nonce.

Por supuesto, en el caso de que varias combinaciones de algoritmos AH y ESP y longitudes de clave proporcionen un nivel de seguridad equivalente al de la configuración de STunnel anterior, me gustaría optimizar para un mayor ancho de banda y un menor uso de CPU.

Además, ¿hay una lista de (aproximadamente) pares de configuración de TLS e IPSec equivalentes (algoritmos y longitudes de clave)?

Actualizar

Cuando escribí el "nivel de seguridad" más arriba, probablemente debería haber sido más específico y referido a un concepto como "fortaleza de seguridad" o "bits de seguridad", según lo define el Instituto Nacional de Estándares y Tecnología de EE. UU. NIST) en Publicación especial NIST 800-57: Recomendación para la gestión de claves - Parte 1: General Revisión 3) :

  

Un número asociado con la cantidad de trabajo (es decir, el número de   Operaciones) que se requiere para romper un algoritmo criptográfico o   sistema. En esta Recomendación, la fuerza de seguridad se especifica en   bits y es un valor específico del conjunto {80, 112, 128, 192, 256}

Sin embargo, tenga en cuenta que bits de seguridad no es (necesariamente) igual a la longitud de la clave utilizada para un cifrado en particular. Además, en la sección "5.6.1 Fortalezas de algoritmos comparables", anotan (énfasis agregado por mí):

  

[...] dos algoritmos se consideran de fuerza comparable para los tamaños de clave dados (X e Y) si la cantidad de trabajo necesario para "romper los algoritmos" o determinar las claves (con los tamaños de clave dados) es aproximadamente el mismo usando un recurso dado. La fuerza de seguridad de un algoritmo para un tamaño de clave dado se describe tradicionalmente en términos de la cantidad de trabajo necesario para probar todas las claves de un algoritmo simétrico con un tamaño de clave de "X" que no sea corto. ataques de corte (es decir, el ataque más eficiente es probar todas las claves posibles).

Por lo tanto, cuando pregunté qué configuración IPSec proporcionará el mismo nivel de seguridad de transporte que la configuración TLS / Stunnel anterior, la respuesta probablemente dependerá de la fuerza de cifrado del cifrado negociado por Stunnel, como se mencionó anteriormente, combinado con cualquier conocimiento de cómo el modelo de seguridad IPSec frente al modelo de seguridad TLS podría afectar la efectividad del cifrado y / o la seguridad general del transporte.

    
pregunta Martin Thorsen Ranang 09.02.2014 - 23:46
fuente

1 respuesta

1
  

Ahora, me pregunto qué configuración de IPSec proporcionará el mismo nivel de seguridad de transporte que la configuración TLS / Stunnel anterior, ambas con respecto a

Buscar ciegamente "el mismo nivel" entre dos tecnologías completamente diferentes es más o menos una opinión. No tengo conocimiento de un conjunto completo e integral de mediciones significativas que existen, mucho menos de una que tenga siquiera la posibilidad de dar. un resultado idéntico.

  

algoritmos de cifrado y claves utilizadas para los encabezados de autenticación IPSec (AH),

De la lista que proporcionaste, voy a adivinar que ECDHE-RSA-AES256-SHA de stunnel es probablemente más equivalente a hmac-sha1. Recomendaría pasar al menos a hmac-sha256.

  

carga de seguridad de encapsulación (ESP)

De la lista que proporcionaste, el ECDHE-RSA-AES256-SHA de stunnel es el más equivalente a aes-ctr con una longitud de 288. Si estás en Europa o Japón, probablemente deberías sustituir camelia-cbc por una longitud de 256, ya que las variantes de camelia son sus estándares.

  

y las políticas de seguridad?

No puedo responder a esa parte, lo siento, ya que normalmente uso OpenVPN en su lugar.

    
respondido por el Anti-weakpasswords 10.02.2014 - 00:14
fuente

Lea otras preguntas en las etiquetas