<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki-se.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Achaouni</id>
	<title>wiki-se.plil.fr - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-se.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Achaouni"/>
	<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Achaouni"/>
	<updated>2026-07-27T14:53:41Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8278</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8278"/>
		<updated>2025-01-30T15:32:34Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole '''MQTT'''. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur '''MQTT''' en utilisant un '''Dockerfile''' pour créer et déployer le '''conteneur Docker''' sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Utiliser l'image de base de Mosquitto&lt;br /&gt;
FROM eclipse-mosquitto:latest&lt;br /&gt;
# Fichier de configuration &lt;br /&gt;
COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
# Exposer le port 1883 pour MQTT&lt;br /&gt;
EXPOSE 1883 &lt;br /&gt;
EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
=== REST-API Flask ===&lt;br /&gt;
Nous avons développé un serveur HTTP avec Flask pour récupérer et afficher les données reçues via MQTT. Ce serveur permet à la Raspberry Pi de communiquer avec le serveur Cloud en temps réel, affichant les messages publiés sous une forme interactive. L'interface utilisateur de Flask permet de visualiser facilement les informations, facilitant ainsi la surveillance et l'analyse des données.&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
from flask_socketio import SocketIO&lt;br /&gt;
import paho.mqtt.client as mqtt&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
socketio = SocketIO(app)&lt;br /&gt;
&lt;br /&gt;
# MQTT configuration, BROKER : Serveur MQTT (RaspberryPi)&lt;br /&gt;
mqtt_broker = 'IP_ADDRESS_RASPBERRYPI'&lt;br /&gt;
# TOPIC : Messages queue&lt;br /&gt;
mqtt_topic = 'default/topic'&lt;br /&gt;
&lt;br /&gt;
# Callback when a message is received from MQTT&lt;br /&gt;
def on_message(client, userdata, message):&lt;br /&gt;
    msg = message.payload.decode()&lt;br /&gt;
    print(f'Received message: {msg} on topic {message.topic}')&lt;br /&gt;
    socketio.emit('mqtt_message', {'message': msg, 'topic': message.topic})&lt;br /&gt;
&lt;br /&gt;
mqtt_client = mqtt.Client()&lt;br /&gt;
mqtt_client.on_message = on_message&lt;br /&gt;
mqtt_client.connect(mqtt_broker)&lt;br /&gt;
mqtt_client.subscribe(mqtt_topic)&lt;br /&gt;
mqtt_client.loop_start()&lt;br /&gt;
&lt;br /&gt;
# The index.html file contains the page HTML to show the data received over MQTT&lt;br /&gt;
# We have only one ENDPOIT (Route) GET / : Returns the html page&lt;br /&gt;
# To access the page go to : https://VM_IP:5000 &lt;br /&gt;
@app.route('/')&lt;br /&gt;
def index():&lt;br /&gt;
    return render_template('index.html')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    socketio.run(app, debug=True)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
