Como saber si un certificado es FIEL o es de Sellos?

Cualquier asunto relacionado con Certificados Digitales, Rango de Folios Autorizados, Addendas Comerciales y Complementos se cubren aqui
RalphL
Mensajes: 3
Registrado: Mié Ene 05, 2011 5:26 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor RalphL » Mié Ene 05, 2011 5:57 pm

mauricio escribió:Hola...
No puedo asegurártelo, pero el sentido común me dice, que los CFDs generados con la FIEL, simple y llanamente no son válidos pues no cumplen la legislación de sellar con un certificado especial para ellos, afortunadamente, si estas en la versión 2, solo es caso de resellar correctamente con el KEY de los sellos y ya se convierten en validos...

Avisame si necesitas ayuda para esto...

Saludos


¿Entonces puedo resellar un comprobante? si lo selle originalmente como un certficado que no era(la FIEL) y lo envie al cliente, puedo entonces volver a sellar la misma factura y generar el comprobante ahora con el certificado correcto y volverla a mandar al cliente y decirle que esta ultima es la válida?? No tendrá repercusiones para el SAT esto si el cliente por error guarda las dos, o bien simplemente para el SAT la otra no cuenta como CFD ya que es una replica de la otra pero mal sellada?? te agradezco tus respuestas.

Avatar de Usuario
costachica
Mensajes: 18
Registrado: Lun Ene 03, 2011 3:55 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor costachica » Mié Ene 05, 2011 6:22 pm

DADO escribió:Psssss, video de youtube.......no pos si.


Cual seria el procedimeinto correcto?, encontre un manual en el SAT pero no lo menciona totalmente mas que la parte final de la solicitud, tienes alguno mas completo?

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor Dado » Mié Ene 05, 2011 6:56 pm

costachica escribió:
DADO escribió:Psssss, video de youtube.......no pos si.


Cual seria el procedimeinto correcto?, encontre un manual en el SAT pero no lo menciona totalmente mas que la parte final de la solicitud, tienes alguno mas completo?


En el SAT hay mucha informacion, pero todo es muy tecnico, realmente en donde deberias consultar el procedimiento en el Soporte Tecnico de quien hizo el programa de factura electronica.

Ahora que si es un fusil (pirata pues) ahi estan las consecuencias...........

Que programa usas para factura electronica?
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

spaniaguag
Mensajes: 137
Registrado: Vie Oct 08, 2010 4:12 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor spaniaguag » Sab Ene 08, 2011 12:53 am

Hola Dado:

Lo único que se me ocurre es verificar si el archivo key pertenece al archivo cer, he notado que los nombres de los archivos key de sello tienen terminacion s.
Una vez identificado el archivo key podemos verificar si este corresponde al certificado mediante el "modulus" de cada uno de los archivos, si el modulus de ambos archivos es el mismo, el certificado y el key se corresponden.
El modulus del certificado se obtiene asi:

openssl x509 -inform DER -outform PEM -in Certificado.cer -pubkey > cer.pem
openssl x509 -in cer.pem -noout -modulus > ModulusC.txt

el modulus de la llave se obtiene asi:

openssl pkcs8 -inform DER -in key.key -out key.pem
openssl rsa -in key.pem -noout -modulus > ModulusK.txt

Lo unico que resta es que ambos archivos sean identicos.

Espero esto te ayude.

SOLiNAD
Mensajes: 57
Registrado: Dom Ene 09, 2011 9:23 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor SOLiNAD » Dom Ene 09, 2011 9:33 pm

Hola a todos desde Sonora,

Puedo regenerar las facturas que valide con la fiel por las que valide con el sello?

Lo de las fechas, cual es la que valida hacienda, la de la base de datos que es la misma que se registra dentro del xml y el pdf o la del sistema de cada archivo o sea la de windows?

Pregunto esto porque con eso de los problemas al inicio de año que el sat no validaba, regenere varias veces los xml y los pdf y obviamente la fecha de los archivos (la de windows) no son consistentes con las de la base de datos (que es la fecha real en que se hizo la venta).

Espero haberme explicado bien.

rodmarquez21
Mensajes: 6
Registrado: Lun Ene 10, 2011 1:09 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor rodmarquez21 » Lun Ene 10, 2011 1:38 pm

Que tal, oye te felicito, muy buen blog!, una duda, estoy desarrollando en .net y ya pude obtener lo key usage extensions (KeyAgreement, DataEncipherment, NonRepudiation, DigitalSignature), mi duda es cómo obtener el c0, o E8 o D8 para hacer más fácil la comparación... gracias!!

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor Dado » Lun Ene 10, 2011 2:05 pm

rodmarquez21 escribió:Que tal, oye te felicito, muy buen blog!, una duda, estoy desarrollando en .net y ya pude obtener lo key usage extensions (KeyAgreement, DataEncipherment, NonRepudiation, DigitalSignature), mi duda es cómo obtener el c0, o E8 o D8 para hacer más fácil la comparación... gracias!!


Pssss, eso te va a costar una botella de tequila....o por lo menos un six je je je.

En serio, me pase dos meses (checa la fecha de los post, desde el 1-nov al 1-ene) para descubrir esto que te voy a pasar:

El Key Usage (el "normal" no el extendido) es un word y cada bit tiene codificada su uso de la siguiente forma :

