diff --git a/files/pagging.svg b/files/pagging.svg index 5129873..6558467 100644 --- a/files/pagging.svg +++ b/files/pagging.svg @@ -6,35 +6,11 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg8" version="1.1" viewBox="0 0 435.13284 144.2607" height="144.2607mm" - width="435.13284mm" - sodipodi:docname="pagging.svg" - inkscape:version="0.92.4 5da689c313, 2019-01-14"> - + width="435.13284mm"> CBC Padding - - - + y="133.70311" + x="55.019024" + id="tspan3896">1 - - - + x="237.31699" + y="133.70311" + id="text3904">2 diff --git a/memoire.md b/memoire.md index b00e424..e1de56b 100644 --- a/memoire.md +++ b/memoire.md @@ -1,10 +1,10 @@ --- title: Authentification par smartcard et PKI -documentclass: scrartcl +documentclass: scrbook author: - Luc Lauriou - Yorick Barbanneau -fontsize: 13pt +fontsize: 12pt mainfont: DejaVu Serif geometry: [top=1.5cm, bottom=3cm, left=3cm, right=3cm] header-includes: @@ -312,34 +312,28 @@ de `cleartext[n]` en modifiant `cblock[n-1]`, ou tout simplement en le forgeant à notre 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 -de `cblock[n]` avec notre `X` en vecteur d'initialisation, nous pouvons écrire : +bloc de chiffrement à attaquer, nous pouvons écrire : $$ -cleartexthack = decrypt(cblock[n]) \oplus X +cleartexthack[n] = decrypt(cblock[n]) \oplus X $$ Nous savons aussi que : $$ -cblock[n] = encrypt(cleartext[n] \oplus cblock[n-1]) +cblock[a] = encrypt(cleartextr[n] \oplus cblock[n-1]) $$ Donc on peut écrire : $$ -cleartexthack = decrypt(encrypt(cleartext[n] \oplus cblock[n-1])) \oplus X +cleartexthack = decrypt(encrypt(txt_clair[n] \oplus cblock[n-1])) \oplus X $$ En simplifiant : $$ -cleartexthack = cleartext[n] \oplus cblock[n-1] \oplus X -$$ - -Que l'on peut aussi écrire -$$ -cleartext[n] = cleartexthack \oplus cblock[n-1] \oplus X +cleartext = cleartext[a] \oplus cblock[n-1] \oplus X $$ Cette équation se compose de deux éléments que nous avons en notre possession : @@ -355,10 +349,10 @@ toutes les valeurs du dernier octet de `X` jusqu'à obtenir un padding correct (`0x01`). Dans le cadre de notre block de 16 octets : $$ -cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15] +0x01 = cleartext[n][15] \oplus cblock[n-1][15] \oplus X[15] $$ -Il ne nous reste plus qu'une inconnue `cleartext[n][15]`, nous pouvons résoudre +Il ne nous reste plus qu'une inconnue `cleartext[15]`, nous pouvons résoudre l'équation. Il suffit de procéder ainsi pour les 16 octets de notre bloc pour le déchiffrer @@ -397,12 +391,12 @@ sont résistante à l'ouverture par la force, une attaque ciblée couplée à de l'ingénierie sociale bien menée pour retrouver le code PIN reste possible. [^n_infra]:Google a publié le 23 février 2017 un article annonçant la première - collision sur du SHA1. [source](https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html) + collision sur du SHA1. https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html) [^n_yubikey]:La Yubikey 4, et d'autre périphériques cryptographiques sont touchés par ROCAT, une faille touchant des librairies utilisées par des puces de la marque Infineon Technologies AG et permettant de prédire la clé privée - grâce à la clé publique - CVE-2017-15361. [source](https://crocs.fi.muni.cz/public/papers/rsa_ccs17) + grâce à la clé publique - CVE-2017-15361. https://crocs.fi.muni.cz/public/papers/rsa_ccs17 ## Bibliographie