Sécurité et gestion des clefs de chiffrement
Rachid Elazouzi
difficile de vérifier qu'un système fait bien ce qu'on lui demande, impossible de vérifier qu'il ne fait pas ce qu'on ne lui demande pas
le but de la sécurité : la confidentialité, l'intégrité et la disponibilité des données
"je peux mettre mes données dans un serveur sécurisé, et le protocole je suis le seul à la connaître : c'est un avantage pour moi, je ne suis pas la cible des attaques"
"ce qui est intéressant pour vous, ce n'est pas de trouver des solutions, c'est de comprendre le risque"
"tous les jours vous utilisez HTTPS, donc vous utilisez des clés publiques et privées"
"on verra à la fin de ce cours comment, sans rien partager, on arrive à sécuriser les communications"
les attaques viennent à 50% de l'extérieur et à 50% de l'intérieur, "il ne faut donc pas se focaliser sur l'extérieur, c'est pour ça que dans les banques ils gardent toutes les traces"
attaques coordonnées
Tsutomu Shimomura (IBM) : comment pirater une machine située sur les locaux et continuellement surveillée ? "le seul moment où il n'y a plus d'activité aux États-Unis c'est à Noël"
Kevin Mitnick : pour réussir l'IP Spoofing, il faut faire du flooding sur l'hôte que la victime cherche à joindre (= machine de confiance) pour le mettre hors service
hameçonnage : obtenir des renseignements personnels dans le but de perpétrer une usurpation d'identité, en faisant croire à la victime qu'elle s'adresse à un tiers de confiance
"tu ne peux pas dire aux gens de faire un mot de passe compliqué, ils ne le feront jamais, les gens cherchent la facilité"
"on pense que la probabilité d'être attaqué est tellement faible qu'on n'a pas envie de se compliquer la vie"
"maintenant vous savez, on peut signer de façon numérique, c'est beaucoup plus efficace qu'à la main"
ex. le passeport contient la clé privée, l'aéroport ne connaît que la clé publique de la préfecture qui a délivré le passeport
-> comment peut-on chiffrer et déchiffrer avec deux clés différentes ?
fonctionnement d'HTTPS :
"on pourrait le faire avec des clés privées et publiques, mais ça demande beaucoup plus de puissance de calcul, c'est l'inconvénient du chiffrement asymétrique"
chiffrement asymétrique :
le premier algo de chiffrement asymétrique est élaboré au début des années 70 mais gardé secret sous la pression des services secrets britanniques
opération mathématique facile à effectuer dans un sens, mais très difficile dans l'autre sens (ex. logarithme discret) -> il faut qu'il soit impossible de trouver la clé privée à partir de la clé publique
la clé privée doit être connue uniquement de son propriétaire
mais il faut aussi vérifier l'identité de la personne, puisque n'importe qui peut accéder à la clé publique : il faut donc authentifier la personne avec sa clé publique
on peut ensuite utiliser les deux à la fois : confidentialité + authentification
avantages de l'asymétrique :
ex. : utiliser l'asymétrique pour sécuriser l'échange de clés de façon symétrique
c'est ce qu'on appelle le cryptosystème hybride => combiner les avantages des deux systèmes
AES est basé sur des concepts du XIXe siècle inventés par Galois, "les mathématiciens ont mis 10 ans à les comprendre"
à l'heure actuelle, AES n'a toujours pas de faille majeure connue
RSA : "ce n'est pas les premiers à avoir trouvé la technique des clés privées et publiques, on a découvert plus tard que d'autres l'avaient trouvé avant mais l'avaient gardée secrète"
Diffle-Hellman : "beaucoup plus rapide" mais n'est sûr que si le canal est authentifié (sensible aux attaques MitM)
DNS cache poisoning : "le problème dans l'internet, c'est qu'on accepte toujours la première réponse"
login Ubuntu : Etudiant/étudiant84
créer une 1ère machine sous Virtualbox depuis l'image fournie sur Moodle
dans la fenêtre Configuration :
dans la machine virtuelle "Serveur" (appuyer sur Entrée si le prompt $
ne s'affiche pas)
net-tools
est bien installé en lançant ifconfig
(à défaut, suivre les instructions données par la commande)/etc/network/interfaces
(par ex avec sudo nano /etc/network/interfaces
) pour régler l'IP d'eth1 sur une adresse statique 192.168.1.1 (voir pdf sur Moodle)auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
nano
: sauvegarder (Ctrl+O, puis Entrée) et quitter (Ctrl+X)ifconfig -a
(le cas échéant, initialiser avec sudo ifup eth1
)dans Virtualbox, cloner la 1ère machine et renommer le clone "PC1"
dans la machine virtuelle "PC1", modifier l'IP d'eth1
en 192.168.1.2
tester la connexion entre les 2 machines virtuelles (à l'aide de ping
suivi de l'adresse IP)
si nécessaire, activer ssh sur "Serveur" (sudo systemctl start ssh
)
sur "PC1", générer un duo de clés RSA : ssh-keygen -t rsa
~/.ssh
)ssh-copy-id stud@192.168.1.1
ssh stud@192.168.1.1
=> en principe, aucun mot de passe ne doit être demandécréer un nouveau duo de clés, cette-fois ci en renseignant une phrase de passe mais toujours sans nom
répéter les autres étapes à l'identique
[TODO : ssh-agent]
"donc on a fait un serveur, créer les adresses IP à la rigueur ce n'est pas important, quelqu'un l'aura fait pour vous, donc imaginez que notre réseau est déjà prêt"
"on ne va donc pas faire une évaluation sur la configuration de Virtualbox, moi je configurerai le serveur moi-même"
"la seule chose que vous devez comprendre, c'est comment obtenir l'information, donc ifconfig
"
"tout le but de ce cours, c'est d'utiliser ssh
pour ne plus avoir à saisir de mot de passe"
Mot de passe : le fichier passwd
est stocké dans /etc
et non dans /etc/passwd
idem pour shadow
Signatures :
ssh-keygen
mais la commande openssl
donnée dans le pdf sur le Moodle : openssl genrsa -out nomDeLaCle 2048