“GUI para Conexiones y Transferencia de Datos Seguros”

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD PRIVADA SAN PEDRO ESCUELA INGENIERIA CIVIL
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Introducción a C#.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Archivos Binarios Usando Serializable. Introducción Utilizar archivos binarios nos ayuda a guardar y leer más fácilmente los datos de archivos. Pero como.
Clases en C++.
Programación Interactiva Hilos
Programación Interactiva Aplicaciones Cliente-Servidor
LEgo Java Operating System (LeJOS)
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Sockets y Threads en JAVA
Red de computadoras  Una red de computadoras, también llamada red de ordenadores o red informática, es un conjunto de equipos informáticos conectados.
Introducción a Programación Concurrente
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
RMI (Remote Method Invocation)
Qué pasa cuando varios clientes tratan de conectarse al mismo teimpo a un servidor Una forma es ir atendiéndolos de a uno en un ciclo: como en el programa.
El Socket Un socket es un extremo de un link de comunicación entre dos programas que corren en una red. El socket esta asociado (amarrado, bound) a ub.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Primer Programa en JAVA
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Manejo de excepciones en Java
Java. Threads (Hebras) Los sistemas operativos actuales permiten la multitarea, aunque esta se de tiempo compartido cuando se trabaja con un solo procesador.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Instituto San José Del Pedregal
Igor Santos Grueiro. Ahora tenemos datos y datos …
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
Manejo de Excepciones Agustín J. González ELO329.
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator
Invocación de Métodos Remotos RMI: Remote Method Invocation
Foro Nacional de Certificación y Firma Electrónica Ing. Randy Hernández Beepath Sistema Online de Firma Electrónica.
1 Persistencia en Java Agustín J. González ELO-329.
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
Cliente/Servidor ● Normalmente queremos algo más que conectarnos a un servidor ● El servidor nos va a dar un servicio ● Protocolo – Orden y tipo de datos.
Equipo #4: - Francisco Rodriguez - Karen Lopez - Marcela Mireles - Marcelo Sanchez - Erick Ontiveros - Rodrigo Peña.
Sockets. / Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos de comunicación entre programas a través de una red TCP/IP.
File Transfer Protocol (FTP) Jorge Cobeña David González Christian Maray Andrés Valarezo.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
OpenSSL Gonzalo Ojeda Figueroa. 2 Introducción  OpenSSL, es una implementación de código libre del protocolo SSL (y del protocolo TSL).  Su principal.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Servidores Concurrentes
TRANSFER FILE BY IP Claudia Codriansky Miguel Olave
Manejo de errores: Excepciones en Java
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Andres Marín L. Programación sockets en java.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
INTEGRANTES : Selvin Rivas José Vásquez Francisco Pérez J’ Alberto Patal.
Unidad 4. Servicios de acceso remoto
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Hilos Java Profesor Elian Rojas Berrocal
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
¿QUE ES EL TEAMVIEWER? ES UN SOFTWARE CUYA FUNCIÓN ES CONECTARSE REMOTAMENTE A OTRO EQUIPO. ENTRE SUS FUNCIONES ESTÁN: COMPARTIR Y CONTROLAR ESCRITORIOS,
1 Introducción a las Comunicaciones en Red. import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static.
DOCENTE: EMILIO ISMAEL BUSTAMANTE MONTES
Transcripción de la presentación:

“GUI para Conexiones y Transferencia de Datos Seguros” Jorge Mellings I. José Antonio Silva S. Mario Ungemach M. Proyecto Programación Orientada a Objetos. ELO-329

Descripción del Problema A diario nos conectamos a la red para poder comunicarnos. Sin embargo nuestro problema es como enviar archivos a tercero de una forma segura.

Análisis del Problema Cuando enviamos datos en la red estos viajan seguros ? Para ellos necesitamos una forma de poder transferir nuestros archivos de forma segura.

