Résolu le 26-10-24 Mise en œuvre TLS1.2 avec openssl entre Serveur et Client (IoT)

Postez ici vos scripts Bash, Python, C++, etc...
Avatar du membre
alain
Administrateur du site
Messages : 17182
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Mise en œuvre TLS1.2 avec openssl entre Serveur et Client (IoT)

Message par alain »

Dernier message de la page précédente :

@Armaggion

Ha! Je savais bien que j'allais apprendre des choses ;)
Слава Україні _ слава героям махновщини
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: GTX 1080TI-11 Go | OS : LM 22 Xfce 4.18 | K: 6.8
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 22 Wilma Xfce 4.18| K: 6.8
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 12.8 | K: 6.1
In a world without walls and fences, who needs windows and gates?
corso66
Messages : 22
Enregistré le : mer. 9 sept. 2020 12:49
Localisation : Ici et ailleurs

Re: Mise en œuvre TLS1.2 avec openssl entre Serveur et Client (IoT)

Message par corso66 »

Salut Armaggion,

Merci pour toutes tes explications.
... mais en gros, avec ces explications, j'espère que ça t'aura un peu débrouillé le terrain ?
Bien-sur que ça m'aide ! Et ton lien aussi m'a bien instruit.

Du coup, ce que je comprend : avec mon dernier test avec d'une part un certificat serveur, un certificat client d'autre part, le tout signé par un CA fait que seul mon module IoT peut communiquer avec mon serveur et vice-versa, le tout en liaison crypté...
En recoupant les infos de ton lien et de ce qu'il me semble avoir compris, de manière générale cela veut dire que :
  • Avec cette technique, on peut faire communiquer un couple serveur/client de manière exclusive et unique, et même s'il y a plusieurs clients de mêmes types avec les mêmes certificats, on se passe de tout autre moyen d'authentification à savoir mot de passe etc ... ? :-o
  • Tout autre client sera rejeté ??
Ben du coup si c'est ça, ça m'en bouche un coin !

:?: Autre chose : Le fait d'avoir juste une clé privée et publique coté serveur, et rien coté client permet une communication cryptée. Comme tu disais, c'est bien le client qui initie la conversation, le serveur ne contrôle rien. Sur mon module, j'active la fonction TLS, mais ne donne aucune clé ou certificat ... Et cela fonctionne !
Mais est-ce que ça veut dire que mon client, c'est à dire mon objet connecté, a nativement un certificat par défaut permettant de s'identifier un minimum ?

Comment comprends-tu ces quelques lignes du fabricants de mon module, surtout ce que j'ai mis en vert ?
Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), use asymmetric encryption for authentication. In some scenarios, only a server needs to be authenticated, in others both client and server authenticate each other. Once authentication is established, clients and servers use asymmetric encryption to exchange a secret key. Communication then proceeds with symmetric encryption, using this key.

TLS/SSL application hosts use separate digital certificates as a basis for authentication in both directions: to prove their own identity to the other party, and to verify the identity of the other party. In proving its own authenticity, the XPort EDGE will use its own "personal" certificate. In verifying the authenticity of the other party, the XPort EDGE module will use a "trusted authority" certificate.
PC fixe HP | CPU i7-3770 4 cœurs @ 3.6GHz | 16Go ram | GPU Nvidia 750Ti | Dual Boot Mint Cinnamon 20.03 vs Win10 | 3 écrans
Avatar du membre
Armaggion
Messages : 685
Enregistré le : jeu. 22 août 2024 16:48

Re: Mise en œuvre TLS1.2 avec openssl entre Serveur et Client (IoT)

Message par Armaggion »

je comprends qu'il y a encore des choses à creuser du côté du "mutual TLS" (mTLS en abrégé) qui permet une authentification des deux côtés dans le cadre du protocole TLS. C'est d'un usage plus spécifique mais ça existe, notamment dans le domaine du B2B (business-to-business) quand deux serveurs se parlent en s'authentifiant mutuellement par exemple, mais aussi avec OAuth que tu peux croiser dans le cadre des authentifications à un serveur de messagerie où il est important que les deux parties se reconnaissent précisément.
Tu peux fouiller à partir d'ici : https://en.wikipedia.org/wiki/Mutual_authentication (y'a même une section sur le mTLS qui te redit en mieux ce que je te raconte ici)
PC : Desktop | Linux Mint 22.1 Xia | Cinnamon 6.4.8 | 6.8.0-63-generic | Intel Core i5-13400F | 32GB | NVIDIA AD106 [GeForce RTX 4060 Ti] / 575.64.03
corso66
Messages : 22
Enregistré le : mer. 9 sept. 2020 12:49
Localisation : Ici et ailleurs

Re: Mise en œuvre TLS1.2 avec openssl entre Serveur et Client (IoT)

Message par corso66 »

Salut,

mTLS, voilà un nom donné sur ce cas de figure bien spécifique et pris en charge par mon module. C'est donc ce que j'ai réussi à faire.

Il faut maintenant que je comprenne mieux la chaine de confiance dans ce module entre Higher et Trusted Authority.

Merci pour toutes ces infos et ton aide ;)
PC fixe HP | CPU i7-3770 4 cœurs @ 3.6GHz | 16Go ram | GPU Nvidia 750Ti | Dual Boot Mint Cinnamon 20.03 vs Win10 | 3 écrans
Répondre