SAT-FIEL vulnerable

¿Cómo? ¿SAT-FIEL vulnerable?

Análisis de Seguridad por IPN

Introducción

Hace algunos días estaba ayudando a mi hija de 6º de Preparatoria con una tarea de Metodologías de la Investigación la cual consistía en acceder a dos ligas de Internet donde publican artículos de investigación científica. 

La idea era ayudarle a seleccionar alguno que no fuera demasiado elevado y pudiera con él hacer lo que le pedían.

Cómo buen tecnólogo seguí las ligas de artículos de Ingeniería y Computación y llegué al portal de “Computación y Sistemas, Diario Internacional de Ciencias de la Computación y Aplicaciones” del IPN (https://www.cys.cic.ipn.mx/ojs/index.php/CyS/index) y en la publicación de artículos de la primer semana de Octubre 2019 (https://www.cys.cic.ipn.mx/ojs/index.php/CyS/issue/view/23-2%282019%29) uno llamó particularmente mi atención titulado “Security Analysis of the Mexican Fiscal Digital Certificate System” (https://www.cys.cic.ipn.mx/ojs/index.php/CyS/article/view/2994).

Me parece en extremo relevante el estudio de seguridad realizado por académicos del Instituto Politécnico Nacional, CONACYT, la Benemérita Universidad Autónoma de Puebla y el departamento de Ciencias de la Computación del CINVESTAV-IPN.

¿Por qué? Pues en el mundo y recientemente en México se ha abierto el debate sobre decidir el instrumento de identidad digital a usar en el país hacia el futuro.

En este contexto y considerando que en reiteradas ocasiones se ha sugerido en diversos foros, que usemos la FIEL del SAT pues es algo ya adoptado nacionalmente para cumplir con nuestras obligaciones fiscales, el tomar esta información en consideración para soportar con datos científicos una decisión adecuada es de la mayor importancia a nivel nacional.

A continuación les presento un resumen del artículo en cuestión y les recomiendo visitar el portal donde está publicado y leerlo directamente allí.

Desde la Academia y desde la Empresa, contribuir a que se tomen las mejores decisiones en cuestión de elegir que usaremos para identificarnos digitalmente, es un deber.

Resumen

Autores del Documento original :

Luis Rivera-Zamarripa, Lil M. Rodriguez, Miguel Ángel León Chávez, Nareli Cruz-Cortés, Francisco Rodríguez-Henríquez

El proyecto inició en 2005 en el sistema tributario nacional mexicano (SAT) y su objetivo era el de proporcionar a cada mexicano un par de claves pública / privada junto con un certificado digital emitido por el propio SAT.  

A marzo de 2016, se han emitido aproximadamente un total de 17 millones de certificados.  Este sistema de gobierno electrónico permite a los ciudadanos mexicanos ejercer una serie de servicios digitales en línea tales como: declaración de impuestos, emisión / verificación de recibos oficiales, firma de contratos, etc. 

En particular, todas las facturas oficiales mexicanas se convirtieron en digitales para enero de 2016, efectivamente  sin papel para este servicio.  

El análisis de seguridad conducido se centró en el sistema PKI mexicano y demostró que tiene varios puntos débiles que pueden ser atacados por adversarios maliciosos.  

Reportamos evidencia experimental que muestra que uno puede lanzar un ataque de diccionario simple en el sistema de autenticación basado en contraseña de SAT.  También argumentamos que debido al hecho de que la función hash SHA-1 se ha roto por completo recientemente, un atacante puede producir la misma firma para dos documentos diferentes que se verificarán correctamente al usar cualquier certificado FIEL antiguo que tenga el RSA-1204 / SHA  -1 suite de firma.

Introducción

Dos de los principales objetivos del servicio del CFDI son:

  1. Automatizar el proceso contable de individuos y empresas
  2. Combatir la enorme evasión fiscal que sucede en México

Actualmente se usan dos tipos de certificados en México: La FIEL y los certificados CSD. Ambos emitidos por el SAT a los contribuyentes. El certificado CSD es específicamente usado para firmar facturas, mientras que el certificado de la FIEL permite a los contribuyentes realizar transacciones fiscales y hasta firmar contratos comerciales que son jurídicamente vinculantes en México.

En la mayoría de los servicios que pueden ser realizados al usar los certificados FIEL o CSD involucran el intercambio de información sensible a lo que se le debe ofrecer garantías de seguridad contra entidades maliciosas.

Una falla de seguridad puede impactar seriamente los activos de las instituciones y de los individuos operando en México.

Uno de los servicios de seguridad más importantes facilitado por sistemas de  Infraestructura de Llave Pública (PKI por sus siglas en inglés) es el poder firmar documentos digitalmente.

Una firma digital es el análogo a una firma autógrafa, pero más poderosa ya que ofrece protección contra alteraciones de datos, que para lograrlo hace uso de la función criptográfica HASH.

La función criptográfica HASH toma un documento de cualquier longitud como entrada y crea una huella digital del mismo.

Esta huella digital es el objeto digital real que debe ser firmado por el esquema criptográfico de firma digital elegido.

Los certificados FIEL y CSD que usa el SAT son RSA-1024 y SHA-1, que fueron elegidos como los primitivos básicos para el esquema de firma y la función hash, respectivamente.

En Mayo de 2015, sin embargo el SAT publicó en el Diario Oficial de la Federación que la nueva versión de su algoritmo de firma digital debe ser producido, a partir de ese momento y hacia adelante usando una combinación de RSA-2048 con SHA-256. Considerando que los últimos certificados emitidos que usaron RSA-1024 FIEL y CSD ocurrió durante el año 2015, deben esperar hasta 2020 para asegurar que todos los certificados con base RSA-1024 FIEL han expirado.

Por lo anterior y por un periodo de hasta 4 años, las dos parametrizaciones vivirán lado a lado.

Adicionalmente el SAT ha permitido realizar algunos servicios fiscales a manera opcional por ciudadanos Mexicanos y empresas el usar un esquema de autenticación basado en contraseñas.

Por lo anterior el análisis técnico de seguridad debe considerar ambos esquemas.

Bajo el supuesto de que es posible atacar el sistema de contraseñas y/o romper un certificado digital fiscal Mexicano, se presenta a continuación los diferentes escenarios que describen algunas de las consecuencias que pueden experimentar las víctimas potenciales:

Escenario 1: Falsificación de Facturas

El principal objetivo detrás de la infraestructura de facturación digital es que el contribuyente pueda registrar sus ingresos y gastos usando facturas digitales. Consideremos la situación donde el atacante gestiona la obtención de su llave privada correspondiente a un certificado CSD dado, que pertenece a una tienda. Esta acción permitirá al atacante falsificar facturas digitales supuestamente emitidas por esa tienda. Después de eso, el contribuyente podría justificar cualquier gasto usando facturas falsas creadas por esta misma persona.

Escenario 2: Declaración de Impuestos por Ingresos

La declaración de impuestos por ingresos de un ciudadano o de una empresa puede ser realizado usando el portal del SAT. Para este fin el SAT ha diseñado dos mecanismos de autenticación disponibles para los ciudadanos y las empresas, solicitando ingrese su RFC junto con la contraseña CIECF o bien ingresando su certificado FIEL. Si el atacante puede personificar a una persona o empresa legítima, puede completar la declaración de impuestos a nombre de la desafortunada víctima. Entonces, en el caso de que la declaración de impuestos presente un balance positivo, el atacante puede solicitar que la devolución correspondiente sea depositada en la cuenta de banco de su preferencia. Esto conlleva un daño económico directo al contribuyente original. Desafortunadamente esto no es una situación puramente hipotética. Recientemente el SAT y la PRODECON reportaron ataques fraudulentos exitosos tal como los aquí descritos para declaraciones que fueron presentados durante el año fiscal 2015.

Escenario 3: Contratos Comerciales

Cualquier contrato comercial puede ser firmado usando el certificado FIEL y su llave privada asociada. Por lo que un atacante que ha comprometido un certificado FIEL, puede establecer cualquier tipo de obligaciones legales en el lugar de la víctima. De hecho, es posible generar un contrato falso en el que la víctima contrató a cualquier persona que el atacante seleccione. Más aún, si la función hash usada en el certificado FIEL es rota, entonces dos contratos diferentes pueden generar la misma firma, que será verificada exitosamente al usar el certificado FIEL.

Los escenarios antes referidos muestran los serios impactos que una vulnerabilidad de seguridad de la plataforma del SAT puede causar a los ciudadanos mexicanos y a las empresas.

1.1 Nuestras Contribuciones

En este análisis analizamos cuidadosamente el sistema PKI y reportamos algunos de sus puntos fuertes, pero también varias de sus debilidades que pueden ser atacadas por adversarios maliciosos. Específicamente, hemos llevado a cabo los siguientes estudios:

  1. Cosecha de Certificados:

    Fuimos capaces de identificar un servidor FTP del SAT en el que fue posible descargar certificados del SAT identificandonos como un usuario anónimo. Como resultado, logramos colectar 9,918,118 certificados RSA-1024 y 132,535 RSA-2048 de la infraestructura del SAT. Aun y cuando la información en un certificados digital es pública y cualquiera puede descargar los certificados del sitio web del SAT, algunas restricciones han sido impuestas durante el último año para evitar que alguien pueda obtenerlas masivamente.

  2. Computación Batch-GCD:

    De nuestra colección de certificados, tratamos de identificar debilidades en las llaves RSA-1024 utilizando computación Batch-GCD recientemente aplicada por Bernstein et-al-in. Ya que en nuestra recolección no pudimos ubicar ninguna llave débil, concluimos que el generador de número pseudo-aleatorio del SAT no muestra vulnerabilidades contra este ataque.

  3. Sistema de Contraseñas:

    Con el objetivo de adivinar contraseñas CIECF que ciudadanos mexicanos y empresas hayan seleccionado, extrajimos datos públicos de los certificados FIEL y CSD incluidos en nuestra colección. Descubrimos que un número no despreciable de ciudadanos mexicanos está predispuesto a elegir una contraseña con exactamente 8 caracteres, que generalmente se deriva directamente de la información pública incluida en sus certificados correspondientes.  Usando esta premisa, logramos recuperar 4,969 contraseñas de CIECF de 133,723 ensayos de muestra, es decir, nuestro ataque arrojó una tasa de éxito de 3.72%.

  4. Colisión SHA-1:

    Gracias al trabajo de Stevens et-al-in, es hoy completamente obvio que los certificados del SAT creados con la suite de la firma RSA-1024/SHA-1 no son adecuados para aplicaciones de seguridad tales como firmar contratos legalmente vinculantes.

  5. Factorización RSA-1024:

    Analizamos que tanto tiempo, dinero y recursos computacionales necesita invertir un atacante para recuperar una llave privada RSA-1024 en un año.

1.2 Respuesta a las debilidades encontradas

En Octubre de 2015, compartimos con el SAT una versión preliminar de nuestro análisis de seguridad de su sistema de PKI. Mencionamos que las principales vulnerabilidades que encontramos en ese punto en el tiempo, incluyendo nuestra larga recolección de certificados del SAT, así como una primer versión de nuestro ataque de diccionario a las contraseñas del CIECF. Desde esa junta el SAT ha reforzado varias medidas para evitar o frustrar los ataques descritos en este estudio. Estas medidas incluyen el uso de CAPTCHAs para descargar certificados del SAT y el aviso de autenticación de dos factores que estará basado en contraseñas más un código de verificación proveniente de un token. También el SAT ha limitado el número de servicios que son accesibles para usuarios que se autentifican a ellos mismos usando contraseñas CIECF. Declaraciones de impuestos que tienen un balance positivo arriba de $10,000 pesos mexicanos deberán ser declarados usando un certificado digital. Más aún, el SAT estima que en Marzo de 2017, alrededor del 60% de su colección  de certificados FIEL activos fueron equipados con la suite de firma RSA-2048/SHA-256.

A partir de este punto el documento se organiza de la siguiente manera. En la Sección  se presentan conceptos básicos en criptografía. En la Sección 3 el sistema PKI es descrito. En la Sección 4 las vulnerabilidades de seguridad encontradas en el PKI del SAT y los sistemas basados en contraseñas son discutidas en detalle. Finalmente en la Sección 5 , se presentan las conclusiones.

Para efectos de este resumen pasaré directamente a sintetizar la Sección 4.

4 Vulnerabilidades del Sistema Mexicano de PKI

En esta sección describimos brevemente los resultados obtenidos al aplicar una batería de ataques bien conocidos al sistema de PKI del SAT.

4.1 Batch-GCD Computation Attack

Logramos recabar de un servidor FTP público del SAT al autenticarnos como un usuario anónimo,  un total de 9,918,118 de certificados RSA-1024 y 132,535 certificados RSA-2048. Es importante resaltar que lo descrito aquí fue cuidando la legalidad del procedimiento.

Posteriormente lanzamos a los certificados RSA-1024 recabados un ataque computacional de tipo Batch-GCD, el cual busca primos compartidas entre las llaves objetivo. El resultado fue que no se lograron encontrar dos certificados que compartan el mismo módulo.

Ya que el ataque no fue exitoso, concluimos que el software del SAT está equipado con una sólida implementación  del generador de números pseudo-aleatorios para generar las llaves público/privadas.

4.2 Ataque de tipo Spamming

Como fué mencionado antes un certificado FIEL añade información personal del ciudadano (como nombre, foto, scan de iris, huella digital, e-mail, firma caligráfica, etc.) a su llave pública.

El SAT establece que los datos personales del ciudadano está protegido estrictamente por ley, sin embargo algunos datos personales pueden ser clasificados como información pública.

A pesar de que los datos ciudadanos pueden ser vinculado a un certificado digital que por definición es en sí un documento digital público, esta información debe manejarse con cuidado, por el conocimiento que se puede explotar una gran cantidad de certificados montando ataques como spam contra los propietarios como el envío de spam mediante la recolección de direcciones de correo, phishing, etc.

 En el caso de que el atacante colecte una cantidad significativa de certificados del SAT, se hace trivial correr un análisis gramatical a su contenido para crear una base de datos en la cual se puede buscar información.

De esta manera el atacante tiene acceso completo al nombre completo o nombre de la empresa, cumpleaños, edad, ciudad, CURP, RFC y muy seguido a un correo electrónico válido de sus víctimas.

Así es posible enviar correo no deseado (spam) solicitando passwords o cualquier otra pieza de información privada a correos electrónicos válidos pertenecientes a ciudadanos mexicanos reales.

Más aún, el atacante puede hacer una búsqueda estándar y dirigida buscando un certificado específico ya sea por nombre o cualquier otros campos contenidos.

4.3 Ataque de diccionario a la contraseña CIECF

Una pregunta natural es conocer qué tanta fortaleza ofrece la contraseña CIECF.

La contraseña CIECF tiene una longitud de al menos 8 caracteres y debe contener números (0..9), letras minúsculas (a..z) y letras mayúsculas (A..Z). Si evaluamos la fortaleza de la contraseña CIECF de acuerdo a las reglas que establece el NIST, obtendremos 24 bits de entropía. En otras palabras, usando una estrategia de fuerza bruta, un atacante debería intentar adivinar la contraseña en un estimado promedio de 224 veces para conseguir el password correcto.

Esto nos da una idea de la gran diferencia entre la fortaleza que tiene hoy la contraseña  CIECF y la recomendación del estándar internacional de proveer un nivel de seguridad de 128 bits para cualquier intercambio de datos sobre el Internet y otros medios digitales.

Actualmente, el SAT permite un total de veinte intentos fallidos antes de bloquear la cuenta del usuario, como una contramedida de seguridad contra ataques de diccionario a contraseñas. Sin embargo, si el atacante resulta tener en su poder una larga colección de certificados, entonces es posible montar un extremadamente sencillo ataque de contraseñas, basado en el siguiente supuesto: un número no despreciable de ciudadanos mexicanos eligen como su contraseña los primeros 8 caracteres de su RFC.

Siguiendo esta estrategia básica de asumir que los primeros 8 caracteres del RFC de un ciudadano es la contraseña, fuimos capaces de recuperar 4,969 contraseñas de un universo de 133,723 contraseñas reales de ciudadanos. Este resultado muestra que tan fácil es para un atacante recuperar una contraseña CIECF. El ataque fue aún más poderoso porque el sitio web del SAT cambia todos los caracteres de la contraseña a mayúsculas lo cual reduce aún más la entropía.

El riesgo asociado de este ataque va desde tan solo cambiar la contraseña CIECF hasta presentar una declaración de impuestos falsa.

Desde un punto de vista técnico, nuestro ataque mostró que la fortaleza de la función de recuperación de contraseña del sistema del SAT es considerablemente más bajo que la recuperación de contraseña universal.

Es importante señalar que las organizaciones también deben preocuparse por proteger la confidencialidad de los identificadores de usuario (por ejemplo: nombres de usuario) tal como lo recomienda encarecidamente el NIST. Ocultar nombres de usuarios hace más difícil para los atacantes realizar ataques dirigidos. Tal vez, esta política parece ser complicada de adoptar ya que típicamente los identificadores están basados en información pública.

4.4 Colisiones SHA-1

Hasta Mayo de 2015 tanto la FIEL como el certificado CSD estaban utilizando “Security Hash Algorithm (SHA-1) como su función hash.

A pesar de que en 1995 el NIST propuso SHA-1 como estándar FIPS, en 2005 Wang et-al presentaron un ataque de colisión en todos los 80 pasos del procedimiento SHA-1.

El ataque de Wang et-al tiene una complejidad de menos de 269 operaciones, mientras que su límite de seguridad teórico debería ser de aproximadamente de 276 pasos.

Recientemente , un número creciente de iniciativas ha comenzado a despreciar SHA-1 del web público totalmente. Significativamente el navegador de Internet Chrome mostraría errores visibles para certificados SHA-1 comenzando en su versión Chrome 56. Más aún, el NIST despreció SHA-1 para uso gubernamental en 2011. Específicamente, NIST establece que hay ciertas aplicaciones donde el uso de SHA-1 debe ser prohibido por mandato, particularmente de procesos de certificación de PKI.

Adicionalmente NIST considera que después de 2013 el riesgo asociado con SHA-1 es inaceptable para aplicaciones de seguridad informática.

En resúmen se puede decir con suficiente justicia que la función hash SHA-1 está completamente rota.

De la discusión anterior, queda claro que el uso de SHA-1 es un punto débil relevante de los certificados del SAT.

Actualmente NIST recomienda el uso de los estándares SHA-2 y SHA-3 para aplicaciones criptográficas profesionales. Estos dos estándares fueron aprobados por el NIST en 2001 y 2015 respectivamente.

4.5 ¿Cuánto cuesta recuperar una llave privada RSA-1024 en el curso de un año?

Analistas de seguridad han experimentado en romper el cifrado de una llave privada, iniciando con una de 768 bits y a partir de ello han calculado el costo en términos de procesamiento requerido en el tiempo por una cantidad de núcleos de procesamiento y a partir de ello han proyectado lo que podría tomar romper el cifrado de una llave privada de 1024 bits, concluyendo que el esfuerzo podría requerir 1,120,000 años-nucleo. Si quisiéramos realizar del procesamiento completo en un año, necesitaríamos usar una súper computadora que tenga al menos 1,120,000 núcleos. De acuerdo a la lista de las Top500 supercomputadoras, hay varios clusters en el mundo que tienen esta capacidad. Por ejemplo, la súper computadora de Sequoia-BlueGene tiene el número requerido de cores, con un costo estimado de construcción y de procesamiento de un año de $208 millones de dólares.

Hay que notar que aun y cuando el RSA-1024 puede ser atacado por atacantes bien fondeados, este fue depreciado por el NIST desde 2013.

5 Conclusiones

En este estudio se describieron diversas vulnerabilidades en el sistema PKI del SAT que puede ser resumido como sigue:

  • SHA-1 que aún se encuentra en uso en cerca de siete millones de certificados del SAT, ha sido completamente roto en Febrero de 2017 por Stevens et-al. Entre otras consecuencias, esta vulnerabilidad descalifica el uso de esos certificados del SAT para firmar contratos legales

  • RSA-1024 que es aún utilizado en aproximadamente 7 millones de certificados del SAT, puede ser sujeto a ataques por adversarios con el fondeo adecuado

  • A pesar de que el SAT ha anunciado y parcialmente implementado un proceso de migración a RSA-2048 y SHA-256, la fase de transición puede tomar dos años más para completarse

  • RSA-2048 provee 2112 bits de seguridad mientras que SHA-256 provee 2128 bits de seguridad. Idealmente el SAT debe de migrar a RSA-3072 o criptografía de curva elíptica, para evitar  el desbalance criptográfico existente.

  • La longitud mínima de la contraseña de tan solo 8 caracteres, y la manera en la que los mexicanos la eligen es altamente predecible.

  • El sistema del SAT permite excesivamente procesos importantes a ser realizados por los ciudadanos usando la contraseña CIECF como mecanismo de  autentificación.

  • El sistema web del SAT permite un número arbitrario de intentos para ingresar la contraseña de un contribuyente.

5.1 Reacción del SAT

En Octubre de 2015, le facilitamos una versión preliminar de estos resultado al SAT. Desde entonces el SAT ha reforzado diversas medidas para reducir las vulnerabilidades encontradas en este estudio. Estas medidas incluyen el uso de CAPTCHAs para descargar certificados del SAT y el anuncio del procedimiento de dos factores de autenticación que combinará un sistema basado en contraseña con el uso de un “soft token”. También el SAT ha limitado el número de servicios que son accesibles por los usuarios que se firman con contraseña CIECF. Las declaraciones de impuestos con balances positivos mayores a $10,000 pesos deben ser enviadas usando un certificado digital. Más aún, el SAT estima que a Marzo 2017, alrededor del 60% de su colección de certificados FIEL activos están equipados con la suite de cifrado RSA-2048/SHA-256.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *