 Maintenant, nous allons passer à la connaissance de la base. C'est un souvenir. Nous allons prendre un tour de retour et nous allons réveiller les fundamentals de sécurité que nous allons utiliser après-midi dans le package. Nous allons donc introduire les protocoles IoT sur la communication sécuritaire afin d'understand ce que les providers de clots ont voulu et ce qu'ils ont sélecté. Nous allons ensuite réveiller les basics de cryptographie pour comprendre le corps de communication sécuritaire sur la sécurité IoT. Pour être plus spécifique, nous allons focusser sur les certifications X509. Probablement, vous savez ceci, mais je pense que c'est mieux pour référer notre mémoire. Parce que ces certifications sont des éléments pour l'authentification des serveurs de la device. Ce sera un point important. La dernière point que nous allons focusser est la communication sécuritaire comme la standard de communication sécuritaire utilisée pour la communication IoT. Donc, premièrement, la nécessité de sécurité pour un dispositif IoT. Depuis que c'est connecté sur Internet, c'est important pour les providers de services pour s'assurer que le dispositif IoT est stressouafi. Parce qu'ils veulent protéger leurs services. Donc, ce que l'utiliste voit, ce que l'utiliste intervient. Ils veulent protéger leurs réseaux. Donc, pour protéger les services de Daniel, à propos d'une bonne qualité et de bonne reliabilité. Et finalement, leur brand, donc leur réputation. Donc, l'entraînement de l'entreprise et le business de l'entreprise de l'entreprise de l'entreprise de l'entreprise. Donc, pour atteindre cette golde, donc, pour être considérée stressouafi, un dispositif IoT doit provider les qualités de sécurité suivantes. La communication sécuritaire. Donc, cela va aussi inclure l'authentication. Nous verrons cela en détails quand on regarde les TLS. Nous devons donner de la confidentialité et de l'intégrité. Donc, cela sera fait pour la cryptographie. Et finalement, nous devons assurer l'intégrité plateforme à tous les dispositifs au niveau fermaire. Donc, ici, la combinaison de la TSM32 et de la STSA nous permettra de faire ça. Donc, la communication sécuritaire. Donc, les services clout ont été sélectifs pour utiliser les standards des protocoles de communication sécuritaire. Donc, nous avons IoT Nodes avec des ressources limitées. Ils utilisent des protocoles de communication constrain comme MQTT et CoA. Ces protocoles, en termes, reliant sur la sécurité des transports de la TLS pour protéger la lien afin d'assurer la communication sécuritaire. C'est l'élément de la clé. Quand nous allons utiliser la cryptographie, ce qui est important pour nous c'est que nous allons utiliser deux catégories de cryptographie. La cryptographie avec une clé et les éléments de cryptographie avec deux clés. Donc, il y a deux clés de la cryptographie utilisées dans les systèmes IoT. Une utilise une clé pour protéger les données. Dans ce cas, nous avons une clé qui est connue par la sendeur sur le récepteur. Ce que nous avons établi entre la sendeur et le récepteur sera utilisé par la sendeur pour protéger la file et la même clé sera utilisé pour protéger la file par le récepteur. C'est la cryptographie de la cryptographie ou de la cryptographie symétrique. La confidentialité, ici, relève sur la clé de la clé qui est gardée en secret. C'est vraiment important. Vous pouvez voir l'issue ici pour la communication sécuritaire. L'autre clé a deux clés. Nous appelons un clé de paire. Ce sont les deux clés que nous avons ici dans la rède, la clé privée et la clé publique. Donc, ce clé fait que la clé est plus facile. Une clé publique ne peut facilement être shared. Il n'y a pas de secret. Il ne faut pas être gardé en secret. L'autre clé privé doit être gardé en secret. Donc, le récepteur va envoyer un clé publique de la rède de la clé publique afin d'encrypter les données. Et en fait, seulement le récepteur parce qu'il n'y a que le clé privé va pouvoir décrypter les données et récupérer le texte clair. Donc, c'est très basique mais nous devons le garder en mind parce que nous allons utiliser les deux clés de la prochaine rède. Un point important est aussi la certification digitale. Donc, pour cela, peut-être que nous pouvons commencer avec une définition de Wikipedia. Donc, en cryptographie, une certification publique aussi connue comme la certification digitale ou la certification identitaire est en document électronique utilisé pour prouver la certification publique. Donc, cette certification va inclure l'information des clés, l'information de l'identité de l'honor ce qu'on appelle le subject de la certification. Et il y aura une signature digitale de l'identité qui a vérifié le contenu de la certification. Nous appelons le issuer. Et si nous entrons cet issuer, nous pouvons entrer l'information contenue dans ce document électronique. Donc, quand vous vérifiez une certification, vous vérifiez la signature. Et si la signature est valide et que l'example de l'example de la certification traite le issuer, donc l'un qui signifie la certification, alors qu'il peut utiliser cette clé publique pour l'example de l'identité de l'honor. Donc, le format de la certification publique de la certification publique est défis par le X509. Parce que le X509 est très général, le format est plus constrain par les profils. Donc, ces profils sont défis pour certaines outils, comme l'infrastructure publique qui est défis dans le RFC 5280. C'est ce qu'on va utiliser. Donc, ce qui est important c'est que nous avons une certification d'autorité qui va assurer cette certification digitale. Cette certification d'autorité doit être une partie troisième et la certification va certifier l'unité publique par le nom du subject de la certification. Donc, probablement quelque chose que vous already savez, mais d'abord, nous allons l'utiliser extensivement. Donc, si nous prenons un exemple avec Alice, la certification digitale d'autorité, Alice va demander la certification digitale de la CIE, la certification d'autorité. Cette certification d'autorité va vérifier que Alice est vraiment Alice. Elle va générer et publier la certification. Donc, pour générer la certification, elle va mettre l'information sur Alice. Elle va mettre l'information sur la clé publique et la clé publique. Et puis, elle va signer avec la clé publique, la clé publique et personne ne sait ça. Mais, la clé publique de la certification d'autorité est bien connu. Il n'y a pas de secret sur ça. Un concept important qu'on va utiliser dans notre package est la chaine de certification. Donc, la chaine de certification peut être chaine. Cela signifie que vous pouvez obtenir une certification signée par votre 1er échoueur. Et en termes, cet échoueur a une certification signée par une certification d'autorité et la 2e échoueur a une certification signée par personne. Donc, dans notre exemple, ici, nous avons Alice avec sa clé publique. Nous pouvons voir que nous indiquons un échoueur qui est une certification intermédiaire. Donc, nous ne le savons pas. Nous ne le savons pas. Mais, pour vérifier l'échoueur, nous allons récupérer la clé publique et vérifier la signature. Si la signature est correcte, nous n'avons pas de certification de l'échoueur. Nous devons aller un plus plus loin dans la chaine et nous allons aller vers la route CA. Donc, la route CA est vraiment celle qu'on croit. Nous avons celle-ci dans notre database. Nous pouvons l'assurer. Nous allons récupérer la clé publique, vérifier la certification intermédiaire et, de cette façon, nous avons vérifié la chaine de certification. Donc, pour faire ça, nous allons récupérer quelque chose qui s'appelle la route store. Donc, la route store est une collection de prédéloadés certifications de route sur leurs publics, bien sûr. Et cette route store vit dans l'application. Toutes ces certifications que nous avons dans notre route store sont trustées. C'est pourquoi nous pouvons vérifier la chaine, parce que le top node nous l'a trustée. Donc, typiquement, si nous prenons l'exemple de votre laptop, il y a des webbrowsers trusteurs. Et parfois, ils sont même préinstallés sur des systèmes d'opérations. Donc, sur le site ST, nous avons déjà un store trusté sur nos laptops avec des routes CAs. Donc, cela permet à votre computer d'être capable de dire si la certification est invalidée, parce que si la route certificate n'est pas sur la liste de route trustée, cela vous rend compte que la certification n'est pas une chose trustée. Donc, pour les devices IoT, nous n'avons pas besoin d'un store trusté. Donc, c'est vraiment important de choisir les certifications de route que nous ferons. Donc, la sécurité de la transporte que nous avons vu dans la cryptographie, nous avons vu la certification. Donc, en fait, la sécurité de la transporte de la transporte est utilisée sur les certifications de X509 et sur l'infrastructure publique. TLS va permettre aux clients d'authentifier le serveur. Donc, c'est généralement fait que votre brosier va vérifier l'authenticité du serveur, sa identité. Mais, il va aussi permettre aux clients d'authentifier le serveur. C'est ce qu'on appelle la authentification mutuelle. Il va nous permettre aussi d'établir une clé de secrétaire. Et cette clé de secrétaire sera une clé symétrique qui sera la clé entre la botte IoT et le serveur. La cryptographie de l'authenticité peut être Diffie-Hellman, ce qui est le plus commun. La encryption que l'on utilisera après-midi peut être AES, pour exemple. Il va également assurer l'intégrité du message. Bien sûr, comme nous avons un ordinateur IoT qui est assez constrainable avec des capacités limitées en termes de mémoire et de processage, nous ne devons pas supporter les capacités de l'authenticité IoT. Cela signifie que le serveur de l'authenticité IoT s'agirait sur un subset de protocoles. Donc, quand vous construisiez votre component IoT, vous devez savoir ce que l'authenticité IoT a besoin. Vous devez inclutre ceci à l'authenticité IoT. Nous avons sélectionné les profiles utilisées par Amazon. Alors, let's refresher l'authenticité IoT avec un overview TLS. Alors, j'ai simplifié le protocole TLS juste pour évaluer les processus cryptographiques, l'authentication, la sélection de la clé, et le lien de la description. Alors, let's have a look at this process. First, we have a client, so the IoT node, sending the client a low message with the TLS version, the supported cifersuites and certificates are exchanged and signatures are verified. So, the server will send its server certificate to a IoT node. The IoT node will verify the server CA certificate based on a root CA we have in our trustor. And in turn, our device will send his device certificate to the server so the server can authenticate the device. Then we have a Diffielman key exchange. This is used to establish a shared secret. So, this symmetric key in gray here has been agreed based on Diffielman. So, the idea with Diffielman is that you already have a key pair for an asymmetric keys, your device key pair, public key, private key. So, you will send your public key to the server. The server will send you its private key, sorry. You combine it with your private key, the server combines your public key with its private key and based on some mathematics that I can't really explain, that's far beyond my knowledge, you agree on a symmetric key. That's the key element. We have a key for encrypting and protecting our link. So, now, all the exchanges we have can be encrypted with AES. First, authentication then a key exchange and finally, when the key is agreed, the symmetric key is agreed we have encryption of the link and we bring confidentiality this way.