pip install -r requirements.txt
python3 nodeB.py
python3 nodeA.py send
Le script node.py définit une classe Node qui représente un nœud dans le système. Chaque nœud :
- Génère une paire de clés privée/publique
- Peut générer une demande de signature de certificat (CSR)
- Peut demander un certificat à la PKI via la méthode
request_certificate
Le script secure_mqtt_node.py implémente la classe SecureMQTTNode, qui étend les fonctionnalités d'un nœud pour inclure :
- Une connexion sécurisée au broker MQTT
- La vérification des certificats des messages reçus
- L'envoi de messages signés avec le certificat du nœud
Ces scripts représentent des instances spécifiques de noeuds (A, B, C, D) qui :
- Génèrent leurs certificats respectifs
- Se connectent au broker MQTT via un
SecureMQTTNode - Écoutent les messages entrants
- Optionnellement, envoient des messages à d'autres noeuds (par exemple,
nodeA.pypeut envoyer un message ànodeB.py)
Le script pki.py gère les opérations liées à la PKI (l'autorité), notamment :
- La génération de paires de clés
- La génération d'un certificat d'autorité (CA)
- La génération et signature des certificats pour les noeuds
Par ailleurs, les demandes de certificats des noeuds sont faites en même temps que leur création. Celui de la PKI est créé lorsque l'on crée un noeud, et que celui-ci tente d'accéder au certificat de la PKI. S'il ne le trouve pas, alors il lance la génération depuis la PKI.