Diferencia entre revisiones de «Técnicas de programación segura con Java»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 42: Línea 42:
  
 
= Ampliación =
 
= Ampliación =
−
* Invesigar o uso de [https://en.wikipedia.org/wiki/Apache_Shiro Apache Shiro] como substituto de Jaas
+
* Invesigar o uso de [https://en.wikipedia.org/wiki/Apache_Shiro Apache Shiro] como substituto de JAAS.

Revisión del 02:28 23 sep 2021

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:

  1. para a autenticación de usuarios: para detenninar de forma fiable e segura quén está executando o noso código Java
  2. 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