Voyance connectée – Mon premier court métrage

Je voulais le faire depuis un petit moment et ça y est : j’ai osé! J’ai sorti mon premier court métrage. Le sujet est l’insouciance que nous avons à partager nos données personnelles sur Internet (et notamment sur les réseaux sociaux). Cette insouciance peut faire tomber notre vie privée dans de mauvaises mains (ou yeux).

Mon conseil : Soyez conscient que ce que vous partagez de vous sur les réseaux sociaux , parce que une fois sur Internet, cela sort de votre sphère privée et peut être à la portée d’inconnus.

La Blockchain pour les nuls

La blockchain qui est juste présentée comme la plus grosse révolution depuis Internet. Rien que ça. Pourquoi?

Parce que tout comme Internet, la blockchain va créer de nouvelles opportunités et faire tomber les barrières à l’entrée de nombreux secteurs d’activité aujourd’hui détenus par des gros acteurs.

La Blockchain sera à la transaction ce qu’Internet a été à l’information. Et dans le cas de la blockchain, ce sont les acteurs qui jouent le rôle d’intermédiaire de confiance dans les transactions qui vont voir leur position être remise en question (banque, notaire, et même les plateformes numériques comme Uber ou AirBnb).

 

Aujourd’hui une transaction financière entre 2 personnes nécessite l’intervention d’un tiers de confiance.

  • Coralie veut faire un virement à Christophe pour lui payer ses carottes,
  • Elle envoie l’ordre de transfert d’argent à sa banque,
  • La banque va vérifier si Coralie possède déjà bien le montant sur son compte et elle va aussi vérifier que c’est bien Coralie qui demande le virement,
  • Et si c’est le cas,  la banque va faire le transfert du montant demandé du compte de Coralie vers le compte de Christophe.

Ensuite, le rôle de la banque est aussi de garder une trace de tout ce que possède ses clients et une trace de l’ensemble des transactions effectuées. Pour notre explication, on dira que la banque stocke toutes ces informations dans un grand livre de compte.

 

Voyons maintenant comment avec la blockchain il est possible de s’affranchir de cet intermédiaire de confiance.

Tout d’abord, avec la blockchain, ce livre de compte devient public . C’est à dire qu’il n’est plus détenu que par un seul acteur mais est distribué à tous : chaque personne possède alors une copie de ce livre de compte et peut consulter l’ensemble des échanges présents et passés. Toutes les personnes qui possèdent ce livre de compte constitue le réseau de la Blockchain.

Reprenons le même exemple mais en appliquant les principes d’une transaction avec la Blockchain :

  • Coralie lance l’ordre de virement
  • Les différentes personnes du réseau vont alors vérifier dans leur livre de compte que Coralie possède bien le montant nécessaire pour la transaction.
  • Si c’est le cas, alors la transaction est validée.
  • Chaque personne va alors écrire cette transaction dans une nouvelle page de son livre de compte, ce qui met à jour tous les livres de compte de la blockchain.

Vous l’avez compris avec la blockchain ce n’est pas un seul acteur central qui valide ou non une transaction mais c’est l’ensemble des membres du réseau.

Maintenant imaginons que vous essayez de tricher par exemple en prétendant posséder plus ou en essayant de falsifier votre livre de compte, eh bien cela se va se remarquer car tous les autres verront que ce n’est pas ce qui est inscrit dans leur copie du registre. Ils contesteront donc l’information.

Et si on y réfléchit bien, dans ce système, on n’a même plus besoin de monnaie physique.

Dès que vous faites une transaction financière, il suffit de l’annoncer et tous les livres de compte mettront à jour l’information. Les livres de comptes font foi sur ce que chacun possède et sur l’historique des transactions. Vous pouvez vérifiez ce que vous possédez et ce que les autres possèdent. Et oui c’est le principe des monnaies virtuelles comme le bitcoin. On y reviendra plus tard.

Dans la vraie vie évidemment, ce ne sont pas des livres qui stockent et traitent l’information mais des machines avec de la puissance de calcul comme des ordinateurs ou des serveurs.

Techniquement, la blockchain peut donc être vu comme une base de donnée distribuée sur différents noeuds de stockage. Ces noeuds de stockage, ce sont les utilisateurs qui vont apporter avec leur machines de la puissance de calcul et de l’espace de stockage pour faire fonctionner la blockchain.

