Análisis del sistema de factura electrónica en México

Publicado en

Desde mayo del 2004 el Servicio de Administración Tributaria (SAT) aprobó la facturación electrónica como un esquema de comprobación fiscal. La factura electrónica o Certificado Fiscal Digital a través de Internet (CFDI) es utilizada por el comprador y por el vendedor como comprobante ante las autoridades y en las auditorías internas.

El anexo 20 de la miscelánea fiscal especifica el estándar para conformar correctamente una factura digital, la que es un documento XML que es integrado por los datos del emisor de la factura, el receptor de la misma, los conceptos e impuestos, además de la posibilidad de integrar campos de información útiles para sus sistemas internos, dichos datos son posibles de integrar gracias al nodo addenda.

En el presente artículo se presenta un análisis general del esquema existente de facturación electrónica en México, y posteriormente se propone un sistema que pueda extender al actual y trate de mejorar las áreas de oportunidad detectadas.

Plataforma de Facturación Electrónica

Una Plataforma de Facturación Electrónica debe ser un sistema seguro, con una alta disponibilidad, robusto e interoperable, el cual se encargue de administrar transacciones en las que la unidad fundamental de operación es la factura electrónica. Dicho sistema debe interactuar con sistemas externos que lo alimenten y consuman los servicios provistos para el proceso de facturación. Cada sistema externo representa a uno o más contribuyentes los cuales tiene la necesidad de emitir y recibir comprobantes digitales asociados al giro, actividad o servicio que preste dicho contribuyente.

  • Plataforma Interna del SAT. La plataforma interna del SAT es la encargada de coordinar, administrar y sincronizar a los proveedores autorizados, además de administrar la información concerniente a los contribuyentes y sus facturas electrónicas asociadas.
  • Proveedor Autorizado de Servicios. Fungen como intermediarios entre el contribuyente y el SAT, brindando una gama de servicios para llevar a cabo correctamente el proceso de facturación electrónica y posteriormente realizar tareas de sincronización con el SAT.
  • Sistema externo del contribuyente. Cualquier aplicación de software que incorpore el proceso de facturación electrónica. Dicho sistema consume servicios que provee el proveedor autorizado.

A continuación se plantean los aspectos principales del sistema propuesto que pudiera extender y mejorar al existente.

Seguridad

Para el manejo de la seguridad de las facturas electrónicas, el SAT considera el uso de criptografía de clave pública, por lo que provee a cada contribuyente de un par de claves, una pública y otra privada, además de un certificado digital que avala la identidad del contribuyente especificando sus datos fiscales además de su llave pública. Una factura electrónica contiene dos firmas digitales, una provista por el emisor del comprobante fiscal utilizando su clave privada y firmando la factura y otra emitida por un tercero autorizado que firma los datos de fecha y hora del timbrado, el identificador de la transacción así como la primera firma del comprobante fiscal digital, ambas están inmersas en un nodo de la factura digital que se le denomina Timbre Fiscal Digital.

En este esquema se utilizan dos certificados digitales: uno que acredita la clave pública que conforma a la FIEL de un contribuyente y otro u otros para sellar digitalmente facturas digitales. Dichos certificados son RSA con claves de 1024 bits y 2048. Un incoveniente es que dichos certificados no están disponibles en un repositorio de certificados mediante el cual cualquiera pudiera obtener un certificado que le interese, como por ejemplo el de los contribuyentes que le emitieron facturas digitales, para poder verificar los comprobantes recibidos. Para el correcto uso y funcionamiento de los certificados digitales es necesario de la incorporación de la Infraestructura de Llave Pública (PKI), la cual es una combinación de software, tecnologías de cifrado, y servicios que permiten proteger la seguridad de las transacciones de información en un sistema distribuido. Debido a que el SAT asume el papel de una autoridad certificadora —ya que genera los certificados digitales y también cumple con tareas de afiliación de los contribuyentes—, el SAT podría hacer uso de PKI para un buen funcionamiento en cuanto a poner a disposición de los contribuyentes los certificados digitales de los demás, así como las listas de revocación.

En cuanto a los mecanismos criptográficos, se propone el uso de certificados digitales RSA donde se utilice una PKI para los procesos de autenticación y negociación de claves en el intercambio de datos, pero para la firma de los comprobantes digitales se utilicen Curvas Elípticas ECC. Para esto sería necesario brindar un esquema donde se firmen las facturas con la clave privada de un contribuyente pero utilizando criptografía de Curvas Elípticas y por ende la utilización de certificados digitales ECC. Desafortunadamente aun no existe un estándar para una Infraestructura de Clave Pública con certificados que utilicen Curvas Elípticas.

