Interface Básica para um Servidor Universal Flávia Linhalis Orientação: Prof. Dr. Dilvan de Abreu Moreira Roteiro da Apresentação Introdução Objetivo Tecnologias de Desenvolvimento Visão Geral Conclusões e Trabalhos Futuros Introdução Servidor Universal banco de dados/servidor capaz de armazenar os mais diversos tipos de objetos Vantagens Informações em apenas um formato fornecidas de maneiras diferentes Evita redundância de informações Roteiro da Apresentação Introdução Objetivo Tecnologias de Desenvolvimento Visão Geral Conclusões e Trabalhos Futuros Objetivo Usuário Aplicação BD Servidor universal é necessário porque as aplicações são agentes de software e podem trabalhar com variados tipos de objetos. Interface entre aplicações e banco de dados do servidor universal se torna necessária. A Interface Funções da Interface Básica para um Servidor Universal receber e verificar a autenticidade dos agentes executar os agentes de forma segura controlar o tempo de vida dos agentes Vantagens Java como linguagem de consulta. Proporciona abertura, pois os agentes podem carregar objetos no banco de dados e se conectarem a recursos externos. Roteiro da Apresentação Introdução Objetivo Tecnologias de Desenvolvimento Visão Geral Conclusões e Trabalhos Futuros Criptografia Proporciona confidencialidade de dados. Mensagem Método de Criptografia (Codificação) Mensagem Criptografada Método de Criptografia (Decodificação) Pode utilizar chave privada ou pública. Mensagem Assinatura Digital Chave privada é evidência de identidade. Mensagem Hash Codificação Mensagem Mensagem Assinada + Mensagem Hash + Mensagem Assinada Decodificação = OK Certificados Chave pública recebida é autêntica? Um certificado é uma declaração assinada pelo possuidor de uma chave privada dizendo que uma chave pública é autêntica. Assinaturas Digitais em Java API de segurança para assinatura de dados. Arquivos JAR podem ser assinados. Ferramenta keytool para manipulação de chaves e certificados. Ferramenta jarsigner para assinar JARs. Assinaturas Digitais em Java Aplicação jar Keytool - gerar Aplicação.jar keystore jarsigner AplicaçãoAss.jar ch. Privada certificado ch. pública Keytool - exportar certificado Assinaturas Digitais em Java Arquivos do JAR ______ ______ ______ ______ hashes manifest ______ .SF hashes ______ .DSA Assinatura + certificado Assinaturas Digitais em Java .DSA Assinatura + certificado = .SF manifest JAR ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ = hashes OK OK novos hashes = hashes OK novos hashes O Agente Gateway Desenvolvido para garantir a autenticidade dos agentes. conexão ServerFTP ClientFTP JAR JarVerifier JAR OK Certificate Verifier Controle de Acesso Autorização para acesso aos roots do banco de dados e aos recursos do sistema. Interface com o Banco de Dados SecurityManager A Interface com o BD Definição de métodos para acesso ao BD Manipulação de roots Manipulação de grupos permissões de acesso entre roots e grupos dois grupos criados: superusers e commonusers Controle de threads controle de acesso durante a execução dos agentes O SecurityManager É uma classe de Java que controla o acesso aos recursos do sistema. Políticas de segurança em Java Permissões são explicitadas em um policyfile Podem ser associadas a um certificado e a uma URL SecurityManager monitora o policyfile automaticamente Execução Segura certificado Keytool - importar AplicaçãoAss.jar keystore JVM SecurityManager Policy files certificado válido O Pool de Agentes Agentes autenticados pelo Gateway poderão ser executados pelo Pool. Pool JarRunner TimeCounter Agente Gateway Agente 1 Agente . . . 2 Agente N Conexão com outros hosts Roteiro da Apresentação Introdução Objetivo Tecnologias de Desenvolvimento Visão Geral Conclusões e Trabalhos Futuros Visão Geral da IBSU Root 1 Root 2 ... Root N Interface com o BD BD Universal Security Manager Pool de Agentes Agente 2 ... Agente 1 Gateway Agente N Agente 1 Roteiro da Apresentação Introdução Objetivo Tecnologias de Desenvolvimento Visão Geral Conclusões e Trabalhos Futuros Conclusões Pool é um ambiente para a execução aberta e segura de agentes. Gateway, SecurityManager e Interface com o BD proporcionam segurança. Java proporciona abertura e flexibilidade. Agentes possuem todos os recursos da plataforma à sua disposição. Agentes podem carregar objetos no BD. Consultas mais flexíveis feitas em Java. Trabalhos Futuros Implementar a Interface com o BD para SGBDs comerciais. Implementar uma subclasse do Security Manager ao invés de um policy file. Implementar a Interface com o BD para trabalhar com JavaSpaces. Armazenamento de objetos compartilhados por uma rede de recursos Java. Interface entre agentes e os serviços e dados. Obrigada