La blockchain est donc un système décentralisé maintenu par les participants du réseau eux-mêmes.

 

Tout comme le livre de compte est constituées des pages de transactions, la blockchain est une chaîne formée de “blocs de transactions”.

Chaque échange effectué entre ses utilisateurs est enregistrés sous forme de « blocs » qui, mis bout à bout, forme donc une « chaîne ». D’où la notion de “blockchain” chaîne de blocs.

Chaque bloc de la blockchain contient :

  • un ensemble de transactions, évidemment
  • Ensuite un bloc est caractérisé par un “hash”, le hash c’est une suite de caracteres unique servant à identifier le bloc, c’est l’empreinte du bloc en gros
  • Enfin, le bloc contient aussi le “hash” du bloc précédent qui est donc l’identifiant unique du bloc qui le précède (pour garantir l’ordre du bloc dans la blockchain)

 

Bon, maintenant, je vais entrer un peu plus dans le détails pour vous expliquer ce hash. Cela fait appel à des notions de cryptographie mais pas de panique je vais vous expliquer ça simplement.

En gros, un algorithme de hashage : c’est une fonction mathématique qui  va transformer un ensemble de données de départ en une suite de caractères.

Cette suite de caractère est donc le hash et il est spécifique et unique aux données qui ont été prises au départ, ce qui veut dire que Tout changement même infime dans le message implique un important changement du hash.

Ensuite, les fonctions de hashage ont une spécificité : elles ne marchent que dans un sens. Il n’est donc pas possible de retrouver le message initial à partir du hash,

On ne peut rien faire de la seule suite de caractère du hash

Le hash permet seulement d’avoir la garantie que les données de départ n’ont pas été modifié par quelqu’un.

Parce que s’il est modifié, le hash sera modifié et vous le verriez tout de suite.

Ici par exemple, on peut voir de façon évidente que le hash du bloc 5 de Christophe est différent, on peut donc en déduire que son bloc a été modifié.

 

Revenons maintenant au hash d’un bloc. Un nouveau bloc est identifié par son hash comme on l’a vu.

Et ce hash est notamment calculé à partir du:

  • hash du bloc précédent
  • et Les transactions validées du bloc

 

Passons maintenant au dernier point important de la Blockchain liée à la cryptographie : la signature électronique.

Chaque demande de transaction dans la Blockchain doit être signé par l’émetteur pour être validé.

Ainsi, si Nicolas essaye de dire que « Coralie donne 1000 BTC à Nicolas », les autres ne vous croiront pas tant qu’ils n’auront pas la preuve que c’est bien Alice qui a envoyé le message, et cette preuve c’est la signature d’Alice.

Pour comprendre le concept de signature électronique, on va rapidement voir le concept de cryptographie asymétrique.

Prenons encore l’exemple de Coralie qui veut signer son message, pour ça, elle va avoir besoin de génèrer un paire de clés de chiffrement :

  • Une clé privée, qui ne doit être communiquée à personne. Alice doit être la seule à posséder cette clé privée
  • Et une clé publique, qui peut et doit être communiquée à tout le monde. Ces clés publique sont stockés sur chaque ordinateur du réseau.
  • Ces 2 clés publiques et privées sont liés mathématiquement. On va voir maintenant en quoi.

 

Coralie veut lancer un ordre de virement (ex : »Je donne 10 BTC à Christophe), elle va chiffrer ce message à l’aide de sa clé privée. Chiffrer un message, ça veut dire le rendre incompréhensible. Pour pouvoir lire ce message de nouveau, il est nécessaire de le déchiffrer et le seul moyen c’est d’utiliser la clé publique associée créée par Coralie. En fait seule cette clé publique est capable de déchiffrer les messages qui ont chiffres avec cette clé privée.

Pour déchiffrer ce message sensée venir  de Coralie, les autres personnes du réseau vont donc utiliser la clé publique donnée par Coralie.

Si on a réussi à déchiffrer son message à l’aide de la clé publique de Coralie , alors on sait que que le message est bien de Coralie, parce que seul Coralie possède la clé privé associé.

C’est comme ça que dans la blockchain, les différentes personnes du réseau s’assure bien de l’identité du donneur d’ordre

