Sécurisation réseau : proposition évolution

Bonjour.
La clef de sécurité z-wave inscrite dans le fichier resources/openzwaved/ozwave/manager_utils.py est la clef par défaut que tout le monde connait.
Lorsque l’on change cette clef par une clef personnelle et privée (c’est de la sécurité dont on parle) elle se retrouve « écrasée » à chaque mise à jour du plug in openzwave. C’est donc un double problème :

  • la clef de sécurité se retrouve ainsi inconsistance avec celle du module Zwave connecté à la box et devient source de problèmes d’inclusion/exclusion/fonctionnement
  • il faut aller bidouiller dans le fichier sus cité pour gérer une donnée utilisateur ce qui me semble opposé à la finalité de la sécurité visée.

Ce que je propose à l’excellent développeur @JeedomSAS (@Loic ?) :
a) faire évoluer le plugin pour que l’utilisateur puisse modifier sa clef de sécurité depuis l’interface du plug in
b) rendre persistante la clef ainsi enregistrée pour qu’elle soit conservée lors d’une mise à jour du plug in (on peut imaginer une solution reset qui remettrait la clef par défaut si on voulait fignoler).

Bien cordialement

1 « J'aime »

Personnnellement je patche en attendant mieux

--- /var/www/html/plugins/openzwave/resources/openzwaved/ozwave/manager_utils.py	2020-01-27 19:57:06.968855260 +0100
+++ /var/www/html/plugins/openzwave/resources/openzwaved/ozwave/manager_utils.py	2020-01-27 20:05:40.399937048 +0100
@@ -21,7 +21,9 @@
 	globals.options.set_suppress_value_refresh(False)
 	globals.options.set_driver_max_attempts(5)
 	globals.options.addOptionBool("AssumeAwake", globals.assumeAwake)
-	globals.options.addOptionString("NetworkKey", "0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10", True)
+	#globals.options.addOptionString("NetworkKey", "0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10", True)
+    #cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
+	globals.options.addOptionString("NetworkKey", "0xAA, 0xBB, 0xCC, 0xAA, 0xBB, 0xCC, 0xAA, 0xAA, 0xBB, 0xCC, 0xAA, 0xBB, 0xCC, 0xAA, 0xBB, 0xCC", True)
 	globals.options.set_security_strategy('SUPPORTED')
 	globals.options.addOptionBool('EnforceSecureReception', False)
 	globals.options.addOptionBool('RefreshAllUserCodes', False)

De mon coté, j’ai réalisé un script qui s’exécute lors de la mise à jour du plug in et qui va changer la clef dans le fichier ad hoc. Mais je préfèrerais de loin une solution « toute en un » ou « autoporteuse » car à force de mettre des patches et des scripts personnalisés un peu partout c’est plus que difficile de maintenir sa domotique (je pense tjrs comme si je devais revendre la maison demain).

Même logique, le patch s’applique automatiquement à la mise à jour du plugin …
Et 200% d’accord avec un mécanisme intégré au plugin