Ya era hora de dar más privacidad a datos sensibles sobre localización y fechas/horas (hábitos), que es básicamente la información que generan todos estos cacharros modernos con receptores de GPS: las comunicaciones en la parte de gestión de entrenamientos están cifradas.
¿Por qué es necesaria la comunicación segura para preservar la privacidad?
La información recogida durante los entrenamientos básicamente es la localización y la fecha con la hora, así que partiendo de esa información, es sencillo para alguien establecer patrones de conducta acerca del protagonista de los entrenamientos vulnerando completamente su privacidad.
Es conocido el caso de una popular web que vende los datos (y metadatos) de sus usuarios a terceros, así que no está de más tomar algunas precauciones antes de contentar a algún ladrón.
Cambios necesarios
No ha habido que reinventar la rueda, pero sí que hacer algunas mejoras:
Crear un certificado válido para el dominio
Por unos 6€/año se puede conseguir un certificado de una entidad reconocida y no merece la pena lidiar con certificados autofirmados que generan incertidumbre en usuarios menos acostumbrados a tecnicismos.
Cambiar la configuración del servidor (Apache 2.4)
El estándar indica que las comunicaciones seguras van al puerto 443, así que hay que hacer que la aplicación escuche en ese puerto para que se pueda producir la comunicación cifrada con el cliente. El tráfico que llega al puerto 80 es redirigido (301) al 443 para evitar problemas.
Se descartan las inseguras versiones SSLv2 y SSLv3 buscando los modernos TLS con los algoritmos de cifrado más seguros.
Obligar a que las cookies se transmitan únicamente por canal seguro
Al estar la aplicación alojada en una instalación compartida, la solución elegida para las de sesión ha sido establecer la configuración personalizada en tiempo de ejecución.
Para las que controlan a los usuarios hay que marcarlas como seguras en el momento de su creación.
Verificar que los enlaces siguen el canal seguro
No sirve de mucho para preservar la privacidad pedir los mapas por un canal abierto. Afortunadamente tanto Google Maps como OpenStreetMaps permiten esa posibilidad, pero hay que tener en cuenta que los de OpenCycleMaps no están disponibles a través de SSL de manera gratuita.
Cualquier sugerencia o mejora es bienvenida.