Verificar que la respuesta SAML proviene de una fuente confiable

7

Estoy en el proceso de realizar cambios en mi sitio para que podamos ser un proveedor de servicios SAML 2.0. Haremos SAML iniciado por IdP con federación de cuentas fuera de banda.

Mi pregunta es la siguiente: dada una respuesta SAML que se publica en la página de destino de mi sitio, ¿cómo verifico que la respuesta fue generada por una fuente confiable?

Puedo validar la firma que está incorporada en la respuesta, pero ... ¿no podría alguien simplemente firmar una respuesta y comenzar a publicarla en mi sitio, intentando validar a los usuarios? ¿Asumo que hay algo en la firma que puedo extraer y comparar con una lista de proveedores de identidad confiables? ¿Pero no podría un atacante simplemente falsificar eso?

    
pregunta theycallmemorty 17.05.2011 - 20:24
fuente

2 respuestas

6

La firma debe validarse contra una clave. Debe tener una clave correspondiente para cualquier entidad con la que esté intercambiando datos. Las entidades no autorizadas no tendrán claves, y el espacio de claves de cualquier protocolo de criptografía bueno y ampliamente aceptado hará imposible el uso de fuerza bruta.

A partir de la redacción de su pregunta, creo que puede leer el concepto de firmas digitales .

    
respondido por el Jeff Ferland 17.05.2011 - 21:01
fuente
6

Como dijo @Jeff Ferland, debes confiar en la clave de la parte remota.

Esto es exactamente por qué las federaciones de Shibboleth están diseñadas para, por ejemplo. Si observa un ejemplo típico de Shibboleth SP , se extraerá regularmente un archivo de metadatos que extraerá el Certificados de los IdPs que forman parte de la federación. Debe verificar que confíe en esa lista normalmente (puede estar firmada por el certificado de federación o estar disponible desde un servidor HTTPS de confianza). Luego, debe verificar que la respuesta SAML que obtiene es emitida por uno de los IdP en esa federación.

Tenga en cuenta que esta es solo una forma de obtener una lista de certificados de confianza. Puede hacerlo más manualmente si sabe de antemano en qué IdP está dispuesto a confiar. Siempre tendrá que configurar al menos un "punto de entrada" más o menos manualmente (con esto, me refiero a algún certificado IdP en el que confíe, fuera de bandas o al certificado CA de una federación): este es el mismo problema que cualquier PKI , incluyendo cómo confía en los sitios web en su navegador.

La verdadera dificultad en este tipo de entorno no es realmente técnica, sino que es la parte administrativa mediante la cual negocia con sus socios los certificados en los que desea confiar (y los atributos que pueden intercambiarse).

    
respondido por el Bruno 17.05.2011 - 23:26
fuente

Lea otras preguntas en las etiquetas