EXPERIENCIA DE P D SOBRE PROTOCOLOS...

24
M. Mut, Ll. Huguet, J. Ll. Ferrer y M. Payeras Universitat de les Illes Balears EXPERIENCIA DE PRÁCTICA DOCENTE SOBRE PROTOCOLOS CRIPTOGRÁFICOS

Transcript of EXPERIENCIA DE P D SOBRE PROTOCOLOS...

Page 1: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

M.  Mut,  Ll.  Huguet,  J.  Ll.  Ferrer  y  M.  Payeras  Universitat  de  les  Illes  Balears  

EXPERIENCIA DE PRÁCTICA DOCENTE SOBRE PROTOCOLOS

CRIPTOGRÁFICOS

Page 2: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

ÍNDICE

ü Introducción y Características de la práctica

ü Protocolos implementados

ü Implementación

ü Casos de estudio

ü Conclusiones

Page 3: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

INTRODUCCIÓN Y CARACTERÍSTICAS DE LA PRÁCTICA

§  Asignatura: Teoría de la Información y la Codificación §  Ingeniería Informática

§  UIB desde 1990

§  Teoría de la información, codificación y criptografía

§  Previos: conocimientos matemáticos y programación

§  Criptografía §  Algoritmos criptográficos

§  Seguridad Computacional

§  Confidencialidad, autenticación, no repudio …

Page 4: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

INTRODUCCIÓN Y CARACTERÍSTICAS DE LA PRÁCTICA

§  Práctica: parte evaluable

ü  Conjunto de prácticas: recreación, a través de un programa en Java, de una comunicación entre distintos usuarios que están ejecutando alguno de los protocolos criptográficos que previamente han sido descritos en el aula

§  Objetivos: §  Consolidar los conceptos teóricos

§  Comprender el valor añadido de la criptografía en una comunicación

Page 5: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

INTRODUCCIÓN Y CARACTERÍSTICAS DE LA PRÁCTICA

§  Herramientas: primitivas criptográficas

ü JCE (Java Cryptography Extension)

§  Primitivas de la distribución estándar de JVM §  Generación de Claves

§  Cifrado (DES, 3DES, IDEA, AES, RSA, DSA, ElGamal…)

§  Funciones Hash

ü Bouncy Castle

§  Proyecto de Software Libre

§  Nuevos algoritmos y implementaciones alternativas

Page 6: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

§  Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo) que permiten una interacción entre dos, o más, usuarios

§  Intercambio de datos o de información

§  Seguridad: mediante funciones criptográficas implementar los requisitos de confidencialidad, integridad, autenticidad y

no repudio …

ü eCommerce, Secure Email, eDemocracy …

Page 7: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Needham-Schroeder

§  Protocolo de Autenticación e Intercambio de claves

Usuario A!

Centro de Distribución de Claves (KDC)!

Usuario B!

Obtención de claves públicas y de sessión!

Comunicación Confidencial y Auténtica!

Page 8: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Secure Socket Layer

§  Estándar Internet para la comunicación web

§  Transparente a la Aplicación

§  Handshake Protocol

Cliente! Servidor!

Comunicación Confidencial y Auténtica!

Page 9: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Fiat-Shamir

§  Prueba de conocimiento nulo: convencer al verificador de la posesión de un secreto

§  Una TTP genera n= p·q. Cada Usuario tiene (xU,yU=xU2 mod n)

§  Si el protocolo se repite k veces, la probabilidad d’engañar a B será 2-k

Usuario A! Usuario B!

B pide pruebas a A (lanza retos)!

Page 10: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Schnorr

§  Prueba de conocimiento nulo: proceso interactivo convencer al verificador de la posesión de un secreto sin que este pueda obtener información del mismo

§  Cada Usuario tiene (xU, yU= βxU mod n)

§  Aplicación común: convencer a B de la identidad de A (conocimeinto de xU)

Usuario A! Usuario B!

B pide pruebas a A!

Page 11: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Chaum

§  Firma ciega: Autenticidad de la firma + Privacidad

§  Aplicación común: pagos con dinero electrónico

§  Técnica: enmascarar la moneda electrónica con un r

Usuario A!

Comercio!

Banco!

Compra Anónima!

Autenticidad y Privacidad!

Page 12: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Even

§  Firma de contratos: Entre A i B, sin intermediarios

§  Cifrar el mensaje dividido en bloques.

§  Técnica: transferencia inconsciente de los bloques cifrados. Hasta asegurar que los dos usuarios han completado la firma del otro

Usuario A! Usuario B!

Oblivous Transfer!

Page 13: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

IMPLEMENTACIÓN

§  Protocolos: Needham-Schroeder, SSL, Fiat-Shamir, Schnorr, Chaum, Even

§  Entorno IDE abierto: Eclipse

§  Funcionamiento JCE

§  Acompañar con ejemplos de programación con uso de primitivas criptográficas:

Page 14: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

IMPLEMENTACIÓN

§  Generación par de claves RSA:

 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); SecureRandom random = new SecureRandom(); kpg.initialize(1024, random); KeyPair kpa = kpg.genKeyPair(); PublicKey pubKey = kpa.getPublic(); PrivateKey privKey = kpa.getPrivate();

Page 15: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

IMPLEMENTACIÓN

§  Cifrar con clave pública RSA:

 Cipher rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); rsaCipher.init(Cipher.WRAP_MODE, pubKey); byte[] cifradoClaveSecreta = rsaCipher.wrap(aeskey);

Page 16: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

CASOS DE ESTUDIO

§  Destacar algunos aspectos de los trabajos

ü  Needham-Schroeder

ü  Planteamiento de los alumnos:

•  A i B generan claves RSA

•  A genera clave AES: KA y RA

