Cuando los certificados se encuentran vigentes:
https://validar.encodesa.com.ar/
Cuando el certificado caducó:
https://validadordefirmas.gob.ar/upload
https://www.utn.edu.ar/images/Secretarias/TIC/Instructivo-para-la-validacin-de-la-firma-digital.pdf
Para realizar análisis estructurales de archivos PDF:
https://informaticayperitajes.blogspot.com/2025/02/analisis-forense-de-documentos-en.html
Paso 1:
Obtener certificado del archivo firmado digitalmente.
1. Abrir el archivo digital con algún visualizador de PDF. (En Ubuntu puede ser Okular)
2. Abrir el panel de firma.
3. Propiedades
4. Exportar certificado: Certificate.cer
5. Obtener información detallada del certificado:
openssl x509 -in Certificate.cer -text -noout > Certificate.cer.txt
6. En el archivo txt recién generado, identificar el apartado: X509v3 extensions:
6.1. Para el caso de AC-Modernización:
Authority Information Access:
CA Issuers - URI: https://firmar.gob.ar/aia/acmodernizacionpfdr.crt
6.2. Para el caso de AC-ONTI
Authority Information Access:
CA Issuers - URI: http://pki.jgm.gov.ar/aia/cafdONTI(1).crt
6.3. Para el caso AC-LAKAUT
Authority Information Access:
CA Issuers - URI:https://www.lakautac.com.ar/crt/lakautac.crt
7. Descargar el certificado digital de la Autoridad Certificante.
7.1. AC Modernización
wget https://firmar.gob.ar/aia/acmodernizacionpfdr.crt
7.2. AC ONTI
wget "http://pki.jgm.gov.ar/aia/cafdONTI(1).crt"
7.3. AC-LAKAUT
Abrir con el navegador https://www.lakautac.com.ar/crt/lakautac.crt
Descarga el archivo: certdist.cer
8. Repetir el paso 5 para este certificado.
8.1. AC Modernización
openssl x509 -in acmodernizacionpfdr.crt -text -noout > acmodernizacionpfdr.crt.txt
openssl x509 -in "cafdONTI(1).crt" -text -noout > cafdONTI.crt.txt
8.3. AC LAKAUT
openssl x509 -in certdist.cer -text -noout > certdist.cer.txt
9. En el apartado: X509v3 extensions:
9.1. AC Modernización
Authority Information Access:
CA Issuers - URI:http://acraiz.gov.ar/acraizca.cer
9.2. AC ONTI
Authority Information Access:
CA Issuers - URI:http://acraiz.gov.ar/ca.crt
9.3. AC LAKAUT
Authority Information Access:
CA Issuers - URI:http://acraiz.gov.ar/ca.crt
10. Descargar el certificado raíz.
wget http://acraiz.gov.ar/acraizca.cer
wget http://acraiz.gov.ar/ca.crt
11. Convertir todos los certificados a modo texto (PEM).
openssl x509 -inform der -in Certificate.cer -out Certificate.pem
openssl x509 -in acmodernizacionpfdr.crt -out acmodernizacionpfdr.pem -outform PEM
openssl x509 -inform der -in acraizca.cer -out acraizca.pem
openssl x509 -in "cafdONTI(1).crt" -out cafdONTI.pem -outform PEM
openssl x509 -in ca.crt -out ca.pem -outform PEM
openssl x509 -inform der -in certdist.cer -out certdist.pem
openssl x509 -in ca.crt -out ca.pem -outform PEM
12. Validar certificado
12.1. AC Modernización
openssl verify -verbose -CAfile acraizca.pem acmodernizacionpfdr.pem
Devuelve el siguiente mensaje: acmodernizacionpfdr.pem: OK
openssl verify -CAfile acraizca.pem -untrusted acmodernizacionpfdr.pem Certificate.pem
Devuelve el siguiente mensaje: Certificate.pem: OK
12.2. AC ONTI
openssl verify -verbose -CAfile ca.pem cafdONTI.pem
Devuelve el siguiente mensaje: cafdONTI.pem: OK
openssl verify -CAfile ca.pem -untrusted cafdONTI.pem Certificate.pem
Para el caso de certificado expirado:
Devuelve el siguiente mensaje: serialNumber = CUIL 20xxxxxxxx8, C = AR, CN = PEREZ Juan
error 10 at 0 depth lookup: certificate has expired
error Certificate.pem: verification failed
Para el caso de certificado vigente:
openssl verify -verbose -CAfile ca.pem certdist.pem
openssl verify -CAfile ca.pem -untrusted certdist.pem Certificate.pem
13. Para el caso de certificado expirado:
Se utiliza openssl incluyendo una validación para una fecha determinada.
13.1: AC MODERNIZACIÓN
13.2: AC ONTI
$ openssl verify -CAfile ca.pem -untrusted cafdONTI.pem -attime $(date -d "2023-10-05 14:30:00" +%s) Certificate.pem
Certificate.pem: OK
Otra opción es pdfsig:
Actualizado 14/3/2025 08.30hs:
AC Modernización:
$ pdfsig FirmadoMio.pdf
Digital Signature Info of: FirmadoMio.pdf
Signature #1:
- Signature Field Name: Signature1
- Signer Certificate Common Name: Andres Santiago ALIAGA
- Signer full Distinguished Name: C=AR,serialNumber=CUIL 20250385170,CN=Andres Santiago ALIAGA
- Signing Time: Mar 13 2025 17:37:51
- Signing Hash Algorithm: SHA-256
- Signature Type: adbe.pkcs7.detached
- Signed Ranges: [0 - 165630], [195632 - 197515]
- Total document signed
- Signature Validation: Signature is Valid.
- Certificate Validation: Certificate issuer is unknown.
AC ONTI
$ pdfsig F20250306155032.pdf
Digital Signature Info of: F20250306155032.pdf
Signature #1:
- Signature Field Name: Certificación
- Signer Certificate Common Name: Sistema Administracion de Causas-Justicia Cordoba
- Signer full Distinguished Name: CN=Sistema Administracion de Causas-Justicia Cordoba,OU=Investigacion Desarrollo e Innovacion Tecnologica,O=Poder Judicial de la Provincia de Cordoba,C=AR,serialNumber=CUIT 30999253438
- Signing Time: Mar 06 2025 15:50:32
- Signing Hash Algorithm: SHA-256
- Signature Type: adbe.pkcs7.sha1
- Signed Ranges: [0 - 7314], [20686 - 41274]
- Total document signed
- Signature Validation: Digest Mismatch.
Por algún motivo los documentos del SAC muestran la leyenda Digest Mismatch. No obstante ello, el documento es válido.
pdftk F20250306155032.pdf dump_data > metadata.txt
Al analizar el archivo metadata.txt con deepseek
Problemas Detectados en los Metadatos
Fecha de Modificación/Creación en el Futuro:
plaintext
Copy
ModDate: D:20250306155032-03'00' # 6 de marzo de **2025** (¡fecha futura!)
CreationDate: D:20250306155032-03'00'
Esto sugiere que el PDF fue generado con una fecha inválida, lo que podría interferir con la verificación de integridad (hash) en Okular.
Uso de iTextSharp 4.1.6:
Versión antigua (2009) de la biblioteca iText, conocida por generar PDFs con metadatos o estructuras no estándar. Esto podría causar incompatibilidades con Okular.
Caracteres Especiales Mal Formateados:
' en lugar de apostrofes (') y entidades HTML (Nº, OPERACIÓN) en los campos Title y Subject.
Comentarios
Publicar un comentario