Sistema de Segurança Globus UFSC – PPGCC – LRG Segurança de Sistemas Distribuídos Paulo Fernando da Silva
Sumário ● Introdução; ● Configuração de Segurança; ● Instalação do Exemplo; ● Execução do Exemplo; ● Trabalhos Futuros; ● Conclusão; ● Referências;
Introdução ● Globus é um middleware para desenvolvimento de aplicações em grid; ● Globus Toolkit é a implementação deste middleware; ● GT 4.0 é baseado em Web Services; ● Sistema de Segurança é baseado em certificados digitais;
Introdução - Instalação ● Download: index.php?download=gt4.0.1-all-source-installer.tar.gz ● Configuração:./configure; ● Compilação: make; ● Instalação: make install;
Configuração de Segurança ● Criação de uma CA simple ( globus ): – setup-simple-ca; ● Instalação da CA no GSI ( root ): – Dentro da CA: setup-gsi -default;
Configuração de Segurança ● Certificados Host do servidor ( root ): – Host requisita um certificado: ● grid-cert-request -host “hostname”; ● > hostkey.pem ● > hostcert_requesp.pem ● > hostcert.pem ● CA assina certificado do host ( globus ): – grid-ca-sign -in hostcert_request.pem -out hostsigned.pem; – copia certificado assinado para o host;
Configuração de Segurança ● Certificado dos Usuários ( user ): – grid-cert-request: ● > userkey.pem ● > usercert_requesp.pem ● > usercert.pem ● CA assina certificado do host ( globus ): – grid-ca-sign -in usercert_request.pem -out signed.pem; – copia certificado assinado para o usuário;
Configuração de Segurança ● Certificado do host acessível ao conteiner: – root# cd /etc/grid-security – root# cp hostkey.pem containerkey.pem – root# cp hostcert.pem containercert.pem – root# chown globus.globus containerkey.pem containercert.pem
Configuração de Segurança ● Grid-Mapfile ( root ): relaciona um certificado a um usuário; – grid-mapfile-add-entry -dn subject -ln user; ● Certificado proxy ( user ): – grid-proxy-init -verify -debug; – cria um certificado proxy para acesso ao container; – validade de 12 horas;
Instalação do Exemplo ● Interface WSDL: – Math.wsdl; (operações: +, -, /, *); ● Implementação do Serviço: – MathService.java; ● Descritor de Segurança: – security-config-first.xml; ● Descritor de Deploy: – deploy.wsdd;
Instalação do Exemplo ● Build Serviço: – ant compila exemplo com base de build.xml; –./globus-build-service.sh sec_first; – gera arquivo.gar (grid archiver); ● Deploy do Serviço no Container: – globus-deploy-gar example.gar; ● Build do Cliente: – Compilação de Client_GSISecConv_Encrypt.java;
Execução do Exemplo ● O serviço já está instalado (deploy) no container; ● Basta iniciar o container ( globus ); – globus-start-container; ● No cliente: – criar proxy: grid-proxy-init; – java Client_GSISecConv_Encrypt Conv_Encrypt;
Execução do Exemplo ● Cliente: * 4 / 2 = 20; ● Resultado: – Addition was successful – Subtraction was successful – Multiplication was successful – Division was successful – Current value: 20
Trabalhos Futuros ● Artigo IDS Virtual; ● Usar plataforma Globus; ● Especificar serviços de detecção de intrusão; ● Cliente do grid faz uso dos serviços de IDS; ● Resultado: criar um IDS virtual onde os serviços estão distribuídos de maneira segura e transparente;
Trabalhos Futuros
Conclusão ● Execução de serviços demanda considerável configuração inicial; ● Plataforma consideravelmente segura, pois usa certificados digitais (análise inicial); ● Existe bastante documentação de qualidade sobre o assunto; ● Ainda existe muito a ser estudado para conclusão do artigo;
Referências ● GT 4.0 Admin Guide; ● GT 4.0 Java WS Developer's Guide; ● The Globus Toolkit 4 Programmer's Tutorial;