Continue theorie-information-cryptologie

This commit is contained in:
flyingscorpio@clevo 2022-09-19 08:51:49 +02:00
parent fac64356e7
commit 34b4645a19

View file

@ -43,7 +43,7 @@
\end{itemize}
\paragraph{Choses à retenir}
La cryptographie est un outil formidable et à la base de nombreux mécanismes de sécurité.
Mais elle n'est \emph{pas}~:
@ -79,7 +79,7 @@
\end{itemize}
Comme le premier cas est le plus probable, il permettra de deviner la longueur de la clef.
\paragraph{Méthode Bazeries}
Cette méthode se base sur l'existence d'un mot \emph{probable} et préconise la recherche du mot-clef.
@ -111,7 +111,7 @@
\section{Stéganographie}
\section{cryptographie appliquée au WiFi}
\section{Cryptographie appliquée au WiFi}
\subsection{Les attaques sur WiFi}
@ -149,13 +149,13 @@
\item 2001, \emph{802.1X} avec WEP (LEAP) --- authentification \emph{802.1X} avec gestion des clés, protection des données par \emph{WEP}.
Le protocole 802.1X, au niveau MAC, va contacter un serveur d'authentification.
Ces serveurs sont appelés AAA (authentication, authorisation, accounting).
Ces serveurs sont appelés AAA (Authentication, Authorisation, Accounting).
802.1X permet également de changer les clés, contrairement au \emph{WEP statique}.
\item 2003, \emph{WPA} --- authentification \emph{802.1X} avec une gestion des clés améliorée, protection des données par \emph{TKIP}.
On a patché le WEP avec TKIP parce que WEP avait été cassé.
\item 2004, \emph{WPA2} --- standard \emph{IEEE 802.11i}, authentification 802.1X avec une gestion des clés améliorée, protection des données par \emph{AES} et \emph{pré-authentification}.
\item 2004, \emph{WPA2} --- \emph{standard IEEE 802.11i}, authentification 802.1X avec une gestion des clés améliorée, protection des données par \emph{AES} et \emph{pré-authentification}.
\item 2018, \emph{WPA3} --- handshake \emph{dragonfly}, \emph{PFS} (Perfect Forward Secrecy), management frames protection (obligatoire).
Deux chercheurs ont trouvé une faille dans WPA2 en 2017.
@ -163,9 +163,31 @@
\end{itemize}
\subsection{Résumé}
\begin{tabularx}{\linewidth}{YYYYY}
\toprule
& \textbf{WEP} & \textbf{WPA} & \textbf{WPA2} & \textbf{WPA23} \\
\toprule
\textbf{Acronyme} & Wired Equivalent Privacy & WiFi Protected Access & WiFi Protected Access 2 & WiFi Protected Access 3 \\
\midrule
\textbf{Année de développement} & 1997 & 2003 & 2004 & 2018 \\
\midrule
\textbf{Niveau de sécurité} & Très faible & Faible & Élevé & Très élevé \\
\midrule
\textbf{Chiffrement} & RC4 & TKIP et RC4 & AES-CCMP & AES-CCMP et AES-GCMP \\
\midrule
\textbf{Taille de clé} & 64bit, 128bit & 128bit & 128bit & 128bit, 256bit \\
\midrule
\textbf{Authentification} & Open System et clé partagée & clé pré-partagée et 802.1X avec EAP & clé pré-partagée et 802.1X avec EAP & AES-CCMP et AES-GCMP \\
\midrule
\textbf{Intégrité} & CRC-32 & MIC 64bit & CCMP avec AES & SHA-2 \\
\bottomrule
\end{tabularx}
\subsection{WEP}
La confidentialité est assurée par un chiffrement grâce à algorithme à flot continu.
La confidentialité est assurée par un chiffrement grâce à un algorithme à flot continu.
\paragraph{RC4}
@ -175,8 +197,107 @@
Il est \emph{bytes-oriented}~: il génère caractère par caractère (un seul octet à chaque étape).
Un secret partagé est nécessaire (par mot de passe par exemple), souvent de 40 bits (5 caractères) ou 128 bits (13 caractères).
Les algorithmes stream cipher n'utilisent que des opérations basiques avec des XOR (pas d'exonentielle, de factorielles, de multiplication\ldots).
Les algorithmes stream cipher n'utilisent que des opérations basiques avec des XOR (pas d'exponentielle, de factorielle, de multiplication\ldots).
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}
\subsection{WPA}
L'objectif, urgent, était de remplacer WEP\@.
Le standard est WPA2.
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.
\paragraph{WPA Personnel et Entreprise}
Il y a deux façons d'utiliser WPA\@.
\begin{enumerate}
\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.
\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.
\end{enumerate}
\paragraph{Robust Security Network (RSN)}
\begin{itemize}
\item Contrôle d'accès~: on se base sur 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 ---
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.
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.
Puis un \emph{Radius Accept} est envoyé au client Radius, qui renvoie un \emph{802.1X Success} au Supplicant.
Le client Radius (AP), ne décapsule pas toute la trame reçue.
Il s'arrête à EAP, ce qui le rend plus léger~: il n'a qu'un protocole à implémenter.
EAP propose plusieurs méthodes de chiffrement pour permettre une négociation.
\texttt{md5} n'est pas utilisé, car il ne génère pas de clé maîtresse.
\texttt{TLS} nécessite un certificat.
Le plus utilisé est PEAP (Protected EAP).
On crée un tunnel SSL avec le certificat du serveur Radius.
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.
\item 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~:
\begin{itemize}
\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
\end{itemize}
\begin{enumerate}
\item L'AP envoie un ANonce (Nonce = Number used Once), aléatoire.
\item Le client dérive la PTK et envoie un SNonce aléatoire.
\item L'AP dérive la PTK, initialise la GMK et calcule la GTK\@.
Puis il envoie la GTK chiffrée.
\item Les deux entités sont synchronisées avant le chiffrement, puis le client envoie un ACK\@.
\end{enumerate}
Le port 802.1X est alors ouvert, le client et l'AP installent la PTK et la GTK\@.
\end{enumerate}
\end{document}