Técnicas de programación segura con Java
Sumario
Introdución
Java inclúe un conxunto de API que permite garantizar a seguridade de comunicacións, mediante o uso de criptografía e o control de acceso.
Criptografía con JCA
Comunicacións seguras con JSSE
Control de acceso con JAAS
JAAS (Java Authentication and Authorization Service, servicio de autorización y autenticación de Java) es una interfaz que pennite a las aplicaciones Java acceder a servicios de control de autenticación y acceso. Pódese utllizar para dous propósitos:
- para a autenticación de usuarios: para detenninar de forma fiable e segura quén está executando o noso código Java
- para a autorización de usuarios: para asegurarse de que quen o executa ten os permisos necesarios para realizar as accións
Están involucradas as seguientes clases e interfaces:
- LoginContext, contexto de inicio de sesión: inicia e xestiona o proceso de autenticación mediante a creación dun Subject.
- A autenticación faise chamando ó método login()
- LoginModule, módulo de conexión: é a interfaz que debe implementarse para definir os mecanismos de autenticación na aplicación. Encárgase de validar os datos nun proceso de autenticación. Debense implementar os seguintes métodos:
- initialize()
- login()
- commit()
- abort()
- logout()
- Subject: clase que representa a un ente autenticable dentro da aplicación (entidade,usuario, sistema)
- Principal: clase que representa os atributos que posee cada Subject recuperado una vez que se efectua o ingreso á aplicación. Un Subject puede contener varios principales.
- CallBackHandler: interfaz que se debe implementar cando se precisa recibir do usuario a información para a autenticación; encárgase da interacción co usuario para obter os datos de autenticación. Débese desarrollar o método handle() para implementala.
As clases e interfaces principais de JAAS están disponibles nos seguintes paquetes:
- javax.security.auth.*: contén as clases de base e interfaces para os mecanismos de autenticación e autorización
- javax.security.auth.callback.*: contén as clases e interfaces para definir as credenciais de autenticación da aplicación
- javax.security.auth.login.*: contén as clases para entrar e sair dun dominio de aplicación
- javax.security.auth.spi.*: contén interfaces para un proveedor de JAAS para implementar módulos JAAS
Autenticación
Autorización
Resumo
- JCA (Java Chriptography Architecure) é unha arquitectura de Java para criptografía.
- JSSE (Java Secure Socket Extension) é unha implementación en Java de TLS/SSL.
- JAAS (Java Authentication and Authorization Service) proporciona
- autenticación de usuarios que executan código de Java
- autorización de usuarios para realizar determinadas accións
Ampliación
- Invesigar o uso de Apache Shiro como substituto de Jaas