ID alemanaWolfgang Ettlinger, especialista en seguridad de SEC Consult Vulnerability Lab,
describi贸 una t茅cnica para manipular los datos (incluidos el nombre y la direcci贸n) durante una verificaci贸n en l铆nea de las identificaciones estatales alemanas.
Las tarjetas de identificaci贸n alemanas se emiten a partir del 1 de noviembre de 2010. Cada tarjeta contiene un chip RFID que almacena informaci贸n sobre el propietario, incluido el nombre, la fecha de nacimiento y la foto biom茅trica. Si el propietario lo desea, puede grabar un escaneo de huellas digitales.
Las nuevas tarjetas son legibles por m谩quina y se pueden usar como documentos de viaje en la mayor铆a de los pa铆ses europeos, as铆 como para la autenticaci贸n en servicios gubernamentales en l铆nea (impuestos, postales) o para verificar la edad. Se utilizan para autenticar a los usuarios en algunos servicios en l铆nea, incluso en
el portal de presentaci贸n de impuestos .
La autenticaci贸n RFID se realiza utilizando un lector de tarjetas y una aplicaci贸n de cliente eID (por ejemplo,
AusweisApp 2 ), que interact煤a con el chip RFID y el servidor de autenticaci贸n (eID-Server o SAML-Processor) para verificar la informaci贸n de inicio de sesi贸n.

Para evitar la falsificaci贸n de identidad, el servidor de autenticaci贸n valida la informaci贸n y luego firma la respuesta que el cliente env铆a al servidor web para que el servicio web pueda confiar en la legitimidad de los datos recibidos.
Wolfgang Ettlinger encontr贸 una manera de enga帽ar a una aplicaci贸n web envi谩ndole datos modificados. La captura de pantalla muestra c贸mo se autentic贸 con 茅xito en la aplicaci贸n oficial bajo el nombre de Johann Wolfgang von Goethe, un famoso escritor alem谩n. El formulario muestra la direcci贸n donde vivi贸 el escritor 50 a帽os, donde se encuentra hoy el Museo Goethe.
La vulnerabilidad se encontraba en Governikus Autent SDK, un componente de software para integrar caracter铆sticas de autenticaci贸n en aplicaciones web. Incluyendo que implementa la funci贸n de verificaci贸n de autenticaci贸n del cliente eID. La conclusi贸n es que la
verificaci贸n se lleva a cabo en dos etapas independientes . En la primera etapa, se verifica la firma de autenticaci贸n del servidor de autenticaci贸n, y en la segunda etapa, los datos en s铆, incluida la identidad del propietario. Como resultado, es posible enviar dos respuestas SAML independientes a la aplicaci贸n: la primera con una firma v谩lida y la segunda con datos falsos y sin firma.
El exploit explota el hecho de que Governikus Autent SDK verifica la firma usando el m茅todo
HttpRedirectUtils.checkQueryString
, que no considera usar el mismo par谩metro varias veces. Por lo tanto, despu茅s de verificar el par谩metro, otras instancias se analizan como si ya hubieran pasado la prueba.
As铆 es como se aplica este m茅todo en una aplicaci贸n real:
// check the signature of the SAML response. There is no XML signature in this response but the // parameter are signed. if (!HttpRedirectUtils.checkQueryString(request.getQueryString(), SamlExampleHelper.SERVER_SIG_CERT)) { storeError(request, response, "Signaturpr眉fung der SAML-Response fehlgeschlagen!"); return; }
El m茅todo recibe la cadena de consulta, la analiza, crea una versi贸n can贸nica de la cadena de consulta y verifica la firma.
Luego se analiza la respuesta SAML:
// get the parameter value String samlResponseBasee64 = request.getParameter(HttpRedirectUtils.RESPONSE_PARAMNAME); [...] // parse the SAML Response. ParsedResponse parsed = parser.parse(samlResponse);
Como ya se mencion贸,
HttpRedirectUtils.checkQueryString
no considera usar el par谩metro varias veces, siempre usa el 煤ltimo valor del par谩metro.
Para aprovechar con 茅xito la vulnerabilidad, un atacante necesita una cadena de consulta firmada por el servidor de autenticaci贸n. Detalles como el momento de la firma o la persona para la que se solicit贸 no importan. Incluso si la cadena de consulta es v谩lida por un per铆odo corto, se realiza una verificaci贸n de validez de los datos en la tarjeta de identificaci贸n. Seg煤n el investigador, obtener una solicitud v谩lida no ser谩 dif铆cil si sabe d贸nde buscar, ya que est谩n disponibles a trav茅s de una b煤squeda de Google en los registros del cliente eID.
Los investigadores muestran sus resultados en video:
Aplicaciones web vulnerables que ejecutan Governikus Autent SDK 3.8.1 y versiones anteriores que manejan configuraciones HTTP duplicadas. La vulnerabilidad se puede utilizar, por ejemplo, para registrarse en servicios en l铆nea con un nombre falso.
驴Por qu茅 podr铆as necesitar un nombre tan falso? Puedes dar un ejemplo tan abstracto. Recientemente, el Ministerio del Interior de Alemania lanz贸 la iniciativa
"Retorno voluntario" , en virtud del cual financia a cualquier extranjero que desee ir voluntariamente a casa. Pagar un boleto y alojamiento al gobierno es m谩s barato que deportar por la fuerza a un refugiado (
700 contra 1.500 euros ), es decir, el financiamiento tiene sentido.
Campa帽a publicitaria en el metro de Berl铆n: para los refugiados que han notificado a las autoridades alemanas su salida voluntaria a su tierra natal hasta el 31 de diciembre, se compensa el alquiler anual de viviendas en su pa铆s de origenTe贸ricamente, cualquier extranjero puede venir a Alemania, solicitar el estatuto de refugiado, recibir un rechazo e inmediatamente ser financiado por este programa. El 煤nico problema para el estafador es que solo puedes hacer este truco una vez. Obviamente, los servicios verificar谩n que el beneficio a煤n no se haya emitido a su nombre. Pero si se registra en el programa con un nombre diferente, se puede recibir dinero varias veces (en teor铆a).
Por supuesto, la suplantaci贸n de identidad electr贸nica alemana estatal no ayudar谩 a un estafador con un pasaporte extranjero a llegar a Alemania con un nuevo nombre. Pero este ejemplo muestra que cada sistema de seguridad debe tener vulnerabilidades. La 煤nica pregunta es el deseo y los recursos para encontrarlos.