Para determinar la validez de un documento es necesario un mecanismo que nos asegure su validez. En las facturas electrónicas dicho mecanismo es el de la firma digital usando criptografía de clave pública. Dicha firma está compuesta por un resumen del documento al que se le aplica una operación de cifrado con la clave privada del emisor, de tal forma el documento no puede alterarse por que la firma lo acredita, en caso de alteraciones a la factura el proceso de validación utilizando la clave publica fallaría, haciendo evidente la alteración del documento.

Es importante estar seguros que los métodos de criptografía utilizados en las facturas digitales sean lo suficientemente complejos para que no pueda descifrarse y no permitir que un tercero no autorizado pueda emitir facturas en el nombre de alguien más. Existen diferentes formas de firmar un documento digital, sin embargo cada mecanismo tiene ventajas y desventajas. Se propone la utilización de ECDSA, ya que utiliza criptografía de curvas elípticas, y esta posee los elementos necesarios para firmar comprobantes fiscales digitales con un buen nivel de seguridad, también se propone el uso de SHA-256 para generar el valor resumen de la factura digital.

En a la autenticación, en el el esquema de facturación digital para 2010 la autenticación en los sistemas del SAT se puede realizar mediante el uso de la Clave de Identificación Electrónica Confidencial CIEC, que está formada por el RFC del contribuyente y una contraseña asociada. Este mecanismo sirve para tramitar la Firma Electrónica Avanzada FIEL y los Certificados de Sello Digital. Otra forma de autenticación es utilizando la FIEL desde un aplicación que se ejecuta en la máquina del contribuyente.

La FIEL no es más que un mecanismo de criptografía de clave pública, esto con el fin de poder firmar digitalmente trámites en los procesos en línea que provee el SAT; uno de ellos es el de firmar el requerimiento para que se otorgue el certificado de sello digital para emitir facturas electrónicas. Para la plataforma de facturación electrónica propuesta se propone adoptar el mecanismo de autenticación de dos vías o mutuo, el cual está definido en el protocolo y permite que ambas partes que intervienen en la comunicación posean un certificado digital, en este caso la FIEL del lado del contribuyente, y un certificado digital del lado del servidor. De esta forma se establece un canal seguro entre la aplicación del contribuyente y la plataforma de facturación.

Envío, recepción y acuse de CFDI

En el esquema de facturación actual no se tiene contemplado formalmente el envío y recepción de los comprobantes fiscales digitales. Se especifica que se pueden intercambiar electrónicamente, pero no se detalla en absoluto un esquema formal de envío, recepción ni acuse. En el caso práctico, los contribuyentes regularmente envían por correo electrónico los comprobantes digitales a aquellos que se les emite dicha factura digital. Sin embargo no se contemplan los casos en los que por una u otra razón el correo no fue recibido exitosamente (ej. dirección de correo equivocada, categorizado como spam, etcétera).

La propuesta de la plataforma de facturación electrónica consiste en definir servicios web que se encarguen de las tareas de enviar, recibir y acusar las recepciones.

El proceso de envío es muy simple. Cuando se genera un comprobante fiscal digital y el proceso que lo genera se completa de forma satisfactoria, es hora de enviárselo al receptor de dicha factura digital por lo que automáticamente se envía al contribuyente que esté marcado como receptor en el comprobante fiscal digital. De tal forma que cada contribuyente posee un contenedor de facturas digitales, donde se acumulan las facturas electrónicas donde el contribuyente figura como receptor. Es muy similar a una bandeja de entrada de correo electrónico, sólo que en lugar de correos electrónicos llegan facturas digitales y en lugar de direcciones de correo electrónico se usa el RFC propiedad de un contribuyente en particular.

En el caso de la recepción de facturas digitales, el contenedor recaba las facturas asociados al contribuyente. Posteriormente el interesado y dueño de las facturas consume un servicio que le permite recuperar las mismas que se encuentran en su contenedor.
Cuando se consume el servicio asociado a recibir las facturas digitales en las que el contribuyente es el receptor, automáticamente se genera el proceso que se encarga de actualizar el estado de la factura a “Recibida”, con lo que se completa el proceso de acuse.

Conclusión

En este artículo hemos revisado algunas extensiones que se podrían hacer a una plataforma de facturación electrónica para poder mejorar su seguridad y desempeño.

Referencias:

  1. F. Rodríguez, N. Cruz Cortés & V. González García. “On the Security of Mexican Digital Fiscal Documents”. http://bit.ly/sg31r5
Bio

José Cruz Aarón Hernández (@alarakx) es Ingeniero en Ciencias de la Computación y Desarrollador de Software desde 2007. Actualmente está cursando la Maestría en Ciencias de la Computación con especialidad en Base de Datos en la Universidad Autónoma de Puebla.