Saltar al contenido

04 — CASO DE ESTUDIO · 2026

InmínerFirmas

Firma criptográfica por lotes, sin que un documento salga del ordenador.

DesktopPAdESBatchSecurity

Herramienta interna desarrollada durante mi etapa profesional en INMÍNER Ingeniería.

01 CONTEXTO

En INMÍNER se firman a diario memorias, autorizaciones e informes técnicos. El circuito era abrir cada PDF, buscar la zona de firma, aplicar el certificado, escribir la contraseña y guardar — documento a documento, en tres equipos distintos y con las mismas manos administrativas.

02 PROBLEMA

La repetición era lo visible; lo difícil era lo otro. Los documentos y el certificado no podían salir del ordenador, la contraseña no podía acabar en un archivo de configuración, y el resultado tenía que ser una firma criptográfica real —verificable en Adobe Acrobat— y no una imagen pegada encima del PDF.

03 EL SISTEMA

Una aplicación de escritorio que analiza, firma y registra lotes enteros de PDF sin conexión a Internet.

LAS PIEZAS

01DETECCIÓN
Cada página se analiza por palabras clave, recuadros, líneas y ocupación del texto. Si el PDF llega escaneado, entra el OCR.
02CONFIANZA
El análisis dice cuánto se fía: alta, media o baja. Cuando no está seguro exige revisión, con un visor para dibujar el área a mano.
03FIRMA
Cada zona detectada recibe su propio campo PAdES por actualización incremental; Acrobat las reconoce en el panel de firmas.
04IDENTIDADES
Varias firmas configuradas, cada una con su certificado y su apariencia. La contraseña se escribe una vez y la custodia Windows.
05LOTE
El lote entero se procesa sin volver a pedir nada. Si un documento falla, los demás continúan, y el original nunca se sobrescribe.
06HISTORIAL
Un registro local con fecha, equipo, titular, resultado y hashes SHA-256. Sin documentos, sin certificados y sin contraseñas.

EL RECORRIDO

  1. 01

    PDFS

    Se arrastran los documentos, todos de una vez.

  2. 02

    DETECT

    Cada página se analiza en busca de la zona de firma.

  3. 03

    REVIEW

    Lo dudoso se confirma a mano; lo seguro no se toca.

  4. 04

    SIGN

    El lote se firma con una sola contraseña introducida.

  5. 05

    OUTPUT

    Cada PDF firmado aparece junto a su original.

04 STACK

  • Python 3.12
  • CustomTkinter
  • PyMuPDF
  • pyHanko
  • Tesseract OCR
  • SQLite
  • PyInstaller
  • Inno Setup

05 DECISIONES

Good software doesn't need to look complicated. It needs to remove complexity.

Detrás hay heurísticas de detección, OCR opcional, coordenadas por página y actualizaciones incrementales del PDF. Delante hay una lista de archivos, un desplegable y un botón.

A signature is a cryptographic fact, not a stamp.

Lo fácil era pegar una imagen de la firma sobre el PDF. Lo que hace es firma PAdES Baseline B con pyHanko: Acrobat valida la integridad y delata cualquier cambio posterior al documento.

The password is typed once. Windows keeps it.

Cada perfil guarda su contraseña en el Administrador de credenciales de Windows, nunca en JSON ni en la base de datos. El certificado se referencia por ruta: no se copia al repositorio ni al instalador.

Internal software is still a product.

Tiene versionado, pruebas que fabrican su propio certificado autofirmado para no tocar el real, un script que aborta la compilación si encuentra una clave dentro, ejecutable e instalador para los equipos autorizados.

06 RESULTADO

Resultados cualitativos. No se publican métricas que no pueda sostener.

  • Firma PAdES verificable en Acrobat, no una imagen pegada.
  • Un lote entero firmado con una sola contraseña introducida.
  • Ningún documento, certificado ni contraseña sale del equipo.
  • Instalador propio desplegado en los equipos autorizados.
  • Historial local con hashes para reconstruir qué se firmó y cuándo.

¿ALGO PARECIDO?

Si tu problema se parece a este, hablemos.

Cada sistema es distinto, pero el punto de partida siempre es el mismo: entender el proceso.