Point suivant encore lié à la cryptographie et c’est le dernier rassurez-vous!

Dans la Blockchain, il n’y a pas de vrais noms.  Et heureusement! Vous n’avez tout de même pas envie que tout le monde sache ce que vous possédez et ce que vous faîtes comme transactions. Dans la pratique, on transfère les actifs d’une adresse à une autre.

L’adresse est tout simplement une hash de la clé publique. Quand un utilisateur génère une paire de clés, il génère donc automatiquement une adresse à partir de sa clé publique. C’est à cette adresse que les BTC seront envoyé. Grâce à ce système, l’anonymat des utilisateurs est préservés

C’est justement pour pouvoir garder l’anonymat que les cybercriminels demandent des versements en bitcoins via leur ransomware.

 

 

Les 2 blockchains les plus connus sont aujourd’hui Bitcoin (principalement) et Ethereum qui commence à faire parler d’elle. Ces blockchains fonctionnent avec leur propre cryptomonnaie

La blockchain Bitcoin a une cryptomonnaie qui porte le même nom, Bitcoin donc alors que la cryptomonnaie de la BC Ethereum est l’Ether. D’ailleurs Ethereum permet bien plus que les transactions en cryptomonnaie mais ça on verra plus tard dans la vidéo avec les smart contracts.

A noter que les noeuds du stockage sont aussi appelés les “mineurs”. Et Lorsque l’on parle de « miner » des bitcoins, cela veut dire utiliser la puissance de calculs des machines pour la résolution des problèmes mathématiques pour générer un nouveau bloc. Les mineurs qui ont permis de créer un nouveau bloc sont ensuite rémunérés pour ce travail avec de nouveaux bitcoins

 

Maintenant, prenons un exemple de transaction en bitcoin pour voir comment ça marche maintenant qu’on a tous les principes de la blockchain en tête.

  • Coralie veut transférer un bitcoin à Christophe. Elle transmet cette demande à l’ensemble du réseau.
  • Les mineurs vont vérifier l’ensemble de la blockchain pour s’assurer que Coralie possède bien ce bitcoin mais ils vont aussi vérifier que l’ordre donné émane bien de Coralie
  • Si tout est OK, alors chaque mineur travaille à forger un bloc contenant cette transaction
  • Le premier mineur qui réussit à créer le bloc transmet ce bloc aux autres membres pour vérification.
  • Pour qu’un nouveau bloc soit validé, il faut qu’il y ait un consensus entre les différents membres du réseau.
  • Revenons à notre transaction. Une fois le bloc validé par les membres du réseau, chacun ajoute ce dernier bloc deans leur copie de la blockchain
  • Et enfin, Christophe possède alors un nouveau bitcoin

Chaque nouvelle transaction ajoutée à la blockchain, ne pourra être effacée. Cela permet d’assurer la validité et l’authenticité d’une transaction

Jusqu’à présent on a parlé que de cryptomonnaies mais on peut très bien étendre ce principe de transferts à d’autres actifs

C’est par exemple le cas avec les titres de propriétés.

Au Ghana, une majorité des territoires ruraux ne sont pas enregistrés dans un cadastre officiel. Bitland, une organisation basée au Ghana, propose alors aux institutions et aux personnes d’enregistrer les titres de propriété sur la blockchain. La blockchain fournit un enregistrement permanent et vérifiable, et permet de cette façon d’aider le gouvernement ghanéen à résoudre les conflits.

Autre exemple d’actifs stockés dans la blockchain? Les diplômes. Le Massachussets institute of Technology  ou MIT commence à utiliser la blockchain pour certifier le diplôme de leurs étudiants. Le MIT associe le diplôme avec l’identifiant unique de l’étudiant. Ces données sont cryptées, grâce à une clé privée du MIT, et stockées dans la blockchain.

Les jeunes diplômés peuvent ensuite transmettre leur diplôme aux recruteurs, qui peuvent vérifier l’authenticité des informations sur un site du MIT.

Et à terme On peut même imaginer stocker dans la blockchain tous les documents légaux  (par exemple des certificats de naissance, mariage, divorce, testament, etc).

Autre cas d’usage : le caractère inaltérable et transparent de la blockchain permet de garantir la traçabilité d’un actif.

