Labs SD > Criptografia

Segurança na plataforma Java


Segurança na plataforma Java

Java Security

A segurança na plataforma Java é implementada em várias bibliotecas.

Java Cryptography Extension (JCE)
Java Secure Sockets Extension (JSSE)
Java Authentication and Authorization Service (JAAS)

 

Java Cryptography Extension (JCE)

A JCE é a biblioteca de criptografia que contém as implementações de algoritmos criptográficos: Cifras simétricas (chave secreta), Cifras assimétricas (chave pública e privada), Resumos.

Os pacotes principais são: java.security , javax.crypto.

Suporta vários algoritmos através de Providers. No código, praticamente todos os objectos JCE são criados com: getInstance("algorithm name", "provider name"), permitindo à aplicação pedir uma implementação de um algoritmo.

Os principais objectos JCE são: Cipher (métodos: init, update, doFinal), Key, KeyGenerator, KeyPair, PublicKey, PrivateKey, KeyPairGenerator, MessageDigest. Existem outros objectos que realizam operações compostas: Signature, SignedObject, SealedObject, CipherStream.

Os Java Security Providers são bibliotecas que implementam algoritmos de criptografia. O Sun Provider incluído com a Java Standard Edition implementa vários algoritmos: AES, SHA1, entre outros. Outro exemplo de provider é o Bouncy Castle que contém implementações alternativas, incluindo o algoritmo RSA.

 

Java Secure Sockets Extension (JSSE)

A JSSE é a biblioteca de sockets que abstraem a utilização de criptografia na comunicação para garantir integridade, cifra e autenticação. É utilizada sobretudo para comunicação na Internet, constituindo uma camada adicional na pilha de protocolos de rede, entre o nível de transporte e o nível da aplicação.

O Secure Sockets Layer (SSL), actualmente designado por Transport Layer Security (TLS), é utilizado normalmente no HTTPS (HTTP sobre SSL). É uma forma simples de criar canais seguros entre cliente e servidor, com autenticação do servidor, sendo a autenticação do cliente é opcional.

Os pacotes são: javax.net.ssl , javax.security.net.

 

Java Authentication and Authorization Service (JAAS)

A JAAS tem uma arquitectura Pluggable para autenticação, independente de tecnologias específicas. Permite o controlo de acessos dos utilizadores a recursos (autorização) e tem segurança centrada no utilizador (user-centric). A JAAS está integrada com Java Naming and Directory Interface (JNDI), Windows NT, Solaris Login, Kerberos.

O pacote principal é: javax.security.auth


© Docentes de Sistemas Distribuídos, DEI, IST, UL