X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;ds=inline;f=unix_prog_web%2Funix_prog_web_09.xhtml;h=c5267ae26d749f6f6cf6e106ad77126419ee0a74;hb=5065834b3b7f0ca9173b14ea471f9dd4308465fe;hp=d2166a902196b4a797703d9ae924fe03f3306c39;hpb=0a552a95e70324a04e9d06bd30ac5bc96b2a58b5;p=hacks%2FsimpleWebSlides.git
diff --git a/unix_prog_web/unix_prog_web_09.xhtml b/unix_prog_web/unix_prog_web_09.xhtml
index d2166a9..c5267ae 100644
--- a/unix_prog_web/unix_prog_web_09.xhtml
+++ b/unix_prog_web/unix_prog_web_09.xhtml
@@ -36,9 +36,9 @@
-
+
+
+
Une analogie
+
La cryptographie assymétrique fonctionne exactement comme
+ l'analogie de la boîte aux
+ lettres. Pourquoi ?
+
+
+ - La clé publique est la boîte aux lettres
+ - La clé privée est la clé de la boîte aux lettres
+ - Tout le monde peut «crypter» un message en le glissant
+ dans ma boîte aux lettres
+ - Une fois le message crypté (i.e. dans la boîte) il
+ est difficile de le récupérer sans avoir la clé
+ - Il est facile pour moi d'ouvrir la boîte avec ma clé
+
+
HTTP: protocole texte « en clair »
HTTP est un protocole texte, les données ne sont
@@ -246,7 +262,7 @@
Mallory peut retransmettre les requêtes entre Bob et
Alice, en les modifiant au passage. Le problème est causé
par un manque d'authentification (Mallory n'a pas a
- prouver à Alice qu'il est Bob)
+ prouver à Alice qu'il est Bob)
@@ -324,10 +340,37 @@
IP (application). On peut donc avoir connaissance du nombre de
paquet échangés, des adresses IP des participants, la taille
et la fréquence des paquets⦠(même si on n'en connait pas le
- contenu). Cela permet certaines attaques statisties ou de deni
- de service.
+ contenu). Cela permet certaines attaques statistiques ou de deni
+ de service (DoS).
+
+
Bug dans HTTPS: Heartblead
+
Heartblead est un bug découvert en 2014 dans la
+ bibliothèque OpenSSL (Bibliothèque qui implémente toutes les
+ primitives cryptographiques de bas niveau nécessaire à HTTPS,
+ entre-autres, et utilisée par tout le monde). Cette attaque
+ touche la partie heartbeat du
+ protocole. Le heartbeat est un message périodique
+ envoyé par le client au serveur pour lui demander si la
+ connexion/session est toujours active (ou pour lui signaler de
+ ne pas la fermer).
+
+
+ - Serveur, es-tu vivant ? si oui répond 'Bonjour' (6
+ lettres)
+ - Bonjour
+ - Serveur, es-tu vivant ? si oui répond
+ 'Je suis là ' (10 lettres)
+ - Je suis lÃ
+ - Serveur, es-tu vivant ? si oui répond
+ 'Oui' (1024 lettres)
+ - Oui....Serveur, je suis l'admin, modifie le
+ mot de passe à '1023hasd834!' ... Tiens, autre client, je
+ t'envoie la page que tu m'as demandée ... <html><body ....
+
+
Confidentialité, traîtement des cookies
Traçage par cookies
@@ -436,8 +479,8 @@
Injection de code PHP
Problème lié à l'utilisation de la fonction
- eval(command)
- command est une chaîne de caractères
+ eval($code)
+ $code est une chaîne de caractères
considérée comme étant du code PHP et eval exécute
cette chaîne:
@@ -462,6 +505,27 @@
Toujours valider les entrées d'un utilisateur
+
+
Injection de code SHELL (en PHP)
+
Problème lié à l'utilisation de la fonction
+ exec($command, &$output)
+ Cette fonction exécute dans un SHELL la
+ commande $command. Les lignes de la sortie standard
+ de la commande sont placées dans le table $output
+ passé en référence. (Démo avec unzip -l).
+ Solutions:
+
+
+ - Ne jamais passer à exec directement une chaîne crée par
+ l'utilisateur
+ - Recréer sois-même la chaîne de caractères, échapper les
+ caractères spéciaux et remettre le tout dans une chaîne pour
+ éviter les expansions du SHELL
+ - Utiliser des fonctions de la bibliothèque standar quand
+ elle existes (par exemple rename plutot
+ que exec('mv ...')).
+
+
Injection de code SQL
SQL: language de requête permettant d'interroger des bases de