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: http://www-unix.globus.org/toolkit/survey/ 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: – ● Implementação do Serviço: – ● MathService.java; Descritor de Segurança: – ● Math.wsdl; (operações: +, -, /, *); 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 https://localhost:8443/wsrf/services/Client_GSISec Conv_Encrypt; Execução do Exemplo ● Cliente: 0 + 60 - 50 * 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;