Caso de Uso (1) NOMBRE: Inicialización de comunicación. ACTORES : Usuarios. DESCRIPCIÓN: Los usuario desean iniciar conexión. PRE-CONDICIÓN: Que el programa este instalado en el computador y compilado. EVENTO: Se establece comunicación entre los usuarios. POST-CONDICIÓN: Existe disponibilidad de comunicación entre usuarios. TIPO: Manual CURSO NORMAL DE EVENTOS: Se inicia el programa servidor en el computador. Se inicia el programa cliente en el computador. Se establece la comunicación vía chat entre servidor y cliente. Respuesta : Utilizando una GUI para transferir archivos seguros y además poder comunicarnos vía chat.

Caso de Uso (2) NOMBRE: Transferencia de Archivos. ACTORES : Usuarios. DESCRIPCIÓN: Los usuario desean iniciar transferir archivos. PRE-CONDICIÓN: Que el programa se este ejecutando en usuarios conectados. EVENTO: Se transfiere archivo encriptado entre usuarios. POST-CONDICIÓN: Archivos son transmitidos entre usuarios de forma segura. TIPO: Manual CURSO NORMAL DE EVENTOS: El usuario servidor, envía un archivo. El usuario cliente acepta el archivo. El programa en usuario servidor abre el archivo, lo encripta usando AES, la llave de AES se encripta con llave publica RSA de cliente. Y se envía a cliente. El usuario cliente desencripta llave AES, con llave privada RSA, y luego desencripta archivo con llave AES. Usuario puede abrir el archivo recibido.

Implementación Fase 1: Sockets de conexión. Fase 2: GUI. Fase 3 : Criptografía. Fase 4: Envío y transferencia de archivos encriptados.

Implementación: Fase (1) Sockets Para el desarrollo del proyecto se utilizo el modelo Cliente/Servidor utilizando sockets en Java. A la hora de implementar los sockets fue necesario extender las clases del cliente y servidor como hilos (Threads).

Implementación: Fase(1) Sockets public class Client extends Thread{ private static ObjectOutputStream salida; private static ObjectInputStream entrada; private static Socket cliente; public Client( ) { } …. // Los metodos implementan: cliente = new Socket( InetAddress.getByName( h ), p ); … // Enviar datos por el socket salida = new ObjectOutputStream( cliente.getOutputStream() ); entrada = new ObjectInputStream( cliente.getInputStream() ); … salida.writeObject( “Hola, soy Cliente “); mensaje = ( String ) entrada.readObject(); }

Implementación: Fase(1) Sockets creados dentro de Hilos Para hacer correr el cliente o servidor en un hilo: // Defino lo que Runnable miRunnable = new Runnable() { public void run() try … // Se corren las funciones para interactuar … //con el servidor Client.enviarDatossm(“Hola…"); …. } catch (Exception e) { e.printStackTrace(); }; Thread hilo = new Thread (miRunnable); hilo.start();

Implementación: Fase (2) GUI

Implementación Fase 3 : Criptografía Paquete java.security Paquete JCE ( Java Cryptography Extension) Instalar Sun's Unlimited Strength Jurisdiction Policy Files http://java.sun.com/javase/downloads/index.jsp Clase Cipher : cifrador Criptográfico. Clases : FileEncryption.java public FileEncryption() public void makeKey() public void saveKey(File out, File publicKeyFile) public void loadKey(File in, File privateKeyFile) public void encrypt(File in, File out) public void decrypt(File in, File out) private void copy(InputStream is, OutputStream os) MainFEdecrypt.java MainFEencrypt.java

Implementación Fase 3 : Criptografía Para usar el código necesitamos las correspondientes llaves RSA pública y privada. Para ellos las generamos usando la herramienta open source OpenSSL. Se deben generar en el forma requerido por las librerías de encriptacion de JAVA. Para generar llave privada de largo 2048bits hacer: Usando consola, en aragorn por ejemplo: $ openssl genrsa -out private.pem 2048 Para obtenerlas en el formato requerido (PKCS#8, DER) : $ openssl pkcs8 -topk8 -in private.pem -outform DER -out private.der –nocrypt Para generar la llave publica a partir de la llave privada: openssl rsa -in private.pem -pubout -outform DER -out public.der

Implementación : Fase (4) Diagrama de transmisión de un archivo

Demostración A continuación, se presenta el GUI desarrollado, un ejemplo de caso de uso. Envió de archivo y comunicación vía chat entre cliente-servidor.