0% found this document useful (0 votes)
101 views48 pages

Crypto Signature 2021

The document discusses various methods for securing communications and authenticating identities, including hashing, digital signatures, key exchange protocols like Diffie-Hellman, and public key infrastructure for distributing public keys in a secure manner. It examines techniques like adding salts to hashes and signing messages to prevent attackers like Trudy from spoofing or tampering with communications between Alice and Bob.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views48 pages

Crypto Signature 2021

The document discusses various methods for securing communications and authenticating identities, including hashing, digital signatures, key exchange protocols like Diffie-Hellman, and public key infrastructure for distributing public keys in a secure manner. It examines techniques like adding salts to hashes and signing messages to prevent attackers like Trudy from spoofing or tampering with communications between Alice and Bob.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Sécurité Informa/que

Rachid Elazouzi
2021
L3 INFO
CERI, Avignon Université

Rachid Elazouzi Sécurité Informatique


2014-2015 Rachid Elazouzi M2 – UCE – Cryptographie
Chapitre 2
Authentification, hachage, signature et
gestion de clés

Rachid Elazouzi Sécurité Informatique


Itera&ve resolu&on
Response: ezp.inria.fr =Query: ezp.inria.fr
193.51.193.149
Query: ezp.inria.fr
.

Response: ezp.inria.fr, ask fr. Query: ezp.inria.fr


Response: ezp.inria.fr, ask inria.fr.
.edu .com @{192.5.4.2,194.0.9.1,193.176.144.6,194.
.net .gov .mil .be .fr .us resolver
@{193.51.208.13,192.93.0.4,129.88.30.1,192.
146.106.46,194.0.36.1} Query: ezp.inria.fr
test.inria.fr
93.2.78}
example sun fbi whitehouse ac france inria france ezp.inria.fr
193.51.193.149
Response: ezp.inria.fr = 193.51.193.149

www java www mail www ucl ulg www www ezp www www.example.com
192.0.2.1

www.example.com
192.0.2.50

Internet
The resolver learns the hierarchy
responses can be cached to avoid querying twice the same server
3
DNS cache poisoning
example.org. @{192.0.2.1}

Query: rnd.example.org, ID:


0x02 Query:
Query: rnd.example.org
bank.example.org
resolver 192.0.2.1

Response: rnd.example.org, ask example.org. Response: rnd.example.org, ask example.org.


@{203.0.113.2}: ID: 0x02 @{192.0.2.1}: ID: 0x01
Response: rnd.example.org, ask example.org.
@{192.0.2.1}: ID: 0x02
Query: bank.example.org

Response: rnd.example.org, ask example.org.
@{192.0.2.1}: ID: 0xff

4
Hash func&on
• Validate that a message has not been altered on its way between Alice and Bob
• Hash functions map arbitrary large numbers of variable length to fixed-length numbers
• h = H(m), h is called hash or digest
• e.g., MD5, SHA-1, SHA-256
• Good hash functions for cryptography must be such that
• H(m) is not complex to compute
• but finding a m2 such that H(m2) = H(m) is complex,
• H(m) is deterministic,
• H output must be evenly distributed over the output set
• Example
• SHA-1 maps messages its input space on a 160-bits output
• SHA-1(Message to validate) = 5e06ee754bda0d33cf65ec305ffc779404e66029
• SHA-1(Message tO validate) = b1c306f8cb792fa14d4d1fdcf6f37d86c2fe6bb9

5
Is that enough?

Alice Trudy Bob

msg
d = H(msg)
msg, d
valid as d = H(msg)
msg2
msg2, d2
d2 = H(msg2)
msg3
d3 = H(msg3) msg3, d3
valid as d3 = H(msg3)

6
Hash func*on with salt

• Hash functions are deterministic


• Add a salt such that the output of
the hash function is a function of
the message and the salt
• h = H(m, K) where s is the salt or
key of the hash function
• As long as Trudy does not know the
salt, she can’t forge a valid digest

7
Hash func*on with salt
(contd.)
Alice Trudy Bob
K K
msg
d = H(msg, K)
msg, d
valid as d = H(msg, K)
msg2
msg2, d2
d2 = H(msg2, K)
msg3
msg3, d3
d3 = H(msg3) invalid as d3 ≠ H(msg3, K)

8
Problem solved?

•fill me
•fill me
•fill me

How can Alice and Bob agree on K?

9
Diffie-Hellman key exchange
• How can Alice and Bob agree on a secret
number and be sure that Eve will not discover
it?
• Principle
• do not exchange the secret number but other
numbers that are use to build up the secret

