Software Internships

Software Internships

Company
DELTATEC
Location
Ans
Pubication Date
04 Nov 2024

Sujets de stages / TFE 2024-2025: 

      

Software Stage / TFE #1 – Embedded USB WebCam

Titre : « Implémentation d’une interface USB webcam sur système embarqué»

Cible : Sciences Informatiques / Bachelier, Master, Ingénieur en Informatique / Electronique

Centre de compétence interne: Embedded / PC System

Description du travail :

DELTATEC est actif dans le monde la vision industrielle : de par son expérience dans le développement de matériel personnalisé autour de capteur, DELTATEC identifie un nouveau créneau dans le domaine de caméras intelligentes. Afin d’interface facilement ces appareils avec des plateformes standard (PC sous Windows ou Linux, tablette, …), il est primordial de maitriser les interfaces standards permettant l’interopérabilité native avec les systèmes d’exploitations classiques tels que Windows, Linux et OSx.

L’interface USB se prête très bien à ce genre d’application : ces différentes évolutions permettent d’atteindre des débits en corrélation avec les besoins actuels (en termes de résolutions et de débit d’image). Pour ce faire, la norme USB propose des interfaces dédiées, les « device class » UVC et UAC visant à faire transiter en streaming des flux vidéo et audio.

Le travail consiste à ajouter une nouvelle interface de sortie à un appareil embarqué permettant de le faire apparaitre sous la forme d’une webcam USB, et pouvoir ainsi l’utiliser comme sources multimédia dans diverses applications de téléconférences (type webex, zoom, slack et consorts), tout en maitrisant le chemin des données, permettant d’envisager l’insertion d’un traitement spécifique temps réel sur le flux d’image (AI, …)

Le but est donc la mise en place d’une interface USB type « Webcam » sur une plateforme SBC (single board computer) similaire à un Rapsberry PI. Ces plateformes, bon marchées et facilement accessibles, permettent, dans le monde de l’industrie, du prototypage rapide, permettant de valider des idées, des concepts et d’évaluer rapidement (et à moindre coût) la faisabilité

Ce travail nécessite :

  • De prendre en main une plateforme embarquée et son OS (Raspberry par exemple).
  • De comprendre le standard USB pour configurer un appareil Linux en tant que Slave USB en utilisant les « USB Gadgets », en apportant les modifications Kernel nécessaires.
  • De se familiariser avec la norme USB, et en particulier, les classes USB UVC (USB Video Class) et UAC (USB Audio Class) nécessaire pour la réalisation de la « webcam ».
  • De maitriser les formats vidéo et audio supportés par les normes UVC et UAC.
  • De comprendre les mécanismes permettant d’alimenter le flux média (vidéo et audio) en prenant en compte la problématique de la synchronisation entre les deux flux (vidéo et audio).
  • De mettre en œuvre un système de compression (H.264) assisté par de l’accélération matérielle dont le débit est en ligne avec la bande passante de l’interface USB.
  • De réaliser des tests de performances pour caractériser les possibilités de la plateforme (bande passante, …) et de valider l’implémentation avec du matériel Windows et Linux.

Software Stage / TFE #2 – OP-TEE

Titre : « Étude, compréhension et mise en pratique de OP-TEE pour l'authentification logicielle et la ségrégation matérielle sur plateforme STM32MP1 »

Cible : Sciences Informatiques / Bachelier, Master, Ingénieur en Informatique / Electronique

Centre de compétence interne: Embedded / PC System

Description du travail :

Le travail de fin d'étude vise à explorer les possibilités offertes par la technologie OP-TEE (Open Portable Trusted Execution Environment) pour renforcer les mécanismes d'authentification logicielle et la ségrégation matérielle sur des plateformes hétérogènes telles que la plateforme STM32MP1. L'objectif principal est de comprendre en profondeur le fonctionnement d'OP-TEE, d'étudier son intégration dans les mécanismes d'authentification logicielle existants et son implication dans le processus de secure boot, et d'explorer les possibilités de ségrégation matérielle offertes par cette technologie.

Le travail débute par une étude approfondie au travers de la documentation officielle pour en comprendre ses fonctionnalités, de son architecture et de son mode de fonctionnement.

Il convient également d'identifier les différentes caractéristiques de sécurité offertes par OP-TEE et de comprendre comment elles peuvent être appliquées aux mécanismes d'authentification logicielle (en particulier, son intégration dans le processus de secure boot) et à la ségrégation matérielle. Le processus de signature doit être également abordé.

Les résultats de cette première partie seront mis en pratique sur une plateforme STM32MP1 en intégrant OP-TEE dans la phase d’authentification du Kernel et du Root File System par U-BOOT, en validant la robustesse du système en simulant diverses attaques.

Exploration de la ségrégation matérielle avec OP-TEE :

Cette étape se concentre sur l'utilisation d'OP-TEE pour la ségrégation matérielle sur la plateforme STM32MP1. Il convient d'analyser les différentes fonctionnalités de ségrégation matérielle offerte par OP-TEE et de les appliquer à des scénarios concrets sur la plateforme STM32MP1. Cela peut inclure la création de profils de confiance, la gestion des partitions matérielles sécurisées et la sécurisation des interfaces entre les différents composants matériels.

 