Et c’est pour ça que Carrefour a créee la première blockchain alimentaire en Europe. Le but est de garantir aux consommateurs  une traçabilité complète des produits commercialisés. Ainsi, tous les poulets d’Auvergne de Carrefour intégre un QR Code. Avec ce QR code, vous accèdez à l’historique des événements de la vie, de l’élevage, de la mort et du transport du poulet. Le client pourra s’assurer que le poulet a été élevé dans les conditions exigées par Carrefour.

Et enfin il y a une dernière utilisation de la blockchain qui très peu évoqué et qui pourtant peut être à l’origine de nombreuses d’innovations : ce sont les smart contracts. Et c’est ce que je vais vous expliquer maintenant.

Un contrat légal traditionnel définit les règles d’un accord entre plusieurs parties. Un Smart Contract va lui figer ces règles dans une Blockchain. Mais ce n’est pas tout : Dans un second temps,le Smart contract permet de déclencher automatiquement des actions en fonction des conditions fixés par le contrat, et tout ça sans nécessité d’action humaine. C’est pour ça qu’on les qualifie de « smarts »ou intelligents en français

Concrètement, c’est du code logiciel qui fonctionnent sur une chaine de blocs et est déclenché par des données externes

Allez un petit exemple de smart contracts :

Et c’est d’ailleurs en s’appuyant sur la Blockchain Ethereum que la société d’assurance Axa a lancé son premier smat contract Fizzy qui une assurance voyage pour les retards de vol d’avion entre Paris et les Etats-Unis.

Ce smart contrat déclenche automatiquement l’indemnisation de l’assuré en cas de retard de son avion  et tout ceci sans avoir besoin d’une intervention humaine

 

Et comme je l’ai dit au début, la blockchain a le potentiel pour « ubériser Uber ». Avec la  blockchain, les utilisateurs peuvent effectuer des transactions de pair-à-pair c’est à dire directement entre eux : que ce soit avec un chauffeur, un loueur ou un autre particulier.

Ce qu’il est possible de se passer des plateformes intermédiaires, comme Uber, AirBnB, Blablacar qui constituent aujourd’hui le cœur de la révolution numérique apportées par Internet

 

Les microservices expliqués simplement

Pour donner une définition des microservices, on peut dire que c’est une approche d’architecture logicielle où une application est décomposée en plusieurs petits services. Et ces services sont souvent spécialisés dans une seule tâche.

A noter que quand on parle de service, il faut comprendre service métier, c’est à dire un groupe de services techniques qui fournissent une fonctionnalité avec un sens métier.

Si on prend l’exemple d’un site de vente en ligne, on aura des microservices par exemple pour le panier, la page d’accueil, l’historique, l’inventaire, etc

Ensuite, l’architecture microservices a été inventée pour répondre aux problèmes rencontrées par les applications dites monolithes.

Une application monolithe est une application qui a pour ambition de traiter toutes les demandes possibles et répondre à un maximum de cas d’usage. Sauf qu’avec le temps, les applications ont tendance à grossir en intégrant toujours plus de nouvelles fonctionnalités mais en supprimant rarement les anciennes fonctionnalités, même lorsqu’elles deviennent inutiles ou obsolètes. Et avec le temps les différentes briques développent des interdépendances entre elles. Et avec ça, la quantité de code augmente et ce code devient de plus en plus complexe.

Il devient alors impossible d’avoir en tête un modèle global du projet.
On se retrouve devant une application difficile à maîtriser et à faire évoluer.

Enfin, plus un projet est gros, plus il est critique pour l’entreprise, et moins on va prendre de risques pour tester des nouveautés, on va donc préférer la stabilité à l’innovation

La réponse de l’architecture microservices à ce problème est simple :  découper l’application en différents modules fonctionnels, en microservices.

Chaque microservice exécute une partie spécifique et unique de l’application. Et ces services peuvent être accédés par le client via l’API du microservice correspondant. Le but de l’architecture microservices est de redonner un maximum d’agilité et d’évolutivité à une application.

Côté technique l’architecture microservices est très souvent couplé à la technologie des conteneurs, et notamment Docker.

Quant aux conteneurs, Le principe est d’avoir un conteneur par unité de microservices. Ainsi, Chaque microservice a son propre environnement d’exécution pour héberger son code. Avec les conteneurs, Il est donc très facile en fonction du besoin d’adapter le nombre de microservices, à la hausse comme à la baisse.

