Compare commits
2 commits
304d393672
...
5e2ba64bbf
Author | SHA1 | Date | |
---|---|---|---|
5e2ba64bbf | |||
29775cb29e |
3 changed files with 22 additions and 6 deletions
22
README.md
22
README.md
|
@ -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.
|
||||
|
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
@ -292,7 +292,7 @@ $$
|
|||
|
||||
##### Le padding
|
||||
|
||||

|
||||

|
||||
|
||||
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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue