Español

INFORME DEL GRUPO DE TRABAJO: GUÍA PARA IMPLEMENTACIONES LIGERAS

By: Zhen Cao

Date: July 4, 2017

line break image

Construcción de pilas IP mínimas pero interoperables en dispositivos diminutos Por Zhen Cao

CONSTRUIR DISPOSITIVOS CON PROTOCOLO IP QUE SEAN MÍNIMOS PERO interoperables para entornos restringidos no es tarea fácil. Como lugar donde se com- parten experiencias de ingeniería, el IETF observó este problema y, para intentar solucio- narlo, creó el Grupo de Trabajo LWIG (Light-Weight Implementation Guidance, Guía para implementaciones ligeras) a fin de recoger las experiencias de implementación de pilas IP en entornos restringidos.

Antecedentes

Hoy en día vemos cada vez más dispo- sitivos restringidos y de baja potencia co- nectados a Internet a través de enlaces con pérdidas. Garantizar que estos dispositivos puedan utilizar el protocolo IP es funda- mental para evitar la fragmentación de In- ternet. Antes del Grupo de Trabajo LWIG, el IETF estaba trabajando en IPv6 ligero (Grupo de Trabajo 6Lowpan, continuado actualmente por el 6Lo), protocolo de en- rutamiento (Grupo de Trabajo ROLL) y pro- tocolos de aplicaciones restringidas (Grupo de Trabajo Core). Este trabajo ha ayudado a que las redes restringidas avancen hacia la interconectividad global (Figura 1).

Además del diseño de los protocolos, cuando se construye una pila de protocolos mínima pero que cumple con todos los re- quisitos también existen diferentes desafíos de implementación que surgen del espacio computacional limitado, la necesidad de un descubrimiento y una seguridad rentables, y un modo de operación de bajo consumo. Compartir estas experiencias de implemen- tación puede promover la interoperabilidad y evitar algunas trampas de la ingeniería.

Actividades del LWIG

El LWIG comenzó por clasi car los dis- positivos restringidos según diferentes aspectos, entre ellos su e ciencia com- putacional y energética. Este trabajo se resumió en el documento sobre termi- nología de redes restringidas RFC 72281, donde las capacidades de los dispositivos se clasi can básicamente en tres cate- gorías: Clases 0/1/2 respectivamente. Las categorías representan los tamaños de datos/código y van desde muy restringido (clase 0, <10KB de datos, <100KB de código), restringido (Clase 1, alrededor de 10KB datos y 100KB de código) y menos restringido (Clase 2, 50KB de datos y 250KB de código). Si bien este consenso se nalizó hace tres años, la mayoría de los términos siguen siendo útiles en las conversaciones de los grupos de trabajo relacionados. También hay una versión ac- tualizada de este documento2 disponible y en discusión dentro del grupo, que planea incluir ideas de la comunidad sobre temas como las implicancias del tamaño de la unidad máxima de transferencia (MTU) y los dispositivos WAN de baja potencia.

Al diseñar e implementar una pila en dis- positivos no restringidos, en general se supone que estos dispositivos son alcan- zables (por lo menos en su función como servidor) y que no es demasiado costoso implementar el mantenimiento de la co- nexión permanente mediante el envío pe- riódico de señales keep-alive. Pero en un entorno restringido estos supuestos no pueden darse por sentado, ya que los dispositivos diminutos se han construido pensando en un determinado ciclo de ope- ración y pueden pasar a modo de reposo para reducir su consumo de energía. El bo- rrador de Arkko et al. sobre la construcción de dispositivos CoAP de bajo consumo de energía para redes celulares3 analiza este problema y formula una serie de recomen- daciones. La clave para habilitar las aplica- ciones de red sobre los nodos “durmientes” es informar a los demás nodos participantes sobre la existencia de los dispositivos de estas características y la ubicación de sus datos a través de un delegador que pueda ser descubierto por los demás dis- positivos. Aunque la infraestructura de de- legación de datos ha sido especi cada por la CoRE-RD4, el soporte disponible para el descubrimiento del directorio de recursos u otros servicios de registro es limitado. Arkko et al. señalan que el descubrimiento multicast sobre un enlace punto a punto similar a uno celular no es factible y su- gieren diferentes maneras de realizar este descubrimiento inicial, entre ellas la con – guración manual, la con guración ja por parte del fabricante, la con guración ja delegada por el fabricante y el uso de in- fraestructura de resolución global común. Para quienes implementan sus servicios a través de dispositivos celulares, el proyecto de Arkko et al. es imprescindible.