10
Diffie-Hellman key exchange (contd.)
•Working on finite group and positive
integers
Alice Eve Bob

a, g, m
A, g, m
A ga mod m b

B gb mod m
B
K Ba mod m K Ab mod m

K Ab mod m (ga mod m)b mod m gba mod m (gb mod m)a mod m Ba mod m K
11
Diffie-Hellman key exchange
(contd.)
•Trudy can break Diffie-Hellman
Alice Trudy Bob
a, g, m
A, g, m
A ga mod m
at, gt, mt
At gat mod mt
At, gt, mt
bt b
Bt gbt mod m
K Abt mod m
K Bta mod m Bt B gtb mod mt
B K‘ Atb mod mt
K‘ Bat mod mt
12
Diffie-Hellman key exchange (contd.)

• How can we protect Diffie-Hellman from Trudy?


• Principle
• Alice and Bob sign the messages exchanged in Diffie-
Hellman (?!)

13
Asymmetric cryptography (contd.)

Trudy can send a forged message

Alice Trudy Bob


PublicB PublicB PublicB, PrivateB
m
c = crypt(m, PublicB) c
decrypt(c, PrivateB) = m

m2
c2 = crypt(m2, PublicB) c2

m3
c3=crypt(m3, PublicB) c3
decrypt(c3, PrivateB)=m3

14
Asymmetric cryptography (contd.)

• Eve can read the message

Alice Eve Bob


PublicA, PrivateA PublicA PublicA

m
s = sign(m, PrivateA) m, s
check(m, s, PublicA)

15
How to build sign and
check?
s = sign(H(m), k) = crypt(H(m), k)
check(m, s, K) = (H(m)==decrypt(s, K))
where k is the private key of the signer
and K is the public key
Asymmetric cryptography is slow and m
can be large
encrypting m would be too costly
solution: consider the digest of m
while signing
16
Public key infrastructure

• How to safely obtain Bob’s public key?

Alice Trudy Bob


PublicB, PrivateB

What is your public key?

PublicB
PublicB

17
Public key infrastructure (contd.)

• Trudy can send a forged key

Alice Trudy Bob


PublicT, PrivateT PublicB, PrivateB

What is your public key?

PublicT
PublicT

18
Public key infrastructure (contd.)

Alice and Bob trust a third party (e.g., Trent) for


authenGcaGon
Alice Bob Trent
PublicT PublicT, PublicT, PrivateT
PublicB,PrivateB,
S(PubB, PrivT)

Are you Bob?

S(Yes, PrivB),
S(PubB, PrivT)
PublicB

19
Public key infrastructure (contd.)
• Practically, Bob sends a certificate (e.g., X.509), not only its
public key and signature
• A certificate provides many information to be able to correctly
identify and authenticate its subject (e.g., Bob)
• the subject name and organization
• the subject public key (and type)
• the issuer name and organization
• the certificate validity time (valid not before and not after)
• the certificate signature and type, signature made by the
issuer of the certificate
• ...
20
Certificate Life Cycle

Key pair generated

Certificate issued

New key Key pair in use Private key


Re-certify pair compromised
generated
Certificate expires
Certificate
revoked
Key pair lifetime exceeded?
Digital Certificates
• A Digital Certificate is simply an X.509 defined data
structure with a Digital Signature. The data
represents who owns the certificate, who signed the
certificate, and other relevant information

X.509 Certificate § When the signature is generated


Version # by a Certification Authority (CA),
Serial # the signature can be viewed as
Signature Algorithm
Issuer Name
trusted.
Validity Period
Subject Name
§ Since the data is signed, it can
Subject Public Key not be altered without
z ed
Issuer Unique ID detection.
th o ri Subject Unique ID

AA
u Extensions § Extensions can be used to tailor
C
Digital Signature certificates to meet the needs of
end applications.
Public key infrastructure (contd.)
• Certificates are issued once and valid during a given time
period, whatever the number of time it is used
• What if the subjects leaves its organization? The private key of
the subject is stolen? The private key of the issuer is stolen?
• Keys are selected big enough to not be broken during validity
time
• When a certified key is compromised, the certificate is revoked
• the issuer maintains the list of revoked certificates
• when a certificate is checked for validity, the verifying client
should verify that the certificate is not in the revoked
certificates list
24
Diffie-Hellman key exchange (the
return)
•Trudy cannot perform her aEack
anymore
Alice Trudy Bob
PublicA, PrivateA, PublicB PublicA PublicB PublicA, PublicB, PrivateB
a, g, m
A ga mod m
sA=sign((A,g,m), PrivateA) A, g, m, sA
check((A,g,m),sA,PublicA)
b
B gb mod m
K Ab mod m
B, sB
check(B, sB, PublicB) sB=sign(B, PrivateB)
K Ba mod m