SI un service est plus demandé lors d’un pic de charge, il suffit de créer plus de conteneurs fournissant ce microservice. A contrario, quand la demande de ce service diminue, il suffit de ne garder que le minimum de microservices pour couvrir la demande. Dans l’architecture microservices, il suffit juste d’adapter le nombre de ce microservice au besoin alors que dans les application monolithe, il aurait fallu modifier la totalité de l’application à cause des interdépendance.

Et c’est en étant couplé avec l’utilisation des conteneurs que Chaque microservice devient autonome vis à vis des autres microservices
Un microservice peut être alors modifiée, supprimée ou déployée sans impacter les autres microservices.

Ce qui veut dire qu’avec une application découpée en microservices, il est plus simple de cibler les différentes parties impactées d’une application lors d’une évolution. Ce qui facilite la modification des parties concernées sans risque pour le reste de l’application non impliqué.

Du coup, les mises à jour et nouvelles fonctionnalités peuvent être déployées beaucoup plus facilement et rapidement, rendant le déploiement continu possible.

Concernant l’organisation humaine, la taille des projets est limitée à une équipe de quelques personnes. Chaque équipe est autonome et va donc gérer son organisation et sa base de code.
Une équipe est alors libre des choix techniques en fonction de leurs besoins propres.

Terminons par des points d’attention à propos des microservices
Et tout ce que l’on vient de voir doit permettre aux entreprise d’avoir un atout très très important et c’est d’ailleurs ça qui va pousser à l’adoption des microservices.

Et cette carotte c’est le fait d’avoir un time to market plus rapide. Le time to market c’est le délai de mise sur le marché.cad le temps qu’il y a entre la naissance d’une idée jusqu’à son lancement sur le marché. Aujourd’hui un time to market rapide est devenu un facteur stratégique majeur, il permet à une entreprise de prendre un avantage concurrentiel décisif sur ces concurrents en intégrant la toute dernière innovation dans ses produits ou d’adapter ses produits aux nouveaux besoins du marché.

Comme on l’a vu tout à l’heure les microservices permettent justement de déployer plus rapidement et facilement. Ce qui veut dire être capable de s’adapter plus rapidement à la demande du marché et aux nouveautés.

Par contre et il est important de souligner :

Plus les itérations sont nombreuses et rapides (notamment dans le cadre d’un déploiement continu), plus cela va demander cela va demander aux équipes de se synchroniser rapidement.
Cela va demander une organisation mature pour la communication et coordination entre les équipes et une synchronisation de leurs priorités et objectifs pour qu’ils soient alignés avec les enjeux business

 

Qu’est ce qu’un bot? (chatbot, botnet, spambot…)

Le terme Bot est la contraction du mot anglais“robot”. Et les bots sont des programmes informatique développés à l’origine pour effectuer des tâches répétitives.

Principalement parce que cela permet de faire économiser du temps aux humains et d’autre part parce que les bots sont bien plus efficace pour ce genre de tâches répétitives. Du coup il existe autant de variété de bot que de tâches automatisables. Et comme nous les humains, on est des grosses feignasses, on demande aux bots de faire plein de trucs à notre place.

Voyons quelques exemples pour mieux comprendre le grand nombre mais aussi la diversité des bots sur le web.

Premier exemple, les robots d’indexation chez Google. Ces bots passent leur temps à parcourir le web, à analyser des tonnes d’informations pour pouvoir indexer les pages web pour le moteur de recherche. C’est d’ailleurs comme ça que Google arrive à proposer des résultats pertinents. C’est donc le boulot d’indexation de ces bots qui t’évite de perdre des heures à regarder chaque page web une par une à la recherche de la bonne information.

Autre exemple : Sur twitter, des comptes twitter réagissent à des mots clés spécifiques. Par exemple si tu tweetes le mot Bitcoin, tu verras des comptes débarquer liker ton tweet ou même te répondre. Ce sont des compte twitter qui peuvent être tenus par des vraies personnes mais qui sont aidés par des bots. Le but de ces bots c’est de repérer toutes les personnes intéressées par le sujet et essayer de capter leur attention.

Ensuite, Il est aussi possible de créer des bots pour lire des vidéos Youtube  ou mettre des likes automatiquement. Il y a des entreprises qui vendent des likes.

