tag:blogger.com,1999:blog-2950818378693419182024-03-13T18:46:25.670+01:00C:\KangarooAnalizando app Radar Covid, para el seguimiento de contactos con Covid-19. #privacidad #covid #covid19 #contacttracingJavi Vázquezhttp://www.blogger.com/profile/07267200989747642352noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-295081837869341918.post-82191996772691002422020-09-15T12:55:00.007+02:002020-09-15T13:04:47.024+02:00Analizando Radar Covid: lo malo<div class="separator"><p style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">Como todo aquello presentado al público, el proyecto "<b>Radar Covid", ha sido criticado en vario</b><b>s</b><b> aspectos</b>. En este post, detallaré, a mi parecer, cuáles son las críticas más relevantes, haciendo siempre una crítica constructiva, ya que algunos pueden venir dados por requerimientos de seguridad, normativa u operación actual.</p></div><p>Lo más criticado a nivel de proyecto ha sido:</p><p></p><ul style="text-align: left;"><li>Una <b>campaña de comunicación prácticamente inexistente</b>. </li><ul><li>En un proyecto de esta envergadura, se debería de haber contado tanto con una <b>campaña mediática en medios de comunicación</b> (radio, televisión, prensa, etc.) potente y bien planificada.</li><li>Una <b>campaña en internet que permitiera posicionar la página oficial entre los primeros resultados de búsqueda. </b>La "página oficial" se encuentra enterrada entre noticias de diarios online y publicaciones al respecto de comunidades, al final de la segunda página de resultados.</li><li>La <b>falta de una página oficial, con respuestas a preguntas y casos de uso frecuentes</b>. La información se divide en varios sitios, con poca o ninguna relación (https://covid19.gob.es/, https://www.mineco.gob.es/, etc.)</li><li>La <b><a href="https://www.mineco.gob.es/portal/site/mineco/menuitem.ac30f9268750bd56a0b0240e026041a0/?vgnextoid=359f50a4c34b3710VgnVCM1000001d04140aRCRD&vgnextchannel=864e154527515310VgnVCM1000001d04140aRCRD">"página oficial"</a>, si bien explica el funcionamiento, </b>lo hace de una manera poco amena, en un texto sin imágenes, muy largo...</li><li>Una <b>falta de comunicación mínima del estado y avance del proyecto</b>, <b>colaboraciones </b>(<a href="https://github.com/DP-3T">DP^3T</a>), etc. </li></ul></ul><div>No se explica que en <b>un proyecto que tiene llegar al usuario final, no se haya considerado una campaña de comunicación al respecto</b>. </div><div>Los mensajes están centrados en aspectos legales y de privacidad únicamente.</div><div><b><br /></b></div><div><b><img border="0" data-original-height="498" data-original-width="746" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimtUrdh_nN6AWTIff6eUv-eaFFMNTE35gVN6avKrSMZSfM3TUGXHIXpAJpU2tsADf34RlOnAuvdstd-IWVdHyuiEqzLyLFedUiRNw5UnI7c2WK7YxpPcHAHPSki4DGOEqLvsOWrYRiQqDV/w360-h214/15970587217745.jpg" style="font-weight: 400;" width="360" /></b></div><div><br /></div><div>Funcionalmente, algunos puntos débiles son:</div><ul style="text-align: left;"><li><b>No hay manera de bajar el tiempo de exposición. </b></li><ul><li>Es entendible que no sea totalmente configurable, ya que un tiempo de exposición de 1 o 2 minutos daría muchas <b>falsas alarmas</b>, pero hay <b>población de riesgo</b> que estoy seguro que agradecería ser avisado cuando se ha expuesto durante 10 a 15 minutos, por ejemplo.</li></ul><li>No existe forma de <b>aumentar las veces que se comprueba la exposición. </b></li><ul><li>Si bien dos veces al día parece sensato, podría dejarse en manos del usuario el comprobarlo más veces al día, lo que podría <b>ayudar a cortar la cadena de transmisión antes, </b>aunque implicara mayor consumo de batería.</li></ul><li>Es <b>necesario que cada comunidad integre sus sistemas de salud con la generación de códigos</b>. </li><ul><li>La característica de generación de códigos para alertar de positivos por parte de los diferentes sistemas de salud, es <b>totalmente necesaria para evitar falsos reportes masivos</b> y por tanto, el colapso y caos del sistema sanitario. </li><li>Pero desde luego, <b>los diferentes tiempos de integración e incluso la negativa de algunos a integrarse, dejan ver la nefasta fragmentación del sistema de salud español</b>, en el que <b>en cada comunidad se ofrecen unos servicios diferentes</b> y hasta hace poco, <b>no era posible recoger medicamentos en una comunidad diferente a la tuya</b>.</li></ul><li><b>Interoperabilidad con otras apps europeas</b>. </li><ul><li>Si bien está supuestamente por llegar, las fronteras con ya están abiertas y no hay fecha de llegada de esta característica.</li></ul></ul><p></p><p>Finalmente, técnicamente la mayor crítica ha sido:</p><p></p><ul style="text-align: left;"><li><b>La versión de las apps publicada en Github no es la versión publicada en Google Play ni Apple Store</b></li><ul><li><b>El código liberado no corresponde al 100% a las apps que se están ejecutando en los teléfonos de los ciudadanos. </b></li><li><b>Todo parece indicar que el código fuente publicado es de una versión posterior a la disponible en las tiendas de app, además de contener código que ya no se usa, traído del piloto en Canarias.</b></li></ul></ul><div>También se podrían haber añadido muchas otras mejoras, como "reproducible builds", variables de configuración dependientes del entorno, ramas e historia de Git, etc. de los que hablaré en un post técnico posterior.</div><p></p>Javi Vázquezhttp://www.blogger.com/profile/07267200989747642352noreply@blogger.com0tag:blogger.com,1999:blog-295081837869341918.post-7672281699425861782020-09-12T18:57:00.010+02:002020-09-15T00:40:12.216+02:00Analizando Radar Covid: funcionamiento<p><br /> He visto en sobre todo en <a href="https://twitter.com/SEDIAgob/status/1304372804536721408?s=20" target="_blank">Twitter</a> y <a href="https://www.linkedin.com/feed/update/urn:li:activity:6709559519585853440/" target="_blank">LinkedIn</a>,que <b>muchos y muchas todavía no entienden cómo funciona la app Radar Covid</b>, así que intentaré explicarlo lo más sencillo posible, omitiendo algunos puntos.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD1LwN7vPB5g3IGIYpSlVfUjmwbDs7OgBC2rr0g3aXuiDDrrokjohoLdZmhWdaZGMtmA8RHedVr8BqHt9UtvbBtv9PQqDSqa1sxcPyEg_kQiAwz39kQ-npO357S_jTwCavLY7kP9anJ-Lb/s1280/69.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"><img border="0" data-original-height="720" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD1LwN7vPB5g3IGIYpSlVfUjmwbDs7OgBC2rr0g3aXuiDDrrokjohoLdZmhWdaZGMtmA8RHedVr8BqHt9UtvbBtv9PQqDSqa1sxcPyEg_kQiAwz39kQ-npO357S_jTwCavLY7kP9anJ-Lb/s320/69.jpg" width="320" /></a>Un móvil con la app Radar Covid instalada e<b>mite por</b><b> B</b><b>luetooth un código único</b> (en adelante, ID), que cambia cada 10 minutos o menos. Está duración no es trivial, luego veremos por qué.</p><p>Además, <b>recoge todos los IDs que recibe</b> de otros móviles con la app, durante cuánto tiempo los ha visto y <b>los guarda su memoria durante 14 días</b>.</p><p><b>Dos veces al d</b><b>ía, la app pregunta a un servidor si alguno de los IDs que tiene almac</b><b>enados ha dado positivo. </b></p><p><b>Si alguno es positivo, y la suma del tiempo de exposición a esos IDs es mayor a 15 minutos, la app avisa al usuario de que su exposición ha sido alta y le muestra una pantalla con las instrucciones a seguir.</b></p><p>El usuario afectado es quién debe contactar con los servicios de salud para que le hagan la prueba PCR, etc.</p><p>La exposición de 15 minutos es mayor que el tiempo que dura un ID único, 10 minutos, para, entre otros, evitar que alguien finalmente pudiera ser identificado como positivo. Esta característica realmente viene heredada del algoritmo <a href="https://github.com/DP-3T" target="_blank">DP^3T</a>, desarrollado ex profeso para el caso, del cual hablaré en un post posterior.</p><br /><p><br /></p>Javi Vázquezhttp://www.blogger.com/profile/07267200989747642352noreply@blogger.com0tag:blogger.com,1999:blog-295081837869341918.post-57694405322546722812020-09-09T22:24:00.002+02:002020-09-09T23:56:39.313+02:00Analizando Radar Covid<div style="text-align: left;">Finalmente, hoy <b>se ha liberado el código de "Radar COVID", la app española para el rastreo de contactos</b>. Mi objetivo será, ir analizando el código publicado, a nivel técnico general y de seguridad y privacidad.</div><h3 style="text-align: left;">Repositorios publicados</h3><p>Lo primero, y para sorpresa de muchos, es que n<b>o sólo se han publicado 2 repositorios</b>, uno para la app de Android y otro para la app iOS,<b> si no 5:</b></p><p></p><ul style="text-align: left;"><li>App Android.</li><li>App iOS.</li><li>Servidor de configuración del backend.</li><li>Implementación propia del DP^3T.</li><li>Servidor de verificación del backend.</li></ul><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXoRNXHXktQTqh7Ln82jBd3YniPk-p9niPwCGm0998oOlZm8mWMKjQjt9_E-1aahKsKNL_lXyhfVUEn4ioigwRtPXjIBQmMRQTeW_KJrdbTjneXjyN3vXFapBVPEu7WW4n-KtXk8dBmTQ_/s883/ReposRadarCovid.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="883" data-original-width="650" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXoRNXHXktQTqh7Ln82jBd3YniPk-p9niPwCGm0998oOlZm8mWMKjQjt9_E-1aahKsKNL_lXyhfVUEn4ioigwRtPXjIBQmMRQTeW_KJrdbTjneXjyN3vXFapBVPEu7WW4n-KtXk8dBmTQ_/s320/ReposRadarCovid.PNG" /></a></div><br /><div><br /></div><div><br /></div><div>Esto, en principio es un <b>punto muy positivo de cara a la transparencia</b> del proyecto en su conjunto, ya que permite analizar todas las partes implicadas en busca de, por ejemplo, <b>problemas de seguridad que no sería posible detectar sólo con el código de las apps móviles</b>.</div><div><br /></div><div>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.</div><div><br /></div><p></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p></p><h4 style="text-align: left;"><i>La seguridad del conjunto es proporcional a la seguridad de las partes y la de integración entre ellas.</i> </h4><p></p></blockquote><p></p><h3 style="text-align: left;">Instrucciones, "reproducibilidad" y dependencias</h3><div>Tan importante como tener el código es <b>saber cómo utilizarlo y qué herramientas serán necesarias para transformarlo y construir las aplicaciones finales</b>, similares a las que deberían estar ejecutándose en nuestros móviles y los servidores que con los que se comunican.</div><div><br /></div><div>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.</div><div><br /></div><div>En este caso, cada repositorio contiene un <b>fichero explicativo de la funcionalidad del código, cómo construir las piezas de software que contienen, dependencias...</b> que, cualquier técnico podría seguir.</div><div>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.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuf8xx7HODUMXOobH9v034x8rpZkZw89ihTDrxx4GuJSt-J3GjPysWeTva3Pz7-tjAOrmku74uYn2UeczlXunaWtpdXD5VWbLQwj-SWnOqvlM5nj0_0BOMgBSIYnKYRUMj_IfQE8rR2UzA/s831/ReposRadarCovid2.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="666" data-original-width="831" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuf8xx7HODUMXOobH9v034x8rpZkZw89ihTDrxx4GuJSt-J3GjPysWeTva3Pz7-tjAOrmku74uYn2UeczlXunaWtpdXD5VWbLQwj-SWnOqvlM5nj0_0BOMgBSIYnKYRUMj_IfQE8rR2UzA/s320/ReposRadarCovid2.PNG" width="320" /></a></div><br /><div><br /></div><div><br /></div><div>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.</div><div><br /></div><h3 style="text-align: left;">Tecnologías utilizadas</h3><div>Por lo que he podido ver, todas las <b>tecnologías utilizadas son software libre, extendidas, con buen soporte</b>, modernas y, digámoslo así, "punteras" (desarrollo de la app de Android en Kotlin, contenedores Docker, Spring Boot últimas versiones, PostgreSQL...</div><div><br /></div><div>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.</div><h3 style="text-align: left;">Conclusiones</h3><div>En principio, y aunque se ha hecho de rogar, el código de <b>"Radar Covid" ha llegado y tiene muy buena pinta</b>. Esto, en principio, permitirá que sea <b>mejorado con las aportaciones desinteresadas de técnicos y expertos</b>.</div><div><br /></div><div>A pesar de ello, todavía quedan por aclarar algunos puntos importantes como:</div><div><ul style="text-align: left;"><li>Según lo <a href="https://github.com/RadarCOVID/radar-covid-android/issues/10" target="_blank">ya descubierto por algunos técnicos como Raúl Martínez</a>, parece que l<b>a versión publicada en Github, y la versión publicada en Google Play que los usuarios instalan en sus móviles, tienen algunas diferencias</b>. Habrá que seguir analizando las siguientes publicaciones de código o ver qué respuesta dan los responsables del proyecto al respecto.</li><li><b>Se ha publicado algún código y recursos, <a href="https://github.com/RadarCOVID/radar-covid-android/issues/3" target="_blank">como claves privadas de prueba</a></b>, que <b>ya no deberían estar siendo utilizadas</b>. Esto no supone mayor problema que una falta de limpieza de código obsoleto, si es que realmente ya no están siendo usadas, <a href="https://github.com/RadarCOVID/radar-covid-android/commit/2eeab393aff5d62c91e10a184149d9c535d129de" target="_blank">como ya han respondido los responsables de la publicación del código</a>.</li><li>Ver cómo son <b>consideradas y atribuidas las aportaciones de los usuarios</b>.</li><li>Esperar a un <b>análisis exhaustivo</b> por parte de técnicos y expertos, que podrían revelar problemas de seguridad hasta ahora ocultos.</li></ul><div>Hasta aquí este primer post introductorio. Espero vuestros comentarios.</div><div><br /></div><div>Sexy coding,</div><div><br /></div></div><p></p>Javi Vázquezhttp://www.blogger.com/profile/07267200989747642352noreply@blogger.com2