Segurança Básica
em Java
No início …

A questão que introduziu a noção de
segurança em Java, era o modelo de
distribuição de programas Java:
“carregar na rede um código de algum
lugar e executá-lo em outro, dentro de um
ambiente computacional”.
No início …

O modelo de segurança para a Internet !
Premissa básica

A segurança Java foi originalmente e
fundamentalmente projetada para
proteger as informações (em arquivos) em
um computador, …
Premissa básica

…para que essas não fossem acessadas
ou modificadas (como a introdução de um
vírus ou um cavalo de Tróia), enquanto
permitindo que o programa Java fosse
executado.
O que é um programa seguro

De uma forma genérica, diz-se que um
programa Java é seguro ou possui
segurança, quando esse possui as
seguintes características:
O que é um programa seguro

Segurança quanto a programas
maliciosos:
isto é, os não são permitidos a
programas, causar danos aos dados
numa máquina e a seu usuário.
O que é um programa seguro

Não intrusivo: programas não devem
poder obter informações privadas do
computador onde ele é executado ou de
outras máquinas na sua rede.
Outras questões

Mas, as considerações de segurança em
uma rede privada não são as mesmas que
a da Internet.
O que é um programa seguro

Autenticação: a identificação das partes
envolvidas em um programa é
verificada.
O que é um programa seguro

Criptografia: dados enviados e
recebidos são cifrados.
O que é um programa seguro

Auditoria: são mantidos registros de
“log” para as operações sensíveis ou
importantes.

Bem-definido: uma definição de
segurança bem definida é seguida.
O que é um programa seguro

Verificação: regras de operações devem
ser especificadas e verificadas.

Agir corretamente: programas devem
agir de acordo com as suas definições.
Não se desviando delas.
O que é um programa seguro

Certificação: programas devem possuir
certificados que indicam que certas
medidas de segurança estão sendo
tomadas.
Idéia do modelo de segurança

A abstração de uma “caixa de areia”.

Fornecer um ambiente seguro para que
uma criança possa brincar.
Idéia do modelo de segurança

Os brinquedos, na caixa de areia, são os
recursos de lazer que a criança tem em
mãos.

A criança não pode brincar com
brinquedos fora da caixa de areia.
Idéia do modelo de segurança

A caixa de areia é responsável por
proteger diversos brinquedos fora da caixa
e o faz em diversos níveis.
Programas Java

Aplicativos ou Applets
 Arquivos
de classe locais
 Arquivos de classe remotos
 Arquivos de classe assinados
 Arquivos de classe de APIs
A execução de um programa Java
seguro

Elementos da Plataforma Java:
 Carregador
de Classes.
 Verificador de Byte-Codes.
 Gerenciador de Segurança.
 Controlador de acesso.
 Pacote de segurança.
 Banco de dados de Chaves
Técnicas de Execução Segura

JavaRunner

Launcher
Launcher

Requer o uso de uma classe especial, a
classe Launcher no pacote
sun.misc.Launcher

Para executar um aplicativo sob controle
do Launcher:
>java sun.misc.Launcher Cat/etc/passwd
JavaRunner

Executa uma aplicação sob a proteção de uma
outra aplicação que chamamos de JavaRunner.

Estabelece os parâmetros para a caixa de areia
Java (o carregador de classe, o gerenciador de
segurança) antes de chamar a aplicação que
será executada sob sua proteção.
JavaRunners

Appletviewer que executa applets, localmente.

O navegador que executa applets advindas
remotamente.

A plataforma de agentes móveis que cria o
ambiente de execução para os agentes.
Analogia

Caixa de Areia é o ambiente de
execução restrito.

Criança é o programa Java (um arquivo).

Brinquedos na caixa de areia são os
elementos da plataforma Java usados
pelo programa.

Brinquedos fora da caixa de areia são
recursos que a criança não pode usar.

Quando se permite que um programa seja
colocado em seu computador, é desejado
um ambiente onde o programa possa
atuar, porém, restringindo a área de
atuação dentro de determinados limites.
Idéia do modelo de segurança

Pode-se permitir que o programa tenha
acesso a determinados recursos de um
sistema, mas com a certeza de que o
programa esteja restrito a certos recursos,
dentro do ambiente do computador.
Download

Segurança Básica em Java