La Raspberry Pi recevra les données envoyées par le STM32 via le port série. Ensuite, la Raspberry Pi servira de broker MQTT, transmettant ces données au serveur Cloud pour un traitement et affichage. Cette configuration permet de centraliser les données collectées par le STM32 et de les envoyer de manière sécurisée et efficace vers le Cloud (Machine virtuelle) via MQTT.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt;Entraînement sur Microcontrôleur NUCLEO =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main.&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous utilisons la carte '''NUCLEO-F401RE''' associée au capteur de distance '''X-NUCLEO-53L5A1''', ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
=== '''Collect Dataset''' ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.22.17.jpg|vignette|388x388px|Collecte des donnés pour la classe &amp;quot;1&amp;quot;]]&lt;br /&gt;
Les chiffres de 0 à 5 ont été associés à des configurations spécifiques des doigts :&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Number&lt;br /&gt;
!Position des doigts&lt;br /&gt;
!'''Class'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Poing fermé.  &lt;br /&gt;
|'''Class-0'''&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Seul l'index levé. &lt;br /&gt;
|'''Class-1'''&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Index et majeur levés.&lt;br /&gt;
|'''Class-2'''&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Index, majeur et annulaire levés.&lt;br /&gt;
|'''Class-3'''&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Tous les doigts sauf le pouce levés.&lt;br /&gt;
|'''Class-4'''&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Main entièrement ouverte. &lt;br /&gt;
|'''Class-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour améliorer la précision et la robustesse du modèle, nous avons adopté une stratégie consistant à capturer plusieurs positions de la main pour chaque chiffre.&lt;br /&gt;
&lt;br /&gt;
On a collecté 15 lignes de données pour chaque signal (Chiffre) de '''0''' à '''5'''.&lt;br /&gt;
&lt;br /&gt;
=== Réalisation de Benchmark ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.46.45.jpg|vignette|393x393px|Score Benchmarks réalisés]]&lt;br /&gt;
Nous avons réalisé plusieurs séries de benchmarks en utilisant différents datasets afin de maximiser les performances et la fiabilité de notre modèle. Chaque test a permis d'évaluer l'impact des variations de données sur l'accuracy, la consommation de ressources (RAM et Flash), et le temps d'exécution. &lt;br /&gt;
&lt;br /&gt;
Après plusieurs itérations, nous avons obtenu un score final de '''82,84 %''', avec une précision équilibrée de '''86,94 %''' (variation minimale de 83,33 % et maximale de 90,28 %, avec un écart-type de 2,87 %). &lt;br /&gt;
&lt;br /&gt;
Ce résultat indique que le modèle est bien optimisé pour reconnaître les différentes configurations de doigts tout en restant adapté aux contraintes matérielles, avec une utilisation de '''29,9 KB de RAM''' et '''62 KB de Flash''', et un temps d'exécution de seulement '''11,4 ms''' sur un microcontrôleur STM32F411 cadencé à '''84 MHz'''.&lt;br /&gt;
&lt;br /&gt;
=== Validation du Modèle ===&lt;br /&gt;
Pour valider le modèle, une phase de test en temps réel a été mise en place. Les données étaient collectées en continu à partir du capteur '''X-NUCLEO-53L5A1''', et chaque configuration de main (chiffres de 0 à 5) était analysée par le modèle embarqué sur la carte '''NUCLEO-F401RE'''. Les prédictions générées par le modèle étaient affichées instantanément sur un terminal série, permettant de visualiser en temps réel le chiffre détecté.&lt;br /&gt;
&lt;br /&gt;
Cette étape a permis de vérifier la robustesse du modèle dans des conditions réelles. Nous avons évalué sa capacité à prédire avec précision les chiffres malgré des variations d'angles, de distances ou d’éclairage. Les résultats ont confirmé que le modèle pouvait maintenir une précision élevée et une réactivité satisfaisante, validant ainsi son utilisation pour l’application embarquée.&lt;br /&gt;
[[Fichier:WhatsApp Video 2025-01-09 at 16.22.02.mp4|vignette|Démonstration validation du modèle|centré|0x0px]]&lt;br /&gt;
=== Déploiement du modèle ===&lt;br /&gt;
Après la phase de validation, le modèle a été déployé sur la carte NUCLEO-F401RE.&lt;br /&gt;
&lt;br /&gt;
Le modèle entraîné dans NanoEdge AI Studio a été exporté sous forme de bibliothèque C optimisée pour l'embarqué. Ensuite, il a été intégré dans un projet STM32 en utilisant &amp;lt;code&amp;gt;STM32CubeIDE&amp;lt;/code&amp;gt;, qui permet de convertir et d'optimiser le modèle pour une exécution efficace sur le microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle converti, il a été inclus dans le firmware de la carte NUCLEO-F401RE. L’architecture globale du code est la suivante : &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;stm32f4xx_hal.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vl53l5cx_api.h&amp;quot;&lt;br /&gt;
#include &amp;quot;NanoEdgeAI.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VL53L5CX_Configuration sensor_config;&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    HAL_Init();&lt;br /&gt;
    SystemClock_Config();&lt;br /&gt;
    MX_GPIO_Init();&lt;br /&gt;
    MX_I2C1_Init();&lt;br /&gt;
    &lt;br /&gt;
    // Initialize the VL53L5CX sensor&lt;br /&gt;
    if (vl53l5cx_init(&amp;amp;sensor_config) != 0) {&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;VL53L5CX Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Initialize NanoEdge AI&lt;br /&gt;
    int error = nanoEdgeAI_initialize();&lt;br /&gt;
    if (error != 0) {&lt;br /&gt;
        printf(&amp;quot;NanoEdge AI Initialization failed: %d\n&amp;quot;, error);&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;NanoEdge AI Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Measurement loop&lt;br /&gt;
    VL53L5CX_ResultsData results;&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if (vl53l5cx_get_ranging_data(&amp;amp;sensor_config, &amp;amp;results) == 0) {&lt;br /&gt;
            float input_features[] = { &amp;quot;Class-0&amp;quot;, &amp;quot;Class-1&amp;quot;, &amp;quot;Class-2&amp;quot;, &amp;quot;Class-3&amp;quot;, &amp;quot;Class-4&amp;quot;, &amp;quot;Class-5&amp;quot; };&lt;br /&gt;
            &lt;br /&gt;
            // Run inference&lt;br /&gt;
            int gesture_id = nanoEdgeAI_classification(input_features);&lt;br /&gt;
            printf(&amp;quot;Value predicted: %d\n&amp;quot;, gesture_id);&lt;br /&gt;
        }&lt;br /&gt;
        HAL_Delay(100);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Capture d’écran 2025-01-10 à 22.56.28.png|alt=Visualisation du modèle|vignette|408x408px|Visualisation du modèle]]Enfin, une communication '''MQTT''' a été mise en place afin de transmettre les résultats de détection à un serveur distant. Une fois le chiffre prédit par le modèle embarqué, il est envoyé vers &lt;br /&gt;
&lt;br /&gt;
un module de communication réseau, qui publie les données sur un broker '''MQTT.'''&lt;br /&gt;
&lt;br /&gt;
=== Visualisation ===&lt;br /&gt;
Nous visualisons les résultats du modèle d'IA en temps réel grâce à la communication '''MQTT'''. Cette visualisation permet de suivre l’efficacité du modèle, d’évaluer les performances et de détecter d’éventuelles anomalies dans les configurations de main, garantissant ainsi une interface utilisateur claire et dynamique.&lt;br /&gt;
&lt;br /&gt;
Les données sont envoyées dans le topic '''default/topic.'''&lt;br /&gt;
[[Fichier:Enregistrement de l’écran 2025-01-10 à 22.59.22.mov|alt=Visualisation du Modèle - Video Démonstration|vignette|Visualisation du Modèle - Video Démonstration|centré]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Ce projet a démontré la faisabilité de la reconnaissance des chiffres '''0 à 5''' via un système embarqué combinant la carte '''NUCLEO-F401RE''', le capteur '''X-NUCLEO-53L5A1''' et un modèle avec '''NanoEdge AI Studio'''.&lt;br /&gt;
&lt;br /&gt;
Au cours de cette réalisation, nous avons acquis des compétences clés en '''traitement des données capteurs''', '''entraînement et optimisation de modèles embarqués''', ainsi qu'en '''déploiement sur microcontrôleur''' avec '''STM32Cube'''. &lt;br /&gt;
&lt;br /&gt;
L'intégration de la communication '''MQTT''' nous a également permis d’approfondir la transmission des données dans un environnement '''IoT''', renforçant ainsi notre expertise en systèmes intelligents embarqués.&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8276</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8276"/>
		<updated>2025-01-30T15:31:27Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole '''MQTT'''. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur '''MQTT''' en utilisant un '''Dockerfile''' pour créer et déployer le '''conteneur Docker''' sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Utiliser l'image de base de Mosquitto&lt;br /&gt;
FROM eclipse-mosquitto:latest&lt;br /&gt;
# Fichier de configuration &lt;br /&gt;
COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
# Exposer le port 1883 pour MQTT&lt;br /&gt;
EXPOSE 1883 &lt;br /&gt;
EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
=== REST-API Flask ===&lt;br /&gt;
Nous avons développé un serveur HTTP avec Flask pour récupérer et afficher les données reçues via MQTT. Ce serveur permet à la Raspberry Pi de communiquer avec le serveur Cloud en temps réel, affichant les messages publiés sous une forme interactive. L'interface utilisateur de Flask permet de visualiser facilement les informations, facilitant ainsi la surveillance et l'analyse des données.&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
from flask_socketio import SocketIO&lt;br /&gt;
import paho.mqtt.client as mqtt&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
socketio = SocketIO(app)&lt;br /&gt;
&lt;br /&gt;
# MQTT configuration, BROKER : Serveur MQTT (RaspberryPi)&lt;br /&gt;
mqtt_broker = 'IP_ADDRESS_RASPBERRYPI'&lt;br /&gt;
# TOPIC : Messages queue&lt;br /&gt;
mqtt_topic = 'default/topic'&lt;br /&gt;
&lt;br /&gt;
# Callback when a message is received from MQTT&lt;br /&gt;
def on_message(client, userdata, message):&lt;br /&gt;
    msg = message.payload.decode()&lt;br /&gt;
    print(f'Received message: {msg} on topic {message.topic}')&lt;br /&gt;
    socketio.emit('mqtt_message', {'message': msg, 'topic': message.topic})&lt;br /&gt;
&lt;br /&gt;
mqtt_client = mqtt.Client()&lt;br /&gt;
mqtt_client.on_message = on_message&lt;br /&gt;
mqtt_client.connect(mqtt_broker)&lt;br /&gt;
mqtt_client.subscribe(mqtt_topic)&lt;br /&gt;
mqtt_client.loop_start()&lt;br /&gt;
&lt;br /&gt;
# The index.html file contains the page HTML to show the data received over MQTT&lt;br /&gt;
# We have only one ENDPOIT (Route) GET / : Returns the html page&lt;br /&gt;
# To access the page go to : https://VM_IP:5000 &lt;br /&gt;
@app.route('/')&lt;br /&gt;
def index():&lt;br /&gt;
    return render_template('index.html')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    socketio.run(app, debug=True)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
La Raspberry Pi recevra les données envoyées par le STM32 via le port série. Ensuite, la Raspberry Pi servira de broker MQTT, transmettant ces données au serveur Cloud pour un traitement et affichage. Cette configuration permet de centraliser les données collectées par le STM32 et de les envoyer de manière sécurisée et efficace vers le Cloud (Machine virtuelle) via MQTT.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt;Entraînement sur Microcontrôleur NUCLEO =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main.&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous utilisons la carte '''NUCLEO-F401RE''' associée au capteur de distance '''X-NUCLEO-53L5A1''', ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
=== '''Collect Dataset''' ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.22.17.jpg|vignette|388x388px|Collecte des donnés pour la classe &amp;quot;1&amp;quot;]]&lt;br /&gt;
Les chiffres de 0 à 5 ont été associés à des configurations spécifiques des doigts :&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Number&lt;br /&gt;
!Position des doigts&lt;br /&gt;
!'''Class'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Poing fermé.  &lt;br /&gt;
|'''Class-0'''&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Seul l'index levé. &lt;br /&gt;
|'''Class-1'''&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Index et majeur levés.&lt;br /&gt;
|'''Class-2'''&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Index, majeur et annulaire levés.&lt;br /&gt;
|'''Class-3'''&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Tous les doigts sauf le pouce levés.&lt;br /&gt;
|'''Class-4'''&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Main entièrement ouverte. &lt;br /&gt;
|'''Class-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour améliorer la précision et la robustesse du modèle, nous avons adopté une stratégie consistant à capturer plusieurs positions de la main pour chaque chiffre.&lt;br /&gt;
&lt;br /&gt;
On a collecté 15 lignes de données pour chaque signal (Chiffre) de '''0''' à '''5'''.&lt;br /&gt;
&lt;br /&gt;
=== Réalisation de Benchmark ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.46.45.jpg|vignette|393x393px|Score Benchmarks réalisés]]&lt;br /&gt;
Nous avons réalisé plusieurs séries de benchmarks en utilisant différents datasets afin de maximiser les performances et la fiabilité de notre modèle. Chaque test a permis d'évaluer l'impact des variations de données sur l'accuracy, la consommation de ressources (RAM et Flash), et le temps d'exécution. &lt;br /&gt;
&lt;br /&gt;
Après plusieurs itérations, nous avons obtenu un score final de '''82,84 %''', avec une précision équilibrée de '''86,94 %''' (variation minimale de 83,33 % et maximale de 90,28 %, avec un écart-type de 2,87 %). &lt;br /&gt;
&lt;br /&gt;
Ce résultat indique que le modèle est bien optimisé pour reconnaître les différentes configurations de doigts tout en restant adapté aux contraintes matérielles, avec une utilisation de '''29,9 KB de RAM''' et '''62 KB de Flash''', et un temps d'exécution de seulement '''11,4 ms''' sur un microcontrôleur STM32F411 cadencé à '''84 MHz'''.&lt;br /&gt;
&lt;br /&gt;
=== Validation du Modèle ===&lt;br /&gt;
Pour valider le modèle, une phase de test en temps réel a été mise en place. Les données étaient collectées en continu à partir du capteur '''X-NUCLEO-53L5A1''', et chaque configuration de main (chiffres de 0 à 5) était analysée par le modèle embarqué sur la carte '''NUCLEO-F401RE'''. Les prédictions générées par le modèle étaient affichées instantanément sur un terminal série, permettant de visualiser en temps réel le chiffre détecté.&lt;br /&gt;
&lt;br /&gt;
Cette étape a permis de vérifier la robustesse du modèle dans des conditions réelles. Nous avons évalué sa capacité à prédire avec précision les chiffres malgré des variations d'angles, de distances ou d’éclairage. Les résultats ont confirmé que le modèle pouvait maintenir une précision élevée et une réactivité satisfaisante, validant ainsi son utilisation pour l’application embarquée.&lt;br /&gt;
[[Fichier:WhatsApp Video 2025-01-09 at 16.22.02.mp4|vignette|Démonstration validation du modèle|centré|0x0px]]&lt;br /&gt;
=== Déploiement du modèle ===&lt;br /&gt;
Après la phase de validation, le modèle a été déployé sur la carte NUCLEO-F401RE.&lt;br /&gt;
&lt;br /&gt;
Le modèle entraîné dans NanoEdge AI Studio a été exporté sous forme de bibliothèque C optimisée pour l'embarqué. Ensuite, il a été intégré dans un projet STM32 en utilisant &amp;lt;code&amp;gt;STM32CubeIDE&amp;lt;/code&amp;gt;, qui permet de convertir et d'optimiser le modèle pour une exécution efficace sur le microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle converti, il a été inclus dans le firmware de la carte NUCLEO-F401RE. L’architecture globale du code est la suivante : &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;stm32f4xx_hal.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vl53l5cx_api.h&amp;quot;&lt;br /&gt;
#include &amp;quot;NanoEdgeAI.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VL53L5CX_Configuration sensor_config;&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    HAL_Init();&lt;br /&gt;
    SystemClock_Config();&lt;br /&gt;
    MX_GPIO_Init();&lt;br /&gt;
    MX_I2C1_Init();&lt;br /&gt;
    &lt;br /&gt;
    // Initialize the VL53L5CX sensor&lt;br /&gt;
    if (vl53l5cx_init(&amp;amp;sensor_config) != 0) {&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;VL53L5CX Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Initialize NanoEdge AI&lt;br /&gt;
    int error = nanoEdgeAI_initialize();&lt;br /&gt;
    if (error != 0) {&lt;br /&gt;
        printf(&amp;quot;NanoEdge AI Initialization failed: %d\n&amp;quot;, error);&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;NanoEdge AI Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Measurement loop&lt;br /&gt;
    VL53L5CX_ResultsData results;&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if (vl53l5cx_get_ranging_data(&amp;amp;sensor_config, &amp;amp;results) == 0) {&lt;br /&gt;
            float input_features[] = { &amp;quot;Class-0&amp;quot;, &amp;quot;Class-1&amp;quot;, &amp;quot;Class-2&amp;quot;, &amp;quot;Class-3&amp;quot;, &amp;quot;Class-4&amp;quot;, &amp;quot;Class-5&amp;quot; };&lt;br /&gt;
            &lt;br /&gt;
            // Run inference&lt;br /&gt;
            int gesture_id = nanoEdgeAI_classification(input_features);&lt;br /&gt;
            printf(&amp;quot;Value predicted: %d\n&amp;quot;, gesture_id);&lt;br /&gt;
        }&lt;br /&gt;
        HAL_Delay(100);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Capture d’écran 2025-01-10 à 22.56.28.png|alt=Visualisation du modèle|vignette|408x408px|Visualisation du modèle]]Enfin, une communication '''MQTT''' a été mise en place afin de transmettre les résultats de détection à un serveur distant. Une fois le chiffre prédit par le modèle embarqué, il est envoyé vers &lt;br /&gt;
&lt;br /&gt;
un module de communication réseau, qui publie les données sur un broker '''MQTT.'''&lt;br /&gt;
&lt;br /&gt;
=== Visualisation ===&lt;br /&gt;
Nous visualisons les résultats du modèle d'IA en temps réel grâce à la communication '''MQTT'''. Cette visualisation permet de suivre l’efficacité du modèle, d’évaluer les performances et de détecter d’éventuelles anomalies dans les configurations de main, garantissant ainsi une interface utilisateur claire et dynamique.&lt;br /&gt;
&lt;br /&gt;
Les données sont envoyées dans le topic '''default/topic.'''&lt;br /&gt;
[[Fichier:Enregistrement de l’écran 2025-01-10 à 22.59.22.mov|alt=Visualisation du Modèle - Video Démonstration|vignette|Visualisation du Modèle - Video Démonstration|centré]]&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8275</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8275"/>
		<updated>2025-01-30T15:31:11Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Déploiement du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole '''MQTT'''. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur '''MQTT''' en utilisant un '''Dockerfile''' pour créer et déployer le '''conteneur Docker''' sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Utiliser l'image de base de Mosquitto&lt;br /&gt;
FROM eclipse-mosquitto:latest&lt;br /&gt;
# Fichier de configuration &lt;br /&gt;
COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
# Exposer le port 1883 pour MQTT&lt;br /&gt;
EXPOSE 1883 &lt;br /&gt;
EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
=== REST-API Flask ===&lt;br /&gt;
Nous avons développé un serveur HTTP avec Flask pour récupérer et afficher les données reçues via MQTT. Ce serveur permet à la Raspberry Pi de communiquer avec le serveur Cloud en temps réel, affichant les messages publiés sous une forme interactive. L'interface utilisateur de Flask permet de visualiser facilement les informations, facilitant ainsi la surveillance et l'analyse des données.&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
from flask_socketio import SocketIO&lt;br /&gt;
import paho.mqtt.client as mqtt&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
socketio = SocketIO(app)&lt;br /&gt;
&lt;br /&gt;
# MQTT configuration, BROKER : Serveur MQTT (RaspberryPi)&lt;br /&gt;
mqtt_broker = 'IP_ADDRESS_RASPBERRYPI'&lt;br /&gt;
# TOPIC : Messages queue&lt;br /&gt;
mqtt_topic = 'default/topic'&lt;br /&gt;
&lt;br /&gt;
# Callback when a message is received from MQTT&lt;br /&gt;
def on_message(client, userdata, message):&lt;br /&gt;
    msg = message.payload.decode()&lt;br /&gt;
    print(f'Received message: {msg} on topic {message.topic}')&lt;br /&gt;
    socketio.emit('mqtt_message', {'message': msg, 'topic': message.topic})&lt;br /&gt;
&lt;br /&gt;
mqtt_client = mqtt.Client()&lt;br /&gt;
mqtt_client.on_message = on_message&lt;br /&gt;
mqtt_client.connect(mqtt_broker)&lt;br /&gt;
mqtt_client.subscribe(mqtt_topic)&lt;br /&gt;
mqtt_client.loop_start()&lt;br /&gt;
&lt;br /&gt;
# The index.html file contains the page HTML to show the data received over MQTT&lt;br /&gt;
# We have only one ENDPOIT (Route) GET / : Returns the html page&lt;br /&gt;
# To access the page go to : https://VM_IP:5000 &lt;br /&gt;
@app.route('/')&lt;br /&gt;
def index():&lt;br /&gt;
    return render_template('index.html')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    socketio.run(app, debug=True)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
La Raspberry Pi recevra les données envoyées par le STM32 via le port série. Ensuite, la Raspberry Pi servira de broker MQTT, transmettant ces données au serveur Cloud pour un traitement et affichage. Cette configuration permet de centraliser les données collectées par le STM32 et de les envoyer de manière sécurisée et efficace vers le Cloud (Machine virtuelle) via MQTT.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt;Entraînement sur Microcontrôleur NUCLEO =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main.&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous utilisons la carte '''NUCLEO-F401RE''' associée au capteur de distance '''X-NUCLEO-53L5A1''', ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
=== '''Collect Dataset''' ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.22.17.jpg|vignette|388x388px|Collecte des donnés pour la classe &amp;quot;1&amp;quot;]]&lt;br /&gt;
Les chiffres de 0 à 5 ont été associés à des configurations spécifiques des doigts :&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Number&lt;br /&gt;
!Position des doigts&lt;br /&gt;
!'''Class'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Poing fermé.  &lt;br /&gt;
|'''Class-0'''&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Seul l'index levé. &lt;br /&gt;
|'''Class-1'''&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Index et majeur levés.&lt;br /&gt;
|'''Class-2'''&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Index, majeur et annulaire levés.&lt;br /&gt;
|'''Class-3'''&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Tous les doigts sauf le pouce levés.&lt;br /&gt;
|'''Class-4'''&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Main entièrement ouverte. &lt;br /&gt;
|'''Class-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour améliorer la précision et la robustesse du modèle, nous avons adopté une stratégie consistant à capturer plusieurs positions de la main pour chaque chiffre.&lt;br /&gt;
&lt;br /&gt;
On a collecté 15 lignes de données pour chaque signal (Chiffre) de '''0''' à '''5'''.&lt;br /&gt;
&lt;br /&gt;
=== Réalisation de Benchmark ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.46.45.jpg|vignette|393x393px|Score Benchmarks réalisés]]&lt;br /&gt;
Nous avons réalisé plusieurs séries de benchmarks en utilisant différents datasets afin de maximiser les performances et la fiabilité de notre modèle. Chaque test a permis d'évaluer l'impact des variations de données sur l'accuracy, la consommation de ressources (RAM et Flash), et le temps d'exécution. &lt;br /&gt;
&lt;br /&gt;
Après plusieurs itérations, nous avons obtenu un score final de '''82,84 %''', avec une précision équilibrée de '''86,94 %''' (variation minimale de 83,33 % et maximale de 90,28 %, avec un écart-type de 2,87 %). &lt;br /&gt;
&lt;br /&gt;
Ce résultat indique que le modèle est bien optimisé pour reconnaître les différentes configurations de doigts tout en restant adapté aux contraintes matérielles, avec une utilisation de '''29,9 KB de RAM''' et '''62 KB de Flash''', et un temps d'exécution de seulement '''11,4 ms''' sur un microcontrôleur STM32F411 cadencé à '''84 MHz'''.&lt;br /&gt;
&lt;br /&gt;
=== Validation du Modèle ===&lt;br /&gt;
Pour valider le modèle, une phase de test en temps réel a été mise en place. Les données étaient collectées en continu à partir du capteur '''X-NUCLEO-53L5A1''', et chaque configuration de main (chiffres de 0 à 5) était analysée par le modèle embarqué sur la carte '''NUCLEO-F401RE'''. Les prédictions générées par le modèle étaient affichées instantanément sur un terminal série, permettant de visualiser en temps réel le chiffre détecté.&lt;br /&gt;
&lt;br /&gt;
Cette étape a permis de vérifier la robustesse du modèle dans des conditions réelles. Nous avons évalué sa capacité à prédire avec précision les chiffres malgré des variations d'angles, de distances ou d’éclairage. Les résultats ont confirmé que le modèle pouvait maintenir une précision élevée et une réactivité satisfaisante, validant ainsi son utilisation pour l’application embarquée.&lt;br /&gt;
[[Fichier:WhatsApp Video 2025-01-09 at 16.22.02.mp4|vignette|Démonstration validation du modèle|centré|0x0px]]&lt;br /&gt;
=== Déploiement du modèle ===&lt;br /&gt;
Après la phase de validation, le modèle a été déployé sur la carte NUCLEO-F401RE.&lt;br /&gt;
&lt;br /&gt;
Le modèle entraîné dans NanoEdge AI Studio a été exporté sous forme de bibliothèque C optimisée pour l'embarqué. Ensuite, il a été intégré dans un projet STM32 en utilisant &amp;lt;code&amp;gt;STM32CubeIDE&amp;lt;/code&amp;gt;, qui permet de convertir et d'optimiser le modèle pour une exécution efficace sur le microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle converti, il a été inclus dans le firmware de la carte NUCLEO-F401RE. L’architecture globale du code est la suivante : &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;stm32f4xx_hal.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vl53l5cx_api.h&amp;quot;&lt;br /&gt;
#include &amp;quot;NanoEdgeAI.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VL53L5CX_Configuration sensor_config;&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    HAL_Init();&lt;br /&gt;
    SystemClock_Config();&lt;br /&gt;
    MX_GPIO_Init();&lt;br /&gt;
    MX_I2C1_Init();&lt;br /&gt;
    &lt;br /&gt;
    // Initialize the VL53L5CX sensor&lt;br /&gt;
    if (vl53l5cx_init(&amp;amp;sensor_config) != 0) {&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;VL53L5CX Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Initialize NanoEdge AI&lt;br /&gt;
    int error = nanoEdgeAI_initialize();&lt;br /&gt;
    if (error != 0) {&lt;br /&gt;
        printf(&amp;quot;NanoEdge AI Initialization failed: %d\n&amp;quot;, error);&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;NanoEdge AI Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Measurement loop&lt;br /&gt;
    VL53L5CX_ResultsData results;&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if (vl53l5cx_get_ranging_data(&amp;amp;sensor_config, &amp;amp;results) == 0) {&lt;br /&gt;
            float input_features[] = { &amp;quot;Class-0&amp;quot;, &amp;quot;Class-1&amp;quot;, &amp;quot;Class-2&amp;quot;, &amp;quot;Class-3&amp;quot;, &amp;quot;Class-4&amp;quot;, &amp;quot;Class-5&amp;quot; };&lt;br /&gt;
            &lt;br /&gt;
            // Run inference&lt;br /&gt;
            int gesture_id = nanoEdgeAI_classification(input_features);&lt;br /&gt;
            printf(&amp;quot;Value predicted: %d\n&amp;quot;, gesture_id);&lt;br /&gt;
        }&lt;br /&gt;
        HAL_Delay(100);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Capture d’écran 2025-01-10 à 22.56.28.png|alt=Visualisation du modèle|vignette|408x408px|Visualisation du modèle]]Enfin, une communication '''MQTT''' a été mise en place afin de transmettre les résultats de détection à un serveur distant. Une fois le chiffre prédit par le modèle embarqué, il est envoyé vers &lt;br /&gt;
&lt;br /&gt;
un module de communication réseau, qui publie les données sur un broker '''MQTT.'''&lt;br /&gt;
&lt;br /&gt;
=== Visualisation ===&lt;br /&gt;
Nous visualisons les résultats du modèle d'IA en temps réel grâce à la communication '''MQTT'''. Cette visualisation permet de suivre l’efficacité du modèle, d’évaluer les performances et de détecter d’éventuelles anomalies dans les configurations de main, garantissant ainsi une interface utilisateur claire et dynamique.&lt;br /&gt;
&lt;br /&gt;
Les données sont envoyées dans le topic '''default/topic.'''&lt;br /&gt;
[[Fichier:Enregistrement de l’écran 2025-01-10 à 22.59.22.mov|alt=Visualisation du Modèle - Video Démonstration|vignette|Visualisation du Modèle - Video Démonstration|centré]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8274</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8274"/>
		<updated>2025-01-30T15:27:57Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Déploiement du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole '''MQTT'''. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur '''MQTT''' en utilisant un '''Dockerfile''' pour créer et déployer le '''conteneur Docker''' sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Utiliser l'image de base de Mosquitto&lt;br /&gt;
FROM eclipse-mosquitto:latest&lt;br /&gt;
# Fichier de configuration &lt;br /&gt;
COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
# Exposer le port 1883 pour MQTT&lt;br /&gt;
EXPOSE 1883 &lt;br /&gt;
EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
=== REST-API Flask ===&lt;br /&gt;
Nous avons développé un serveur HTTP avec Flask pour récupérer et afficher les données reçues via MQTT. Ce serveur permet à la Raspberry Pi de communiquer avec le serveur Cloud en temps réel, affichant les messages publiés sous une forme interactive. L'interface utilisateur de Flask permet de visualiser facilement les informations, facilitant ainsi la surveillance et l'analyse des données.&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
from flask_socketio import SocketIO&lt;br /&gt;
import paho.mqtt.client as mqtt&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
socketio = SocketIO(app)&lt;br /&gt;
&lt;br /&gt;
# MQTT configuration, BROKER : Serveur MQTT (RaspberryPi)&lt;br /&gt;
mqtt_broker = 'IP_ADDRESS_RASPBERRYPI'&lt;br /&gt;
# TOPIC : Messages queue&lt;br /&gt;
mqtt_topic = 'default/topic'&lt;br /&gt;
&lt;br /&gt;
# Callback when a message is received from MQTT&lt;br /&gt;
def on_message(client, userdata, message):&lt;br /&gt;
    msg = message.payload.decode()&lt;br /&gt;
    print(f'Received message: {msg} on topic {message.topic}')&lt;br /&gt;
    socketio.emit('mqtt_message', {'message': msg, 'topic': message.topic})&lt;br /&gt;
&lt;br /&gt;
mqtt_client = mqtt.Client()&lt;br /&gt;
mqtt_client.on_message = on_message&lt;br /&gt;
mqtt_client.connect(mqtt_broker)&lt;br /&gt;
mqtt_client.subscribe(mqtt_topic)&lt;br /&gt;
mqtt_client.loop_start()&lt;br /&gt;
&lt;br /&gt;
# The index.html file contains the page HTML to show the data received over MQTT&lt;br /&gt;
# We have only one ENDPOIT (Route) GET / : Returns the html page&lt;br /&gt;
# To access the page go to : https://VM_IP:5000 &lt;br /&gt;
@app.route('/')&lt;br /&gt;
def index():&lt;br /&gt;
    return render_template('index.html')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    socketio.run(app, debug=True)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
La Raspberry Pi recevra les données envoyées par le STM32 via le port série. Ensuite, la Raspberry Pi servira de broker MQTT, transmettant ces données au serveur Cloud pour un traitement et affichage. Cette configuration permet de centraliser les données collectées par le STM32 et de les envoyer de manière sécurisée et efficace vers le Cloud (Machine virtuelle) via MQTT.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt;Entraînement sur Microcontrôleur NUCLEO =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main.&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous utilisons la carte '''NUCLEO-F401RE''' associée au capteur de distance '''X-NUCLEO-53L5A1''', ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
=== '''Collect Dataset''' ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.22.17.jpg|vignette|388x388px|Collecte des donnés pour la classe &amp;quot;1&amp;quot;]]&lt;br /&gt;
Les chiffres de 0 à 5 ont été associés à des configurations spécifiques des doigts :&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Number&lt;br /&gt;
!Position des doigts&lt;br /&gt;
!'''Class'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Poing fermé.  &lt;br /&gt;
|'''Class-0'''&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Seul l'index levé. &lt;br /&gt;
|'''Class-1'''&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Index et majeur levés.&lt;br /&gt;
|'''Class-2'''&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Index, majeur et annulaire levés.&lt;br /&gt;
|'''Class-3'''&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Tous les doigts sauf le pouce levés.&lt;br /&gt;
|'''Class-4'''&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Main entièrement ouverte. &lt;br /&gt;
|'''Class-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour améliorer la précision et la robustesse du modèle, nous avons adopté une stratégie consistant à capturer plusieurs positions de la main pour chaque chiffre.&lt;br /&gt;
&lt;br /&gt;
On a collecté 15 lignes de données pour chaque signal (Chiffre) de '''0''' à '''5'''.&lt;br /&gt;
&lt;br /&gt;
=== Réalisation de Benchmark ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.46.45.jpg|vignette|393x393px|Score Benchmarks réalisés]]&lt;br /&gt;
Nous avons réalisé plusieurs séries de benchmarks en utilisant différents datasets afin de maximiser les performances et la fiabilité de notre modèle. Chaque test a permis d'évaluer l'impact des variations de données sur l'accuracy, la consommation de ressources (RAM et Flash), et le temps d'exécution. &lt;br /&gt;
&lt;br /&gt;
Après plusieurs itérations, nous avons obtenu un score final de '''82,84 %''', avec une précision équilibrée de '''86,94 %''' (variation minimale de 83,33 % et maximale de 90,28 %, avec un écart-type de 2,87 %). &lt;br /&gt;
&lt;br /&gt;
Ce résultat indique que le modèle est bien optimisé pour reconnaître les différentes configurations de doigts tout en restant adapté aux contraintes matérielles, avec une utilisation de '''29,9 KB de RAM''' et '''62 KB de Flash''', et un temps d'exécution de seulement '''11,4 ms''' sur un microcontrôleur STM32F411 cadencé à '''84 MHz'''.&lt;br /&gt;
&lt;br /&gt;
=== Validation du Modèle ===&lt;br /&gt;
Pour valider le modèle, une phase de test en temps réel a été mise en place. Les données étaient collectées en continu à partir du capteur '''X-NUCLEO-53L5A1''', et chaque configuration de main (chiffres de 0 à 5) était analysée par le modèle embarqué sur la carte '''NUCLEO-F401RE'''. Les prédictions générées par le modèle étaient affichées instantanément sur un terminal série, permettant de visualiser en temps réel le chiffre détecté.&lt;br /&gt;
&lt;br /&gt;
Cette étape a permis de vérifier la robustesse du modèle dans des conditions réelles. Nous avons évalué sa capacité à prédire avec précision les chiffres malgré des variations d'angles, de distances ou d’éclairage. Les résultats ont confirmé que le modèle pouvait maintenir une précision élevée et une réactivité satisfaisante, validant ainsi son utilisation pour l’application embarquée.&lt;br /&gt;
[[Fichier:WhatsApp Video 2025-01-09 at 16.22.02.mp4|vignette|Démonstration validation du modèle|centré|0x0px]]&lt;br /&gt;
=== Déploiement du modèle ===&lt;br /&gt;
Après la phase de validation, le modèle a été déployé sur la carte NUCLEO-F401RE.&lt;br /&gt;
&lt;br /&gt;
Le modèle entraîné dans NanoEdge AI Studio a été exporté sous forme de bibliothèque C optimisée pour l'embarqué. Ensuite, il a été intégré dans un projet STM32 en utilisant &amp;lt;code&amp;gt;STM32CubeIDE&amp;lt;/code&amp;gt;, qui permet de convertir et d'optimiser le modèle pour une exécution efficace sur le microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle converti, il a été inclus dans le firmware de la carte NUCLEO-F401RE. L’architecture globale du code est la suivante : &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;stm32f4xx_hal.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vl53l5cx_api.h&amp;quot;&lt;br /&gt;
#include &amp;quot;NanoEdgeAI.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VL53L5CX_Configuration sensor_config;&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    HAL_Init();&lt;br /&gt;
    SystemClock_Config();&lt;br /&gt;
    MX_GPIO_Init();&lt;br /&gt;
    MX_I2C1_Init();&lt;br /&gt;
    &lt;br /&gt;
    // Initialize the VL53L5CX sensor&lt;br /&gt;
    if (vl53l5cx_init(&amp;amp;sensor_config) != 0) {&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;VL53L5CX Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Initialize NanoEdge AI&lt;br /&gt;
    int error = nanoEdgeAI_initialize();&lt;br /&gt;
    if (error != 0) {&lt;br /&gt;
        printf(&amp;quot;NanoEdge AI Initialization failed: %d\n&amp;quot;, error);&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;NanoEdge AI Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Measurement loop&lt;br /&gt;
    VL53L5CX_ResultsData results;&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if (vl53l5cx_get_ranging_data(&amp;amp;sensor_config, &amp;amp;results) == 0) {&lt;br /&gt;
            float input_features[] = { &amp;quot;Class-0&amp;quot;, &amp;quot;Class-1&amp;quot;, &amp;quot;Class-2&amp;quot;, &amp;quot;Class-3&amp;quot;, &amp;quot;Class-4&amp;quot;, &amp;quot;Class-5&amp;quot; };&lt;br /&gt;
            &lt;br /&gt;
            // Run inference&lt;br /&gt;
            int gesture_id = nanoEdgeAI_classification(input_features);&lt;br /&gt;
            printf(&amp;quot;Value predicted: %d\n&amp;quot;, gesture_id);&lt;br /&gt;
        }&lt;br /&gt;
        HAL_Delay(100);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Capture d’écran 2025-01-10 à 22.56.28.png|alt=Visualisation du modèle|vignette|408x408px|Visualisation du modèle]]Enfin, une communication '''MQTT''' a été mise en place afin de transmettre les résultats de détection à un serveur distant. Une fois le chiffre prédit par le modèle embarqué, il est envoyé vers &lt;br /&gt;
&lt;br /&gt;
un module de communication réseau, qui publie les données sur un broker '''MQTT.'''&lt;br /&gt;
&lt;br /&gt;
=== Visualisation ===&lt;br /&gt;
Nous visualisons les résultats du modèle d'IA en temps réel grâce à la communication '''MQTT'''. Cette visualisation permet de suivre l’efficacité du modèle, d’évaluer les performances et de détecter d’éventuelles anomalies dans les configurations de main, garantissant ainsi une interface utilisateur claire et dynamique.&lt;br /&gt;
&lt;br /&gt;
Les données sont envoyées dans le topic '''default/topic.'''&lt;br /&gt;
[[Fichier:Enregistrement de l’écran 2025-01-10 à 22.59.22.mov|alt=Visualisation du Modèle - Video Démonstration|vignette|Visualisation du Modèle - Video Démonstration|centré]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8272</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=8272"/>
		<updated>2025-01-30T15:25:46Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Déploiement du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole '''MQTT'''. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur '''MQTT''' en utilisant un '''Dockerfile''' pour créer et déployer le '''conteneur Docker''' sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Utiliser l'image de base de Mosquitto&lt;br /&gt;
FROM eclipse-mosquitto:latest&lt;br /&gt;
# Fichier de configuration &lt;br /&gt;
COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
# Exposer le port 1883 pour MQTT&lt;br /&gt;
EXPOSE 1883 &lt;br /&gt;
EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
=== REST-API Flask ===&lt;br /&gt;
Nous avons développé un serveur HTTP avec Flask pour récupérer et afficher les données reçues via MQTT. Ce serveur permet à la Raspberry Pi de communiquer avec le serveur Cloud en temps réel, affichant les messages publiés sous une forme interactive. L'interface utilisateur de Flask permet de visualiser facilement les informations, facilitant ainsi la surveillance et l'analyse des données.&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
from flask_socketio import SocketIO&lt;br /&gt;
import paho.mqtt.client as mqtt&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
socketio = SocketIO(app)&lt;br /&gt;
&lt;br /&gt;
# MQTT configuration, BROKER : Serveur MQTT (RaspberryPi)&lt;br /&gt;
mqtt_broker = 'IP_ADDRESS_RASPBERRYPI'&lt;br /&gt;
# TOPIC : Messages queue&lt;br /&gt;
mqtt_topic = 'default/topic'&lt;br /&gt;
&lt;br /&gt;
# Callback when a message is received from MQTT&lt;br /&gt;
def on_message(client, userdata, message):&lt;br /&gt;
    msg = message.payload.decode()&lt;br /&gt;
    print(f'Received message: {msg} on topic {message.topic}')&lt;br /&gt;
    socketio.emit('mqtt_message', {'message': msg, 'topic': message.topic})&lt;br /&gt;
&lt;br /&gt;
mqtt_client = mqtt.Client()&lt;br /&gt;
mqtt_client.on_message = on_message&lt;br /&gt;
mqtt_client.connect(mqtt_broker)&lt;br /&gt;
mqtt_client.subscribe(mqtt_topic)&lt;br /&gt;
mqtt_client.loop_start()&lt;br /&gt;
&lt;br /&gt;
# The index.html file contains the page HTML to show the data received over MQTT&lt;br /&gt;
# We have only one ENDPOIT (Route) GET / : Returns the html page&lt;br /&gt;
# To access the page go to : https://VM_IP:5000 &lt;br /&gt;
@app.route('/')&lt;br /&gt;
def index():&lt;br /&gt;
    return render_template('index.html')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    socketio.run(app, debug=True)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
La Raspberry Pi recevra les données envoyées par le STM32 via le port série. Ensuite, la Raspberry Pi servira de broker MQTT, transmettant ces données au serveur Cloud pour un traitement et affichage. Cette configuration permet de centraliser les données collectées par le STM32 et de les envoyer de manière sécurisée et efficace vers le Cloud (Machine virtuelle) via MQTT.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt;Entraînement sur Microcontrôleur NUCLEO =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main.&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous utilisons la carte '''NUCLEO-F401RE''' associée au capteur de distance '''X-NUCLEO-53L5A1''', ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
=== '''Collect Dataset''' ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.22.17.jpg|vignette|388x388px|Collecte des donnés pour la classe &amp;quot;1&amp;quot;]]&lt;br /&gt;
Les chiffres de 0 à 5 ont été associés à des configurations spécifiques des doigts :&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Number&lt;br /&gt;
!Position des doigts&lt;br /&gt;
!'''Class'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Poing fermé.  &lt;br /&gt;
|'''Class-0'''&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Seul l'index levé. &lt;br /&gt;
|'''Class-1'''&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Index et majeur levés.&lt;br /&gt;
|'''Class-2'''&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Index, majeur et annulaire levés.&lt;br /&gt;
|'''Class-3'''&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Tous les doigts sauf le pouce levés.&lt;br /&gt;
|'''Class-4'''&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Main entièrement ouverte. &lt;br /&gt;
|'''Class-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour améliorer la précision et la robustesse du modèle, nous avons adopté une stratégie consistant à capturer plusieurs positions de la main pour chaque chiffre.&lt;br /&gt;
&lt;br /&gt;
On a collecté 15 lignes de données pour chaque signal (Chiffre) de '''0''' à '''5'''.&lt;br /&gt;
&lt;br /&gt;
=== Réalisation de Benchmark ===&lt;br /&gt;
[[Fichier:WhatsApp Image 2025-01-09 at 15.46.45.jpg|vignette|393x393px|Score Benchmarks réalisés]]&lt;br /&gt;
Nous avons réalisé plusieurs séries de benchmarks en utilisant différents datasets afin de maximiser les performances et la fiabilité de notre modèle. Chaque test a permis d'évaluer l'impact des variations de données sur l'accuracy, la consommation de ressources (RAM et Flash), et le temps d'exécution. &lt;br /&gt;
&lt;br /&gt;
Après plusieurs itérations, nous avons obtenu un score final de '''82,84 %''', avec une précision équilibrée de '''86,94 %''' (variation minimale de 83,33 % et maximale de 90,28 %, avec un écart-type de 2,87 %). &lt;br /&gt;
&lt;br /&gt;
Ce résultat indique que le modèle est bien optimisé pour reconnaître les différentes configurations de doigts tout en restant adapté aux contraintes matérielles, avec une utilisation de '''29,9 KB de RAM''' et '''62 KB de Flash''', et un temps d'exécution de seulement '''11,4 ms''' sur un microcontrôleur STM32F411 cadencé à '''84 MHz'''.&lt;br /&gt;
&lt;br /&gt;
=== Validation du Modèle ===&lt;br /&gt;
Pour valider le modèle, une phase de test en temps réel a été mise en place. Les données étaient collectées en continu à partir du capteur '''X-NUCLEO-53L5A1''', et chaque configuration de main (chiffres de 0 à 5) était analysée par le modèle embarqué sur la carte '''NUCLEO-F401RE'''. Les prédictions générées par le modèle étaient affichées instantanément sur un terminal série, permettant de visualiser en temps réel le chiffre détecté.&lt;br /&gt;
&lt;br /&gt;
Cette étape a permis de vérifier la robustesse du modèle dans des conditions réelles. Nous avons évalué sa capacité à prédire avec précision les chiffres malgré des variations d'angles, de distances ou d’éclairage. Les résultats ont confirmé que le modèle pouvait maintenir une précision élevée et une réactivité satisfaisante, validant ainsi son utilisation pour l’application embarquée.&lt;br /&gt;
[[Fichier:WhatsApp Video 2025-01-09 at 16.22.02.mp4|vignette|Démonstration validation du modèle|centré|0x0px]]&lt;br /&gt;
=== Déploiement du modèle ===&lt;br /&gt;
Après la phase de validation, le modèle a été déployé sur la carte NUCLEO-F401RE.&lt;br /&gt;
&lt;br /&gt;
Le modèle entraîné dans NanoEdge AI Studio a été exporté sous forme de bibliothèque C optimisée pour l'embarqué. Ensuite, il a été intégré dans un projet STM32 en utilisant &amp;lt;code&amp;gt;STM32CubeIDE&amp;lt;/code&amp;gt;, qui permet de convertir et d'optimiser le modèle pour une exécution efficace sur le microcontrôleur.&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle converti, il a été inclus dans le firmware de la carte NUCLEO-F401RE. L’architecture globale du code est la suivante : &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;stm32f4xx_hal.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vl53l5cx_api.h&amp;quot;&lt;br /&gt;
#include &amp;quot;NanoEdgeAI.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VL53L5CX_Configuration sensor_config;&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    HAL_Init();&lt;br /&gt;
    SystemClock_Config();&lt;br /&gt;
    MX_GPIO_Init();&lt;br /&gt;
    MX_I2C1_Init();&lt;br /&gt;
    &lt;br /&gt;
    // Initialize the VL53L5CX sensor&lt;br /&gt;
    if (vl53l5cx_init(&amp;amp;sensor_config) != 0) {&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;VL53L5CX Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Initialize NanoEdge AI&lt;br /&gt;
    int error = nanoEdgeAI_initialize();&lt;br /&gt;
    if (error != 0) {&lt;br /&gt;
        printf(&amp;quot;NanoEdge AI Initialization failed: %d\n&amp;quot;, error);&lt;br /&gt;
        Error_Handler();&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;NanoEdge AI Initialized.\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // Measurement loop&lt;br /&gt;
    VL53L5CX_ResultsData results;&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if (vl53l5cx_get_ranging_data(&amp;amp;sensor_config, &amp;amp;results) == 0) {&lt;br /&gt;
            float input_features[] = { 0, 1, 2, 3, 4, 5 };&lt;br /&gt;
            &lt;br /&gt;
            // Run inference&lt;br /&gt;
            int gesture_id = nanoEdgeAI_classification(input_features);&lt;br /&gt;
            printf(&amp;quot;Value predicted: %d\n&amp;quot;, gesture_id);&lt;br /&gt;
        }&lt;br /&gt;
        HAL_Delay(100);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Capture d’écran 2025-01-10 à 22.56.28.png|alt=Visualisation du modèle|vignette|408x408px|Visualisation du modèle]]Enfin, une communication '''MQTT''' a été mise en place afin de transmettre les résultats de détection à un serveur distant. Une fois le chiffre prédit par le modèle embarqué, il est envoyé vers &lt;br /&gt;
&lt;br /&gt;
un module de communication réseau, qui publie les données sur un broker '''MQTT.'''&lt;br /&gt;
&lt;br /&gt;
=== Visualisation ===&lt;br /&gt;
Nous visualisons les résultats du modèle d'IA en temps réel grâce à la communication '''MQTT'''. Cette visualisation permet de suivre l’efficacité du modèle, d’évaluer les performances et de détecter d’éventuelles anomalies dans les configurations de main, garantissant ainsi une interface utilisateur claire et dynamique.&lt;br /&gt;
&lt;br /&gt;
Les données sont envoyées dans le topic '''default/topic.'''&lt;br /&gt;
[[Fichier:Enregistrement de l’écran 2025-01-10 à 22.59.22.mov|alt=Visualisation du Modèle - Video Démonstration|vignette|Visualisation du Modèle - Video Démonstration|centré]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7136</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7136"/>
		<updated>2025-01-08T13:07:37Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Craquage TempTale Ultra Temperature Sensor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Deuxième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Troisième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour cette manipulation, nous avons utilisé le réseau '''PLIL''' et tenté une attaque de type '''MITM'''. Plusieurs simulations de fumée ont été réalisées afin d’observer le comportement du système ainsi que les paquets échangés entre le capteur, l’application '''NEDIS''' et d’autres adresses IP publiques.&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives de simulation, nous avons pu identifier deux adresses IP publiques apparaissant systématiquement dans les communications :&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154'''              ''':'''            Cette adresse appartient à la plage des IP réservées pour AWS (Amazon Web Services).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192          :'''            Cette adresse appartient également à la plage des IP réservées pour AWS.&lt;br /&gt;
&lt;br /&gt;
Nous avons vérifié ces deux adresses IP, et elles sont bien incluses dans les plages d’IP réservées pour AWS dans la région '''eu-central-1''' ( Francfort ).&lt;br /&gt;
&lt;br /&gt;
Les deux IP adresses sont des Machines virtuelles EC2 hebergees dans la region  '''eu-central-1''' ( Francfort ).&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154|364x364px]]&lt;br /&gt;
&lt;br /&gt;
===== Analyse Des serveurs CLOUD =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154            :'''           Contient 3 ports ('''80''', '''443''' et '''7010''') qui sont ouverts et utilise principalement comme services HTTP/HTTPS. (Comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192           :'''           Contient également 3 ports ouverts, dont 1 qui utilise du '''MQTT''' sur le port '''1883''' et un autre en '''MQTT-S''' sur le port '''8883'''.  &lt;br /&gt;
[[Fichier:Capture d’écran 2025-01-07 à 22.03.48.png|vignette|360x360px|Vérification IP adresses AWS]][[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142|352x352px]]&lt;br /&gt;
===== Workflow Potentiel =====&lt;br /&gt;
'''Capteur ---&amp;gt; 18.197.183.192 :''' Le capteur envoie des données via MQTT/MQTTS. Cette instance EC2 pourrait également acheminer les messages vers d'autres services pour traitement ou visualisation. &lt;br /&gt;
&lt;br /&gt;
'''Capteur ---&amp;gt; 3.124.85.154    :''' L'application mobile/Capteur communique avec le (API Gateway) serveur pour des opérations destinées à l'utilisateur, telles que la récupération de données stockées, l'envoi de commandes de contrôle au capteur ou la gestion des comptes d'utilisateurs.  &lt;br /&gt;
&lt;br /&gt;
===== Mock du serveur MQTT =====&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En analysant les paquets à destination de ce serveur, nous avons remarqué que la communication passe par le port 8883 qui nécessite le protocole MQTTS (ceci va nous poser un blocage car un certificat sera nécessaire par la suite).&lt;br /&gt;
&lt;br /&gt;
On va essayer de falsifier la connection en configurant un nouveau serveur '''MQTT-S''' sur la zabeth17. On a généré un certificat en utilisant les commandes suivantes :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl genrsa -out ca.key 2048&lt;br /&gt;
openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.crt -subj &amp;quot;/C=US/ST=Newyork/L=Newyork/O=Nedis/CN=18.197.183.192&amp;quot;&lt;br /&gt;
&lt;br /&gt;
openssl genrsa -out server.key 2048&lt;br /&gt;
openssl req -new -key server.key -out server.csr -subj &amp;quot;/C=US/ST=Newyork/L=Newyork/O=Nedis/CN=18.197.183.192&amp;quot;&lt;br /&gt;
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Mock certificats.png|vignette|352x352px|Mock certificats NEDIS|gauche]]&lt;br /&gt;
[[Fichier:Certs Config.png|vignette|353x353px|Configuration serveur MQTT/MQTT-S]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7134</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7134"/>
		<updated>2025-01-08T13:06:21Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Mock du serveur MQTT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Deuxième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Troisième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour cette manipulation, nous avons utilisé le réseau '''PLIL''' et tenté une attaque de type '''MITM'''. Plusieurs simulations de fumée ont été réalisées afin d’observer le comportement du système ainsi que les paquets échangés entre le capteur, l’application '''NEDIS''' et d’autres adresses IP publiques.&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives de simulation, nous avons pu identifier deux adresses IP publiques apparaissant systématiquement dans les communications :&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154'''              ''':'''            Cette adresse appartient à la plage des IP réservées pour AWS (Amazon Web Services).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192          :'''            Cette adresse appartient également à la plage des IP réservées pour AWS.&lt;br /&gt;
&lt;br /&gt;
Nous avons vérifié ces deux adresses IP, et elles sont bien incluses dans les plages d’IP réservées pour AWS dans la région '''eu-central-1''' ( Francfort ).&lt;br /&gt;
&lt;br /&gt;
Les deux IP adresses sont des Machines virtuelles EC2 hebergees dans la region  '''eu-central-1''' ( Francfort ).&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154|364x364px]]&lt;br /&gt;
&lt;br /&gt;
===== Analyse Des serveurs CLOUD =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154            :'''           Contient 3 ports ('''80''', '''443''' et '''7010''') qui sont ouverts et utilise principalement comme services HTTP/HTTPS. (Comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192           :'''           Contient également 3 ports ouverts, dont 1 qui utilise du '''MQTT''' sur le port '''1883''' et un autre en '''MQTT-S''' sur le port '''8883'''.  &lt;br /&gt;
[[Fichier:Capture d’écran 2025-01-07 à 22.03.48.png|vignette|360x360px|Vérification IP adresses AWS]][[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142|352x352px]]&lt;br /&gt;
===== Workflow Potentiel =====&lt;br /&gt;
'''Capteur ---&amp;gt; 18.197.183.192 :''' Le capteur envoie des données via MQTT/MQTTS. Cette instance EC2 pourrait également acheminer les messages vers d'autres services pour traitement ou visualisation. &lt;br /&gt;
&lt;br /&gt;
'''Capteur ---&amp;gt; 3.124.85.154    :''' L'application mobile/Capteur communique avec le (API Gateway) serveur pour des opérations destinées à l'utilisateur, telles que la récupération de données stockées, l'envoi de commandes de contrôle au capteur ou la gestion des comptes d'utilisateurs.  &lt;br /&gt;
&lt;br /&gt;
===== Mock du serveur MQTT =====&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En analysant les paquets à destination de ce serveur, nous avons remarqué que la communication passe par le port 8883 qui nécessite le protocole MQTTS (ceci va nous poser un blocage car un certificat sera nécessaire par la suite).&lt;br /&gt;
&lt;br /&gt;
On va essayer de falsifier la connection en configurant un nouveau serveur '''MQTT-S''' sur la zabeth17. On a généré un certificat en utilisant les commandes suivantes :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl genrsa -out ca.key 2048&lt;br /&gt;
openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.crt -subj &amp;quot;/C=US/ST=Newyork/L=Newyork/O=Nedis/CN=18.197.183.192&amp;quot;&lt;br /&gt;
&lt;br /&gt;
openssl genrsa -out server.key 2048&lt;br /&gt;
openssl req -new -key server.key -out server.csr -subj &amp;quot;/C=US/ST=Newyork/L=Newyork/O=Nedis/CN=18.197.183.192&amp;quot;&lt;br /&gt;
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Mock certificats.png|vignette|352x352px|Mock certificats NEDIS|gauche]]&lt;br /&gt;
[[Fichier:Certs Config.png|vignette|353x353px|Configuration serveur MQTT/MQTT-S]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7067</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7067"/>
		<updated>2025-01-08T10:33:41Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Mock du serveur MQTT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Deuxième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Troisième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour cette manipulation, nous avons utilisé le réseau '''PLIL''' et tenté une attaque de type '''MITM'''. Plusieurs simulations de fumée ont été réalisées afin d’observer le comportement du système ainsi que les paquets échangés entre le capteur, l’application '''NEDIS''' et d’autres adresses IP publiques.&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives de simulation, nous avons pu identifier deux adresses IP publiques apparaissant systématiquement dans les communications :&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154'''              ''':'''            Cette adresse appartient à la plage des IP réservées pour AWS (Amazon Web Services).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192          :'''            Cette adresse appartient également à la plage des IP réservées pour AWS.&lt;br /&gt;
&lt;br /&gt;
Nous avons vérifié ces deux adresses IP, et elles sont bien incluses dans les plages d’IP réservées pour AWS dans la région '''eu-central-1''' ( Francfort ).&lt;br /&gt;
&lt;br /&gt;
Les deux IP adresses sont des Machines virtuelles EC2 hebergees dans la region  '''eu-central-1''' ( Francfort ).&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154|364x364px]]&lt;br /&gt;
&lt;br /&gt;
===== Analyse Des serveurs CLOUD =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154            :'''           Contient 3 ports ('''80''', '''443''' et '''7010''') qui sont ouverts et utilise principalement comme services HTTP/HTTPS. (Comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192           :'''           Contient également 3 ports ouverts, dont 1 qui utilise du '''MQTT''' sur le port '''1883''' et un autre en '''MQTT-S''' sur le port '''8883'''.  &lt;br /&gt;
[[Fichier:Capture d’écran 2025-01-07 à 22.03.48.png|vignette|360x360px|Vérification IP adresses AWS]][[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142|352x352px]]&lt;br /&gt;
===== Workflow Potentiel =====&lt;br /&gt;
'''Capteur ---&amp;gt; 18.197.183.192 :''' Le capteur envoie des données via MQTT/MQTTS. Cette instance EC2 pourrait également acheminer les messages vers d'autres services pour traitement ou visualisation. &lt;br /&gt;
&lt;br /&gt;
'''Capteur ---&amp;gt; 3.124.85.154    :''' L'application mobile/Capteur communique avec le (API Gateway) serveur pour des opérations destinées à l'utilisateur, telles que la récupération de données stockées, l'envoi de commandes de contrôle au capteur ou la gestion des comptes d'utilisateurs.  &lt;br /&gt;
&lt;br /&gt;
===== Mock du serveur MQTT =====&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En analysant les paquets à destination de ce serveur, nous avons remarqué que la communication passe par le port 8883 qui nécessite le protocole MQTTS (ceci va nous poser un blocage car un certificat sera nécessaire par la suite).&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, nous allons configurer une '''redirection de ports''' (Port forwarding) vers 1883 pour avoir accès au protocole MQTT qui, quant à lui, n'utilise aucun certificat de sécurité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7066</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7066"/>
		<updated>2025-01-08T10:13:30Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Mock du serveur MQTT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Deuxième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Troisième tentative&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt; ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour cette manipulation, nous avons utilisé le réseau '''PLIL''' et tenté une attaque de type '''MITM'''. Plusieurs simulations de fumée ont été réalisées afin d’observer le comportement du système ainsi que les paquets échangés entre le capteur, l’application '''NEDIS''' et d’autres adresses IP publiques.&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives de simulation, nous avons pu identifier deux adresses IP publiques apparaissant systématiquement dans les communications :&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154'''              ''':'''            Cette adresse appartient à la plage des IP réservées pour AWS (Amazon Web Services).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192          :'''            Cette adresse appartient également à la plage des IP réservées pour AWS.&lt;br /&gt;
&lt;br /&gt;
Nous avons vérifié ces deux adresses IP, et elles sont bien incluses dans les plages d’IP réservées pour AWS dans la région '''eu-central-1''' ( Francfort ).&lt;br /&gt;
&lt;br /&gt;
Les deux IP adresses sont des Machines virtuelles EC2 hebergees dans la region  '''eu-central-1''' ( Francfort ).&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154|364x364px]]&lt;br /&gt;
&lt;br /&gt;
===== Analyse Des serveurs CLOUD =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''3.124.85.154            :'''           Contient 3 ports ('''80''', '''443''' et '''7010''') qui sont ouverts et utilise principalement comme services HTTP/HTTPS. (Comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Adresse IP : '''18.197.183.192           :'''           Contient également 3 ports ouverts, dont 1 qui utilise du '''MQTT''' sur le port '''1883''' et un autre en '''MQTT-S''' sur le port '''8883'''.  &lt;br /&gt;
[[Fichier:Capture d’écran 2025-01-07 à 22.03.48.png|vignette|360x360px|Vérification IP adresses AWS]][[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142|352x352px]]&lt;br /&gt;
===== Workflow Potentiel =====&lt;br /&gt;
'''Capteur ---&amp;gt; 18.197.183.192 :''' Le capteur envoie des données via MQTT/MQTTS. Cette instance EC2 pourrait également acheminer les messages vers d'autres services pour traitement ou visualisation. &lt;br /&gt;
&lt;br /&gt;
'''Capteur ---&amp;gt; 3.124.85.154    :''' L'application mobile/Capteur communique avec le (API Gateway) serveur pour des opérations destinées à l'utilisateur, telles que la récupération de données stockées, l'envoi de commandes de contrôle au capteur ou la gestion des comptes d'utilisateurs.  &lt;br /&gt;
&lt;br /&gt;
===== Mock du serveur MQTT =====&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En analysant les paquets à destination de ce serveur, nous avons remarqué que la communication passe par le port 8883 qui nécessite le protocole MQTTS (ceci va nous poser un blocage car un certificat sera nécessaire par la suite).&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, nous allons configuré une '''redirection de ports''' (Port forwarding) vers 1883 pour avoir accès au protocole MQTT qui, quant à lui, n'utilise aucun certificat de sécurité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7047</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7047"/>
		<updated>2025-01-07T21:13:43Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième tentative ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== Troisième tentative ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154]]&lt;br /&gt;
Nous avons pu identifier 2 adresses IP pertinentes (3.124.85.154 et 18.194.10.142) qui sont des serveurs virtuels '''EC2''' appartenant à AWS.&lt;br /&gt;
&lt;br /&gt;
Le premier (3.124.85.154) contient 3 ports (80, 443 et 7010) qui sont ouverts et utilise comme principalement service http/https. (comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Le deuxième (18.194.10.142) contient également 3 ports ouverts, dont 1 qui utilise du '''mqtt''' sur le port 1883. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142]]&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7046</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7046"/>
		<updated>2025-01-07T21:12:50Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Craquage nedis WIFIDS20WT (Détecteur de fumée) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième tentative ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== Troisième tentative ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154]]&lt;br /&gt;
