Garantir la sécurité sur toutes les machines

Objectif : Faire en sorte que deux machines différentes communiquent en toute sécurité.

Niveau du didacticiel : Avancé

Durée : 5 minutes

Arrière-plan

Les tutoriels précédents ont utilisé deux nœuds ROS sur la même machine envoyant toutes les communications réseau via l’interface localhost. Étendons ce scénario pour impliquer plusieurs machines, car les avantages de l’authentification et du chiffrement deviennent alors plus évidents.

Supposons que la machine avec le keystore créé dans la démo précédente ait un nom d’hôte Alice, et que nous voulions également utiliser une autre machine avec le nom d’hôte Bob pour notre démo multi-machine talker/listener . Nous devons déplacer certaines clés de Alice à Bob pour permettre à SROS 2 d’authentifier et de crypter les transmissions.

Créer le deuxième magasin de clés

Commencez par créer un keystore vide sur Bob ; le keystore n’est en fait qu’un répertoire vide :

ssh Bob
mkdir ~/sros2_demo
exit

Copier des fichiers

Copiez ensuite les clés et les certificats du programme talker de Alice à Bob. Comme les clés ne sont que des fichiers texte, nous pouvons utiliser scp pour les copier.

cd ~/sros2_demo/demo_keystore
scp -r talker USERNAME@Bob:~/sros2_demo/demo_keystore

Ce sera très rapide, car il ne s’agit que de copier de très petits fichiers texte. Maintenant, nous sommes prêts à exécuter une démo de locuteur/auditeur multi-machine !

Lancer les nœuds

Une fois l’environnement configuré, lancez le talker sur Bob :

ros2 run demo_nodes_cpp talker --ros-args --enclave /talker_listener/talker

et lancez l’écouteur sur Alice :

ros2 run demo_nodes_py listener --ros-args --enclave /talker_listener/listener

Alice va maintenant recevoir des messages cryptés de Bob.

Avec deux machines communiquant avec succès en utilisant à la fois le cryptage et l’authentification, vous pouvez utiliser la même procédure pour ajouter plus de machines à votre graphique ROS.