26
Problem solved?

fill me
fill me
fill me

Replay attacks are still possible!

27
Nonce
• Trudy can replay a message

Alice Trudy Bob


PublicA, PrivateA PublicA PublicA

m = “open door”
s = sign(m, PrivateA) m, s
check(m, s, PublicA)
remember (m, s)
door is open
m2 = “close door”
s2 = sign(m2, PrivateA) m2, s2
check(m2, s2, PublicA)
door is closed
m, s
check(m, s, PublicA)
door is open !!
28
Nonce (contd.)
A nonce is a number used only once
Three general methods to create nonces
sequen6al number
increment a7er each use
keep it in non-vola6le storage in case of reboot
6mestamp
current 6me of the nonce genera6on
be sure clock is not going backward (e.g., winter 6me)
random number
low collision probability if the pseudo random number generator is good and random number is
big enough (e.g., more than 128 bits)
Nonce alone is rarely enough to have a good protec6on
not robust to eavesdropping or man-in-the-middle aFack

29
Nonce (contd.)
•Each message is make unique thanks to
the nonce
Alice Trudy Bob
PublicA, PrivateA PublicA PublicA
m
n = nonce m, n, s
s = sign((m, n), PrivateA)
check((m, n), s, PublicA)
remember (m, n, s)
nonces = {n}
m2
n2 = nonce
s2 = sign((m2,n2),PrivateA) m2, n2, s2
check((m2,n2),s2,PublicA)
nonces = {n, n2}

m, n, s
check((m,n), s, PublicA)
nonce already used:
30 skip
Fonctions de Hachage

• Fonc=on qui calcule une empreinte d’un message,


aussi appelé :
• Résumé
• Somme de contrôle
• Hash
• Condensé
• Condensat
• Deux messages différents peuvent avoir la même
empreinte (collision), mais cela doit être quasiment
impossible en pra=que
• Un message a une empreinte unique

Rachid Elazouzi Sécurité Informatique


Fonc&ons de Hachage

Exemples :

Rachid Elazouzi Sécurité Informatique


Fonctions de Hachage
Objec=f :
• Obtenir une donnée qui représente le message
d’origine, mais de taille plus pe=te
• Permet de comparer rapidement deux messages (ou
fichiers, objets…) : s’ils ont une empreinte différente,
ils sont nécessairement différents
à Tables de hachage
à Contrôle d’intégrité
• Aussi u=lisé pour représenter des mots de passe pour
les stocker ou les transmeRre sur un réseau, sans les
instancier explicitement

Rachid Elazouzi Sécurité Informatique


Fonc&ons de Hachage

• Caractéristiques de base :
• Rapidité de calcul
• Compression :
• L’entrée de la fonction est un message de taille quelconque
• La sortie de la fonction est un message de taille fixée (la même
pour tous les messages)
• Caractéristiques souhaitées : il doit être impossible
en pratique
• D’inverser la fonction (retrouver le message
correspondant à une empreinte)
• Connaissant un message et une empreinte, de trouver un
second message avec la même empreinte
• De trouver deux messages avec la même empreinte

Rachid Elazouzi Sécurité Informatique


Fonctions de Hachage

Exemple : MD5

Vue d’ensemble du
traitement d’un bloc
de 512 bits

Source : Wikipedia

Rachid Elazouzi Sécurité Informatique


Fonc&ons de Hachage
Exemple : MD5

Vue d’ensemble d’une


itération (bloc de 128 bits)

MD5 comprend 64 blocs de


ce type, groupés en quatre
tours de 16 opérations. F est
une fonction non-linéaire, qui
varie selon le tour. Mi
symbolise un bloc de 32 bits
provenant du message à
hacher et Ki est une constante
de 32 bits, différentes pour
chaque opération.

Source : Wikipedia
Rachid Elazouzi Sécurité Informatique
Signature numérique

•Une signature numérique d’un message est


un nombre qui dépend
•D’un secret connu uniquement du
signataire
•Du contenu du message signé
•Principaux objecJfs :
•AuthenJficaJon
•Intégrité
•Non-répudiaJon
Rachid Elazouzi Sécurité Informatique
Signature numérique

