wolfIP signe une pile TCP/IP open source légère pour systèmes embarqués, sans allocation dynamique de mémoire

Connue pour sa bibliothèque SSL/TLS (Secure Sockets Layer/Transport Layer Security) en open source, la société américaine wolfSSL, un spécialiste du protocole de sécurisation des échanges sur réseaux IP, propose désormais avec wolfIP, une pile TCP/IP open source légère, sans allocation dynamique de mémoire. Donc sans recours à “malloc”, une fonction de la bibliothèque standard du langage C qui permet d'allouer dynamiquement de la mémoire.

On le sait, les microcontrôleurs et microprocesseurs utilisés dans les systèmes embarqués disposent de ressources limitées, sont souvent dépourvus d'unités de gestion de la mémoire et offrent un espace mémoire restreint. Ce qui rend l'allocation dynamique de mémoire complexe avec les risques de “plantage” inhérent à ce type d’approche.

Supprimer le recours à la fonction “malloc” peut donc considérablement améliorer la stabilité d’un système, selon WolfSSL.

Conçue pour les systèmes embarqués aux ressources limitées, dotés de contraintes déterministes temps réel pour des applications critiques, WolfSSL indique que sa pile wolfIP prend en charge le mode point de terminaison uniquement ainsi que la gestion complète de plusieurs interfaces avec un transfert IP optionnel.

En d’autres termes, par défaut, elle fonctionne comme un point de terminaison réseau, mais peut aussi être configurée pour transférer le trafic entre plusieurs interfaces réseau.

Selon WolfSSL, cette approche élimine l'imprévisibilité souvent rencontrée dans les piles réseau en supprimant l'allocation dynamique et les threads cachés, grâce à des tampons configurés à la compilation et une table de sockets fixe. Il en résulte un cœur réseau au comportement constant, selon la société.

Cette pile fonctionne déjà comme alternative TCP/IP en espace utilisateur sous les systèmes d’exploitation Linux, FreeBSD et macOS, et s'adapte aux déploiements embarqués, notamment avec les systèmes FreeRTOS, SafeRTOS, Zephyr, Azure RTOS, ThreadX, NuttX, RTEMS et les systèmes d'exploitation temps réel commerciaux tels que VxWorks et QNX.

WolfSSL indique en outre que cette pile de protocole prend également en charge les cibles dites bare metal (sans système d'exoploitation) nécessitant une empreinte réseau réduite.

Enfin, la société indique que wolfIP peut être associée à la pile TCP/IP de wolfSSL pour fournir une connectivité sécurisée TLS 1.3 prévisible, permettant aux développeurs de créer des appareils compatibles HTTPS avec une pile réseau et de sécurité unique et intégrée.

Pour être complet, côté sécurité, signalons que wolfIP intègre un pilote wolfGuard natif, une implantation  conforme à la norme FIPS du protocole VPN WireGuard et qui fonctionne intégralement au sein de la pile wolfIP. wolfGuard utilise les primitives cryptographiques certifiées FIPS wolfSSL/wolfCrypt. 

Le code source sous licence GPLv2 de cette pile wolfIP est accessible sur la palte-forme GitHub, avec une documentation sur l’API, un guide expliquant comment utiliser wolfIP sur les microcontrôleurs STM32 de STMicroelectronics (à travers l’environnement STM32CubeM) ainsi que le pack CMSIS (Cortex Microcontroller Software Interface Standard) de wolfIP.

Et pour ceux qui préfèrent le langage de programmation Rust ou qui ont besoin de la prise en charge d'IPv6, la bibliothèque “smoltcp” de WolfSSL peut également être configurée pour désactiver l'allocation mémoire, explique la société.