Académique Documents
Professionnel Documents
Culture Documents
Seguridad en
Aplicaciones
Web
Autenticación en Web
Login y pass
van en caberas
HTTP.
Contenidos en
HTML (texto)
Cabeceras
HTTP en texto
plano
Seguridad, alternativas
… o emplear un
canal seguro
Codificar el mensaje …
Tipos de autenticación
autentificación HTTP > básica
Base64
Aladdin
autentificación HTTP > básica
Codificación Base64
Hashing
Hashing
Autentificación HTTPs
SSL (o TLS)
El servidor tiene un certificado
opcionalmente el cliente tiene el suyo
Permite intercambio seguro de
datos (p.e. claves de sesión)
Usa algoritmos de clave simétrica y
asimétrica
Del servidor siempre,
Ofrece: del cliente si tiene
Autentificación certificado
Confidencialidad
Integridad
No repudio
autentificación HTTP > HTTPS (SSL)
Con:
m, mensaje original
m*, mensaje cifrado
k, clave
nov-08 Alberto M.F.A. 17
autentificación HTTP > HTTPS (SSL)
Esquema
Claves asimétricas
Claves asimétricas
Lo que se cifra con una se puede
descifrar con la otra y viceversa
La clave pública se da a todos los
interlocutores
La clave privada se guarda bajo 7
llaves
Cada interlocutor tiene:
Su clave privada
Las claves públicas de los demás
Solo N + 1 claves escala mucho
mejor
nov-08 Alberto M.F.A. 20
autentificación HTTP > HTTPS (SSL)
Confidencialidad
Firma digital
Autentificación
Autoridades certificadoras
Certificados
Las claves públicas validadas por CA
Contienen
La clave pública
Datos de identificación del propietario
Fecha de expiración
Firma digital de la CA
Verificable con la clave pública de la CA
¡Se debe conocer la clave pública de la
CA!
Jerarquías de CA
Alerta de seguridad
Especificación
En web.xml
Una colección de recursos (URLs)
solo podrán ser accedidos por
usuarios que actúen bajo
determinado rol usando
determinados métodos HTTP
La autenticación para cada ámbito
de seguridad (realm) se hará
usando alguna de las técnicas
establecidas por la especificación de
servlets
autentificación por contenedor
Web.xml
Web.xml
Roles
Técnicas
autentificación por contenedor
Usuario y roles
BDD de usuarios y roles
El contenedor consulta los datos de una
fuente directamente
Tipos de fuentes y configuración
dependen de la implementación del
contenedor
Base de datos (tablas: usuarios, roles)
Ficheros XML
Ficheros de propiedades
. . .
BASIC
DIGEST
FORM
CLIENT-CERT
autentificación por contenedor > formulario
Filtros, ventaja
Permiten hacer autenticación por
programa de forma transversal a la
aplicación el código de la
aplicación no se modifica
Lo habitual es redireccionar a
formulario necesario HTTPs
Sigue siendo autenticación por
formulario
A parte de autenticación permiten
añadir de forma genérica “aspectos”
a la aplicación
autentificación por servlet > filtros
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.
autentificación por servlet > filtros
A la ida puede:
Responder él a la request y terminar proceso
Abortar la ejecución UnavailableException
Redirigir a otra URL
Añadir info a session, request o contexto
A la vuelta puede:
Examinar la respuesta, modificarla
Examinar las cabeceras añadidas
autentificación por servlet > filtros
<url-pattern> o
<servlet-name>
Struts interceptor
Interceptores, esquema
autentificación por servlet > struts interceptor
API en ActionInvocation
autentificación por servlet > struts interceptor
En struts.xml
autentificación por servlet > struts interceptor
LoginInterceptor, ejemplo
struts.xml: declarar el interceptor y
global-results
struts.xml: declarar la pila de
interceptores
Resumen