En esta santa casa, hemos hablado largo y tendido de lo que supone la irrupción del Internet of things para el funcionamiento técnico de la red y sus prestaciones de cara al usuario.

internet-of-things-IoT

La comunicación con estos dispositivos, en la mayoría de casos, se hace en segundo plano, mediante notificaciones push o segundos dispositivos (véase un ordenador o un smartphone), de tal manera que definir un ámbito global de comunicación es una de las principales barreras que frena el despegue de este mercado.

Cada fabricante, hace y deshace según le viene en gana, desarrollando protocolos propios, basados o no en estándares, lo cual genera más heterogeneidad en el panorama tecnológico y la escasa compatibilidad entre ellos.

Bajo esta panorámica, la lectura que me viene a la mente es la necesidad de fijar unas pautas básicas y necesarias que mantengan comunicados en base a una estandarización todo este nutrido grupo de dispositivos, con el fin de que el día de mañana las actualizaciones puedan llegar por canales seguros de forma masiva y eviten, en la medida de lo posible situaciones vividas con graves fallos de seguridad de la talla de Heartbleed o ShellShock.

Actualizaciones automáticas

Porque el problema no es que estas vulnerabilidades existan (que también), sino que incluso cuando pasan al ámbito público y se liberan los parches para solucionarlas es muy complicado que estos lleguen a propagarse en un lapso de tiempo lo suficientemente pequeño como para no presentar un riesgo crítico.

Hablo de esos dos, pero bien podríamos hablar de ese BadUSB (EN) que ha asolado la tecnología durante esta última semana, que fue anunciado hace ya unos meses, y que con vistas al futuro inmediato, no tiene solución. Hablamos de una vulnerabilidad que es conocida, que se sabe cómo solucionarla, pero que resulta prácticamente imposible de parchear ya que los dispositivos afectados no tienen implantado un canal de distribución de actualizaciones masivo.

Donde ahora hay cuatro o cinco tipologías de dispositivos, el día de mañana habrá cincuenta, y un fallo como este ya no solo afectará a esas cuatro o cinco, sino a muchísimas más, que seguramente dependan de arquitecturas distintas, que estarán o no conectadas a redes con salida a Internet, y que en definitiva, formarán parte de una cadena mayor de servicios digitales que se verá vulnerada por una mala configuración inicial.

Es aquí donde entran en juego las actualizaciones automáticas, un paradigma que al menos hace unos años ni se planteaba como necesario (recordemos esos primeros programas del siglo XX), y que en el mundo software empiezan a cobrar valor.

A veces, de forma directa, como está ocurriendo con Windows 8 o la mayoría de distribuciones de Linux. Otras veces, mediante intermediarios, como los markets de aplicaciones de Android. Pero la idea es la misma, mantener abierta una carretera de un solo sentido para que, llegado el momento, el cliente pueda descargar una nueva versión del servidor sin que el usuario tenga que hacer nada al respecto.

Y digo que es trascendental que todo desarrollo tecnológico cuente con este tipo de servicio puesto que el mercado cambia a ritmo alarmante, e incluso aquellas tecnologías que en su momento fueron diseñadas para un fin particular (por ejemplo, servir una tarea en un dispositivo con sistema operativo basado en pantallas táctiles) puede que de la noche a la mañana acaben por implantarse en otra nueva oleada de dispositivos cuya interacción es por voz, o que ni siquiera tienen manera de relacionarse directamente con el usuario.

Llegados a ese punto, es cuando te das cuenta de que tu proyecto, ese servicio que el mercado ha valorado en miles de millones, cae estrepitosamente en desuso. No has contemplado todas las eventualidades oportunas (algo imposible, por otra parte), pero lo peor es que no has establecido un canal de comunicación que te permitiera contemplarlas.

Por supuesto, no basta únicamente con habilitar un sistema de notificación push que le mande al servicio la ruta de descarga y que sea este quien la implante por sí mismo. Hablamos también de segurizar esas comunicaciones (una asignatura pendiente de la mayoría de sistemas de actualización automática) y de bloquear convenientemente las peticiones no legítimas, tanto desde fuera como desde dentro (estamos ante una tarea básica, muy acotada, y que por tanto, no debería estar a la escucha y/o al alcance de cualquiera).