Nous avons pu identifier 2 adresses IP pertinentes (3.124.85.154 et 18.194.10.142) qui sont des serveurs virtuels '''EC2''' appartenant à AWS.&lt;br /&gt;
&lt;br /&gt;
Le premier (3.124.85.154) contient 3 ports (80, 443 et 7010) qui sont ouverts et utilise comme principalement service http/https. (comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Le deuxième (18.194.10.142) contient également 3 ports ouverts, dont 1 qui utilise du '''mqtt''' sur le port 1883. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142]]&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité. --&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7045</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=7045"/>
		<updated>2025-01-07T21:12:31Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Troisième tentative */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième tentative ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== Troisième tentative ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; pour ne pas avoir notre smartphone comme étant MITM.&lt;br /&gt;
[[Fichier:3ème analyse Wireshark.jpg|vignette|3ème analyse Wireshark]]&lt;br /&gt;
D'après une analyse approfondie sur Wireshark, on arrive déjà à voir les paquets lors de la première connexion (requêtes &amp;lt;code&amp;gt;SYNC&amp;lt;/code&amp;gt;) et d'autres paquets intéressants dès le démarrage du dispositif. Ceci n'était pas possible avant car il y avait le téléphone qui n'affichait pas en quelque sorte les paquets destinés directement au dispositif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Analyse @IP1.jpg|alt=Analyse @IP1|vignette|Analyse de l'adresse 3.124.85.154]]&lt;br /&gt;
Nous avons pu identifier 2 adresses IP pertinentes (3.124.85.154 et 18.194.10.142) qui sont des serveurs virtuels '''EC2''' appartenant à AWS.&lt;br /&gt;
&lt;br /&gt;
Le premier (3.124.85.154) contient 3 ports (80, 443 et 7010) qui sont ouverts et utilise comme principalement service http/https. (comme affiché sur les captures d'écran).&lt;br /&gt;
&lt;br /&gt;
Le deuxième (18.194.10.142) contient également 3 ports ouverts, dont 1 qui utilise du '''mqtt''' sur le port 1883. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenip18.jpg|vignette|Analyse de l'adresse 18.194.10.142]]&lt;br /&gt;
L'idée sera de créer un '''&amp;lt;code&amp;gt;mock server&amp;lt;/code&amp;gt;''' avec la même adresse IP, sur notre machine, et essayer de faire passer une communication de paquets via notre machine plutôt que passer par le serveur d'origine. Une fois ceci sera réalisé, nous pourrons commencer à craquer et manipuler le dispositif comme souhaité. --&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Screenip18.jpg&amp;diff=7039</id>
		<title>Fichier:Screenip18.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Screenip18.jpg&amp;diff=7039"/>
		<updated>2025-01-07T21:03:26Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenip18&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Analyse_@IP1.jpg&amp;diff=7038</id>
		<title>Fichier:Analyse @IP1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Analyse_@IP1.jpg&amp;diff=7038"/>
		<updated>2025-01-07T21:02:37Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Analyse @IP1&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:3%C3%A8me_analyse_Wireshark.jpg&amp;diff=7037</id>
		<title>Fichier:3ème analyse Wireshark.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:3%C3%A8me_analyse_Wireshark.jpg&amp;diff=7037"/>
		<updated>2025-01-07T20:49:46Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;3ème analyse Wireshark&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=7026</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=7026"/>
		<updated>2024-12-28T19:48:27Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /*  Entraînement du modèle d’apprentissage  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #0000FF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Introduction &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Objectifs du projet==&lt;br /&gt;
Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #0000FF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Configuration Réseau &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Configuration serveur Cloud==&lt;br /&gt;
&lt;br /&gt;
Nous allons créer une machine virtuelle sur Capbreton avec un accès internet IPv6. &amp;lt;br&amp;gt;&lt;br /&gt;
Cette machine virtuelle sera déployée grâce à Xen (Hyperviseur) et portera le nom &amp;quot;SE5-elhaschaouni&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
La commande lancée pour créer cette machine est la suivante :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xen-create-image --hostname SE5-elhaschaouni --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --dhcp --bridge bridgeStudents&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration Réseau===&lt;br /&gt;
&lt;br /&gt;
Nous devrons ensuite configurer son réseau, sa résolution DNS, et ses sources de paquets Debian.&amp;lt;br&amp;gt;&lt;br /&gt;
Pour configurer le réseau de notre machine, nous allons modifier le fichier ''/etc/network/interfaces'' qui est un fichier de configuration réseau où sont spécifiés les paramètres de l'interface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet6 auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration DNS===&lt;br /&gt;
&lt;br /&gt;
Pour configurer la résolution DNS de notre machine, nous allons modifier le fichier ''/etc/resolv.conf''. Ce fichier permet de spécifier la configuration des serveurs de nom (DNS) afin de résoudre les noms de domaine en adresses IP. Voici la configuration DNS à appliquer :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
domain plil.info&lt;br /&gt;
search plil.info&lt;br /&gt;
nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration Gateway Raspberry Pi==&lt;br /&gt;
==Configuration Microcontrôleur SMT32==&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #0000FF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Communication des objets &amp;lt;/div&amp;gt;=&lt;br /&gt;
==Communication RaspberryPi &amp;amp; Serveur Cloud ==&lt;br /&gt;
&lt;br /&gt;
La communication entre la Raspberry Pi et le serveur Cloud se fait en utilisant le protocole MQTT. Le serveur Cloud est une machine virtuelle (VM) dans le même sous-réseau que la Raspberry Pi. Nous avons configuré le serveur MQTT Mosquitto en utilisant un Dockerfile pour créer et déployer le conteneur Docker sur le serveur Cloud. Nous avons également développé deux scripts Python pour gérer la communication : '''subscriber.py''' pour le serveur Cloud et '''publisher.py''' pour la Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===Déploiement du Serveur MQTT Mosquitto :===&lt;br /&gt;
Nous avons créé un Dockerfile pour configurer Mosquitto.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
   # Utiliser l'image de base de Mosquitto&lt;br /&gt;
   FROM eclipse-mosquitto:latest&lt;br /&gt;
   # Fichier de configuration &lt;br /&gt;
   COPY mosquitto.conf /mosquitto/config/mosquitto.conf&lt;br /&gt;
   # Exposer le port 1883 pour MQTT&lt;br /&gt;
   EXPOSE 1883 &lt;br /&gt;
   EXPOSE 9001&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons construit l'image Docker à partir du Dockerfile avec la commande suivante :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
   docker build -t mosquitto-mqtt .&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Puis, nous avons lancé le conteneur Mosquitto avec la commande :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
   docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 mosquitto-mqtt&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;Cette commande démarre Mosquitto en arrière-plan (-d) et mappe le port '''1883''' du conteneur au port '''1883''' de l'hôte (RasberryPI), qui est le port par défaut utilisé par '''MQTT'''.&lt;br /&gt;
&lt;br /&gt;
==Communication STM32 &amp;amp; RaspberryPi==&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;div class=&amp;quot;mcwiki-header&amp;quot; style=&amp;quot;padding: 10px; font-family: 'Times New Roman' ; font-weight: bold; color: #0000FF; text-align: center; font-size: 100%; background: #808080; vertical-align: top; height:70%; width: 98%;&amp;quot;&amp;gt; Entraînement du modèle d’apprentissage &amp;lt;/div&amp;gt; =&lt;br /&gt;
L'idée sera de développer un système capable de détecter et de reconnaître les chiffres de 0 à 5, représentés par les positions des doigts de la main. &lt;br /&gt;
Pour cela, nous utilisons la carte &amp;lt;code&amp;gt;NUCLEO-F401RE&amp;lt;/code&amp;gt; associée au capteur de distance &amp;lt;code&amp;gt;X-NUCLEO-53L5A1&amp;lt;/code&amp;gt;, ainsi que '''NanoEdge AI Studio''' pour l'entraînement et le déploiement d'un modèle d'apprentissage automatique.&lt;br /&gt;
&lt;br /&gt;
Les étapes principales du projet sont :&lt;br /&gt;
&lt;br /&gt;
# '''Acquisition des données''' : Nous avons configuré le capteur X-NUCLEO-53L5A1 pour collecter des données sur les distances des doigts, selon différentes configurations de la main correspondant aux chiffres de 0 à 5.&lt;br /&gt;
# '''Prétraitement des données''' : Pour nettoyer et formater les données collectées afin de les rendre compatibles avec NanoEdge AI Studio (en utilisant '''Data Logger''') puis les stocker dans un fichier .bin.&lt;br /&gt;
# '''Entraînement du modèle''' : Nous avons utilisé NanoEdge AI Studio pour créer et entraîner un modèle basé sur les données collectées, capable de reconnaître les positions des doigts.&lt;br /&gt;
# '''Déploiement''' : Intégration du modèle entraîné dans la carte NUCLEO-F401RE et le combiner avec le capteur pour effectuer une détection en temps réel.&lt;br /&gt;
# '''Tests et validation''' : Pour évaluer les performances du système (précision, stabilité...) et ajuster le modèle ou les paramètres du capteur si nécessaire.&lt;br /&gt;
&lt;br /&gt;
==Entraînement sur serveur Cloud==&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6962</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6962"/>
		<updated>2024-12-11T17:04:34Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Analyse du trafic réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
==== Deuxième tentative ====&lt;br /&gt;
[[Fichier:Capture d’écran 2024-12-11 à 14.59.01.png|vignette|345x345px|2ème analyse Wireshark]]&lt;br /&gt;
On réessaye de connecter le dispositif en utilisant le réseau de notre smartphone.&lt;br /&gt;
&lt;br /&gt;
192.168.89.183 : Adresse IP du dispositif&lt;br /&gt;
&lt;br /&gt;
192.168.89.186 : Adresse IP du PC effectuant l'analyse&lt;br /&gt;
&lt;br /&gt;
On peut voir des paquets entre le PC et le dispositif, mais pas grand chose du côté serveur.&lt;br /&gt;
&lt;br /&gt;
Étant donné que le smartphone joue le rôle d'un MITM, on arrive pas à capturer des paquets pertinents.&lt;br /&gt;
&lt;br /&gt;
On retrouve en grande partie des paquets de communication entre le PC et le dispositif (comme affiché sur l'image ci-joint).&lt;br /&gt;
&lt;br /&gt;
==== Troisième tentative ====&lt;br /&gt;
Cette fois-ci, on utilisera le réseau &amp;lt;code&amp;gt;PLIL&amp;lt;/code&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2024-12-11_%C3%A0_14.59.01.png&amp;diff=6940</id>
		<title>Fichier:Capture d’écran 2024-12-11 à 14.59.01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Capture_d%E2%80%99%C3%A9cran_2024-12-11_%C3%A0_14.59.01.png&amp;diff=6940"/>
		<updated>2024-12-11T14:17:11Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2ème analyse Wireshark&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6861</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6861"/>
		<updated>2024-11-27T16:08:35Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Craquage TempTale Ultra Temperature Sensor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6860</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6860"/>
		<updated>2024-11-27T16:07:25Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Analyse du trafic réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:IP+MAC.jpg|vignette|151x151px|Adresse IP + MAC du dispositif]]&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Après plusieurs tentatives avec le réseau du téléphone, on arrive à obtenir la &amp;quot;bonne adresse IP&amp;quot; avec l'adresse MAC du dispositif mais ce dernier n'arrive pas à maintenir une connexion stable (comme affiché sur la capture d'écran ci-dessous).&lt;br /&gt;
[[Fichier:Tentatives de ping.png|centré|vignette|480x480px|Tentatives de ping]]&lt;br /&gt;
&lt;br /&gt;
Nous avons alors décidé de changer de réseau et se connecter avec le Wifi &amp;lt;code&amp;gt;WIFI_IA_SE5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On réalise un premier scan du réseau avec l'utilitaire &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; pour voir tous les appareils connectés avec leur adresse MAC correspondante, en espérant trouver notre dispositif connecté à ce réseau.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Tentatives_de_ping.png&amp;diff=6858</id>
		<title>Fichier:Tentatives de ping.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Tentatives_de_ping.png&amp;diff=6858"/>
		<updated>2024-11-27T16:05:54Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tentatives de ping&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:IP%2BMAC.jpg&amp;diff=6852</id>
		<title>Fichier:IP+MAC.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:IP%2BMAC.jpg&amp;diff=6852"/>
		<updated>2024-11-27T15:56:29Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IP+MAC&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6814</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6814"/>
		<updated>2024-11-27T10:26:44Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Craquage TempTale Ultra Temperature Sensor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/10 + 22/10) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6808</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6808"/>
		<updated>2024-11-13T15:21:02Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Craquage nedis WIFIDS20WT (Détecteur de fumée) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/09 + 22/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion du dispositif au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
=== Analyse du trafic réseau ===&lt;br /&gt;
Dans un premier temps, nous avons tenté d'analyser le trafic réseau via &amp;lt;code&amp;gt;Wireshark&amp;lt;/code&amp;gt; afin d’identifier des échanges spécifiques liés au protocole WPA2, notamment les trames EAPOL (Extensible Authentication Protocol Over LAN) échangées lors du 4-Way Handshake. En capturant ces trames, notre objectif était de surveiller les retransmissions qui pourraient indiquer une tentative de réinstallation de clé, point central de l’exploitation de la faille KRACK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'identifier l'adresse IP que le dispositif Nedis utilise sur le réseau (connexion partagée depuis notre smartphone). Pour ce faire, nous avons appliqué un filtre spécifique dans Wireshark, en utilisant l'adresse IP de notre smartphone personnel comme référence &amp;lt;code&amp;gt;172.20.10.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce filtre nous a permis de capturer uniquement les paquets ayant pour source notre smartphone, ce qui nous a aidés à repérer les échanges réseau dirigés vers le dispositif Nedis. En isolant ces paquets, nous avons pu mieux analyser les interactions spécifiques entre notre smartphone et le dispositif, et tenter de déterminer l'adresse IP assignée à ce dernier sur le réseau pour poursuivre les analyses liées à la vulnérabilité KRACK.&lt;br /&gt;
&lt;br /&gt;
L'adresse IP la plus &amp;quot;suspecte&amp;quot; pour l'instant est &amp;lt;code&amp;gt;172.20.10.15&amp;lt;/code&amp;gt; qu'on pense être celle du dispositif.&lt;br /&gt;
[[Fichier:Analyse Wireshark.jpg|vignette|338x338px|1ère analyse Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Analyse_Wireshark.jpg&amp;diff=6807</id>
		<title>Fichier:Analyse Wireshark.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Analyse_Wireshark.jpg&amp;diff=6807"/>
		<updated>2024-11-13T15:16:11Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Analyse Wireshark&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6761</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6761"/>
		<updated>2024-10-22T15:11:41Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/09 + 22/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6760</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6760"/>
		<updated>2024-10-22T15:10:32Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/09 + 22/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
== Craquage nedis WIFIDS20WT (Détecteur de fumée) ==&lt;br /&gt;
&lt;br /&gt;
=== Connexion au réseau via WIFI ===&lt;br /&gt;
[[Fichier:Connexion nedis via app.jpg|vignette|191x191px|Connexion nedis via app]]&lt;br /&gt;
Nous avons connecté notre détecteur de fumée &amp;lt;code&amp;gt;Nedis WIFIDS20WT&amp;lt;/code&amp;gt; à l'application mobile Nedis en suivant les étapes simples de configuration. Après avoir installé l'application sur notre smartphone, nous avons activé le Wi-Fi et ajouté le détecteur au réseau. L'application permet également de surveiller l'état du détecteur et d'effectuer des tests à distance.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Connexion_nedis_via_app.jpg&amp;diff=6759</id>
		<title>Fichier:Connexion nedis via app.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Connexion_nedis_via_app.jpg&amp;diff=6759"/>
		<updated>2024-10-22T15:09:07Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Connexion nedis via app&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6758</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6758"/>
		<updated>2024-10-22T15:00:25Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/09 + 22/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé de la connecter en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En alimentant que la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt;, notre carte TempTale se trouve sans alimentation. Du coup, nous l'avons alimenté séparement via USB.&lt;br /&gt;
&lt;br /&gt;
Par la suite, nous avons essayé de se connecter à la carte via le logiciel '''STM32 ST-LINK Utility.''' Cette fois-ci, on arrive à accéder à notre carte !&lt;br /&gt;
[[Fichier:Wiki-3.png|vignette|288x288px|Détection de la carte STM32L152]]&lt;br /&gt;
[[Fichier:Wiki-2.png|centré|vignette|420x420px|Successful connection to the target]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Wiki-3.png&amp;diff=6757</id>
		<title>Fichier:Wiki-3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Wiki-3.png&amp;diff=6757"/>
		<updated>2024-10-22T14:56:57Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Successful connection to the target&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Wiki-2.png&amp;diff=6756</id>
		<title>Fichier:Wiki-2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Wiki-2.png&amp;diff=6756"/>
		<updated>2024-10-22T14:55:32Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Connection to target&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6750</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6750"/>
		<updated>2024-10-22T13:48:47Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés (''Problème du chain &amp;quot;DROP&amp;quot; corrigé le 21/09'').&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage|302x302px]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séances (21/09 + 22/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
On s'attaque au soudage des pins JTAG, pour cela il fallait bien identifier les 5 pins dont nous avons besoin, à savoir : &lt;br /&gt;
&lt;br /&gt;
- 3.3V (câble bleu)&lt;br /&gt;
&lt;br /&gt;
- GND (câble noir)&lt;br /&gt;
&lt;br /&gt;
- SWDIO (câble blanc)&lt;br /&gt;
&lt;br /&gt;
- SWCLK (câble gris)&lt;br /&gt;
&lt;br /&gt;
- RESET (câble orange)&lt;br /&gt;
&lt;br /&gt;
Nous avons revérifier ces connexions entre les sorties du MCU et les pins JTAG à l'aide d'un multimètre (continuité).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Connexion L152-Nucleo.jpg|vignette|229x229px|Connexion L152-Nucleo]]&lt;br /&gt;
Ensuite, comme une deuxième tentative, nous avons essayé d'accéder aux données en utilisant la carte &amp;lt;code&amp;gt;NUCLEO-FR401RE&amp;lt;/code&amp;gt; comme intermédiaire via le canal CN4.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ST-Link Pins&lt;br /&gt;
!'''VDD'''&lt;br /&gt;
!'''CN4-1'''&lt;br /&gt;
|-&lt;br /&gt;
|'''GND'''&lt;br /&gt;
|'''CN4-3'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWDIO'''&lt;br /&gt;
|'''CN4-4'''&lt;br /&gt;
|-&lt;br /&gt;
|'''SWCLK'''&lt;br /&gt;
|'''CN4-2'''&lt;br /&gt;
|-&lt;br /&gt;
|'''RST'''&lt;br /&gt;
|'''CN4-5'''&lt;br /&gt;
|}&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Connexion_L152-Nucleo.jpg&amp;diff=6749</id>
		<title>Fichier:Connexion L152-Nucleo.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Connexion_L152-Nucleo.jpg&amp;diff=6749"/>
		<updated>2024-10-22T13:44:02Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Connexion L152-Nucleo&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6739</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6739"/>
		<updated>2024-10-21T15:59:47Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés.&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:Carte TempTale.jpg|vignette|Carte TempTale après soudage]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on a :&lt;br /&gt;
