III.
Segurança em Grades Computacionais: O Problema
Para podermos estudar fielmente o problema da segurança em grades computacionais, devemos iniciar estabelecendo um exemplo de quadro no qual a segurança mostra-se algo necessário porém debilitado. Assim, segue abaixo um exemplo do problema em questão, estando este também representado na “Figura 1”.
Figura 1
Imaginemos um físico, membro de uma conjunção de
instituições colaboradoras de cientistas, que receba um
email envolvendo um novo conjunto de dados. Posto isto, o físico
inicia um programa de análise, que por sua vez requisita os dados
junto ao local remoto no qual estão armazenados (Local C). Uma
vez iniciado, o programa de análise de dados determina que precisa
executar uma simulação para comparar os resultados experimentais
com os resultados preditos, contatando assim o servidor de recursos (Local
D), a fim de alocar os recursos não utilizados para que possam
ser usados na simulação. O servidor de recursos, por sua
vez, inicia o processo em computadores distribuídos nos Locais
E e G, que por sua vez acessam os valores dos parâmetros em um
sistema de arquivos no Local F. Além disso, os computadores que
processam a simulação se comunicam também entre
si, com o servidor de recursos, com o repositório de dados (Local
C) e com o usuário (Local A).
Este exemplo ilustra muitas das características distintas de uma grade
computacional. Podemos destacar alguma delas, como:
•
Os usuários são muitos e dinâmicos, posto que participantes
da organização do exemplo incluem membros de muitas instituições
e variam frequentemente,
•
Os recursos são dinâmicos e em grande quantidade, e como as instituições
decidem quais recursos compartilhar e quando compartilhá-los, a quantidade
e a localização dos mesmos podem mudar rapidamente,
•
Um processo pode requisitar, executar e liberar os recursos dinamicamente durante
a sua execução, como no exemplo acima, no qual cinco locais diferentes
tiveram seus recursos utilizados (sem incluir o usuário, que também
se
encontra na grade),
•
Os processos podem se comunicar por uma variedade de mecanismos, incluindo multicast
e unicast. Apesar desses processos formarem uma única entidade lógica
totalmente conectada, as comunicações de baixo nível, como
os sockets TCP/IP, podem ser criados e “destruídos” dinamicamente
durante a execução do programa,
•
Os recursos podem demandar diferentes mecanismos e políticas de autenticação
e autorização, que comumentemente não podem ser modificados.
O nosso exemplo é constituído por diferentes políticas de
controle de acesso, como Kerberos, senhas (representados por plaintext na
figura), SSL e SSH,
•
Um único usuário será associado a diferentes contas e credenciais
nos diferentes locais, para o propósito de controle de acesso e controle
de contas,
•
Os recursos e os usuários podem estar localizados nos mais distantes e
variados lugares, como em diferentes países.
Analisando o exemplo dado acima, podemos concluir que o problema pelo qual
passamos é prover soluções de segurança que
permitam a execução de processos, a conjunção
de diversas políticas de controle de acesso e a operação
segura em ambientes heterogêneos.