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 57: Línea 57:
 
= Referencias e créditos =
 
= Referencias e créditos =
 
* [http://chuwiki.chuidiang.org/index.php?title=Encriptacion_con_Java Encriptación con Java]
 
* [http://chuwiki.chuidiang.org/index.php?title=Encriptacion_con_Java Encriptación con Java]
 +
* [http://chuwiki.chuidiang.org/index.php?title=Socket_SSL_con_Java Socket SSL con Java]
 
* [http://www.programandoapasitos.com/2016/03/procesos-y-servicios-programacion_26.html JSSE y JAAS]
 
* [http://www.programandoapasitos.com/2016/03/procesos-y-servicios-programacion_26.html JSSE y JAAS]
 
* [https://www.oracle.com/java/technologies/javase/javase-tech-security.html Java Security Libraries]
 
* [https://www.oracle.com/java/technologies/javase/javase-tech-security.html Java Security Libraries]

Revisión del 03:24 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

Actividads propostas

Xenera o resumo dun ficheiro

O ficheiro débese elixir do disco duro coa clase JFileChooser. O resumo se debe amosar en hexadecimal. Utiliza os algoritmos SHA e MD5 e comproba os resúmenes xenerados

Autenticación e autorización

Elabora unha aplicación que nos pida o nome de usuario e contrasinal desde unha ventana de diálogo. A autenticación farase mediante Jaas, onde os usuarios Xosé, Lois e Alba terán acceso. A continuación, haberá dous botóns:

  • amosar o número de ficheiros que hai no directorio onde se está executando o programa (poden facelo Xosé, Lois e Alba)
  • crear un ficheiro que conteña o nome dos ficheiros que hai no directorio onde se está executando o programa (só pode facelo Xosé)

Referencias e créditos