Análisis de la resistencia del DNIe3.0 ante el robo de...

33
Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante tecnología NFC Autor: Víctor Sánchez Ballabriga (602665) Director: Ricardo J. Rodríguez Trabajo de Fin de Grado Security analysis of DNIe3.0 against NFC-based identity theft

Transcript of Análisis de la resistencia del DNIe3.0 ante el robo de...

Page 1: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Análisis de la resistencia del DNIe3.0ante el robo de identidad mediante

tecnología NFC

Autor: Víctor Sánchez Ballabriga (602665)Director: Ricardo J. Rodríguez

Trabajo de Fin de Grado

Security analysis of DNIe3.0 againstNFC-based identity theft

Page 2: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

ÍNDICE1. Introducción2. Conocimientos previos3. Análisis del DNIe3.04. Métodos de acceso NFC5. Vulnerabilidades estudiadas6. Propuestas de mejora7. Conclusiones8. Demostración

Page 3: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

1. Introducción

●Evolución del DNI

● Crecimiento del uso deNFC

● DNI + NFC = DNIe3.0

Page 4: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

1. Introducción●Trabajo relacionado● ¿Qué aporta este proyecto?

Page 5: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Near Field Comunication(NFC)– Deriva de RFID

– Elementos activos (PDC) y pasivos(PICC)

– ISO/IEC 14443

2. Conocimientos Previos

Page 6: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Ataques de fuerza bruta– Suelen combinarse con ataquesde diccionario

– Inconvenientes:

1) Fáciles de detectar

2)Fáciles de contrarrestar

2. Conocimientos Previos

Page 7: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Trazabilidad de números aleatorios– Los ordenadores son máquinasdeterministas

– RNG trazable = mal RNG

2. Conocimientos Previos

Page 8: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

3. Análisis del DNIe3.0

Información impresa:Anverso 1) Foto facial

2)NIF

3)Apellidos

4)Nombre

5)Sexo (“M”/”F”)

6)Nacionalidad (“ESP”)

7)Fecha de nacimiento

8)Número de soporte

9)Fecha de expiración

10)Firma manuscrita

11)Código CAN

Page 9: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Información impresa:Reverso 1)Dirección

2)Número de equipo de

expedición

3)Ciudad y provincia de

nacimiento

4)Nombre de los

progenitores

5)MRZ

3. Análisis del DNIe3.0

Page 10: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Elementos físicos de seguridad:

3. Análisis del DNIe3.0

Page 11: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

● Basic Access Control (BAC)

● Password AuthenticatedConnection Establishment(PACE)

4. Métodos de acceso NFC

Page 12: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Protocolo BAC:–Fecha de nacimiento

–Fecha de expiración

–Número de soporte

2002−1946=57años57⋅365=20805

365⋅10=3650

263⋅106≃234

20805+3650+234≃234

(en formato “aaaammdd”)

4. Métodos de acceso NFC

(3 letras y 6 dígitos)

(en formato “aaaammdd”)

Page 13: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Protocolo PACE:–Código CAN 106

4. Métodos de acceso NFC

Page 14: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Elección del protocolode estudio

PACEBAC10⁶2³

⁴>>

Page 15: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

sd PACE

alt

[correct]

DNIe3.0Device

4: CANKey2=generateKey(DNIeCAN)

3: initial_request

1: CAN1=selectCAN()

7.1: nonce=decryptNumber(CANKey1, encryptedNumber)

7: encryptedNumber6: encryptedNumber=encrypt(CANKey2, nonce)

5: nonce=generateRdmNumber()

7.2: Ks1=Diffie-Hellman(nonce)

2: CANKey1=generateKey(CAN)

8: Ks2=Diffie-Hellman(nonce)

7.4.3: PACE failed

7.4.2.1: correct=verificate(authToken2, Ks1)

7.4.2: authToken2

7.4.1: correct=verificate(authToken1, Ks2)

7.4: authToken1

9: authToken2=getAuthToken(Ks2)

7.3: authToken1=getAuthToken(Ks1)

Page 16: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

5. Vulnerabilidadesestudiadas