&lt;br /&gt;
PA14 : JTCK-SWCLK&lt;br /&gt;
&lt;br /&gt;
PA13 : JTMS-SWDIO&lt;br /&gt;
&lt;br /&gt;
NRST : NRST &lt;br /&gt;
&lt;br /&gt;
BOOT0: BOOT0&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Carte_TempTale.jpg&amp;diff=6738</id>
		<title>Fichier:Carte TempTale.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Carte_TempTale.jpg&amp;diff=6738"/>
		<updated>2024-10-21T15:57:59Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Carte TempTale&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6728</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6728"/>
		<updated>2024-10-21T14:53:39Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés.&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
== Craquage TempTale Ultra Temperature Sensor ==&lt;br /&gt;
L'appareil TempTale Ultra est un enregistreur d'humidité et de température élégamment conçu avec USB intégré qui peut mesurer les températures ambiantes de -30°C à +70°C et l'humidité de 0% RH à 100% Rh (Rh). Cet appareil compact, simple ou polyvalent, crée automatiquement un fichier PDF sécurisé et un fichier de données cryptés sans avoir besoin de logiciels supplémentaires.&lt;br /&gt;
&lt;br /&gt;
Il est simple d'accéder aux fichiers générés par TempTale Ultra :&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount /dev/sdb TempTaleUltra/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Fichier:20241021 154850.jpg|vignette]]&lt;br /&gt;
Comme une première tentative, on a essayé de modifier directement les données dans les fichiers mais ces dernières sont protégées en lecture seule. Et le fichier TTV est crypté. La seule solution pour modifier les données est de retirer cette protection dans le firmware.&lt;br /&gt;
&lt;br /&gt;
Après démontage de TempTale Ultra, on trouve que le MCU utilisé est : STM32L152RCT6.&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on trouve les PINs SWDIO, SWDCLK, NRST et VDD qui nous permettent de reprogrammer le MCU à l'aide d'un ST-LINK et STM32CubeIDE.&lt;br /&gt;
&lt;br /&gt;
Datasheet MCU [https://www.st.com/content/ccc/resource/technical/document/datasheet/2a/6e/97/91/cd/c0/43/8b/DM00048356.pdf/files/DM00048356.pdf/jcr:content/translations/en.DM00048356.pdf STM32L152RCT6].&lt;br /&gt;
&lt;br /&gt;
D'après le Datasheet, on a :&lt;br /&gt;
&lt;br /&gt;
PA14 : JTCK-SWCLK&lt;br /&gt;
&lt;br /&gt;
PA13 : JTMS-SWDIO&lt;br /&gt;
&lt;br /&gt;
NRST : NRST&lt;br /&gt;
&lt;br /&gt;
BOOT0: BOOT0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6713</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6713"/>
		<updated>2024-10-21T13:26:19Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID '''VM_binome_3''' pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés.&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6712</id>
		<title>SE5 IdO sécurité des objets 2024/2025 b3</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2024/2025_b3&amp;diff=6712"/>
		<updated>2024-10-21T13:23:55Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Sécurisation WiFi par WPA2-EAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sécurisation WiFi par WPA2-EAP ==&lt;br /&gt;
'''''&amp;lt;u&amp;gt;Séance (25/09) :&amp;lt;/u&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Serveur virtuel&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
Nous avons créé une MV sous le nom de '''SE5-elhaschaouni''' sur Capbreton en utilisant l'hyperviseur &amp;lt;code&amp;gt;xen&amp;lt;/code&amp;gt;. (voir mdp : &amp;lt;code&amp;gt;cat /var/log/xen-tools/SE5-elhaschaouni.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Cette dernière a 2 interfaces, avec l'adresse IP &amp;lt;code&amp;gt;172.26.145.103&amp;lt;/code&amp;gt; sous eth0 et &amp;lt;code&amp;gt;172.26.3.103&amp;lt;/code&amp;gt; sous eth1 dans le &amp;lt;code&amp;gt;VLAN 403&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour cela, les interfaces &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;br403&amp;lt;/code&amp;gt; ont été configurées sur capbreton (''voir /etc/network/interfaces.d'') &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Point d'accés WiFi&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Nous avons fait la première configuration via console du point d'accès Cisco, notamment la configuration du SSH pour que les autres binômes puissent se connecter à la borne via SSH.&lt;br /&gt;
&lt;br /&gt;
Par la suite, on a configuré notre SSID &amp;lt;code&amp;gt;VM_binome_3&amp;lt;/code&amp;gt; pour qu'il utilise le &amp;lt;code&amp;gt;VLAN403&amp;lt;/code&amp;gt; puis on l'a sécurisé avec '''WPA2-EAP'''.&lt;br /&gt;
&lt;br /&gt;
Mascarade : Implementée avec succés.&lt;br /&gt;
&lt;br /&gt;
FreeRadius : Fonctionnel en '''PEAP-MSCHAPv2''' (2 utilisateurs disponibles).&lt;br /&gt;
&lt;br /&gt;
DNS : Configuré avec bind9.&lt;br /&gt;
&lt;br /&gt;
Serveur DHCP : Configuré. Le &amp;quot;range&amp;quot; des adresses IP allant de &amp;lt;code&amp;gt;172.16.3.100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;172.16.3.200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès Internet : OUI (On peut regarder des vidéos sur youtube)&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;u&amp;gt;Utilisateurs existants (user : mdp):&amp;lt;/u&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
bilal : glopglop&lt;br /&gt;
&lt;br /&gt;
ayoub : glopglop &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Membres : '''BILAL EL HASNAOUI''' et '''AYOUB CHAOUNI'''&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6440</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6440"/>
		<updated>2024-09-03T10:15:10Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Séance 1 (03/09) :  Lors de la première séance, nous avons entamé une réflexion sur les différentes idées de projets que nous pourrions développer en utilisant notre carte STM32, pour explorer les possibilités offertes par la carte, en considérant des applications potentielles dans divers domaines, tels que l'automatisation, la reconnaissance de formes ou le contrôle intelligent de systèmes. Ces premières discussions nous ont permis de poser les bases de projets innovants, alignés sur nos objectifs d'apprentissage et les capacités techniques de la STM32.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, nous avons également configuré notre environnement de travail en installant les logiciels nécessaires, à savoir NanoEdge AI et STM32, afin de pouvoir commencer le développement de nos projets de manière efficace.&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6439</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6439"/>
		<updated>2024-09-03T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Read more ...]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6438</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6438"/>
		<updated>2024-09-03T10:00:58Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[...]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2023/2024&amp;diff=6437</id>
		<title>SE5 ECEAI 2023/2024</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2023/2024&amp;diff=6437"/>
		<updated>2024-09-03T10:00:16Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SE5 ECEAI 2023/2024&lt;br /&gt;
&lt;br /&gt;
Groupe Delannoy - Lemaire : [[SE5 ECEAI/eceai 2023/2024/jcie]]&lt;br /&gt;
&lt;br /&gt;
Groupe Rodenburg - Thomas → [[Gabidann|SE5 ECEAI/eceai 2023/2024/gabidann]]&lt;br /&gt;
&lt;br /&gt;
Groupe Halaoui - Farault : [[SE5 ECEAI/eceai 2023/2024/FaraultHalaoui]]&lt;br /&gt;
&lt;br /&gt;
Groupe Godard - Delcourt : [[SE5 ECEAI/eceai 2023/2024/GodardDelcourt]]&lt;br /&gt;
&lt;br /&gt;
Groupe Naudot - Riffaut : [[SE5 ECEAI/eceai_2023/2024/NaudotRiffaut]]&lt;br /&gt;
&lt;br /&gt;
Groupe Amoros - Delaby : [[SE5 ECEAI/eceai 2023/2024/AmorosDelaby]]&lt;br /&gt;
&lt;br /&gt;
Groupe Charleux - Habre : [[SE5 ECEAI/eceai 2023/2024/CharleuxHabre]]&lt;br /&gt;
&lt;br /&gt;
Groupe Balbastre - Simon : [[SE5 ECEAI/eceai 2023/2024/BalbastreSimon]]&lt;br /&gt;
&lt;br /&gt;
Groupe Patrikeev - Mouton : [[SE5 ECEAI/eceai 2023/2024/Patrikeev-Mouton]]&lt;br /&gt;
&lt;br /&gt;
Groupe Brenier - Nguyen : [[SE5 ECEAI/eceai 2023/2024/Brenier-Nguyen]]&lt;br /&gt;
&lt;br /&gt;
Groupe Vallée - Sellali : [[SE5 ECEAI/eceai 2023/2024/ValleeSellali]]&lt;br /&gt;
&lt;br /&gt;
Groupe Black - Blgrim: [[SE5 ECEAI/eceai 2023/2024/black-blgrim]]&lt;br /&gt;
&lt;br /&gt;
SE5 ECEAI 2024/2025&lt;br /&gt;
&lt;br /&gt;
Groupe Cruchet - Deryckère : [[SE5 ECEAI/eceai 2024/2025/cruchet-deryckere]]&lt;br /&gt;
&lt;br /&gt;
Groupe Wijsman - Lefranc : [[SE5 ECEAI/eceai 2024/2025/wijsman-lefranc]]&lt;br /&gt;
&lt;br /&gt;
Groupe Duhr - Becquet : [[SE5 ECEAI/eceai 2024/2025/duhr-becquet]]&lt;br /&gt;
&lt;br /&gt;
Groupe Ling : [https://wiki-se.plil.fr/mediawiki/index.php/SE5_ECEAI/eceai_2024/2025/ling SE5 ECEAI/eceai 2024/2025/ling]&lt;br /&gt;
&lt;br /&gt;
Groupe Benmbarek - El Qastalani : [[SE5 ECEAI/eceai 2024/2025/benmbarek-elqastalani]]&lt;br /&gt;
&lt;br /&gt;
Groupe Elhasnaoui - Chaouni : [[SE5 ECEAI 2024/2025/elhasnaoui-chaouni]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6436</id>
		<title>SE5 ECEAI 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2024/2025/elhasnaoui-chaouni&amp;diff=6436"/>
		<updated>2024-09-03T10:00:01Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : Page créée avec « [...) »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[...)&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2023/2024&amp;diff=6429</id>
		<title>SE5 ECEAI 2023/2024</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI_2023/2024&amp;diff=6429"/>
		<updated>2024-09-03T08:54:55Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SE5 ECEAI 2023/2024&lt;br /&gt;
&lt;br /&gt;
Groupe Delannoy - Lemaire : [[SE5 ECEAI/eceai 2023/2024/jcie]]&lt;br /&gt;
&lt;br /&gt;
Groupe Rodenburg - Thomas → [[Gabidann|SE5 ECEAI/eceai 2023/2024/gabidann]]&lt;br /&gt;
&lt;br /&gt;
Groupe Halaoui - Farault : [[SE5 ECEAI/eceai 2023/2024/FaraultHalaoui]]&lt;br /&gt;
&lt;br /&gt;
Groupe Godard - Delcourt : [[SE5 ECEAI/eceai 2023/2024/GodardDelcourt]]&lt;br /&gt;
&lt;br /&gt;
Groupe Naudot - Riffaut : [[SE5 ECEAI/eceai_2023/2024/NaudotRiffaut]]&lt;br /&gt;
&lt;br /&gt;
Groupe Amoros - Delaby : [[SE5 ECEAI/eceai 2023/2024/AmorosDelaby]]&lt;br /&gt;
&lt;br /&gt;
Groupe Charleux - Habre : [[SE5 ECEAI/eceai 2023/2024/CharleuxHabre]]&lt;br /&gt;
&lt;br /&gt;
Groupe Balbastre - Simon : [[SE5 ECEAI/eceai 2023/2024/BalbastreSimon]]&lt;br /&gt;
&lt;br /&gt;
Groupe Patrikeev - Mouton : [[SE5 ECEAI/eceai 2023/2024/Patrikeev-Mouton]]&lt;br /&gt;
&lt;br /&gt;
Groupe Brenier - Nguyen : [[SE5 ECEAI/eceai 2023/2024/Brenier-Nguyen]]&lt;br /&gt;
&lt;br /&gt;
Groupe Vallée - Sellali : [[SE5 ECEAI/eceai 2023/2024/ValleeSellali]]&lt;br /&gt;
&lt;br /&gt;
Groupe Black - Blgrim: [[SE5 ECEAI/eceai 2023/2024/black-blgrim]]&lt;br /&gt;
&lt;br /&gt;
SE5 ECEAI 2024/2025&lt;br /&gt;
&lt;br /&gt;
Groupe Cruchet - Deryckère : [[SE5 ECEAI/eceai 2024/2025/cruchet-deryckere]]&lt;br /&gt;
&lt;br /&gt;
Groupe Wijsman - Lefranc : [[SE5 ECEAI/eceai 2023/2024/wijsman-lefranc]]&lt;br /&gt;
&lt;br /&gt;
Groupe Duhr - Becquet : [[SE5 ECEAI/eceai 2024/2025/duhr-becquet]]&lt;br /&gt;
&lt;br /&gt;
Groupe Ling : [https://wiki-se.plil.fr/mediawiki/index.php/SE5_ECEAI/eceai_2024/2025/ling SE5 ECEAI/eceai 2024/2025/ling]&lt;br /&gt;
&lt;br /&gt;
Groupe Benmbarek - El Qastalani : [[SE5 ECEAI/eceai 2024/2025/benmbarek-elqastalani]]&lt;br /&gt;
&lt;br /&gt;
Groupe Elhasnaoui - Chaouni : [[SE5 ECEAI/eceai 2024/2025/elhasnaoui-chaouni]]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI/eceai_2024/2025/elhasnaoui-chaouni&amp;diff=6426</id>
		<title>SE5 ECEAI/eceai 2024/2025/elhasnaoui-chaouni</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI/eceai_2024/2025/elhasnaoui-chaouni&amp;diff=6426"/>
		<updated>2024-09-03T08:53:25Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : Page créée avec « [...] »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[...]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI/eceai_2024/2025/&amp;diff=6423</id>
		<title>SE5 ECEAI/eceai 2024/2025/</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_ECEAI/eceai_2024/2025/&amp;diff=6423"/>
		<updated>2024-09-03T08:51:55Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : Page créée avec « = SE5 ECEAI/eceai 2024/2025/elhasnaoui-chaouni = [...] »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SE5 ECEAI/eceai 2024/2025/elhasnaoui-chaouni =&lt;br /&gt;
[...]&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6013</id>
		<title>Atelier SysRes SE4 2023/2024 E12</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6013"/>
		<updated>2024-04-16T16:22:47Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Effraction WiFi ==&lt;br /&gt;
&lt;br /&gt;
=== Cassage de clef WEP d’un point d’accès WiFi ===&lt;br /&gt;
&lt;br /&gt;
=== Cassage de mot de passe WPA-PSK par force brute ===&lt;br /&gt;
Binôme 7 : AYOUB CHAOUNI &amp;amp; BILAL EL HASNAOUI&lt;br /&gt;
&lt;br /&gt;
- Nous avons réussi à craquer &amp;lt;code&amp;gt;krakotte07&amp;lt;/code&amp;gt;, le mot de passe est le suivant : &amp;lt;code&amp;gt;66683666&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Fichier:Flag.png|alt=Mdp kracotte|centré|vignette|482x482px|[[Mdp kracotte]]]]&lt;br /&gt;
&lt;br /&gt;
- Les étapes de résolution étaient les suivants : &lt;br /&gt;
&lt;br /&gt;
1- On a d'abord lancé la capture des dialogues d'identification avec &amp;lt;code&amp;gt;airodump-ng&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
2-&lt;br /&gt;
&lt;br /&gt;
3-&lt;br /&gt;
== Sécurisations ==&lt;br /&gt;
&lt;br /&gt;
=== Chiffrement de données ===&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation WiFi par WPA2-EAP ===&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6012</id>
		<title>Atelier SysRes SE4 2023/2024 E12</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6012"/>
		<updated>2024-04-16T16:20:02Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Effraction WiFi ==&lt;br /&gt;
&lt;br /&gt;
=== Cassage de clef WEP d’un point d’accès WiFi ===&lt;br /&gt;
&lt;br /&gt;
=== Cassage de mot de passe WPA-PSK par force brute ===&lt;br /&gt;
Binôme 7 : AYOUB CHAOUNI &amp;amp; BILAL EL HASNAOUI&lt;br /&gt;
&lt;br /&gt;
- Nous avons réussi à craquer &amp;lt;code&amp;gt;krakotte07&amp;lt;/code&amp;gt;, le mot de passe est le suivant : &amp;lt;code&amp;gt;66683666&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Fichier:Flag.png|alt=Mdp kracotte|centré|vignette|482x482px|[[Mdp kracotte]]]]&lt;br /&gt;
&lt;br /&gt;
- Les étapes de résolution étaient les suivants : &lt;br /&gt;
&lt;br /&gt;
1-&lt;br /&gt;
&lt;br /&gt;
2-&lt;br /&gt;
&lt;br /&gt;
3-&lt;br /&gt;
== Sécurisations ==&lt;br /&gt;
&lt;br /&gt;
=== Chiffrement de données ===&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation WiFi par WPA2-EAP ===&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6011</id>
		<title>Atelier SysRes SE4 2023/2024 E12</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6011"/>
		<updated>2024-04-16T16:19:41Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Effraction WiFi ==&lt;br /&gt;
&lt;br /&gt;
=== Cassage de clef WEP d’un point d’accès WiFi ===&lt;br /&gt;
&lt;br /&gt;
=== Cassage de mot de passe WPA-PSK par force brute ===&lt;br /&gt;
Binôme 7 : AYOUB CHAOUNI &amp;amp; BILAL EL HASNAOUI&lt;br /&gt;
&lt;br /&gt;
- Nous avons réussi à craquer krakotte07, le mot de passe est le suivant : 66683666&lt;br /&gt;
[[Fichier:Flag.png|alt=Mdp kracotte|centré|vignette|482x482px|[[Mdp kracotte]]]]&lt;br /&gt;
&lt;br /&gt;
- Les étapes de résolution étaient les suivants : &lt;br /&gt;
&lt;br /&gt;
1-&lt;br /&gt;
&lt;br /&gt;
2-&lt;br /&gt;
&lt;br /&gt;
3-&lt;br /&gt;
== Sécurisations ==&lt;br /&gt;
&lt;br /&gt;
=== Chiffrement de données ===&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation WiFi par WPA2-EAP ===&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6010</id>
		<title>Atelier SysRes SE4 2023/2024 E12</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Atelier_SysRes_SE4_2023/2024_E12&amp;diff=6010"/>
		<updated>2024-04-16T16:18:14Z</updated>

		<summary type="html">&lt;p&gt;Achaouni : /* Cassage de mot de passe WPA-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Effraction WiFi ==&lt;br /&gt;
&lt;br /&gt;
=== Cassage de clef WEP d’un point d’accès WiFi ===&lt;br /&gt;
&lt;br /&gt;
=== Cassage de mot de passe WPA-PSK par force brute ===&lt;br /&gt;
Binôme 7 : AYOUB CHAOUNI &amp;amp; BILAL EL HASNAOUI&lt;br /&gt;
&lt;br /&gt;
- Nous avons réussi à craquer krakotte07, le mot de passe est le suivant : 66683666&lt;br /&gt;
[[Fichier:Flag.png|alt=Mdp kracotte|centré|vignette|482x482px|[[Mdp kracotte]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sécurisations ==&lt;br /&gt;
&lt;br /&gt;
=== Chiffrement de données ===&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation WiFi par WPA2-EAP ===&lt;/div&gt;</summary>
		<author><name>Achaouni</name></author>
	</entry>
</feed>