Autentificación y Seguridad en Aplicaciones Web.  Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica.

Slides:



Advertisements
Presentaciones similares
Curso de PHP Tema 5: Sesiones.
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Internet y tecnologías web
Sistemas Peer-To-Peer La plataforma JXTA
Delitos Informáticos.
Servidores Web Capítulo 2.
Programación Interactiva Aplicaciones Cliente-Servidor
Seguridad en aplicaciones Web con Microsoft ASP.NET
PROTOCOLO SEGURO HTTPS
Indice Programacion cliente servidor Arquitectura Cliente-servidor
Que es el protocolo “SSL”
"java del lado del servidor" Servlet y JSP Java Server Pages.
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Servlets Servlets.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Seguridad del protocolo HTTP
JSP COOKIES. cookies  Las cookies son datos guardados por los navegadores a instancias del servidor.  Los sitios Web las utilizan con propósitos diversos:
Desarrollo de sitios web con PHP y MySQL Tema 5: Sesiones José Mariano González Romano
Tecnologías para el desarrollo de aplicaciones Web
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
Servlets, JSP, JavaBEANS,JDBC
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
VPN - Red privada virtual
HERNANDEZ RAMIREZ CAROLINA CONALEP IXTAPALUCA 236.
66.69 Criptografía y Seguridad Informática FIREWALL.
Servlets 18 de Marzo de Índice ¿Qué es un Servlet? ¿Cuándo y por qué usar Servlets? Estructura básica de un HttpServlet Servlet simple que genera.
TEMA 6. Applets y servlets
3. Espacios de trabajo. Manual de formación 2 3. Espacios de trabajo 3.1 Introducción … ……pág.45.
Fernando Alonso Blázquez Nicolás Serrano Bárcena Servlets 8 de Abril de 2008.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Gestión de Negocios Tema XVIII: La Empresa Digital, negocios en línea y Comercio Electrónico.
FTP Protocolo de Transferencia de Archivos. FTP Una de las operaciones que más se usa es la copia de archivos de una máquina a otra. El cliente puede.
Desarrollo con Servlets. Servlets: Introducción  Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java.
Mario Osvaldo Bressano Servlets. Mario Osvaldo Bressano Arquitectura de 2 Capas.
Control de acceso en Java EE
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Aplicaciones Web de Servidor
Daniel Fernández Lanvin Capa de Presentación. Daniel Fernández Lanvin Capa de Presentación Responsabilidades Navegabilidad del sistema Formateo de los.
Servlets 10 de Mayo de 2006.
Servidores web. Integrantes: Dany Alexander Orozco. Maycol Gómez Herrera. Luisa Fernanda Moncada.
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
Seguridad del protocolo HTTP:
File Transfer Protocol.
Gabriel Montañés León.  El sistema de nombres de dominio (DNS, Domain Name System) se diseñó originalmente como un protocolo. Antes de considerar qué.
Seguridad Web Jaramillo Jorge Suarez Arnold. INTRODUCCIÓN Hasta el momento, se ha presentado un Web que ofrece un acceso abierto a un conjunto de información.
* SSL * Clave de seguridad * Provee cifrado de datos, autentificación de servidor y cliente(opcional) e integridad * Almacenamiento de información formato.
Ing. Elizabeth Guerrero V.
Punto 6 – Seguridad en el protocolo HTTP Juan Luis Cano.
Técnicas de cifrado. Clave pública y clave privada:
Almacenamiento virtual de sitios web: «Hosts» virtuales
Nivel de Transporte en Internet
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Unidad 4. Servicios de acceso remoto
PROTOCOLO SSL. DEFINICIÓN SSL son las siglas en inglés de Secure Socket Layer (en español capa de conexión segura). Es un protocolo criptográfico (un.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED UNIDAD 2. SERVICIOS DHCP UNIDAD 3. SERVICIOS DNS UNIDAD 4. SERVICIOS DE ACCESO REMOTO.
 Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java a los CGIs (Common Gateway Interface) para construir.
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
1.  Tomcat es un contenedor web basado en el lenguaje Java que actúa como motor de servlets y JSPs.  Se ha convertido en la implementación de referencia.
Historia Correo Electrónico 1971 Aunque los antecedentes del correo electrónico hay que buscarlos unos pocos años antes, no es hasta 1971 cuando Ray Tomlinson,
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Introducción En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor.
Una Dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz (elemento de comunicación/conexión) de un dispositivo.
Trabajar con SERVLETS. Índice Qué son los Servlets Para qué sirven Cómo se utilizan Ejemplo Cómo probar un Servlet.
Filtros HTTP.  Características de las aplicaciones web: TODOS los recursos están expuestos al exterior.  Problema: Estamos repitiendo código en todos.
Aplicaciones Web de Servidor
Protocolos Protocolos de red.
Transcripción de la presentación:

Autentificación y Seguridad en Aplicaciones Web

 Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica HTTP  Autentificación Digest HTTP  Autentificación de cliente HTTPs ◦ Basados en la especificación de servlets  Autentificación basada en formularios  Autentificación controlada por programa ◦ Hay que basarla en conexiones seguras con HTTPs

 Parte del protocolo HTTP desde sus comienzos.  Muy simple  Poco seguro  Cuando el navegador solicita un recurso (jsp, por ejemplo), el servidor solicita usuario y contraseña, que viajan encriptadas con codificación base 64 bits.  Se puede reforzar combinándola con protocolo HTTPs, de forma que las peticiones HTTP viajen encriptadas.

 Incorporada en la versión 1.1 de la especificación del protocolo HTTP.  Algo más complicada internamente que la autentificación básica.  La codificación va en base al timestamp generado por el servidor en el momento de la petición -> Más difícil de decodificar -> Más seguro.  No está totalmente difundida ni aceptada por todos los navegadores y servidores.

 Es el más seguro de los disponibles hoy en día.  Se basa en mecanismos de Clave Pública (PKI)  Requiere una clave generada por un organismo de certificación autorizado.  Hay un proceso “complicado” de handshake que garantiza la conexión segura.

 La única definida en la especificación de servlets.  Implementada por el contenedor Web.  No es segura por si sola, y es necesario combinarla con HTTPs (SSL – Secure Socket Layer).  Permite controlar la apariencia de la pantalla de login.  La pantalla de login es HTML estándar que sigue un convenio para los nombres del os campos de usuario y contraseña.

 Todo lo tenemos que programar  La aplicación coteja la contraseña contra su propio sistema de control de usuarios  Hay que basarla en protocolos seguros de comunicación como HTTPs (SSL) para evitar que nadie “escuche” la contraseña interpretando los paquetes HTTP.  Mas tedioso de programar  Ventajas: No dependemos de la autentificación del entorno -> Más portable.

 Es necesario: ◦ Configurar el server.xml de TOMCAT para que solicite autentificación basada en memoria (tomcat_users.xml). ◦ Crear usuarios y perfiles en tomcat_users.xml ◦ Configurar el WEB.xml para restringir el acceso a los recursos a un determinado(s) perfil(es) de usuario.  El usuario se autentifica contra el servidor mediante la ventana gris (no HTML)

 En el server.xml: <Realm className= "org.apache.catalina.realm.MemoryRealm" />  En Tomcat_users.xml:

 En el web.xml: <!--Autentificación básica. Tened en cuenta que los roles y usuarios con sus contraseñas están dados de alta en el servidor--> BASIC Autentificación del piloto Uniovi uniovi piloto /* uniovi

 Sobre la versión anterior: 1. Implementar login.jsp con un formulario con los campos login y password para realizar el logueo del usuario 2. Implementar un LoginServlet que chequee que ambos son admin/admin, y en caso contrario, retorne a la página de login. En caso de login positivo, se mete un UsuarioBean en la sesión bajo el nombre “usuario” con el id del usuario y luego redirigimos. 3. Modificar la página destino para que antes de nada, compruebe que el usuario está logueado. En caso contrario, redirigimos a login.jsp (Resuelto en piloto 1.0)

 Problema: Estamos repitiendo código en todos los actions y jsps de la aplicación: comprobación de que el usuario está en sesión  Soluciones: ◦ Extender las jsps de otra o jugar con los includes. ◦ Desde la versión 2.3 se servlets, incorporación un filtro HTTP.

 Incorporados en la versión 2.3 de la especificación de servlets.  Interceptan la invocación del servlet ANTES de que sea invocado el propio servlet.  Permiten examinar y modificar la request antes de que le llegue al servlet.  Permite modificar el response y redirigir, en caso necesario, la petición a otro recurso distinto.  Ideales para el control de acceso de usuarios autentificados.

 Interfaz javax.servlet.Filter.  Tres métodos: ◦ void init(FilterConfig config) throws ServletException: Invocado antes de que el filtro entre en servicio. Permite configurar el filtro. ◦ void destroy(): Invocado cuando el filtro dejar de estar en servicio. ◦ void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException: Método que implementará el filtrado.

Servlet 1 HTTP Filter

 Sobre piloto 1.0, elaborar un filtro HTTP que muestre un mensaje cada vez que es solicitado un recurso de nuestro piloto. Pasos: ◦ Desarrollar la clase com.dflanvin.presentacion.filter.LoginFilter ◦ Importar las librerías necesarias… import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; import javax.servlet.ServletException;

public class LoginFilter implements Filter { private FilterConfig filterConfig; public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) { System.out.println(“Activado el filtrado de peticiones”); chain.doFilter (request, response); System.out.println(“Tras es doFilter….”); } public void init(FilterConfig fliterConfig) { System.out.println(“Inicializado el filtro”); } public void destroy() { }

 Y Modificar el WEB.XML para dar de alta los filtros ControlAcceso com.dflanvin.presentacion.filter.LoginFilter ControlAcceso /* Resuelto en piloto 2.0 Consultar piloto 3.0