Analizando Radar Covid

Finalmente, hoy se ha liberado el código de "Radar COVID", la app española para el rastreo de contactos. Mi objetivo será, ir analizando el código publicado, a nivel técnico general y de seguridad y privacidad.

Repositorios publicados

Lo primero, y para sorpresa de muchos, es que no sólo se han publicado 2 repositorios, uno para la app de Android y otro para la app iOS, si no 5:

  • App Android.
  • App iOS.
  • Servidor de configuración del backend.
  • Implementación propia del DP^3T.
  • Servidor de verificación del backend.




Esto, en principio es un punto muy positivo de cara a la transparencia del proyecto en su conjunto, ya que permite analizar todas las partes implicadas en busca de, por ejemplo, problemas de seguridad que no sería posible detectar sólo con el código de las apps móviles.

Por poner un símil, para evaluar la seguridad de nuestra casa necesitaremos no sólo tener información arquitectónica de cómo se ha construido, sino también de las instalaciones eléctricas, de agua, etc.

La seguridad del conjunto es proporcional a la seguridad de las partes y la de integración entre ellas. 

Instrucciones, "reproducibilidad" y dependencias

Tan importante como tener el código es saber cómo utilizarlo y qué herramientas serán necesarias para transformarlo y construir las aplicaciones finales, similares a las que deberían estar ejecutándose en nuestros móviles y los servidores que con los que se comunican.

Siguiendo con el símil de la casa, de nada nos vale que nos den los materiales, si no tenemos los manuales, herramientas y conocimientos necesarios para construir una casa similar.

En este caso, cada repositorio contiene un fichero explicativo de la funcionalidad del código, cómo construir las piezas de software que contienen, dependencias... que, cualquier técnico podría seguir.
De hecho, en algunas piezas especialmente complejas en cuanto a seguridad, como puede ser el servidor de verificación, se incluyen instrucciones para poder crear claves propias, etc.




También contienen guías de cómo contribuir, siempre necesarias en proyectos de código abierto. De nuevo, punto positivo, a expensas de ver cómo son consideradas y reconocidas las futuras aportaciones.

Tecnologías utilizadas

Por lo que he podido ver, todas las tecnologías utilizadas son software libre, extendidas, con buen soporte, modernas y, digámoslo así, "punteras" (desarrollo de la app de Android en Kotlin, contenedores Docker, Spring Boot últimas versiones, PostgreSQL...

En este caso, la casa está construida con técnicas y materiales actualizados, que permitirán ampliarla, construirla y cambiarla con un coste mínimo, detectar rápidamente deficiencias en los materiales que utiliza, etc.

Conclusiones

En principio, y aunque se ha hecho de rogar, el código de "Radar Covid" ha llegado y tiene muy buena pinta. Esto, en principio, permitirá que sea mejorado con las aportaciones desinteresadas de técnicos y expertos.

A pesar de ello, todavía quedan por aclarar algunos puntos importantes como:
  • Según lo ya descubierto por algunos técnicos como Raúl Martínez, parece que la versión publicada en Github, y la versión publicada en Google Play que los usuarios instalan en sus móviles, tienen algunas diferencias. Habrá que seguir analizando las siguientes publicaciones de código o ver qué respuesta dan los responsables del proyecto al respecto.
  • Se ha publicado algún código y recursos, como claves privadas de prueba, que ya no deberían estar siendo utilizadas. Esto no supone mayor problema que una falta de limpieza de código obsoleto, si es que realmente ya no están siendo usadas, como ya han respondido los responsables de la publicación del código.
  • Ver cómo son consideradas y atribuidas las aportaciones de los usuarios.
  • Esperar a un análisis exhaustivo por parte de técnicos y expertos, que podrían revelar problemas de seguridad hasta ahora ocultos.
Hasta aquí este primer post introductorio. Espero vuestros comentarios.

Sexy coding,

Comentarios

  1. gracias, buen aporte

    ResponderEliminar
    Respuestas
    1. De nada, son muchos los que han criticado el proyecto porque no es perfecto, pero la realidad es que tiene mucho mérito y calidad. Saludos,

      Eliminar

Publicar un comentario