Compare commits

...

2 commits

Author SHA1 Message Date
5e2ba64bbf svg filename correction 2019-03-20 12:32:14 +01:00
29775cb29e Update Readme 2019-03-20 12:31:06 +01:00
3 changed files with 22 additions and 6 deletions

View file

@ -1,4 +1,20 @@
Projet sécurité ADSILLH
-----------------------
Mémoire sécurité ADSILLH
------------------------
Projet de Sécurité : l'authentification par certificats X.509.
Ce mémoire, rédigé par Luc Lauriou et Yorick Barbanneau parle de
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
![Fonctionnement du padding](./files/pagging.svg)
![Fonctionnement du padding](./files/padding.svg)
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
@ -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
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
forgeant à notre convenance.
forgeant à sa convenance.
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
@ -350,7 +350,7 @@ booléennes.
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
(`0x01`). Dans le cadre de notre block de 16 octets :
(`0x01`). Dans le cadre de notre bloc de 16 octets :
$$
cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15]