Bref tout ça pour dire qu’on peut faire faire et qu’on fait déjà faire beaucoup de choses sur internet par des bots, ce qui explique qu’ils sont en plus grand nombre en terme de trafic sur le web que les humains.

Bon là c’étaient des exemples de bots qui exécutent des tâches simples et basiques. Mais avec le progrès, certains bots deviennent des applications à part entière avec une gamme très large de fonctionnalités. En effet, certains intégrent même des programmes d’Intelligence Artificielle. Prenons l’exemple des des chatbot qui sont très à la mode en ce moment.

Alors le chatbot, c’est un logiciel programmé pour simuler une conversation en langage naturel par messagerie d’où le terme “chat”.

C’est le cas avec les bots messenger de facebook : tu peux demander le temps qu’il fait dehors avec le chat Bot Poncho ou commander une pizza via le chatbot de Pizzahut.

Plus besoin de lignes de commande, suffit juste de leur poser une question comme si on s’adressait à un autre humain. Et le chatbot va au besoin affiner la demande à travers une conversation pour mieux comprendre le besoin et ainsi fournir le service demandé.

Comme ça tu n’as plus qu’à demander à ton chatbot. Et le chatbot lui va s’occuper de s’interfacer avec la bonne application ou base de données pour répondre à ta demande. Ces chatbots se comporte donc comme des assistants personnels.

Et le niveau suivant de ces bots assistants personnels c’est de s’affranchir de l’ordinateur ou du mobile, on peut par exemple citer Google Home ou Alexa d’Amazon. Dans ce cas, il suffit juste de parler, c’est encore plus simple et plus naturel.

Bon, Là j’ai parlé des bots sympas qui aident les humains mais il existe aussi des mauvais bots dont les actions ont une finalité malveillante. Par exemple, il existe une version mauvais bot d’indexation Google, c’est le spambot.

Les spambots parcourt le web à la recherche des adresses mail qu’il trouve sur des sites web ou de forums de discussions par exemple. Le but de construire des listes d’adresses pour l’envoi de spam.

Les mauvais bots ne sont que des actions malveillantes automatisés après tout.

Enfin, une catégorie de mauvais bot bien plus dangereux : les Botnets.

Les botnets désignent un réseau de machines zombies, c’est à dire contrôlés à l’insu des utilisateurs par un cybercriminel.

Les botnets malveillants peuvent par exemple :

  • Réaliser des opérations de phishing ;
  • Infecter d’autres machines par diffusion de malwares ;
  • Participer à des attaques de déni de service (qu’on appelle aussi DDoS) ;
  • Récupérer des informations sur les machines compromises (mots de passe, informations personnelles ou données bancaire).

Le chiffrement SSL/TLS pour les débutants

Bonjour à tous!

Dans cette vidéo je vais vous parler de chiffrement des communication sur le web. Plus concrètement c’est lorsque vous surfez sur des sites en https. Alors oui, vous savez maintenant que le S c’est pour dire que la communication est sécurisée car chiffrée.

Et dans cette vidéo, je vous explique comment tout ça marche dans cette vidéo.

 

 

Mais voyons ce qu’est le chiffremement web avec un exemple :

  • Lorsque vous vous connectez sur le site de votre banque, la connexion se fait toujours en https pour des raisons de sécurité
  • Vous pouvez vérifier ce sera toujours le cas (ou alors changez de banque!)
  • Mais que se passerait-il si la communication se faisait en HTTP?

Eh bien c’est simple, toutes les informations échangées transiteraient en clair. Ce qui veut dire qu’une personne malveillante peut intercepter les échanges avec votre banque et donc avoir toutes les informations qui y transitent

En fait le HTTPS c’est une connexion HTTP dans un tunnel chiffré SSL/TLS. Et ce tunnel va sécuriser vos échanges car mêmce si une personne malveillante intercepte vos échanges, les informations sont chiffrées et donc incompréhensibles pour elles.

SSL veut Secure Sockets Layer. TLS veut dire Transport Layer Security. SSL et TLS sont des protocoles de sécurisation des échanges sur Internet. Aujourd’hui c’est TLS qui est utilisé, SSL étant obsolète. Mais on parle parfois de SSL/TLS pour parler juste de TLS.

 

