Comprobar una copia firmada
Elige el archivo ZIP de una copia firmada de Amity. Se comprueba en este navegador y no se sube.
Nada sale de tu dispositivo
La copia puede contener información privada de una familia, así que esta página nunca la envía a ningún sitio. El archivo se lee aquí, en tu navegador, por partes. Esta página no usa cookies ni analítica. Lo único que descarga es la lista de claves públicas de Amity.
o suelta aquí el archivo ZIP
Lo que muestra una comprobación
Que cada archivo de la copia es exactamente el archivo que Amity firmó para esa exportación: ningún carácter cambiado, ningún archivo añadido, quitado o renombrado, y la propia lista de archivos sin cambios.
Lo que no muestra
No muestra que lo que escribieron las personas sea exacto: la copia es el registro de Amity de lo que se envió por la app. No muestra quién ha tenido la copia desde entonces, ni una hora de firma independiente. Si un tribunal u otra persona acepta una copia es decisión suya, y Amity no da asesoría legal.
Claves públicas de Amity
Una copia se firma con una clave privada que solo guarda el servicio de claves de Amity. Su parte pública se publica como una lista de claves. Una clave sigue en la lista después de reemplazarse, así que una copia hecha hace años se puede seguir comprobando. La lista solo crece.
Cómo funciona la comprobación
- La copia es un solo archivo ZIP.
manifest.jsonenumera todos los demás archivos con su tamaño y su SHA-256. manifest.siges una firma demanifest.json, hecha con la clave privada de Amity (ECDSA, curva P-256, SHA-256). Nombra la clave pública que hay que usar por su huella.- Esta página busca esa clave en la lista publicada (nunca dentro de la copia), comprueba la firma, y luego lee cada archivo, recalcula su SHA-256 y lo compara con la lista. También comprueba que el ZIP no tenga ningún archivo que la lista no nombre.
- La huella que se muestra cuando coincide es el SHA-256 de
manifest.json. Compárala con la huella que muestra la app para la copia.
Compruébala tú, sin esta página
Cualquiera puede repetir la comprobación con herramientas estándar, en un equipo sin conexión. Guarda como amity-key.pem el publicKeyPem de la clave cuyo fingerprint coincide con keyFingerprint en el manifest.sig de la copia (de la lista de claves), pon la copia al lado como copy.zip y ejecuta estos comandos (necesitan unzip, openssl, jq y shasum):
unzip -q copy.zip -d copy
openssl pkey -pubin -in amity-key.pem -outform DER | shasum -a 256
jq -r .keyFingerprint copy/manifest.sig
jq -r .signature copy/manifest.sig | openssl base64 -d -A > sig.der
openssl dgst -sha256 -verify amity-key.pem -signature sig.der copy/manifest.json
(cd copy && jq -r '.files[] | "\(.sha256) \(.path)"' manifest.json | shasum -a 256 -c -)
jq -r '.files[].path' copy/manifest.json | sort > listed.txt
(cd copy && find . -type f ! -name manifest.json ! -name manifest.sig | sed 's|^\./||' | sort) > present.txt
diff listed.txt present.txt && echo "same files"
Las dos huellas que se imprimen primero deben ser iguales, debe aparecer Verified OK, cada archivo debe decir OK y la última línea debe ser same files. Cualquier otro resultado significa que la copia no es lo que Amity firmó.