• Applications
• Certification de clés publiques :
• Une tierce partie de confiance lie l’identité d’un utilisateur à la
clé
• Par la suite, les autres utilisateurs peuvent authentifier la clé sans
l’aide de la tierce partie
• Authentification, intégrité et non-répudiation de
courriels, documents, commandes, paiements…
• Basé sur des cryptosystèmes asymétriques

Rachid Elazouzi Sécurité Informatique


Signature numérique

•Deux types
•Avec appendice : le message original
est nécessaire pour la vérifica9on
(u9lisé le plus souvent)
•Avec rétablissement de message : le
message original est récupéré à par9r
de la signature lors de la vérifica9on

Rachid Elazouzi Sécurité Informatique


Signature numérique avec appendice
Principe :
• Signature :
• Calculer un résumé (ou empreinte) du message
• Signer le résumé (par ex. en chiffrant le résumé avec sa
clé privée) à sceau
• Transmettre le message et le sceau
• Vérification :
• Calculer un résumé du message
• Déchiffrer le sceau avec la clé publique de l’expéditeur
• Comparer les deux résumés

Rachid Elazouzi Sécurité Informatique


Signature numérique
Les possibilités de signature sont nombreuses
• Exemple : chiffrement RSA de l’empreinte MD5 du message…
• La société RSA Security propose des PKCS
• Public Key Cryptography Standards
• Ce ne sont pas des standards car RSA Security n’est pas un organisme de
normalisaKon, mais certains PKCS sont repris en RFC
• Exemple : PKCS#1 (RFC 3447) définit RSASSA-PSS, schéma de signature
basé sur RSA
• Schéma de signature d’ElGamal
• Basé sur le cryptosystème asymétrique d’ElGamal
• Digital Signature Algorithm
• Variante d’ElGamal, adoptée par le NIST américain en 1991

Rachid Elazouzi Sécurité Informatique


Schéma de signature d’ElGamal

• Soit p un entier et g un générateur du groupe (Z/pZ)


• Ensemble des messages (Z/pZ)
• Ensemble des signature (Z/pZ) x (Z/(p-1)Z)
• Alice : clef privée na dans [2,p-2]; clef publique KA= (Gn g,gn_a).
• Alice choisit aléatoirement un entier m et calcule

avec

et

Rachid Elazouzi Sécurité Informatique


Schéma de signature d’ElGamal

• VérificaRon de la signature:

Rachid Elazouzi Sécurité Informatique


Signature numérique

• Valeur juridique d’un email signé numériquement


• Depuis le 30/03/2001, la signature numérique donne à un
écrit électronique la même valeur de preuve qu’un écrit
papier…
• A condition que la signature numérique soit réalisée avec
l’aide d’un organisme certifié, fournissant en général un
service payant

Rachid Elazouzi Sécurité Informatique


Certificats

• Permet d’associer une clé publique à une en=té


• Délivré par une autorité de cer=fica=on, chargée de
• Délivrer les cer`ficats
• Affecter une date de validité
• Eventuellement, révoquer des cer`ficats compromis
• Liste des autorités agréées par l’Etat français sur
hRp://www.telecom.gouv.fr/

Rachid Elazouzi Sécurité Informatique


Cer&ficats
• Concrètement, un certificat est un fichier contenant
• Les informations utiles à l’utilisateur
• Dates de validité du certificat
• Clé publique de l’entité
• Algorithme de chiffrement utilisé pour signer le certificat
• La signature de l’autorité de certification
• Empreinte des autres informations, chiffrée avec la clé privée de l’autorité
(sceau)
• La clé publique de l’autorité est connue de tous
• Pour vérifier la validité du certificat, il suffit
• De calculer l’empreinte des informations
• De déchiffrer le sceau de l’autorité de certification
• De comparer les deux empreintes obtenues

• Les certificats sont généralement formatés selon la norme X509

Rachid Elazouzi Sécurité Informatique


Certificats
• Les cerRficats peuvent être auto-signés
• Pour un usage interne à une entreprise par exemple
• C’est l’entreprise qui remplace l’autorité de cerWficaWon

Rachid Elazouzi Sécurité Informatique


Cer&ficats
• Utilisations courantes :
• Certificat client : stocké en local, sur un poste de travail ou une carte à puce,
permet de gérer les droits de l’utilisateur en l’identifiant
• Certificat serveur : associe le serveur à son propriétaire
• Exemple : assure qu’un nom de domaine est bien géré par une entreprise donnée
• Permet de sécuriser les transactions avec les utilisateurs (protocole SSL)
• Certificat VPN : assure la sécurité d’un flux de communication (protocol IPSEC)

Rachid Elazouzi Sécurité Informatique

You might also like