● Ataque de sniffing

● Trazabilidad de losnúmeros aleatorios

● Ataque de fuerza bruta

Page 17: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

5. Vulnerabilidades estudiadas:Ataque de Sniffing

Page 18: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

● Ataque de sniffing

● Trazabilidad de losnúmeros aleatorios

● Ataque de fuerza bruta

5. Vulnerabilidadesestudiadas

Page 19: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

5. Vulnerabilidadesestudiadas:Trazabilidad de los números aleatorios

loop

[N < numAttemps]

DNIe3.0Device

1.1: CANKey2=generateKey(DNIeCAN)

1: initial_request

1.4.1: nonce=decryptNumber(CANKey1, encryptedNumber)

1.4: encryptedNumber

1.3: encryptedNumber=encrypt(CANKey2, nonce)

1.2: nonce=generateRdmNumber()

2: CANKey1=generateKey(CAN)

1.5: Ks2=Diffie-Hellman(nonce)

1.4.2.2: error

1.4.2.1: correct=verificate(authToken1, Ks2)

1.4.2: malformed message

1.6: authToken2=getAuthToken(Ks2)

1.4.2.3: stopPACE()

1.4.2.2.1: catch error

● DNIe3.0 Nonce Generator● 10⁵ nonces● Delayed Coordinates

A={a(1);a (2); ...}

ax( i)=a (i)−a (i−1)a y (i)=a(i−1)−a (i−2)az(i)=a(i−2)−a (i−3)

∀ i∈[4 ;|A|]∩ℕ

Page 20: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante
Page 21: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

● Ataque de sniffing

● Trazabilidad de losnúmeros aleatorios

● Ataque de fuerza bruta

5. Vulnerabilidadesestudiadas

Page 22: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

5. Vulnerabilidadesestudiadas: Ataque de fuerzabruta

DNIe3.0 Brute Force

loop

[NOT correct] ref

PACE

DNIe3.0Device

2: PACE failed

2.1: CAN = CAN+1

1: CAN = selectInitialCAN()

Prueba de concepto

Page 23: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Title:/home/victor/Universidad/TFG/log Creator:(MATLAB, The Mathworks, Inc. Ver CreationDate:2016-08-02T13:12:05 LanguageLevel:2

Page 24: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Ataque de fuerza brutaConclusiones

● Cada intento: 1,5 s

● Cardinalidad del espacio declaves muy baja: 10⁶

● No cuenta con ninguna defensacontra ataques de fuerza bruta

● En el peor caso:

- 200 ms para tratar el nonce- 1,2 s para resolver Diffie-Hellman- 100 ms para comprobar tokens de sesión

106⋅1,5 s≈17días

Page 25: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Situación en la que una appmaliciosa podría actuar

Page 26: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

●Ataque de sniffing

● Trazabilidad de losnúmeros aleatorios

● Ataque de fuerza bruta

5. Vulnerabilidadesestudiadas

Page 27: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

6. Propuestas de mejora

Aumento de longitud delcódigo CAN

7

Page 28: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Aumento del tiempo derespuesta tras fallos sucesivos Title:/home/victor/Universidad/TFG/log Creator:(MATLAB, The Mathworks, Inc. Ver CreationDate:2016-08-02T13:13:03 LanguageLevel:2

f (i)={ t (i) i⩽5,1.1i t (i)⩽15,

15 i>15

6. Propuestas de mejora

Page 29: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Bloqueo hardware

6. Propuestas de mejora

Page 30: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

7. Conclusiones● Dos protocolos de comunicación NFC

–BAC

✔Teóricamente seguro

–PACE

✔Comunicaciones cifradas✔RNG no trazable✗ Defensa contra fuerza bruta

Page 31: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

8. Demostración

Page 32: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

Conclusiones personales

● NFC● Cómo es un proyecto deinvestigación

● Protocolos de generaciónde claves

● Cómo redactar un reportde investigación

Page 33: Análisis de la resistencia del DNIe3.0 ante el robo de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/... · Análisis de la resistencia del DNIe3.0 ante el robo de identidad mediante

FIN