SHARE THE PERSPECTIVE
Los hashes, las firmas, las compilaciones reproducibles y las auditorías responden a preguntas distintas.

El código abierto permite inspeccionar el código, pero por sí solo no demuestra que la aplicación instalada corresponda a ese mismo código ni que carezca de vulnerabilidades. Para evaluar una aplicación de mensajería, conviene distinguir varios tipos de evidencia: código fuente, proceso de compilación, firma del archivo, pruebas del protocolo e informe de auditoría.

¿Qué demuestra exactamente cada evidencia?

Evidencia Principal aportación Lo que no demuestra por sí sola
Código fuente legible Permite examinar el diseño y la implementación Correspondencia con el archivo de instalación o ausencia de todos los errores
Compilación reproducible Permite comparar el resultado a partir de una fuente y un entorno especificados La seguridad del propio código
Firma de APK Comprueba la firma y la vinculación del archivo con una clave de firma de confianza Que el comportamiento de la aplicación sea inofensivo
Hash SHA-256 Detecta diferencias de bytes respecto de un resumen de confianza La autenticidad cuando un atacante ha sustituido el archivo y el resumen a la vez
Vector de prueba Comprueba un comportamiento concreto para entradas y salidas determinadas La cobertura de todos los estados y rutas de ejecución
Auditoría independiente Hallazgos del examen de un alcance y una versión concretos Una garantía permanente para todas las versiones futuras

Una compilación reproducible no equivale a descargar un archivo con el mismo hash

Según la definición de Reproducible Builds, la reproducibilidad consiste en generar un resultado idéntico a partir de código fuente, entorno e instrucciones especificados. Si solo comparas el archivo descargado con el hash publicado por su desarrollador, has realizado una comprobación de integridad; todavía no has compilado tú mismo el archivo a partir del código.

Para evaluar una afirmación de reproducibilidad, pide la versión del código, las dependencias, las instrucciones de compilación y el informe de otra persona que haya reproducido el resultado. La frase «el código fuente está en GitHub» no sustituye estas evidencias.

¿Cómo interpretar correctamente la comprobación de un APK?

  1. Obtén el archivo desde la fuente oficial y para una versión concreta.
  2. Obtén el resumen y la información del firmante de una fuente cuya autenticidad consideres fiable.
  3. Calcula el hash del archivo y compáralo con el de esa misma versión.
  4. En una comprobación técnica, valida también la firma; la herramienta oficial apksigner permite hacerlo.
  5. Si encuentras una discrepancia, detén la instalación y aclara su causa; no vuelvas a firmar el archivo para eludir el error.

Ejemplo de comando de verificación para una persona experta que tenga Android SDK Build Tools:

apksigner verify --verbose --print-certs app.apk

El nombre app.apk es solo un ejemplo. Que el comando termine correctamente no elimina la necesidad de conocer la clave válida y de confianza del editor.

¿Qué papel tiene Proof Lab?

Proof Lab de Livara ofrece herramientas para comprobaciones específicas. Lee el alcance de cada prueba: un hash de archivo, un ejemplo de acuerdo de claves o el rechazo de datos manipulados responden a preguntas distintas. Una demostración criptográfica satisfactoria no es una auditoría de toda la aplicación instalada, el servidor, las actualizaciones ni la gestión de cuentas.

El modelo de amenazas de Livara también aclara que, si un atacante sustituye tanto el APK como el resumen mostrado, la coincidencia del hash no demuestra por sí sola la autenticidad. Es una limitación general de la comprobación de hashes, no una característica de una mensajería concreta.

¿Qué preguntar al leer un informe de auditoría?

  • ¿Qué organizaciones o personas realizaron el examen y dónde está el informe público?
  • ¿Qué versión y qué commit se examinaron?
  • ¿Qué partes quedaron fuera del alcance?
  • ¿Cómo se corrigieron y volvieron a probar los hallazgos importantes?
  • ¿La versión que tienes instalada es la misma o incluye sus correcciones?

No extraigas conclusiones definitivas de palabras como «aprobado» sin respuestas a estas preguntas. Utilizar un algoritmo estándar tampoco equivale a que todo el producto esté certificado conforme a un estándar.

Consecuencias para elegir una mensajería

El código abierto y la verificabilidad no compiten; son evidencias complementarias. Prefiere un producto cuyas afirmaciones sean precisas, rastreables y tengan un alcance claro. Después, aplica el mismo examen a tu modalidad de uso, como grupos, versión web, copias de seguridad y dispositivos vinculados, en lugar de concluir una seguridad absoluta a partir de una sola prueba satisfactoria.

Comprueba el hash de instalación de Android en Livara
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