Cómo autenticarse en Racoon con una cadena de certificados si solo se conoce la CA raíz

1

Estoy intentando configurar IPsec usando certificados x509 en Linux. Estoy usando mapache para esa tarea. He llegado al punto en que la autenticación funciona bien si mantengo todos los enlaces de la cadena de certificados en cada host. Mi objetivo es autenticarse mutuamente conociendo solo la CA raíz.

Por ejemplo: para los anfitriones "Alice" y "Bob", la cadena de certificación tiene este aspecto

Root-CA -> MajorCA -> MinorCA -> (Alice/Bob)

Donde Root-CA es autofirmado y así sucesivamente. Certificados que Alice sabe que son

Alice.key
Alice.crt
Root-CA.crt
MajorCA.crt
MinorCA.crt

Certificados que Bob sabe que son

Bob.key
Bob.crt
Root-CA.crt
MajorCA.crt
MinorCA.crt

Ahora todo funciona bien en esta constelación. Alice envía

Hey, I'm Alice, and this is my certificate
"Alice.crt"

Bob y Bob pueden reconstruir toda la cadena

Root-CA -> MajorCA -> MinorCA -> "Alice"

Lo que estoy intentando realizar y no estoy seguro de si esto es posible es autenticar un host a través de Root-CA, independientemente del resto de la cadena, que debe ser proporcionada por el propio host. . Por ejemplo,

Bob conoce solo los siguientes certificados

Bob.key
Bob.crt
Root-CA.crt

y Alice se autentica con Bob enviando

Hey, I'm Alice, and this is my certificate chain
[Root-CA.crt] -> "MajorCA.crt -> MinorCA.crt -> Alice.crt"

ya sea con o sin el certificado Root-CA

Ahora Bob debería poder reconstruir la cadena a

Root-CA -> "MajorCA -> MinorCA -> Alice"

y por lo tanto autenticar a Alice.

Sé que algunos certificados de CA vienen como archivos PEM empaquetados y sé que es posible agrupar toda la cadena como un archivo PKCS12. Pero racoon no admite PKCS12 (¿o sí?) E ignora certificados adicionales en un paquete PEM (y solo toma el primero).

Ahora mi pregunta :-)

¿Alguien sabe cómo darse cuenta de esto (usar el mapache) y hacer que el escenario funcione, o alguien sabe que esto seguramente no funcionará debido a razones que pueden explicar?

Saludos,

fr00tyl00p :-)

    
pregunta fr00tyl00p 28.08.2013 - 21:47
fuente

1 respuesta

2

En IKE v2, es posible que cualquier máquina envíe varios certificados, propios y varios "certificados de ayuda" que podrían ayudar con la validación, es decir, certificados de CA intermedios. El estándar establece que:

Implementations MUST be capable of being configured to send and
accept up to four X.509 certificates in support of authentication,
and also MUST be capable of being configured to send and accept the
Hash and URL format (with HTTP URLs).  Implementations SHOULD be
capable of being configured to send and accept Raw RSA keys.  If
multiple certificates are sent, the first certificate MUST contain
the public key used to sign the AUTH payload.  The other certificates
may be sent in any order.

así debería funcionar, siempre que pueda convencer a sus herramientas ( racoon ) para que envíen los certificados. El estándar está ahí.

El estándar alude a la posibilidad de enviar, por cable, no solo un certificado X.509, sino un archivo PKCS # 7. Un archivo PKCS # 7 es realmente un formato grande y flexible, pero a menudo se usa como contenedor para certificados múltiples (pero no contiene la clave privada). Puede valer la pena intentar usar un archivo con la cláusula certificate_type (en racoon.conf ).

    
respondido por el Thomas Pornin 28.08.2013 - 22:54
fuente

Lea otras preguntas en las etiquetas