CoAP es un componente importante para las aplicaciones restringidas. Hay muchos proyectos de código abierto disponibles, pero rara vez consideran cómo imple- mentar el servicio CoAP de una manera rentable. Kovatsch et al.5 presentan las lec- ciones aprendidas de la implementación de CoAP para dispositivos diminutos. Este documento abarca muchos detalles de la implementación de CoAP con los que los ingenieros se encuentran repetidamente pero que no han sido cubiertos por la espe- ci cación. Los autores comparten mucha información y ofrecen recomendaciones detalladas sobre el uso del ID de mensaje, detección/rechazo de mensajes duplicados, uso de tokens, gestión de estados de (re) transmisión y optimización anticipada. Un ejemplo concreto presenta un inteligente descubrimiento sobre el modelo de ob- servación del uso de tokens en CoAP. En lugar de consultar constantemente el dis- positivo sensor para obtener información más actualizada, CoAP permite que un ob- servador registre su interés en un recurso determinado y posteriormente sea noti- cado con la representación de los más re- cientes, lo que se denomina un modelo de observación. Representada por el URI, la IP, el puerto y el valor del token (del ob- servador), la relación de observación ge- neralmente se mantiene en los sensores diminutos. Sin embargo, CoAP soporta re- gistros duplicados desde un extremo en el mismo URI con diferentes valores de token, lo que puede sumar un costo adicional. Por el contrario, Kovatsch et al. reco- miendan asignar y reutilizar un espacio dedicado al valor de token (8 bytes) para cada relación de observación, mante- niendo cuatro bytes constantes e iterando el resto del espacio de cuatro bytes para evitar ataques de reproducción (replay) y suplantación (spoo ng). Este método no solo ahorra recursos para soportar obser- vación mediante CoAP, sino que también es compatible con el protocolo. También se recomienda que los búfers de retrans- misión se asignen por recurso observable y no por observador (Sección 3.3), lo que permite ahorrar estado adicional.

Gomez et al.6 discuten pautas especí cas para el diseño de protocolos de bajo consumo de energía y ofrecen información sobre las transmisiones broadcast y no sin- cronizadas que consumen más que otras operaciones de Tx/Rx. Si los protocolos deben emplear estas formas de recopilar información, reducir su uso al agregar los mensajes similares ayudará a ahorrar energía. Es más, las operaciones como la gestión de retransmisiones, la detección de duplicados y la conversación observable resultan ine cientes tanto por su consumo de memoria como de energía. La reducción de tales estados en el diseño de protocolos es una manera recomendada de lograr e – ciencia energética.

Los componentes de seguridad gene- ralmente se consideran costosos, pero su ausencia representa un riesgo enorme. Sethi et al.7 ofrecen valiosas considera- ciones y experiencias prácticas, detallan las bibliotecas de criptografía disponibles y evalúan su desempeño en términos de tiempo de ejecución y consumo de memoria. Este es un documento inte- resante que los implementadores pueden consultar antes de evaluar el costo com- putacional de una solución de seguridad relevante. Más importante todavía, los autores concluyen que, con ayuda de una selección informada de los algoritmos e in- tercambios de protocolos de seguridad, se puede controlar el costo adicional (por ejemplo, el tiempo de ejecución y el consumo de memoria) de forma que se ajuste a la mayoría de los escenarios de aplicación.

Además, Kivinen comparte una implemen- tación de un iniciador IKEv2 muy pequeño en la RFC 78158. La idea es que un dis- positivo típico de la IoT se despliega para que se comunique con un solo servidor, por lo que ciertas porciones de la carga útil contenida en el intercambio de pro- tocolos serán estáticas y la implementación mínima evitará las validaciones duplicadas. Kivinen también ofrece una lista de cargas opcionales (por ejemplo, múltiples noti – caciones de estado) que solo son útiles para varios casos con múltiples pares y que pueden ser ignoradas por estas im- plementaciones mínimas. El protocolo ini- ciador mínimo descrito es interoperable con una implementación de backend IKEv2 completa y, por lo tanto, es bastante útil en los extremos diminutos.

Conclusión

En este artículo se han listado apenas algunas de las actividades del Grupo de Trabajo LWIG. Los temas que no se trataron aquí pero que se están discu- tiendo día a día dentro del grupo de trabajo incluyen versiones mínimas de TCP, TLS y DTLS, ESP y gestión de vecinos. En la página del grupo https://tools.ietf.org/wg/ lwig encontrará más información. Agra- decemos a todos los colaboradores dis- puestos a compartir sus experiencias en el desarrollo de implementaciones mínimas.

Referencias

1. Bormann, C., Ersue, M. y A. Keranen, “Ter- minology for Constrained-Node Networks”, RFC 7228, mayo de 2014.

2. Bormann, C., Gomez, C., “Terminology for Constrained-Node Networks”, draft-bor- mann-lwig-7228bis-00 (trabajo en curso), 2017.

3. Arkko, J., Eriksson, A., Keranen, A., “Building Power-E cient CoAP Devices for Cellular Networks”, draft-ietf-lwig-ce- llular-06 (trabajo en curso), 2016

4. Shelby, Z., Koster, M., Bormann, C. y P. Stok, “CoRE Resource Directory”, draft-ie- tf-core-resource-directory-09 (trabajo en curso), 2016.

5. Kovatsch, M., Bergmann, O. y Bormann, C., “CoAP Implementation Guidance”, draft-ietf- lwig-coap-03 (trabajo en curso), 2015.

6. Gomez, C., Kovatsch, M., Tian, H. y Cao, Z., “Energy-E cient Features of
Internet of Things Protocols”, draft-ietf-lwig- energy-e cient-06 (trabajo en curso), 2017.

7. Sethi, M., Arkko, J., Keranen, A., Back, H., “Practical Considerations and Implemen- tation Experiences in Securing Smart Object Networks,” draft-ietf-lwig-crypto-sensors-02 (trabajo en curso), 2017.

8. T. Kivinen, “Minimal Internet Key Exchange Version 2 (IKEv2) Initiator Implementation”, RFC 7815, 2016.