Salta el contingut
 

Pràctica 4: Seguretat i criptografia

Autor: Joan Puigcerver Ibáñez

Correu electrònic: j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Entrega

L'entrega ha de complir els següents requisits:

  • Package: ud4.practices
  • El nom de la classe on comença l'execució (main()) de cada exercici és el títol de l'exercici.
  • El format de la eixida del programa ha de ser consistent amb el format demanat.
  • S'ha d'entregar un fitxer .zip amb el contingut del package ud4.practices.
  • El codi ha d'estar pujat a GitHub en el vostre repositori de l'assignatura.
  • Tag GitHub: PracticeCrypto (StackOverflow: Create a tag in a GitHub repository)

FileEncryption

  • Package: ud4.practices.fileencryption

Crea la aplicació FileEncryption que permeta crear, llegir i escriure en fitxers encriptats mitjançant l'algorisme AES.

L'aplicació mostrarà un menú del tipus i permetrà a l'usuari realitzar les següents accions:

Benvingut a FileEncryption:
1) Escriure un fitxer
2) Llegir un fitxer
0) Eixir.

L'acció Eixir acabarà el programa.

Advertència

El codi ha d'estar ben estructurat en mètodes i classes.

Escriure un fitxer

L'usuari indicarà la ruta del fitxer on vol guardar la informació i comprovarà si el fitxer existeix.

  • Si existeix, preguntarà a l'usuari per la confirmació per ser sobreescrit. Si no ho confirma, torna al menu principal.

Li demanarà a l'usuari una contrasenya i crearà una SecretKey a partir d'ella.

El programa demanarà a l'usuari que escriga per pantalla tota la informació que vol guardar en el fitxer. Deixarà de demanar-li la informació quan l'usuari escriga una línia amb el contingut \exit.

Finalment, encriptarà tot el contingut i el guardarà en el fitxer especificat.

Llegir un fitxer

L'usuari indicarà la ruta del fitxer que vol llegir i comprovarà si el fitxer existeix.

  • Si no existeix, mostrarà un missatge d'error i tornarà al menú principal.

Li demanarà a l'usuari una contrasenya i crearà una SecretKey a partir d'ella. Finalment, intentarà desencriptar el fitxer.

Si la desencriptació ha segut satisfactòria, mostrara el contingut del fitxer desencriptat per pantalla. En altre cas (per exemple, perquè la contrasenya no és l'adequada o el fitxer no estava encriptat), mostrarà un missatge d'error.

SSLSocket: Chat

  • Package: ud4.practices.chat

Adapta el codi de l'aplicació de l'Exercici: Chat perquè utilitze SSLSockets.

Codi de l'exercici Chat solucionat
ChatServer.java

ChatServerHandler.java

ChatClient.java

Cal generar:

  • KeyStore de ChatServer: Guardar-la al fitxer files/ud4/chat/chat-server.jks.

    Indica la comanda utilitzada com a comentari en el moment que es cree el SSLServerSocket en la classe ChatServer.

    Certificat:

    Camp Valor
    Àlies chat-server
    CN ChatServer
    OU PSP-DAM2S
    O CIPFP Mislata
    L Mislata
    ST València
    C ES

    Aquesta informació s'ha de mostrar per pantalla quan inicie el servidor.

  • TrustStore de ChatClient: Guardar-la al fitxer files/ud4/chat/chat-client.jks.

    Indica la comanda utilitzada com a comentari en el moment que es cree el SSLServerSocket en la classe ChatClient.

    • Cal importar el certificat del servidor generat anteriorment.