Les security modes du VirtualHub v2

Les security modes du VirtualHub v2

Cette semaine nous publions une nouvelle version du VirtualHub v2 qui introduit le concept de security mode. Comme son nom le laisse entendre, le security mode (ou mode de sécurité) permet configurer les paramètres d'accès réseau au VirtualHub en fonction de vos besoins.





En ajoutant le support SSL/TLS à VirtualHub, nous nous sommes vite rendu compte que dans certaines situations la gestion des certificats pouvait devenir pénible. De plus, le comportement par défaut qui était de chiffrer les communications sans configurer de mot de passe n'avait pas beaucoup de sens. Nous avons donc décidé d'ajouter un nouvel attribut à la classe YNetwork qui permet de choisir le mode de fonctionnement de VirtualHub.

Lors de la première connexion, VirtualHub vous demandera de choisir le mode de sécurité à utiliser. Les différents modes sont legacy, mixed et secure. Nous avons aussi laissé une option undefined, si vous êtes pressé et que vous voulez configurer cet attribut plus tard. Ce mode undefined est identique au mode legacy mais vous affichera cette fenêtre à chaque connexion.

Lors de la première connexion, VirtualHub vous demandera de choisir le mode de sécurité
Lors de la première connexion, VirtualHub vous demandera de choisir le mode de sécurité



Notez qu'en fonction du mode que vous avez choisi cette page vous proposera de configurer un ou plusieurs mots de passe pour accéder à VirtualHub. Le fonctionnement des mots de passer user et admin est décrit dans la documentation de VirtualHub.

Le mode Legacy

Le mode legacy est le mode qui ressemble le plus a la version 1 de VirtualHub et au YoctoHub. Aucun mot de passe n'est imposé et VirtualHub accepte les connexions entrantes non chiffrées (HTTP) ET chiffrées (HTTPS). Ce mode est compatible avec les anciennes applications ou librairies qui ne gèrent pas les mots de passe ou ne supportent pas HTTPS.

Cependant, il ne doit être utilisé que sur un réseau sûr, particulièrement si aucun mot de passe n’est configuré. Notez que si vous pouvez utiliser sans risque ce mode si vous lancez VirtualHub avec l'option -p 127.0.0.1. Dans ce cas l'application restreint l'accès aux processus qui sont exécutés sur la machine locale.

Quand ce mode est sélectionné, les librairies Yoctopuce qui supportent l'API 2.0 acceptent automatiquement les certificats autosignés.

Le mode Secure

Le mode Secure est le mode le plus sûr et force l'utilisation de mots de passe ainsi que du chiffrement des communications (HTTPS). C'est le mode à utiliser si VirtualHub est accessible depuis un réseau public.

Cela implique que les browsers et applications qui se connectent à VirtualHub doivent gérer correctement le certificat SSL installé. Si ce certificat est un certificat autosigné il faut soit l'installer sur la machine cliente, soit ajouter une exception pour accepter automatiquement ce certificat. Nous avons un article sur ce sujet. Les nouvelles librairies de programmation qui utilisent l'API 2.0 contiennent un exemple "Prog-RegisterHubHTTPS" qui illustre la gestion des certificats lors de la connexion.

Attention, ce mode n'est pas compatible avec les librairies qui utilisent l'API 1.10. De la même manière, les applications qui utilisent d'anciennes versions de la librairie ne fonctionneront pas avec ce mode.

Notez que ce mode impose l'utilisation d'un mot de passe pour se connecter à VirtualHub.

Le mode Mixed

Le mode Mixed est mélange des deux derniers modes et offre un niveau de sécurité raisonnable sans casser la compatibilité ascendante. VirtualHub accepte les connexions entrantes non chiffrées (HTTP) ET chiffrées (HTTPS), mais force l'utilisation d'un mot de passe.

Comme pour le mode legacy, les librairies Yoctopuce qui supportent l'API 2.0 acceptent automatiquement les certificats autosignés installés dans VirtualHub.

Contrairement au mode legacy, les librairies 2.0 chiffrent les communications par défaut.

Les implications sur les librairies


Ces différents modes ont un impact sur le fonctionnement des librairies.

Les librairies qui utilisent encore l'API 1.10 (UWP, Delphi, Objective-C...) ne fonctionneront qu'en mode legacy ou mixed. Dans ces deux modes, le fonctionnement des librairies reste inchangé. Évidemment, si un mot de passe est configuré, il faudra le passer lors de l'appel à YAPI.RegisterHub.

Là où les choses changent, c'est avec les librairies 2.0. Pour rappel, les URL supportées par les librairies 2.0 sont:

  • http://
  • ws://
  • https://
  • wss://
  • secure://
  • auto://

Si aucun protocole n'est spécifié dans l'URL, la librairie va utiliser le protocole auto://.

Regardons les impacts des différents modes pour chaque protocole:

http://

Ce protocole force la librairie à utiliser une connexion HTTP. Il fonctionne donc en mode legacy et mixed et utilise une communication non chiffrée. En mode secure, la communication est "upgradée" en HTTPS avec chiffrage des données et vérification du certificat SSL.

ws://

Ce protocole force la librairie à utiliser une connexion WebSocket. Il fonctionne donc en mode legacy et mixed et utilise une communication non chiffrée. En mode secure, la communication est "upgradée" en Sercure WebSocket avec chiffrage des données et vérification du certificat SSL.

https://

Ce protocole force la librairie à utiliser une connexion HTTPS. Il fonctionne dans tous les modes et garantit que la communication est chiffrée et que le certificat est vérifié. Ce protocole n'est pas supporté sur les YoctoHubs et VirtualHub v1.

wss://

Ce protocole force la librairie à utiliser une connexion Sercure WebSocket. Il fonctionne dans tous les modes et garantit que la communication est chiffrée et que le certificat est vérifié. Ce protocole n'est pas supporté sur les YoctoHubs et VirtualHub v1.

secure://

Ce protocole permet d'utiliser n'importe quel protocole pour autant que la communication soit chiffrée et que le certificat est vérifié. En terme plus claire, le protocole wss:// et https:// sont acceptés. Ce protocole n'est pas supporté pas sur les YoctoHubs et VirtualHub v1.

auto://

C'est le protocole utilisé par défaut si aucun préfix n’est utilisé lors de l'appel à YAPI.RegisterHub. Tous les protocoles précédents sont autorisés.

Quand VirtualHub est en mode secure, la communication est chiffrée et le certificat vérifié.

Quand VirtualHub est en mode mixed, la communication est chiffrée, mais le certificat ne sera pas vérifié.

Quand VirtualHub est en mode legacy, la communication n'est PAS chiffrée.

Ce protocole fonctionne aussi avec les YoctoHub et VirtualHub v1, et dans ce cas la communication est évidement non chiffrée.

Conclusion

Nous avons longuement réfléchi a ces différents modes pour permettre d'avoir une communication 100% sûre quand c'est nécessaire, tout en autorisant des configurations plus simples pour les utilisations où la sécurité n'est pas un problème.

Nous espérons que cet article clarifie quel type de communication est utilisé en fonctions de votre situation. N'oubliez pas que les librairies 2.0 ont un nouvel exemple "Prog-RegisterHubHTTPS" qui utilise une connexion chiffrée. Enfin, vos pouvez lire ou relire nos anciens articles sur le sujet:

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.