Maintenant voyons ce qui se passe derrière ce chiffrement SSL/TLS.

Le chiffrement consiste à transformer vos données afin de les rendre illisible grâce un algorithme de chiffrement et une clé de chiffrement

La clé de chiffrement est utilisé par un algorithme, pour chiffrer et déchiffrer des données utiles (l’information qu’on veut faire transiter). La clé de chiffrement c’est une donnée (en gros c’est une suite de bits comme une phrase ou une série de chiffres) qu’on peut voir comme un mdp. Un algorithme de chiffrement c’est juste une méthode de chiffrement, cad une façon de rendre inintelligible vos données.

Pour pouvoir lire ces données de nouveau, il est nécessaire de connaître l’algorithme et la clé de chiffrement pour les déchiffrer

 

Maintenant que vous avez compris ça, passons à la notion de cryptographie symétrique :

  1. Ici Alice et Bob ont la même clé secrète.
  2. Alice veut envoyer un message à Bob. Elle veut que personne d’autre que Bob ne puisse lire ce message. Du coup, elle prend sa clé secrète et va chiffrer le message avec
  3. Elle envoie le message chiffré à Bob
  4. Lorsque Bob recoit le message d’Alice, il ne peut pas encore le comprendre à la reception. Il faut d’abord qu’il déchiffre le message avec la même clé secrète. Et c’est seulement là qu’il pourra lire le message
  5. Et si Bob veut répondre à Alice de façon sécurisé, il peut utiliser la clé secrète pour chiffrer sa réponse et ensuite l’envoyer à Alice.

Il y a donc une seule clé pour chiffrer et déchiffrer un message

Le Gros problème de la cryptographie symétrique c’est l’échange de ces clés. En effet, Le fait que les 2 personnes. doivent utiliser la même clé impose d’avoir un canal sécurisé pour l’échange de la clé parce que si quelqu’un d’autre arrive à s’emparer de la clé… il sera capable de lire le message…

Passons maintenant à la cryptographie asymétrique

Le principe du chiffrement asymétrique repose sur l’utilisation de 2 clefs :

  • on appelle une des 2 clefs la clef privée et l’autre la clef publique.
  • Quand l’utilisateur chiffre avec la première clef, il peut déchiffrer avec la deuxième clé
  • Quand l’utilisateur chiffre avec la deuxième clef, il peut déchiffrer avec la première clef.
  • Peu importe l’ordre des clés utilisés parce qu’en fait ces 2 clés ou algorithme de chiffrement sont liés mathématiquement

Reprenons avec Alice qui a maintenant une clé privée et une clé publique :

  • La clef privée n’est jamais transmise à personne (ça porte bien son nom d’ailleurs).
  • Par contre, Alice peut diffuser sa clé publique à n’importe qui,
  • Donc là Alice a envoyé sa clé publique à Bob pour que les 2 puisse communiquer

Voyons maintenant comment ça marche :

  1. Ici Bob et Alice se sont transmis leur clé publique et garde leur clé privé
  2. Bob veut envoyer un message à Alice et veut que seul Alice puisse lire le message. Il chiffre donc son message avec la clef publique d’Alice
  3. Alice déchiffre le message avec sa clef privée (il n’y a qu’elle qui possède cette clef). Alice est la seule à pouvoir déchiffrer les messages qui lui sont adressés
  4. De façon similaire, Si Alice veut répondre à Bob. Alice utilise la clef publique de Bob pour envoyer le message;
  5. Bob utilisera sa propre clef privée pour le déchiffrer le message

Ce procédé assure la confidentialité de l’échange c’est-à-dire être sûr que Alice et Bob sont les seuls à échanger.

Bob est sûr que seul Alice peut lire son message puisque Bob a utilisé la clef publique d’Alice pour chiffrer son message. Seule la clé privé d’Alice peut déchiffrer le message de bob. Bob est donc sûr que seule Alice peut lire le message et inversement pour Alice avec la clef publique de Bob

Ensuite la cryptographie asymétrique garantit aussi l’authenticité de l’expéditeur :

  • C’est-à-dire que pour Bob c’est être sur le message d’Alice vient bien Alice)
  • Eh oui parce que si Bob réussit à déchiffrer le message avec la clé publique d’Alice c’est que le message a été chiffré avec la clé privée d’Alice
  • Tous ceux qui ont la clé publique peuvent déchiffrer le message d’Alice, mais seule Alice possède sa clé privé
  • Si Bob arrive a déchiffrer le message avec la clé publique d’Alice il sait que le message est bien d’Alice

