Com base na análise crítica e comparativa de diversos métodos de segurança (descritos em /PIN95/) , foi elaborada a proposta de uma solução que ofereça segurança num contexto de interações bancárias entre entidades dispersas, interconectadas por uma rede potencialmente não confiável do ponto de vista de segurança.
O SEGREDE (comunique em segredo) é um modelo de gerenciamento de segurança que se propõe a fornecer mecanismos para proteger a comunicação entre aplicações distribuídas co-nectadas através de uma rede aberta. Ele compreende um conjunto de funções e interfaces que serão usadas para fornecer segurança a um sistema de processamento cooperativo.
Este trabalho atende aos requisitos de segurança propostos pela arquitetura de Segurança OSI /PIN94/ e é orientado à apoiar aplicações do padrão EDIFACT. As principais característi-cas do SEGREDE são:
fig 4 - Modelo do sistema SEGREDE
Assim sendo a sequência de um intercâmbio utilizando o SEGREDE poderia ser estruturada conforme a figura fig5.
fig 5 - Sequência de mensagens de um intercâmbio SEGREDE
No cabeçalho de segurança SEGREDE serão especificados quais os serviços de segurança que estão sendo aplicados neste intercâmbio e outras informações relacionadas a esses servi-ços; a seguir tem-se as mensagens SEGREDE que são as mensagens do intercâmbio após a aplicação dos serviços de segurança solicitados e finalmente tem-se o trailer de segurança SE-GREDE contendo informações finais sobre o intercâmbio realizado.
O SEGREDE tem como principal ferramenta de suporte o software Kerberos, serviço de autenticação de terceiro parceiro, além de outros algoritmos de segurança de grande aceitação a nível internacional, tais como o DES, RSA e MD5. Prevê-se a utilização de um serviço de diretório X500 para armazenagem e consulta de chaves públicas a serem usadas pelo algoritmo de chave pública RSA.
Os mecanismos de segurança estarão disponíveis sobre o formato de uma função e deverão ser utilizados tanto pelo usuário origem (para enviar uma mensagem segura) como pelo usuá-rio destino (para verificar e interpretar o conteúdo da mensagem segura recebida).
Para atender aos serviços de segurança previstos, devem ser oferecidos os seguintes mecanismos:
Esse mecanismo está composto de quatro diferentes tipos de autenticação:
Dependendo do nível de segurança que a informação necessita, poderá ser escolhida a criptografia simétrica, a criptografia assimétrica ou o mecanismo de confidencialidade Kerbe-ros:
no emissor, a mensagem será criptografada com o DES modo CBC usando a chave de sessão previamente intercambiada entre o cliente e o servidor (através da autenticação Kerberos); o destinatário deverá decriptografar a mensagem recebida utilizando o mesmo algoritmo e chave;
b) DES triplo com 2a. chave no cabeçalho
no emissor, a mensagem será criptografada com o DES triplo modo EDE2-CBC usando duas chaves: a chave de sessão e uma 2a. chave enviada no cabeçalho de segurança (criptografada com o algoritmo RSA e a chave pública do destino); ao receber o cabeça-lho, o destinatário localiza a 2a. chave e decriptografa com algoritmo RSA e sua chave privada; ao receber a mensagem, decriptografa-a usando o DES triplo e as duas chaves correspondentes;
c) híbrido - DES triplo com 2a. chave por mensagem
semelhante a opção anterior, sendo que a 2a. chave será específica para cada mensagem;
b) secreta para o destino: a mensagem será criptografada com a chave pública do destina-tário, gerando uma mensagem secreta que apenas o destino poderá decriptografar (apenas ele tem conhecimento da chave secreta correspondente);
c) assinada pela origem e secreta para o destino: a mensagem passará por dois processos criptográficos que corresponde a junção das duas opções anteriores; assim sendo, a mensa-gem transmitida tanto terá a garantia de quem a enviou como apenas será interpretada pelo destinatário pretendido;
Para garantir a veracidade do intercâmbio, estão disponíveis três opções de proteção:
· integridade de uma mensagem ou de um determinado campo
usuário origem - usando o algoritmo MD5, calcula o digest para toda a mensagem ou sobre um determinado campo; criptografa o digest com o RSA e a chave pública do destinatário e o envia junto com a mensagem;
usuário destino - ao receber a mensagem, calcula o digest através do algoritmo MD5; de-criptografa o digest recebido com o algoritmo RSA e a sua chave privada; compara o digest calculado e o recebido para verificar se a mensagem recebida está íntegra;
· integridade da sequência da mensagem
usuário origem - envia um número sequencial randômico inicial no cabeçalho de segurança. Cada mensagem deve agregar um número sequencial consecutivo ao da mensagem anterior e calcular o digest (algoritmo MD5) sobre a mensagem e o sequencial; criptografa o digest com o RSA e a chave pública do destinatário e o envia junto com a mensagem;
usuário destino - calcula o digest da mensagem e do número sequencial com o algoritmo MD5; decriptografa o digest recebido com o RSA e a sua chave privada; para que a mensa-gem esteja íntegra, o número sequencial deverá ser igual ao recebido anteriormente acres-centado de 1 e o digest recebido deverá ser igual ao digest calculado
· integridade Kerberos - utiliza o mecanismo de integridade fornecido pelo software Kerberos - mensagem SAFE, que agrega um checksum da mensagem utilizando a função DES_Quad_cksum e a chave de sessão.
O mecanismo de notarização está relacionado com o serviço de segurança de não-rejeição; esse mecanismo permite que o parceiro de um intercâmbio registre em um terceiro parceiro confiável, o Servidor de Notarização, as características de uma mensagem recebida ou enviada com a finalidade de posteriormente garantir a ocorrência desse intercâmbio, mesmo que o ou-tro parceiro tente negar a sua participação.
O serviço de não-rejeição pode ser dividido em:
· não-rejeição da origem - quando o usuário destino notariza a origem da mensagem para que o usuário origem não negue posteriormente ter enviado a mensagem;
· não-rejeição do destino - quando o usuário origem notariza o recebimento da mensagem pelo usuário destino para que este não venha negar posteriormente ter recebido a mensa-gem.
A utilização do mecanismo de notarização induz em usar tanto o mecanismo de criptografia assimétrica por garantir que apenas um determinado usuário poderia criptografar usando sua chave privada, como o mecanismo de integridade da mensagem a fim de garantir a veracidade da mensagem intercambiada ou seja, ela não foi alterada durante o processo de comunicação.
No SEGREDE, a notarização será realizada integrando o mecanismo de criptografia assi-métrica RSA, o mecanismo de integridade MD5 e o servidor de Notarização desenvolvido que será responsável pelo registro das mensagens de notarização.
Independentemente de qual tipo de notarização irá ser realizado, deverá ser feito um regis-tro das características originais da mensagem intercambiada no Servidor de Notarização (SN) para uma posterior comprovação; este registro constará dos seguintes campos: usuário origem, usuário destino, data, horário da comunicação, tipo de notarização bem como a mensagem e o seu digest criptografados.
· notariza origem da mensagem - o usuário destino deverá solicitar ao Servidor de Notariza-ção o registro da mensagem recebida do usuário origem.
· notariza destino da mensagem - o usuário origem deverá solicitar ao Servidor de Notariza-ção o registro da mensagem recebida pelo usuário destino.
No SEGREDE, sempre que for detectado alguma anormalidade relacionada com a seguran-ça ou seja, quando um dos mecanismos detectar uma possível ameaça ao sistema, deverá ser chamada a função de notificação para que o gerente da rede tome conhecimento desse evento.
Dependendo do protocolo de gerenciamento da rede, a função de notificação poderá ser:
· notificação OSI - através da primitiva de serviço M_EVENT_REPORT, incluindo detalhes sobre a ocorrência, especificando o tipo de alarme e a causa provável desse alarme; · notificação SNMP - através de uma mensagem trap classificada como sendo do tipo "específico da implementação" e subdividido conforme o evento que gerou o alarme (tipo e causa).
O gerenciamento das chaves públicas do SEGREDE utilizará um serviço de diretório X500 através da implementação do QUIPU. Assim sendo, a manutenção e as solicitações das chave públicas serão fornecidas através das funções deste serviço de diretório.
Como o SEGREDE utiliza outros sistemas de segurança de domínio público, é necessário preparar o ambiente para que as funções propostas neste trabalho sejam implementadas e exe-cutadas. Esses procedimentos podem ser agrupados em: instalar e executar o SEGREDE.
Os passos necessários para instalar o sistema SEGREDE são:
Para executar o SEGREDE ou seja, uma aplicação kerberizada e segredada, deve-se seguir a sequência abaixo: