Authentification et autorisation

Sécuriser l'accès à l'éditeur

Méthode

À l'aide du paragraphe « Editor & Admin API security » de la documentation Node-RED Securing Node-RED, créer un accès administrateur et un accès en lecture seule, ces deux accès devront être authentifiés, le mot de passe devra se conformer à la politique de mots de passe préconisée par la CNIL qui recommande une entropie d'au moins 80.

Remarque : on lancera une console en exécutant le fichier launch_node.bat présent dans le dossier de Node-RED pour lancer les commandes de la documentation Node-RED.

Identifiant

Mot de passe

Permissions

admin

au choix

toutes

lambda

au choix

lecture seule

Vérifier que l'accès en local et à distance est désormais soumis à une authentification.

Faire les captures d'écrans :

  1. de l'invite de commande (ligne de commande + résultat) ;

  2. de la partie modifiée du fichier settings.js.

Q.4 Préciser les caractéristiques de la politique de mot de passe que vous avez retenue.

Complément

Les mots de passe sont enregistrés par Node-RED sous la forme de hachés.

Principe de hachage d'un texte en clair (mot de passe ou autres).

Le haché aura une taille fixe indépendante du texte en clair.

Il est impossible de retrouver le texte en clair connaissant le haché.

Sécuriser l'accès au tableau de bord

Méthode

Faire la même chose (un seul compte administrateur) pour l'accès au tableau de bord cette fois en lisant le paragraphe « HTTP Node security » de la documentation Node-RED Securing Node-RED.

Identifiant

Mot de passe

admin_ui

même mot de passe que admin

Le mot de passe devra être de nouveau haché avec la commande que l'on a déjà vue :

1
node-red admin hash-pw

Vérifier que l'accès en local et à distance est désormais soumis à une authentification.

Faire les captures d'écrans :

  1. de l'invite de commande (ligne de commande + résultat) ;

  2. de la partie modifiée du fichier settings.js.

Q.5 Est-ce que les mots de passe hachés sont identiques pour les comptes admin et admin_ui ? Quel est l'algorithme utilisé pour calculer le mot de passe haché ?

Aller plus loin sur le hachage

Méthode

Aller sur le site https://bcrypthashgenerator.tool-kit.dev/ qui permet de générer un mot de passe haché avec bcrypt et de déterminer si un mot de passe haché correspond bien à un mot de passe en clair :

Générer plusieurs fois le même mot de passe haché en ligne, qu'observe-t-on concernant le mot de passe haché (longueur, contenu, etc).

Maintenant décocher la case Random salt et entrer le texte MonSelLeMeilleur, puis hacher plusieurs fois le même mot de passe. Qu'observez-vous cette fois concernant le mot de passe haché ?

Q6. Quel rôle joue le sel dans le hachage ? La technique de salage est une technique défensive contre quels types d’attaque (au moins 2) ?

Le comparateur en ligne joue le même rôle que le serveur Node-RED lorsque vous vous authentifiez sur Node-RED :

  1. Lorsque vous voulez vous authentifier sur Node-RED vous rentrez votre identifiant et votre mot de passe en clair, Node-RED vérifie tout d'abord dans son fichier settings.js que l'identifiant en question existe. Si c'est le cas il passe à l'étape 2 sinon il renvoie « Login failed ».

  2. Node-RED génère alors un mot de passe haché avec le mot de passe en clair que l'utilisateur a saisi.

  3. Node-RED compare alors le mot de passe haché avec le mot de passe haché dans le fichier settings.js et qui correspond à l'identifiant. Si les deux hachés sont identiques Node-RED envoie la page demandée sinon il envoie « Login failed ».

Séquence d'identification et d'authentification

Q7. On a vu que Node-RED génère le mot de passe haché à partir du mot de passe en clair lors de l'authentification, mais on a vu aussi que pour générer un mot de passe haché il faut le mot de passe en clair et un sel. Comment selon vous Node-RED fait-il pour connaître le sel qui a été utilisé lors du hachage du mot de passe ? De manière plus générale, expliquer les différentes étapes qui conduisent Node-RED à servir la page demandée lors de l'authentification de l'utilisateur.

Conseil

Un indice se trouve en bas du simulateur en ligne.

Bilan

Méthode

Q8. En cybersécurité on distingue 3 notions que sont l'identification, l'authentification et l'autorisation. À partir de l'exemple précédent et de l'article de Kapersky illustrer dans un tableau ces 3 notions, le tableau pourra avoir l'aspect suivant :

Principe de sécurité

Exemple avec Node-RED

Définition

Remarques

Identification

Authentification

Autorisation