Validación Criptográfica de Actas E-14
Herramienta pública y auditable para extraer metadatos y validar firmas criptográficas (estampillas) en documentos PDF electorales.
Arrastra tu archivo PDF aquí
o haz clic para seleccionar
Conoce la Tecnología
¿Qué son los Metadatos?
Los metadatos son "datos sobre los datos". En un archivo PDF, incluyen información oculta como la fecha y hora de creación, el software utilizado, el autor original o incluso las coordenadas GPS si fue creado con un dispositivo móvil. Son vitales para detectar manipulaciones, ya que alteraciones posteriores suelen modificar estas huellas.
¿Qué es una Firma Criptográfica?
Una firma criptográfica (o estampilla) es un sello matemático que garantiza que el archivo no ha sido modificado desde el momento en que se firmó. Utiliza cifrado asimétrico (claves públicas y privadas). Si un solo píxel del acta E-14 es alterado, la firma se rompe inmediatamente, evidenciando el fraude.
Replica nuestro Script Localmente
Creemos en la transparencia total. Puedes ejecutar nuestro código de validación directamente en tu computadora para auditar actas de forma privada, utilizando Python.
python3 -m venv venv
# 2. Activa el entorno virtual:
# En Mac/Linux: source venv/bin/activate
# En Windows: venv\Scripts\activate
# 3. Instala los requerimientos:
pip install PyPDF2 pyHanko
# 4. Guarda el siguiente código como validator.py:
import sys
import PyPDF2 # Librería elegida por su ligereza para extraer el diccionario de metadatos estándar
from pyhanko.pdf_utils.reader import PdfFileReader # Librería robusta especializada en criptografía para detectar firmas digitales incrustadas
def check_metadata(filepath):
has_metadata = False
has_signature = False
try:
# Validación de firmas y estampillas criptográficas usando pyHanko
# Usamos pyHanko porque puede parsear la estructura de seguridad de un PDF
# y confirmar matemáticamente si el archivo ha sido alterado.
with open(filepath, 'rb') as f:
hanko_reader = PdfFileReader(f)
if hanko_reader.embedded_signatures:
has_signature = True
# Lectura de metadatos estándar usando PyPDF2
# Extrae información oculta como fecha de creación, software usado, etc.
with open(filepath, 'rb') as f:
reader = PyPDF2.PdfReader(f)
if reader.metadata and len(reader.metadata) > 0:
has_metadata = True
# Limpiamos los metadatos vacíos para mejor visualización
clean_meta = {str(k): str(v) for k, v in reader.metadata.items() if v}
print("Metadatos encontrados:", clean_meta)
except Exception as e:
print("Error leyendo el archivo:", e)
print(f"\nFirma Criptográfica detectada: {'Sí' if has_signature else 'No'}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Uso: python validator.py <archivo.pdf>")
sys.exit(1)
check_metadata(sys.argv[1])# 5. Ejecuta la validación de tu archivo:
python validator.py /ruta/a/tu/acta.pdf