Software Stage / TFE #3 – Normes cyber sécurité

Titre : «Etude et analyses des normes liées à la cyber sécurité associée aux objets connectés (IoT) »

Cible : Sciences Informatiques / Bachelier, Master, Ingénieur en Informatique

Centre de compétence interne: Embedded / PC System

Description du travail :

Dans le contexte actuel de l'essor des appareils connectés (Internet of Things - IoT), la sécurité des systèmes IoT est devenue une préoccupation majeure. Les normes de cyber sécurité jouent un rôle essentiel dans la protection des appareils connectés contre les menaces et les vulnérabilités potentielles. Ce travail consiste à explorer en profondeur les normes de cyber sécurité européennes et internationales applicables aux appareils connectés, y compris la norme NIS2.

La gestion des clés cryptographiques est un aspect critique de la sécurité des systèmes IoT. La protection adéquate des clés utilisées pour le chiffrement des données, l'authentification des dispositifs et l'établissement de communications sécurisées sont essentiels pour garantir l'intégrité, la confidentialité et l'authenticité des données échangées entre les appareils connectés. Ce travail se concentrera donc sur l'analyse et la comparaison des normes de cyber sécurité qui abordent spécifiquement la gestion, le stockage, le transport et l'accès protégé aux clés.

Le travail consistera en une revue de la littérature afin d'identifier et de recenser les normes de cyber sécurité pertinentes pour les appareils connectés, en mettant un accent particulier sur les aspects liés à la gestion des clés. Cette analyse permettra de comprendre les exigences spécifiques auxquelles les systèmes IoT doivent se conformer en ce qui concerne la protection des clés cryptographiques. On inclura  une analyse comparative approfondie pour évaluer les différences et les similitudes entre les normes européennes et internationales, y compris la norme NIS2. Les thématiques de gestion, stockage, transport et l'accès protégé aux clés doivent être abordées.

Le travail comprendra également une étude des bonnes pratiques et des solutions technologiques disponibles pour assurer une gestion sécurisée des clés dans les systèmes IoT. Des exemples de protocoles et de mécanismes de gestion des clés, tels que le protocole de distribution de clés Diffie-Hellman ou les modules de sécurité matériels (HSM), seront examinés afin de comprendre comment ils peuvent être mis en œuvre pour renforcer la sécurité des clés dans les appareils connectés.

 

Software Stage / TFE #4 – Mise à jour sécurisée OTA utilisant RAUC

Titre : « Conception et implémentation d'un système de mise à jour OTA sécurisé pour système embarqué ARM en utilisant le framework RAUC »

Cible : Sciences Informatiques / Bachelier, Master, Ingénieur en Informatique

Centre de compétence interne: Embedded / PC System

Description du travail :

Le travail se concentre sur le développement d'un système de mise à jour OTA (Over-The-Air) sécurisé pour les systèmes embarqués basés sur l'architecture ARM. L'objectif principal est d'utiliser le framework RAUC pour faciliter les mises à jour du système embarqué, tout en mettant l'accent sur la sécurisation des données et la protection en cas d'erreur lors des opérations de mise à jour.

Le système embarqué est omniprésent dans divers domaines tels que l'automobile, l'industrie, et les appareils intelligents. La capacité de mettre à jour ces systèmes à distance sans intervention physique est essentielle pour garantir la flexibilité, la maintenance et la sécurité à long terme. Cependant, la mise à jour d'un système embarqué peut présenter des défis, notamment en termes de sécurité et de gestion des erreurs.

Pour ce travail, nous proposons d'utiliser le framework RAUC (Robust Auto-Update Controller) pour faciliter les mises à jour du système embarqué ARM. RAUC est un outil open source conçu pour les systèmes Linux embarqués, offrant des fonctionnalités avancées de gestion des mises à jour OTA. Il est spécialement conçu pour résoudre les problèmes de robustesse, de sécurité et de gestion des erreurs.

La sécurisation des données est une priorité majeure dans tout système de mise à jour OTA. Nous aborderons donc en détail les techniques de chiffrement et d'authentification utilisées pour garantir l'intégrité des mises à jour et prévenir les attaques potentielles. Nous explorerons également les méthodes de gestion des clés et les protocoles de sécurité adaptés aux contraintes des systèmes embarqués ARM.

En ce qui concerne la protection en cas d'erreur (fallback), il est demandé d’identifier les mécanismes permettant de rétablir le système dans un état fonctionnel en cas d'échec ou de corruption lors de la mise à jour. Nous étudierons les techniques de partitionnement de la mémoire et de sauvegarde, ainsi que les algorithmes de vérification d'intégrité pour détecter les erreurs et restaurer l'état précédent en cas de problème.

Le travail se concrétisera par la mise en œuvre d’un prototype sur une plateforme SBC type Raspberry.

 

Si vous marquez de l'intérêt pour un (des) sujet(s), n'hésitez pas à nous demander la description complète du travail ou d'autres informations via le formulaire ci-dessous (en mentionnant le numéro du sujet).