Le problème va venir de la transmission de la clé publique. Notamment si une personne malveillante, qu’on va appeler M pour la suite, se positionne entre Alice et Bob, et se fait passer pour l’un d’eux et donne sa clé publique à la place. C’est l’attaque du MITM ou de l’homme du milieu en français

Il va diffuser une clé publique à Bob en se faisant passer pour ALice. Bob croit alors que c’est la clé publique d’Alice. Alice et Bob ont tous les deux la clef publique de M, en pensant qu’ils ont celle de leur interlocuteur. M intercepte et modifie l’échange de clefs entre Alice et Bob.

Du coup, lorsque Alice veut envoyer un message à Bob, elle va l’envoyer en chiffrant avec la clé publique supposé appartenir à Bob. En fait, M va intercepter le message, il va le déchiffrer avec sa clé privé et lire le message. Ensuite pour ne pas éveiller les soupçon, il va chiffrer le message avec la clé publique de bob et envoyer le message à Bob.

Comme ça Bob déchiffre avec sa clé privé pour lire le message. M est donc capable de lire les conversations entre les 2 et de récupérer des informations importantes.

Et à l’inverse, quand bob veut échanger avec alice, il utilise la clé publique de M pour chiffrer et M fait la même chose cad qu’il intercepte le message, l’ouvre, le lit et le rechiffre avec la clé publique d’alice.

Pour éviter que probleme de MITM, il faudrait pouvoir certifier l’identité du porteur de cette clé. Et ça c’est le rôle du certificat.

Un certificat  est un fichier avec ensemble de données contenant :

  • une clef publique (au minimum)
  • des informations pouvant identifier la personne : nom, e-mail, localisation…
  • des informations liées au certificat, notamment sa date de validité
  • Et une signature électronique d’une autorité de certification

La signature électronique est la preuve le certificat a bien été vérifiée par l’autorité de certification puisque qu’il y a sa signature. Elle est la garantie de son intégrité (cad la preuve que le document n’a pas subit d’altération entre l’instant où il a été signé par son auteur et celui où il a été consulté).

A noter que la signature électronique du certificat c’est la combinaison de vos information et de votre clé publique, tout ça chiffré par la clé privé de l’autorité de certification

une Autorité de Certification est l’institution responsable d’émettre ces certificats et elle garantit que les informations contenus dans ces certificats sont correctes.

Dans notre cas, si Alice veut créer son certificat, il faut qu’elle fournisse sa clé publique et des informations sur elle à l’autorité de certification et des sous (parce que ce n’est pas gratuit), qui elle vérifie tout ça, L’autorité de certification va créer un certificat pour Alice avec la signature électronique de l’AC,

Le certificat atteste donc  que la clef publique du certificat appartient bien à la personne désignée dans le certificat.

 

Maintenant que vous avez toutes ces notions en tête, on peut passer à l’explication du chiffrement SSL/TLS.

Imaginons que vous voulez vous connecter à votre banque, vous allez taper l’adresse de votre banque en https sur votre navigateur :

  1. Vous allez envoyer une demande de connexion sécurisée à votre banque
  2. Votre banque va alors vous envoyer son certificat avec sa clé publique
  3. Votre navigateur vérifie la signature du certificat et sa validité. Il faut savoir que le navigateur a déjà un certain nombre de clés publique d’AC dans sa base de données
  4. Ensuite le navigateur va prendre la clé publique de l’AC qui a certifié le certificat de la banque.
  5. Il va déchiffrer la signature du certificat, s’il y arrive. Cela veut dire que le certificat est de confiance car seul l’AC possède sa clé privé
  6. Si tout est OK, le client et le serveur négocie ensemble pour se mettre d’accord sur un algorithme de chiffrement ainsi qu’une clé secrète commune qu’ils vont utiliser pour cette session d’échange, connus de 2 seulement comme dans la cryptographie symétrique
  7. C’est avec cette clé que vous allez chiffrer et déchiffrer vos échanges avec votre banque et donc communiquer de façon sécurisé

L'architecture technique en cookies