Finish cours crypto

This commit is contained in:
flyingscorpio@clevo 2022-10-12 22:15:09 +02:00
parent a07db6f0f2
commit 87c4c3e44e

View file

@ -428,15 +428,15 @@
Il n'y a pas de solution dans le standard 802.11 au problème DoS.
Il faut donc un mécanisme de détection et réagir dès qu'une attaque a lieu.
\subsection{Premières solutions}
\paragraph{Premières solutions}
\begin{itemize}
\item Planification radio pour limiter les débordements.
\item Éviter les AP pirates (rogue AP)~: par exemple en utilisant des controlleurs WiFi.
\item Masquer le SSID~: fausse bonne idée, car l'attaque le trouvera de toute façon dans toutes les trames.
\item Filtrage par adresse MAC~: lourd à mettre en \oe{}uvre, et pas très utile (on peut faire du spoofing).
\item Créer un réseau WiFi isolé avec des VLANs~: pas productif.
\end{itemize}
\begin{itemize}
\item Planification radio pour limiter les débordements.
\item Éviter les AP pirates (rogue AP)~: par exemple en utilisant des controlleurs WiFi.
\item Masquer le SSID~: fausse bonne idée, car l'attaque le trouvera de toute façon dans toutes les trames.
\item Filtrage par adresse MAC~: lourd à mettre en \oe{}uvre, et pas très utile (on peut faire du spoofing).
\item Créer un réseau WiFi isolé avec des VLANs~: pas productif.
\end{itemize}
\subsection{Chronologie}
@ -528,7 +528,26 @@
Ils sont donc simples à implémenter et à déchiffrer.
Par ailleurs, pas besoin de faire de bourrage (rendre la taille des blocs identiques).
\paragraph{Attaque sur RC4}
Un vecteur d'initialisation (IV) permet d'éviter la réutilisation du keystream.
\paragraph{Danger de réutilisation de l'IV}
Le WEP utilise des IV de 3 octets (24 bits).
Chaque paquet reçoit un nouvel IV\@.
La clé RC4 de chaque paquet est alors composé de l'IV, comme préfixe du secret partagé.
Si la clé et l'IV sont les mêmes, alors le même keystream est utilisé.
Le problème dans WEP, c'est que les IV sont fréquemment répétés.
L'IV est souvent un compteur qui commence à zéro.
Cela veut dire qu'un redémarrage provoque une réutilisation d'IV\@.
De plus, comme il n'y a que 16 millions d'IV possibles, après avoir intercepté suffisamment de paquets, on est quasiment sûr de les répéter.
Il y a 50\% de chances de réutilisation des clés après $2^{12}$ paquets.
\paragraph{Intégrité WEP~: CRC}
L'intégrité est assurée à l'aide d'un CRC\@.
Mais le CRC ne vérifie pas l'intégrité cryptographique.
Il est conçu pour détecter les erreurs aléatoires, pas les changements intelligents.
\subsection{WPA}
@ -538,7 +557,7 @@
On a ajouté un compteur pour empêcher les attaques par rejeu.
Le vecteur d'initialisation a une taille de 48 bits.
Les clés sont actualisées dynamiquement grâce à TKIP\@.
Dans WPA2, on utilise AES à la place de RC4.
Dans WPA2, on utilise AES à la place de RC4 (utilisé dans WEP et WPA).
\paragraph{WPA Personnel et Entreprise}
@ -548,7 +567,9 @@
\item Personnel --- Utilise des clés pré-partagées (PSK).
Chaque appareil connecté à l'AP utilise le même secret.
L'utilisateur doit entrer une clé de 256 bits.
L'utilisateur doit entrer une clé de 256 bits ou une passphrase utilisée pour générer une clé.
La passphrase est hachée conjointement avec le SSID\@.
L'authentification est basée sur \texttt{EAP-MD5}.
\item Entreprise --- Authentification par serveur IEEE 802.1X, qui distribue différentes clés aux utilisateurs.
Souvent le serveur utilisé est Radius, ce qui permet de centraliser la gestion des informations d'identification des utilisateurs.
@ -558,34 +579,22 @@
\paragraph{Robust Security Network (RSN)}
\begin{itemize}
\item Contrôle d'accès~: on se base sur 802.1.
\item Contrôle d'accès~: on se base sur IEEE 802.1.
Le contrôle d'accès est basé sur le port.
Quand on est branché cela ne veut donc pas dire qu'on est authentifié.
\item Authentification et génération des clés~: on utilise Extensible Authentication Protocol (EAP).
\item Confidentialité, authenticité, intégrité et protection anti rejeu~: on utilise TKIP et CCMP\@.
\end{itemize}
\paragraph{Le modèle 802.1X}
\begin{center}
\begin{tikzpicture}
\node [rectangle,draw,thick,minimum height=3cm] (supplicant) at (0,0) {Système Supplicant};
\node [rectangle,draw,thick] at (0,-1) {Client PAE};
\node [rectangle,draw,thick] at (4,-1) {Controlleur PAE};
\node [rectangle,draw,thick] (radius) at (8,0) {\parbox{3.1cm}{\centering Serveur \\ d'authentification \\ (Radius)}};
\end{tikzpicture}
\end{center}
\paragraph{Phases opérationnelles de 802.11i}
\begin{enumerate}
\item Politique de sécurité ---
\item Authentification ---
\item \textbf{Politique de sécurité} ---
Le probe request (Open System 802.11) renvoie toujours un ``Authentication Success'', pour des raisons de compatibilité des équipements.
La véritable authentification se fait dans la phase 2.
\item \textbf{Authentification} ---
Après avoir détecté qu'on est en WPA Entreprise (pas de PSK), on va joindre un client Radius, qui demande une identité, \emph{Request Identity}, à laquelle sera répondue une \emph{Response Identity} (802.1X/EAP).
Le client Radius fait alors une \emph{Request Identity} au serveur Radius.
Ce serveur Radius va alors dériver la clé maîtresse dans un message EAP spécifique.
@ -602,9 +611,9 @@
C'est dans ce tunnel que l'on authentifie le client.
On peut aussi utiliser EAP/TTLS (Tunneled TLS), ce qui permet de supporter d'anciennes méthodes non supportées par EAP, car on les encapsule dans un tunnel.
On peut alors par exemple utiliser \texttt{md5}, même s'il ne génère pas de clé maîtresse.
On peut alors par exemple utiliser \texttt{MD5}, même s'il ne génère pas de clé maîtresse.
\item Dérivation et distribution des clés ---
\item \textbf{Dérivation et distribution des clés} ---
Une fois que le client est authentifié, le point d'accès initie un 4-way handshake.
Il permet de~:
@ -612,7 +621,8 @@
\item confirmer la connaissance de la PMK par le client
\item dériver une nouvelle PTK
\item installer les clés de chiffrement et d'intégrité
\item
\item chiffrer le transport de la GTK
\item confirmer la suite de chiffrement choisie
\end{itemize}
\begin{enumerate}
@ -633,8 +643,25 @@
\item GTK --- Group Transient Key (pour le multicast).
\end{itemize}
\item \textbf{Confidentialité et intégrité des données} ---
Deux algorithmes de chiffrement sont possibles~: TKIP et CCMP\@.
TKIP procure des corrections pour chaque faille du WEP~:
\begin{itemize}
\item intégrité des messages~: un nouveau MIC (Message Integrity Code) peut être implémenté de manière logicielle sur processeurs lents
\item IV~: nouvelle méthode de sélection des IV, anti-rejeu et augmentation de la taille de l'IV
\item Per Packet Key Mixing~: pour obtenir des clés en apparence non liées
\item gestion des clés~: nouveau mécanisme pour la génération et la distribution des clés
\end{itemize}
CCMP (Counter-Mode/Cipher Block Chaining Message Authentication Code Protocol) est basé sur le chiffrement par bloc AES\@.
C'est un algorithme de chiffrement authentifié qui utilise une simple clé pour le chiffrement et l'authentification des données.
\end{enumerate}
WPA est un sous-ensemble de 802.11i.
Le mode point à point (ad-hoc --- IBSS), la pré-authentification (handover), AES, font partie de 802.11i mais pas de WPA\@.
\subsection{AES}
\url{https://formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation_v4_eng-html5.html}