From 1c474b6323087de652c05f0c742dbd343974691e Mon Sep 17 00:00:00 2001 From: yorick Barbanneau Date: Tue, 19 Mar 2019 23:38:29 +0100 Subject: [PATCH 1/4] Rework page layout --- memoire.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/memoire.md b/memoire.md index e1de56b..b0fe6e8 100644 --- a/memoire.md +++ b/memoire.md @@ -1,10 +1,10 @@ --- title: Authentification par smartcard et PKI -documentclass: scrbook +documentclass: scrartcl author: - Luc Lauriou - Yorick Barbanneau -fontsize: 12pt +fontsize: 13pt mainfont: DejaVu Serif geometry: [top=1.5cm, bottom=3cm, left=3cm, right=3cm] header-includes: From 70a8ad442b2d78e44956b58ebf39057033cbf020 Mon Sep 17 00:00:00 2001 From: yorick Barbanneau Date: Tue, 19 Mar 2019 23:41:34 +0100 Subject: [PATCH 2/4] Text to path --- files/pagging.svg | 58 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/files/pagging.svg b/files/pagging.svg index 6558467..5129873 100644 --- a/files/pagging.svg +++ b/files/pagging.svg @@ -6,11 +6,35 @@ 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"> + width="435.13284mm" + sodipodi:docname="pagging.svg" + inkscape:version="0.92.4 5da689c313, 2019-01-14"> + CBC Padding - + 1 + id="path933" /> + - 2 + id="text3904"> + + From 43aee4e935d3abcfcb2c5d0cd5c288cf64ef9e6c Mon Sep 17 00:00:00 2001 From: yorick Barbanneau Date: Wed, 20 Mar 2019 00:02:11 +0100 Subject: [PATCH 3/4] Modify link in footnote (conclusion) --- memoire.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/memoire.md b/memoire.md index b0fe6e8..1ca4b45 100644 --- a/memoire.md +++ b/memoire.md @@ -391,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. https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html) + collision sur du SHA1. [source](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. https://crocs.fi.muni.cz/public/papers/rsa_ccs17 + grâce à la clé publique - CVE-2017-15361. [source](https://crocs.fi.muni.cz/public/papers/rsa_ccs17) ## Bibliographie From 55516ffdd51c072fc71a0aa59d562b4682f9303f Mon Sep 17 00:00:00 2001 From: yorick Barbanneau Date: Wed, 20 Mar 2019 01:04:50 +0100 Subject: [PATCH 4/4] Formulas correction (Padding oracle attack) --- memoire.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/memoire.md b/memoire.md index 1ca4b45..b00e424 100644 --- a/memoire.md +++ b/memoire.md @@ -312,28 +312,34 @@ 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, nous pouvons écrire : +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 : $$ -cleartexthack[n] = decrypt(cblock[n]) \oplus X +cleartexthack = decrypt(cblock[n]) \oplus X $$ Nous savons aussi que : $$ -cblock[a] = encrypt(cleartextr[n] \oplus cblock[n-1]) +cblock[n] = encrypt(cleartext[n] \oplus cblock[n-1]) $$ Donc on peut écrire : $$ -cleartexthack = decrypt(encrypt(txt_clair[n] \oplus cblock[n-1])) \oplus X +cleartexthack = decrypt(encrypt(cleartext[n] \oplus cblock[n-1])) \oplus X $$ En simplifiant : $$ -cleartext = cleartext[a] \oplus cblock[n-1] \oplus X +cleartexthack = cleartext[n] \oplus cblock[n-1] \oplus X +$$ + +Que l'on peut aussi écrire +$$ +cleartext[n] = cleartexthack \oplus cblock[n-1] \oplus X $$ Cette équation se compose de deux éléments que nous avons en notre possession : @@ -349,10 +355,10 @@ toutes les valeurs du dernier octet de `X` jusqu'à obtenir un padding correct (`0x01`). Dans le cadre de notre block de 16 octets : $$ -0x01 = cleartext[n][15] \oplus cblock[n-1][15] \oplus X[15] +cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15] $$ -Il ne nous reste plus qu'une inconnue `cleartext[15]`, nous pouvons résoudre +Il ne nous reste plus qu'une inconnue `cleartext[n][15]`, nous pouvons résoudre l'équation. Il suffit de procéder ainsi pour les 16 octets de notre bloc pour le déchiffrer