•  A è B: PUB(KA, RA)

•  B è A: PUA(RB, RA, KB=KA)

•  A è B: PUB(RB)

Page 17: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

CASOS DE ESTUDIO

§  Destacar algunos aspectos de los trabajos

ü  Needham-Schroeder

ü  Planteamiento de los alumnos:

•  A i B generan claves RSA

•  A genera clave AES: KA y RA

•  A è B: PUB(KA, RA)

•  B è A: PUA(RB, RA, KB=KA)

•  A è B: PUB(RB)

//usuario  B  genera  su  número  aleatorio      RB  =  SecureRandom.getInstance("SHA1PRNG");      rsaCipher.init(Cipher.ENCRYPT_MODE,  privateKey_B);  //Se  crea  el  mensaje  a  cifrar  (RA,  RB,  KB)      mensajeTransmiVdo  =  RA.toString()  +  RB.toString()  +  KA.toString();  //Se  genera  el  hashing  de  la  informacion  a  cifrar      mensajeTransmiVdo  =  SHA1(mensajeTransmiVdo);  //Se  pasa  el  texto  a  bytes      text  =  mensajeTransmiVdo.getBytes();  //Se  cifran  los  bytes      cipherText  =  rsaCipher.doFinal(text);    

Page 18: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

CASOS DE ESTUDIO

ü SSL

!

Page 19: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

CASOS DE ESTUDIO

ü Schnorr

§  Dificultad: generación inicial de parámetros

ü Una TTP distribuye: p y q primos t.q. (p-1)/q = k (k entero),

β∈{1,p-1}

1.  Generación de q del tamaño deseado (160 bits), 2.  Multiplicamos q por i (siendo i un valor incremental) 3.  Sumamos 1 se irán obteniendo posibles valores de p 4.  Ahora comprobamos si p es primo Si es así, hemos terminado. En caso contrario, incrementamos i y lo volvemos a intentar, hasta obtener un p primo.  

Page 20: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Chaum

§  Recrea el proceso de firma ciega entre A y un hipotético banco B

•  A è B: EB(DA(m · EB(k) (mod nB))

•  B è A: DB(m · EB(k)) = k · DB(m) (mod nB)

•  A: k · DB(m) · k–1 (mod nB) = DB(m)

Page 21: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Chaum

§  Recrea el proceso de firma ciega entre A y un hipotético banco B

•  A è B: EB(DA(m · EB(k) (mod nB))

•  B è A: DB(m · EB(k)) = k · DB(m) (mod nB)

•  A: k · DB(m) · k–1 (mod nB) = DB(m)

//A cifra k para obtener Eb(k) BigInteger blindingFactorenc = blindingFactor.modPow(e, modb); //cegar el mensaje y obtener m*Eb(k) BigInteger missatgecegat = cegar(missatgenum, blindingFactorenc, modb); //Firmar el mensaje con RSA y enviarlo Da(m*Eb(k)) BigInteger missatgefirmat = missatgecegat.modPow(privKeyA, moda); //Cifrar para obtener confidencialidad Eb(Da(m·Eb(k))) BigInteger missatgefirmaticodificat = missatgefirmat.modPow(e, pubKeyB);

Page 22: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

PROTOCOLOS IMPLEMENTADOS

ü Chaum

§  Recrea el proceso de firma ciega entre A y un hipotético banco B

•  A è B: EB(DA(m · EB(k) (mod nB))

•  B è A: DB(m · EB(k)) = k · DB(m) (mod nB)

•  A: k · DB(m) · k–1 (mod nB) = DB(m)

//A cifra k para obtener Eb(k) BigInteger blindingFactorenc = blindingFactor.modPow(e, modb); //cegar el mensaje y obtener m*Eb(k) BigInteger missatgecegat = cegar(missatgenum, blindingFactorenc, modb); //Firmar el mensaje con RSA y enviarlo Da(m*Eb(k)) BigInteger missatgefirmat = missatgecegat.modPow(privKeyA, moda); //Cifrar para obtener confidencialidad Eb(Da(m·Eb(k))) BigInteger missatgefirmaticodificat = missatgefirmat.modPow(e, pubKeyB);

//El banco descifra el mensaje con su clave privada BigInteger missatgefirmaticifratrecuperat = missatgefirmaticodificat.modPow(privKeyB, modb); //Comprueba la firma y recupera m*Eb(k) BigInteger missatgefirmatrecuperat = missatgefirmaticifratrecuperat.modPow(e, moda); //el banco decrementa el saldo de la cuenta de A y firma el mensaje BigInteger missatgefirmatpelbanccegat = missatgecegat.modPow(privKeyB, modb); //Ahora el banco tiene Db(m*Eb(k))=k*Db(m) pero no ha podido ver m

Page 23: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

CONCLUSIONES

ü Prácticas de Criptografía

§  Teoría de la Información y de la Codificación

§  Adaptar e interpretar diferentes protocolos de seguridad en un entorno de programación Java

§  Valorar y entender la criptografía más allá de las características y especificaciones de sus algoritmos

§  Afrontar los problemas prácticos de la implementación

§  Poner de relieve la creatividad de los alumnos para recrear los protocolos

Page 24: EXPERIENCIA DE P D SOBRE PROTOCOLOS Ccibsi.utp.ac.pa/documentos/...Practica_Docente_sobre_Protocolos_C… · " Protocolo es un conjunto de acciones bien definidas y coordinadas (algoritmo)

M.  Mut,  Ll.  Huguet,  J.  Ll.  Ferrer  y  M.  Payeras  Universitat  de  les  Illes  Balears  

EXPERIENCIA DE PRÁCTICA DOCENTE SOBRE PROTOCOLOS

CRIPTOGRÁFICOS