Utiliser TLS/SSL avec notre librairie commande line 2.0

Utiliser TLS/SSL avec notre librairie commande line 2.0

Nous poursuivons l'ajout de SSL/TLS dans nos librairies. Cette semaine, c'est au tour de la libriaire command line qui pour l'occasion passe en v2.0


Tout comme pour nos autres librairies, l'ajout de la couche SSL/TLS ne change que très peu de choses. Il vous suffit d'utiliser "wss://" ou "https://" avant l'adresse de VirtualHub 2.0 ou VirtualHub for web pour utiliser une communication chiffrée. Le préfixe "wss://" signifie "WebSocket Secure" et configure la librairie pour communiquer à l'aide du protocole WebSocket sur une connexion chiffrée par SSL/TLS, alors que le préfixe "https://" utilise le protocole http classique sur une connexion chiffrée. Notez, que VirtualHub for web ne supporte que le protocole https.

Par exemple la commande suivante liste les modules connectés à VirtualHub for web:

YModule -r https://vhub4web.example.com  inventory
VHUB4WEB-d2490d2
RELAYLO1-27EAB
YBUTTON1-2072D
YPWMRX01-AE391



Les certificats


L'authentification SSL/TLS est basée sur une chaîne de certificats électroniques. Lors de l’établissement de la connexion, le client vérifie la validité de la chaîne de certificats et s'assure qu'au moins l'un des certificats de la chaîne a été émis par une autorité reconnue par le client. Pour établir une connexion 100% sécurisée, il faut donc que le client connaisse les émetteurs de certificats de tous les serveurs auxquels il va accéder.

Les certificats de confiance de la librairie en ligne de commandes sont stockés dans un sous-répertoire du home dir de l'utilisateur. Sous Windows, il s'agit du répertoire %APPDATA%\Yoctopuce\CmdlineV2\certs et sous Unix ~/.ycmdlineV2/certs.

Par défaut, la librairie en ligne de commande ne connait aucun certificat. En conséquence, lors de la première connexion à VirtualHub v2.0, l'erreur suivante sera affichée:

ERR: Cannot register https://vhub4web.example.com: The certificate is not correctly signed by the trusted CA
ERR: Try to use --ignore_cert option or install certificate with downloadRemoteCertifcate of addRemoteCertificate commands



Cela signifie que la chaîne de certificats utilisée sur le serveur https://vhub4web.example.com est inconnue et ne peut donc pas être vérifiée. Ce qui est logique, car c'est la première fois qu'on contacte ce VirtualHub for web.

Dans cette situation, vous avez trois solutions:

L'option--ignore_cert


Vous pouvez utiliser l'option --ignore_cert qui désactive la vérification du certificat.

YModule --ignore_cert -r https://vhub4web.example.com  inventory
VHUB4WEB-d2490d2
RELAYLO1-27EAB
YBUTTON1-2072D
YPWMRX01-AE391



Les communications sont toujours chiffrées, et donc un attaquant qui espionnerait le réseau ne pourrait pas déchiffrer la communication. Toutefois, comme le certificat de VirtualHub n'est pas validé, la communication est vulnérable à une attaque man-in-the-middle.

La commande addRemoteCertificate


La commande addRemoteCertificate permet d'ajouter manuellement un certificat à la liste de certificats de confiance. Cette fonction prend en argument le path du certificat et le nom d'hôte pour lequel ce certificat est valide. Le format du certificat doit être au format PEM.

YModule addRemoteCertificate mycert.crt vhub4web.example.com
The certificate has been saved in ~/.ycmdlineV2/certs/vhub4web.example.com.crt



Une fois le certificat ajouté, la libraire peut établir une connexion 100% sécurisée avec l'hôte distant. En effet, la communication est à la fois chiffrée et authentifiée.

YModule -r https://vhub4web.example.com  inventory
VHUB4WEB-d2490d2
RELAYLO1-27EAB
YBUTTON1-2072D
YPWMRX01-AE391



La commande downloadRemoteCertificate


La commande downloadRemoteCertificate est une variante de la commande addRemoteCertificate pour les fainéants. Cette commande prend en argument l'URL de VirtualHub et télécharge le certificat et l'ajoute à la liste des certificats de confiance.

YModule downloadRemoteCertificate https://vhub4web.example.com
The certificate has been saved in ~/.ycmdlineV2/certs/vhub4web.example.com.crt



Evidemment, pour télécharger ce certificat, la librairie doit se connecter à VirtualHub avant de pourvoir l'utiliser. Donc, techniquement l'exécution de cette commande est vulnérable aux attaques man-in-the-middle, mais toutes les commandes suivantes sont chiffrées et authentifiées.


Conclusion


La librairie en ligne de commande, est la première librairie à passer officiellement en v2.0 avec le support SSL/TLS. Toutes les commandes sont inchangées et la migration devrait se faire sans accrocs. Si toutefois vous deviez rencontrer des problèmes, n'hésitez pas à contacter le support.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.