Código: Seleccionar todo

   usage := getKeyUsageBits;
   Result := '';
   if (usage and 128) = 128 then Result := Result + 'digitalSignature ';
   if (usage and 64) = 64 then Result := Result + 'nonRepudiation ';
   if (usage and 32) = 32 then Result := Result + 'keyEncipherment ';
   if (usage and 16) = 16 then Result := Result + 'dataEncipherment ';
   if (usage and 8) = 8 then Result := Result + 'keyAgreement ';
   if (usage and 4) = 4 then Result := Result + 'keyCertSign ';
   if (usage and 2) = 2 then Result := Result + 'cRLSign ';
   if (usage and 1) = 1 then Result := Result + 'encipherOnly ';


Si tienes una rutina "inversa" que por ejemplo que obtengas "keyCertSign" entonces debes prender el bit 2 (con valor 4) y asi sucesivamente

Ahora, el Key Usage extended yo lo obtengo como cadenas de string, hay MILES de posibilidades de valores aqui, el OpenSSL reconoce algunos cuantos (los mas comunes) estos son valores OID del tipo 1.2.3.4.5.6.

Para saber si es una FIEL o un CSD hago una pre-calificacion (y por eso agradezco a la ayuda de los posts anteriores) ya que me han reportado que en general se cumple :

Código: Seleccionar todo


EsFIEL := 0; EsCSD := 0;

if (certificado.KeyUsage = $e8) or (certificado.KeyUsage = $d8) then EsFIEL := EsFIEL + 1;
if certificado.KeyUsage = $c0 then EsCSD := EsCSD + 1;

if pos('TLS Web Client Authentication',certificado.ExtKeyUsageTxt) > 0 then EsFIEL := EsFIEL + 1;
if certificado.ExtKeyUsageTxt = '' then EsCSD := EsCSD + 1;  //El CSD NO TIENE Key Usage Extended, solo la tiene la FIEL

if EsFIEL > EsCSD then Result := tcFIEL;
if EsFIEL < EsCSD then Result := tcCSD;
if EsFIEL = EsCSD then Result := tcDESCONOCIDO;


Aqui lo que hago es inicializar dos variables "EsFiel" y "EsCSD" y segun lo que me han reportado voy asignado un "1" por cada vez que se cumple una condicion, al final veo cual tiene mas peso.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

rodmarquez21
Mensajes: 6
Registrado: Lun Ene 10, 2011 1:09 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor rodmarquez21 » Lun Ene 10, 2011 4:46 pm

Ah! ok ok, sé lo que se siente haber pasado un buen tiempo buscando una solución, pero también sé lo gratificante que se siente al compartir ése conocimiento, nos volvemos maestros mientras haya alguien que lo lea y aprenda de él, bueno, eso no quiere decir que no te merezcas el tequila broder!!, oye, volviendo al tema, entonces tu vas evaluando condiciones y la que mas peso tenga a esa le das el veredicto ganador, ya sea CSD o FIEL, yo tengo un código (en c#) en el que obtengo los key usage extensions y los voy recorriendo, si encuentro los cuatro (KeyAgreement, DataEncipherment, NonRepudiation, DigitalSignature) le doy el veredicto a FIEL, si SOLO encuentro dos (NonRepudiation, DigitalSignature) y los otros dos no, entonces es un certificado CSD, ya no verifiqué que tenga Enhanced Key Usage (sólo presente en el FIEL), no sé, quiero saber tu opinión man, crees que eso sea suficiente?.

Saludos y ya te vas ganando el six o tequila eh!!

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor Dado » Lun Ene 10, 2011 5:07 pm

rodmarquez21 escribió:Ah! ok ok, sé lo que se siente haber pasado un buen tiempo buscando una solución, pero también sé lo gratificante que se siente al compartir ése conocimiento, nos volvemos maestros mientras haya alguien que lo lea y aprenda de él, bueno, eso no quiere decir que no te merezcas el tequila broder!!, oye, volviendo al tema, entonces tu vas evaluando condiciones y la que mas peso tenga a esa le das el veredicto ganador, ya sea CSD o FIEL, yo tengo un código (en c#) en el que obtengo los key usage extensions y los voy recorriendo, si encuentro los cuatro (KeyAgreement, DataEncipherment, NonRepudiation, DigitalSignature) le doy el veredicto a FIEL, si SOLO encuentro dos (NonRepudiation, DigitalSignature) y los otros dos no, entonces es un certificado CSD, ya no verifiqué que tenga Enhanced Key Usage (sólo presente en el FIEL), no sé, quiero saber tu opinión man, crees que eso sea suficiente?.

Saludos y ya te vas ganando el six o tequila eh!!


Pues si, es suficiente con revisar el KeyUsage "normal", ahora esto es totalmente EMPIRICO, osea por prueba y error es lo que he descubierto.

NO ES PARA NADA una forma 100% fiable ni mucho menos "legal" de diferenciar una FIEL de un CSD, pero si te sirve de consuelo, libere el ValidaCFD justo antes del lunes 3 de enero (recuerdas?) y hubo casi mil descargas y hasta el momento no me han reclamado sobre fallas en este algoritmo.......

Sabes cual fue mi forma de "validar" el algoritmo, entrando al ftp del SAT y descargando al azar certificados (ahi hay revueltos CSD y FIEL), luego los checaba vs. la lista oficial del CSD para saber con certeza de que tipo era y luego los meti a la rutina, el 99% de las veces pudo reconocer bien el certificado (uno fallo no se porque)...........
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

rodmarquez21
Mensajes: 6
Registrado: Lun Ene 10, 2011 1:09 pm

Re: Como saber si un certificado es FIEL o es de Sellos?

Mensajepor rodmarquez21 » Lun Ene 10, 2011 5:17 pm

Excelente man!, que buena manera de resolver el problema! oye y si no es indiscreción, cual fue el certificado que te tronó?


Volver a “Certificados, Folios, Addendas y Complementos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado