Compare commits

..

No commits in common. "5e2ba64bbfe10695ae81f4741bd8f0f17f8458e8" and "304d3936728ed203bfe15cf7c43c4312930ca702" have entirely different histories.

3 changed files with 6 additions and 22 deletions

View file

@ -1,20 +1,4 @@
Mémoire sécurité ADSILLH Projet sécurité ADSILLH
------------------------ -----------------------
Ce mémoire, rédigé par Luc Lauriou et Yorick Barbanneau parle de Projet de Sécurité : l'authentification par certificats X.509.
l'authentification par smartcard et infrastructure à clefs publiques. Il est
écris en markdown et optimisé pour l'export PDF par `pandoc`.
## Creation du PDF
Les méta données pour la création du fichier PDF sont inclue directement dans
l'entête YAML du fichier markdown, pour créer le PDF :
```
pandoc -s memoire.md -o memoire.pdf
```
## Licence
Les fichier SVG sont contenus dans le répertoire `files/` sont sous licence Art
Libre.

View file

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before After
Before After

View file

@ -292,7 +292,7 @@ $$
##### Le padding ##### Le padding
![Fonctionnement du padding](./files/padding.svg) ![Fonctionnement du padding](./files/pagging.svg)
Dans notre exemple, notre bloc doit faire 128 bits mais les données ne Dans notre exemple, notre bloc doit faire 128 bits mais les données ne
représente que 104 bits [1]. Nous allons donc rajouter trois octets avec pour représente que 104 bits [1]. Nous allons donc rajouter trois octets avec pour
@ -306,7 +306,7 @@ le déchiffre et avertit l'utilisateur si le padding est correct ou non.
Le chiffrement par bloc en mode *CBC* a un énorme défaut : l'intégrité des Le chiffrement par bloc en mode *CBC* a un énorme défaut : l'intégrité des
messages n'est pas vérifiée. Du coup un attaquant peut modifier le résultat messages n'est pas vérifiée. Du coup un attaquant peut modifier le résultat
de `cleartext[n]` en modifiant `cblock[n-1]`, ou tout simplement en le de `cleartext[n]` en modifiant `cblock[n-1]`, ou tout simplement en le
forgeant à sa convenance. forgeant à notre convenance.
Prenons `X` comme bloc de chiffrement forgé pour l'occasion, et `cblock[n]` Prenons `X` comme bloc de chiffrement forgé pour l'occasion, et `cblock[n]`
bloc de chiffrement à attaquer et `cleartexthack` le résultat du déchiffrement bloc de chiffrement à attaquer et `cleartexthack` le résultat du déchiffrement
@ -350,7 +350,7 @@ booléennes.
Comme nous avons accès à une **oracle de padding** nous n'avons qu'à tester Comme nous avons accès à une **oracle de padding** nous n'avons qu'à tester
toutes les valeurs du dernier octet de `X` jusqu'à obtenir un padding correct toutes les valeurs du dernier octet de `X` jusqu'à obtenir un padding correct
(`0x01`). Dans le cadre de notre bloc de 16 octets : (`0x01`). Dans le cadre de notre block de 16 octets :
$$ $$
cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15] cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15]