JAVA Server Faces) Con Soporte Para Clientes Heterogéneos
Total Page:16
File Type:pdf, Size:1020Kb
Facultad de Informática - UNLP Universidad Nacional de La Plata Facultad de Informática Licenciatura en Informática Tesis de Grado Incorporando seguridad a las componentes de Interfaz de Usuario del framework JSF (JAVA Server Faces) con soporte para clientes heterogéneos. Director: Francisco Javier Díaz Codirector: Claudia Queiruga Alumno: Pablo José Iuliano Legajo: 2122/1 - 2010 - Facultad de Informática - UNLP Agradecimientos En primer lugar, quiero agradecer a Natalia, por su apoyo de incondicional tanto en la construcción de este documento como en nuestra vida juntos. Además quiero agradecer a la Lic. Claudia Queiruga y al Lic. Javier Díaz, por la certera dirección que han dado a esta tesis en cada paso del camino transitado. A mis compañeros de trabajo, Miguel Carbone, Jorge Castelluccio y Elvio Fernández, por sus aportes realizados para mejorar la producción de este documento. Finalmente quiero agradecer a mi familia por todo lo que hicieron y siguen haciendo para que mejore en todos los ámbitos de mi vida. Facultad de Informática - UNLP Índice Introducción..............................................................................................................................................1 Difusión en congresos..............................................................................................................................5 Capítulo 1 – Seguridad en JAVA............................................................................................................6 1.1 Modelos de seguridad en JAVA......................................................................................... 6 1.2 Arquitectura criptográfica................................................................................................. 8 1.2.1 Conceptos JCA........................................................................................................................................8 1.2.2 Arquitectura Criptográfica de JAVA (JCA)........................................................................................10 1.3 Extensión Criptográfica de JAVA (JCE) ........................................................................ 14 Capítulo 2 – JAVA Server Faces ..........................................................................................................15 2.1 Fundamentos de JSF........................................................................................................ 15 2.2 Desarrollo de componentes customizados en JSF ........................................................... 15 2.2.1 Componentes customizados como solución elegida para nuestra librería. .......................................16 2.2.2 Conceptos fundamentales en la implementación de componentes customizados. ...........................16 2.2.2.1 UIComponent y UIComponentBase .................................................................................16 2.2.2.2 UIComponentTag...................................................................................................................19 2.2.2.3 Renderers.......................................................................................................................................20 2.2.2.4 Validadores....................................................................................................................................22 2.2.2.5 Convertidores ................................................................................................................................23 2.2.2.6 Packaging de las extensiones de UI.............................................................................................25 2.3 Componentes JSF customizados y la seguridad............................................................. 26 2.3.1 OWASP – Open Web Application Security Project...........................................................................26 2.3.1.1 Las diez vulnerabilidades más comunes de OWASP.................................................................26 2.3.1.2 Descripción de las vulnerabilidades ............................................................................................27 2.3.1.3 OWASP y JAVA Server Faces....................................................................................................35 2.3.1.4 OWASP y los componentes a medida JSF..................................................................................36 2.3.2 Seguridad en aplicaciones Web JAVA................................................................................................37 2.3.3 Requerimientos de seguridad en los frameworks Web JAVA..........................................................37 Capítulo 3 – Tecnologías Faces para Web Mobile..............................................................................40 3.1 Tecnologías Web móviles actuales................................................................................... 40 3.1.1 Wireless Markup Language (WML)....................................................................................................40 3.1.2 Compact HyperText Markup Language (C-HTML) ..........................................................................41 3.1.3 Extensible Hypertext Markup Language (xHTML) ...........................................................................42 3.1.3.1 XHTML Basic - XHTML Mobile Profile...................................................................................42 3.2 Soluciones Faces para desarrollos móviles ...................................................................... 43 3.2.1 Ericsson Mobile JSF Kit - Java.net Mobile JSF .................................................................................43 3.2.2 Apache MyFaces Trinidad ...................................................................................................................45 3.2.3 PrimeFaces ............................................................................................................................................46 3.2.4 Mobile TouchFaces: el módulo Web Mobile de PrimeFaces ............................................................46 Capítulo 4 – Pruebas de vulnerabilidades de seguridad sobre una aplicación JSF open-source construida con PrimeFaces ...................................................................................................................47 4.1 prime-phonebook: una aplicación JSF construida con PrimeFaces............................... 47 4.2 Arquitectura de prime-phonebook.................................................................................. 47 4.2.1 prime-phonebook-mobile: prime-phonebook rediseñada con Mobile TouchFaces .........................48 4.3 Ataques contra prime-phonebook-mobile....................................................................... 50 4.3.1 Secuencia de Comandos en Sitios Cruzados (XSS) ...........................................................................50 4.3.2 Fallas de Inyección ...............................................................................................................................51 4.3.3 Falsificación de Petición en Sitios Cruzados (CSRF) ........................................................................52 4.3.4 Falta de Confidencialidad de los Datos ...............................................................................................54 Capítulo 5 – TouchFacesSecure: una extensión de TouchFaces con soporte para seguridad......56 5.1 Arquitectura de TouchFacesSecure ................................................................................ 56 5.2 Librerías de soporte utilizadas en la construcción de TouchFacesSecures .................... 57 5.2.1 Bouncy Castle .......................................................................................................................................57 5.2.2 ValidatingHttpRequest de OWASP.....................................................................................................57 5.3 La estrategia de solución de TouchFacesSecure ............................................................. 58 5.3.1 Componentes Seguros provistos por TouchFacesSecure...................................................................58 5.3.1.1 Application Seguro..............................................................................................................58 5.3.1.2 InputText Seguro .................................................................................................................59 5.3.1.3 Label Seguro ...........................................................................................................................62 5.3.1.4 CommandLink y CommandButton Seguros.....................................................................63 5.3.2 Reimplementación de componentes auxiliares ...................................................................................65 5.3.2.1 NavBarControl y View.....................................................................................................65 5.3.3 Deployment de TouchFacesSecure......................................................................................................66 5.3.3.1 Modo de distribución....................................................................................................................66 5.3.3.2 Dependencias ................................................................................................................................68 5.4 Modo de utilización de TouchFacesSecure...................................................................... 68 5.5