SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Propostas de Autenticação para o Protocolo de Gerência de Redes SNMP

                      Mauro Tapajós Santos e Rafael Timóteo de Sousa Júnior
                     Departamento de Engenharia Elétrica - Universidade de Brasília - UnB
                           Caixa Postal 4386, CEP: 70919-970, Brasília DF – Brasil
                Tel: 061-2735977, Fax: 061-2746651, tapajos@abordo.com.br, desousa@unb.br


   Sumário - este trabalho apresenta propostas            possibilitar a um atacante, não somente descobrir
implementadas de serviços de autenticação no              parâmetros críticos dos sistemas e da rede, como
protocolo SNMP, provendo um mecanismo básico              também alterá-los e prejudicar os serviços que deles
de segurança para sua versão 1 e mantendo                 dependem.
flexibilidade suficiente para permitir uma integração        A segunda versão do protocolo [2], denominada
ao modelo de segurança das novas versões do               SNMPv2 clássica ou SNMPv2p, tenta solucionar o
protocolo. Tais propostas têm base na utilização de       problema da segurança, apresentando um modelo de
senhas descartáveis na autenticação das mensagens         segurança que integra autenticação e criptografia ao
SNMP, com os necessários protocolos criptográficos        protocolo, para protegê-lo de ameaças como
para geração e troca de chaves de criptografia entre      interrupção,     interceptação,    modificação     e
as entidades usuárias do protocolo.                       mascaramento de informações. Isso permitiria que
                                                          troca de mensagens SNMP fosse ou totalmente aberta,
                                                          ou autenticada mas não privada, ou privada mas não
1. INTRODUÇÃO                                             autenticada, ou ainda autenticada e simultaneamente
                                                          privada. O novo conceito de party era muito
   O protocolo de gerência de redes mais usado            importante nesta proposta. Uma party é definida como
atualmente é o SNMP (Simple Network Management            um contexto de execução virtual nas entidades SNMP,
Protocol).     Juntamente    com     outros    padrões    onde a operação do protocolo restringe-se a um
relacionados, SNMP oferece um denominador comum           subconjunto de possíveis operações. A estrutura da
na construção de arquiteturas de gerência de redes        party substituía as comunidades da versão 1,
distribuídas.                                             acrescentando informações de tempo (clocks), chaves
   Como está hoje, o SNMP ainda não responde a            de criptografia e políticas de acesso às entidades
requisitos importantes de segurança. A efetiva            SNMP.
gerência de redes demanda tanto facilidades de               Foi difícil a aceitação deste novo protocolo
monitoração, como de controle dos diversos                principalmente por causa de sua incompatibilidade
componentes das redes. SNMP é usado basicamente           com a versão 1, já que as novas mensagens
para monitoração, devido aos seus mecanismos fracos       criptografadas não eram compreendidas pelas
de segurança que inibem a execução de ações à             entidades SNMPv1. E, além de ter problemas de
distância, necessárias às diversas tarefas de controle    overhead nas mensagens, o modelo administrativo
das redes. Em conseqüência, as operações de               baseado em parties implica numa pré-configuração
configuração possíveis via SNMP são subutilizadas         destas parties, o que pode se tornar um processo
por causa da desconfiança dos operadores e gerentes       excessivamente complexo, já que aspectos como
de redes com relação à segurança do processo.             protocolos de transporte, clocks, chaves para os
   Contudo, o projeto inicial de SNMP previra a           algoritmos de segurança e direitos de acesso devem
necessidade de atualizações. A forma modular como         ser previamente definidos na etapa de configuração
foi definido o protocolo visou facilitar futuras          das entidades do protocolo, ou seja, os agentes de
modificações para as soluções das falhas, mantendo a      gerência e gerentes de rede.
filosofia da simplicidade do protocolo.                      Em conseqüência, foram empreendidos novos
   O problema-chave na versão mais utilizada              esforços de revisão do protocolo em resposta à baixa
(SNMPv1) do protocolo é o emprego de um                   aceitação da versão SNMPv2 clássica. Tal revisão se
mecanismo de segurança trivial que visava oferecer        deu principalmente no que diz respeito ao contexto
autenticação para as mensagens e controle básico de       baseado em parties, à configuração dos agentes
autorizações de acesso para operações sobre objetos       SNMP, à dificuldade de mapeamento da rede e à
gerenciados [1]. De fato, o mecanismo de autenticação     implementação do modelo administrativo e de
em SNMPv1 consiste em preencher o campo                   segurança. Decidiu-se voltar o contexto de operação
comunidade (communityString) das mensagens do             do protocolo à antiga forma de comunidades, sem o
protocolo com uma senha não criptografada e               modelo de segurança proposto em SNMPv2 clássico,
virtualmente imutável. Com freqüência, na prática da      e, consequentemente, voltando ao antigo formato das
gerência de redes, é usado o termo public como nome       mensagens. Assim, foi apresentada mais uma versão
de comunidade. Tal senha pode ser obtida por simples      SNMP, chamada de SNMPv2c, baseada em
análise do tráfego, permitindo a um atacante ter acesso   comunidades, o que recolocou o problema de
aos elementos gerenciados para executar operações de      segurança original.
gerência de rede. Assim, o acesso não-autorizado pode
A partir daí, dentre as tentativas de definição do    mensagem. Assim, qualquer um, de posse das
modelo administrativo e de segurança, duas linhas de     informações daquele usuário, pode agir sob seu nome.
desenvolvimento se destacaram: a SNMP USEC                  Por outro lado, o modelo USM oferece capacidade
(User-based Security Model) e a SNMPv2* (SNMPv2          de autenticação e confidencialidade da comunicação.
“star”). Estas duas propostas, que representaram         Como não é possível oferecer confidencialidade sem
caminhos independentes percorridos por integrantes       ter autenticação da origem e garantia da integridade
das equipes originadoras do protocolo, terminaram por    dos dados, existem 3 níveis de segurança possíveis
convergir nos trabalhos de definição da versão 3 do      dentro do modelo:
protocolo, denominada SNMPv3, cujos trabalhos               1. Comunicação        sem       autenticação      ou
ainda estão sendo concluídos com a elaboração de               confidencialidade     (nível     de     segurança
documentos que serão submetidos ao processo da                 denominado noAuthNoPriv);
padronização definitiva [3]. Alguns detalhes da nova        2. Comunicação com autenticação, mas sem
proposta ainda estão em discussão, e, até o momento            confidencialidade (denominado authNoPriv);
da redação deste artigo, as especificações geradas          3. Comunicação        com        autenticação      e
ainda não possuíam status de padronização completa.            confidencialidade (denominado authPriv).
   Na proposta SNMPv3, existe, até o momento da             Dentre os campos componentes dos dados globais
redação deste trabalho, um único modelo de segurança     da mensagem SNMPv3, está a informação de qual será
sendo adotado. Ele se chama USM - User-Based             o nível de segurança que deverá ser aplicado à
Security Model [4] e sua implementação é obrigatória     mensagem.
em todas as entidades SNMPv3. O modelo de                   Para implementar os mecanismos de segurança
segurança USM identifica as ameaças levadas em           descritos acima, são definidos 3 módulos dentro do
consideração na operação do protocolo SNMP e             modelo de segurança: módulo de autenticação (que
define as proteções a serem usadas e as regras que o     lida com a integridade dos dados e autenticação da
tornarão operacional dentro da arquitetura proposta      origem), módulo de temporização (que lida com
para SNMPv3.                                             atrasos e replays de mensagens) e módulo de
   USM é basicamente derivado do modelo SNMP             confidencialidade (que lida com a privacidade da
USEC de segurança baseado em usuário [5], com            mensagem).
algumas alterações. Nele, existe um conceito de             Visando a implementação desses módulos, é
usuário ao qual estão associadas informações de          preconizada a utilização de protocolos criptográficos
segurança usadas em um ambiente de gerência SNMP.        de autenticação, de integridade dos dados e
   A definição de SNMPv3 reconhece que é um erro         autenticação da origem, com base nos algoritmos
querer definir um único modelo de segurança              MD5 [6] e SHA-1 [7], além do método HMAC
definitivo e imutável, pois, com o tempo, novos          (Keyed-Hashing for Message Authentication) [8].
requisitos de segurança aparecerão e outros podem           Diante dessa evolução, e considerando que, apesar
cair em desuso. Assim, admite-se que SNMP poderá         do desenvolvimento já avançado, o trabalho em
suportar vários modelos de segurança, sendo porém        SNMPv3 ainda não está concluído e algumas questões
obrigatória a implementação do USM para garantir         ainda estão em aberto, o trabalho apresentado neste
compatibilidade com o modelo inicial de SNMPv3           artigo procura desenvolver alternativas de mecanismos
   As principais ameaças levadas em consideração na      de autenticação para SNMP compatíveis com as
definição de SNMPv3 são a modificação da                 versões anteriores do protocolo, ainda largamente
informação gerada por um usuário válido e o              utilizadas e bastante eficazes. Nesse sentido, as
mascaramento de um usuário, efetivado pelo uso de        propostas descritas nesta artigo visam apresentar um
uma identificação falsa por parte de uma entidade não    mecanismo autenticador de mensagens SNMP para as
autorizada. Também foram consideradas, ainda como        versões v1 e v2c do protocolo, mecanismo este capaz
secundárias, as seguintes ameaças de replay, ou seja     de substituir o esquema trivial de autenticação dessas
reordenamento e atraso das mensagens de forma            versões. Por outro lado, foi também preocupação no
estranha à operação normal da rede, e falta de           desenvolvimento manter coerência com os trabalhos
privacidade nas trocas de mensagens entre entidades      em SNMPv3, de forma a tornar possível a utilização
SNMP.                                                    das propostas aqui descritas dentro da arquitetura da
   Estas ameaças são evitadas com a utilização de        versão 3.
criptografia e de uma política de acesso às                 Assim, são apresentados a seguir dois protocolos de
informações, o que subentende a utilização de            autenticação, denominados auth-N e auth-P, ambos
algoritmos criptográficos e de chaves de criptografia.   com base no emprego de chaves de autenticação que
   Os serviços de segurança para defesa contra as        mudam constantemente, reduzindo o risco da quebra
ameaças consideradas acima são: integridade dos          de qualquer uma das chaves a um comprometimento
dados da mensagem, autenticação da origem das            de somente uma mensagem SNMP e isso apenas no
mensagens, confidencialidade dos dados das               momento em que tal mensagem está sendo trocada
mensagens e proteção temporizada contra replays.         entre duas entidades de gerência de rede.
Todos eles são serviços comuns de segurança nas
mensagens do protocolo.
   Cabe notar que o serviço de autenticação da origem    2. PROTOCOLOS DE AUTENTICAÇÃO PROPOSTOS
dos dados proposto só pode garantir que se saiba qual
usuário dentro do modelo USM está enviando a
Os protocolos de autenticação aqui propostos se         mensagem tenha um novo valor para o campo
preocupam basicamente com as ameaças de                    requestId, o mesmo pode ser dito aqui em relação à
modificação da informação e mascaramento. Para             chave de autenticação a ser usada: ela deve mudar a
oferecer proteção contra estes ataques, é enviada          cada mensagem, mesmo no caso de retransmissão.
juntamente com a mensagem, a informação de                    No processo de autenticação, as respostas utilizam a
autenticação. Esta informação será usada pelo receptor     mesma chave de autenticação usada nas solicitações.
no processo de verificação da autenticidade da             Respostas sem correspondência com solicitações são
mensagem, implicando na necessidade de um método           descartadas. Ou seja, a autenticação é obrigatória para
de geração desta informação, em função pelo menos          as respostas também.
dos dados da própria mensagem e de um segredo                 Estes mecanismos dependem da inicialização prévia
compartilhado pelas duas partes, ou seja, uma chave        de dados de autenticação nos elementos da rede, sendo
de autenticação.                                           este procedimento uma decisão de implementação e
   A solução do problema deve estar integrada              podendo ser usados quaisquer métodos, tanto
totalmente com a operação normal dos protocolos            automáticos (certificados, canais seguros), como
SNMPv1 e SNMPv2c. Isto significa que, além de a            manuais. Esta é a mesma posição do grupo de trabalho
mensagem permanecer a mesma, o novo módulo de              SNMPv3.
autenticação não deve alterar outros aspectos como o          A chave de autenticação proposta tem 128 bits. Este
controle de acesso às informações de gerência ou a         valor foi considerado suficiente para a aplicação de
execução normal de cada tipo de operação SNMP.             autenticação em questão, pois as operações de
   Um cliente SNMP (gerente) deve construir e enviar       gerência de rede têm um tempo de vida normalmente
o seu pedido ao servidor (agente), usando a chave de       curto.
autenticação correta. Devido ao fato de o protocolo
UDP (ou outro protocolo de transporte que não seja
confiável) não garantir a entrega dos pacotes, o cliente   2.1 Protocolo Auth-P
deve implementar estratégias para timeout e
retransmissão das mensagens. Nessa situação, vale             Este protocolo cria uma chave de autenticação
mais uma vez lembrar que a comunicação autenticada         aleatória a cada mensagem. Esta chave é cifrada e
se dá então pelo procedimento que consiste em              enviada juntamente com a mensagem, através de um
calcular o campo de autenticação para a mensagem           subcampo        do    communityString,     denominado
que se quer enviar e enviar tal campo juntamente com       “informação de chave”.
a mensagem. Na recepção, é feito novamente o mesmo            Na recepção, a chave é decifrada e a autenticação é
cálculo e a comparação entre os dois valores               testada. O “P” aqui indica que a chave passa pela rede
determina se a mensagem é autêntica. Para não alterar      juntamente com a mensagem.
o formato das mensagens, o próprio campo                      Para realizar o protocolo, uma função cifradora C
comunidade (communityString) de SNMPv1 e                   chaveada deverá ser usada. Ela deverá consistir de um
SNMPv2c é usado para enviar as informações de              cifrador de blocos que terá o papel de cifrar sempre
autenticação entre as entidades participantes.             uma mensagem de tamanho 128 bits: a chave de
   A idéia básica das soluções aqui propostas é fazer      autenticação. O tamanho de sua chave também será
com que o segredo compartilhado entre gerente e            128 bits.
agente mude a cada solicitação SNMP. Esta mudança             Em síntese, o procedimento auth-P pode ser descrito
contínua permite evitar que o segredo, mesmo               da seguinte maneira, conforme ilustra a Figura 1:
conhecido, não tenha maior utilidade já que sua               1. É inicializada uma mesma chave, chamada chave
validade cobre tão somente uma única transação                   mestre de autenticação (Kmestre), em cada um
SNMP.                                                            dos elementos de rede que compartilharem esta
   Para não alterar o formato da mensagem SNMP v1                chave.
ou v2c, o campo a ser usado para transporte da                2. Quando o gerente for enviar um request, uma
informação de autenticação é unicamente o campo                  chave de autenticação da transaçao (Ktransação)
comunidade (communityString), que passa a ter uma                será gerada aleatoriamente e usada no cálculo do
nova interpretação. Desta forma, toda a informação               digest.
pertinente de autenticação será processada conforme           3. Ktransação será criptografada pela função C,
descrito a seguir e será então inserida no campo                 chaveada por Kmestre, gerando sua cifração
communityString, mais especificamente na forma de                Kcipher;
uma sequência de bits.                                        4. Kcipher é inserida na mensagem a ser enviada,
   A informação de autenticação a ser gerada e                   no subcampo “informação de chave” do campo
inserida na mensagem deverá ser uma função da chave              communityString redefinido.
de autenticação definida, das características de              5. Na recepção, a chave Ktransação é recuperada
controle de acesso desejadas e da própria mensagem.              pela transformação inversa de C utilizando
   Mais especificamente, neste trabalho, as duas                 Kmestre em Kcipher
propostas de protocolo de autenticação para SNMP              6. A chave Ktransação obtida é usada no teste da
implementam um esquema onde ocorre uma                           autenticação.
transformação contínua das chaves de autenticação. O          Cabe notar que não fará diferença se o protocolo de
comprometimento de uma delas não coloca em perigo          transporte abaixo do SNMP for não-confiável, pois
mensagens ou chaves que venham a ser geradas               cada solicitação espera uma resposta especificada pelo
posteriormente. A RFC 1905 [9] sugere que cada nova        valor de requestId da mensagem. Logo, se uma
mensagem ou sua resposta se perderem, cabe ao                Supondo um protocolo de transporte não confiável,
gerente estabelecer estratégias de retransmissão para     deve-se prever as exceções possíveis na transmissão
aquele determinado request, cuidando para que a nova      destas mensagens. Duas situações são mais
operação empregue uma nova chave de autenticação          importantes: a perda de mensagem e a troca de ordem
aleatória.                                                na travessia pela rede.
   No caso de mensagens duplicadas, a que vale é a           Se uma mensagem de request não obtiver resposta,
primeira a chegar corretamente autenticada. Como          o timeout de espera do gerente vai expirar. Dependerá
definido anteriormente, mensagens recebidas sem           da implementação o que será feito se, durante o tempo
correspondência devem ser descartadas.                    de timeout, forem recebidas mensagens com mesmo
                                                          RequestId, mas com autenticação falha. De qualquer
                                                          forma, a sincronização das chaves geradoras não é
2.1 Protocolo Auth-N                                      perturbada. Deve-se observar que a retransmissão do
                                                          request deverá usar uma nova chave.
  Este protocolo cria uma chave de autenticação pela         Se a mensagem com n=1 não obtiver resposta, uma
aplicação de uma função de hash Hn várias vezes           exceção à regra é imposta: n deverá permanecer em 1
sobre uma chave inicial, chamada chave geradora           até que se receba a resposta para este request e a troca
(Kgeradora). A cada mensagem, o número (n) destas         da chave do gerente possa ser efetuada.
aplicações é decrementado pelo gerente e a mensagem          Para o manter o sincronismo de chaves, é necessário
carregará o n para o agente poder chegar na mesma         que o gerente nunca envie chaves da nova janela
chave. Na recepção, a mesma função de hash Hn é           (depois da transformação H) enquanto não receber a
aplicada n vezes sobre a chave inicial para se chegar à   resposta da mensagem autenticada com Kauth 1 da
mesma chave usada para autenticar a mensagem. O           janela anterior. Quando a mensagem com Kauth 1 não
caracter “N” no nome Auth-N indica a dependência da       receber resposta, a próxima mensagem deve ser
chave com relação ao número de vezes n em que a           autenticada com a mesma Kauth 1 até que uma
função de hash deve ser aplicada. Este protocolo          resposta seja recebida. Esta é a única situação onde o
obedece às seguintes regras (Figura 2):                   gerente reutiliza a chave de autenticação. Em todos os
  1. São inicializadas duas chaves idênticas no           outros casos, a chave deve ser constantemente
     gerente e agente, K--matriz e Kgeradora.             mudada.
  2. Chama-se o intervalo 0  n  w de janela. O             Quanto ao agente, este responderá às mensagens
     valor de n inicialmente é w. A cada nova             reenviadas autenticadas com Kauth 1 tantas vezes
     transação, n decresce até chegar a 1. A constante    quantas forem necessárias e fará sua transformação
     alteração do valor de n é de responsabilidade do     somente quando receber a primeira mensagem da nova
     gerente e deve ser feita a cada mansagem             janela, indicando que o gerente realizou sua troca da
     enviada.                                             chave geradora. A mensagem será considerada de uma
  3. A chave de autenticação da transação corrente,       nova janela quando apresentar n > w/2.
     Ktransação = Kauth n corresponderá à Kgeradora          No percurso pela rede, mensagens enviadas podem
     transformada n vezes por uma função de hash h        sofrer troca de ordem ao chegar ao seu destino. Esta
     (K), sendo n um inteiro maior que 0 e menor ou       possibilidade só prejudicaria a operação do protocolo
     igual a w. Logo Kauth n= hn(Kgeradora).              auth-N se a resposta da mensagem com n=1 trocar de
  4. Quando n chegar a 1, deve ser gerada uma nova        ordem com uma anterior, caso em que uma mensagem
     chave Kgeradora, usando uma função H one-way         corretamente autenticada poderia ser rejeitada pelo
     e a chave Kmatriz previamente inicializada.          gerente.
     Logo, Kgeradora nova = H(Kgeradora velha,               Se a resposta da mensagem com n=2 chegar depois
     Kmatriz). Note-se que para cada Kgeradora, a         da resposta de n=1, para o gerente, ela estará na nova
     janela será completamente atravessada de w a 1.      janela e este tentará autenticá-la com a nova chave
  5. O gerente só deve efetuar a transformação da         geradora, implicando em falha.
     chave após receber a resposta da mensagem com           A solução para este problema estaria unicamente no
     n = 1. O agente muda sua chave geradora quando       gerente. Uma cópia da chave geradora anterior sempre
     receber a primeira mensagem da nova janela.          estaria disponível e, no caso da falha na autenticação
     Uma mensagem é considerada da nova janela            de valores de n próximos de 1, essa cópia seria usada.
     quando seu valor for maior que w/2.                  Com esta abordagem, o agente não é onerado com
  6. Assim que transformar sua chave geradora, o          mais procedimentos de controle.
     agente deve começar a usá-la imediantamente na
     própria mensagem que disparou a mudança.
  7. A mensagem a ser transmitida, então, deverá
     carregar n para que o agente (que supostamente
     possui     também     Kmatriz      e    Kgeradora
     sincronizadas) transforme Kgeradora tantas vezes
     quanto necessário para chegar à mesma chave de
     autenticação usada no envio.
  8. Com a chave da transação correta, o agente
     procede o teste de auteticação da mensagem
     recebida.
2.3 Características dos Protocolos Propostos              duas chaves usadas na autenticaçao: a chave matriz e a
                                                          chave geradora. O que estará disponível para o
   Os protocolos propostos e descritos aqui               atacante na rede será apenas o digest gerado pela
identificam a origem de uma mensagem como sendo           chave da transação, chave esta que muda a cada
um endereço de rede de uma entidade SNMP. Um              mensagem. Tanto a chave matriz como a geradora não
endereço de rede, tal como entendido aqui, só poderá      atravessam a rede e, portanto, suas características não
ser na realidade um único endereço efetivo de rede        estão disponíveis em qualquer informação carregada
atribuído e alcançável.                                   pela mensagem SNMP.
   As     chaves     empregadas     nos    mecanismos        Além disso, em Auth-N, a chave geradora muda a
autenticadores apresentados só fazem sentido quando       cada n = 1, evitando que a descoberta de uma chave
usadas entre dois elementos distintos, um gerente e um    geradora signifique perda da segurança. Isto é possível
agente. Em SNMPv1/v2c, estes são identificados por        por que a nova chave geradora é alterada em função da
seus endereços de rede. Isto associa um endereço de       chave matriz por uma função one-way, portanto sem
rede a uma entidade SNMPv1/v2c agente ou gerente.         retorno. Para um atacante, só seria possível
Desta forma, uma entidade SNMP (agente ou gerente)        acompanhar as alterações das chaves do protocolo se
deverá possuir uma tabela que armazenará chaves de        conseguisse ambas as chaves e observasse os valores
autenticação para cada outra entidade SNMP com            de n para saber quando obter a nova chave geradora.
quem puder se comunicar. Esta tabela, de forma            Contudo, para auth-N funcionar sincronizadamente é
semelhante à tabela de usuários de uma entidade           necessário que a mensagem com n=1 receba sua
SNMPv3, conterá informações sobre as possibilidades       resposta e, enquanto isso não acontecer, o gerente só
de comunicação daquela entidade com outras                deve usar n=1 nas mensagens posteriores. A
entidades SNMPv1/v2c.                                     mensagem de resposta com n=1 é a confirmação do
   Uma vantagem direta das abordagens usadas nos          agente para a mudança da atual chave geradora. É
protocolos auth-P e auth-N é o fato de que não há         interessante notar que esta é uma preocupação
necessidade de se esperar a resposta da mensagem          somente do gerente já que o agente só mudará sua
anterior para poder disparar a próxima. Em operações      chave geradora quando receber valores de n da nova
SNMP como get-Next-Request, que normalmente são           janela. Assim, colocando-se esta responsabilidade
disparadas      seguidamente,    este    aspecto     de   sobre o gerente, mantém-se a caraterística simples do
seqüenciação é importante. Outro detalhe é que, nem       agente SNMP.
no protocolo auth-P nem no protocolo auth-N, é               Desse modo, se o agente não responder à mensagem
preciso que o agente armazene chaves anteriores à         com n =1 apesar das retransmissões, considera-se que
chave corrente. Conforme se sabe, é um requisito          houve um problema com a rede, ou com o dispositivo
interessante que o agente necessite do mínimo de          gerenciado, ou ainda um ataque de negação de serviço.
processamento e memória, de modo que o protocolo          Por este motivo, é necessário limitar estas
possa ser largamente adotado em todo tipo de              retransmissões no gerente. Um número máximo de 50
equipamento.                                              retransmissões parece razoável para operações de
   O mecanismo de autenticação auth-N exige que a         gerência de rede. Após atingido este limiar, é
comunicação entre agente e gerente seja do tipo de        interrompida a comunicação com o elemento de rede
pedido/resposta, ou seja, uma mensagem do gerente         em questão e considera-se uma nova inicialização ou
deverá sempre esperar uma resposta. Dentro da             intervenção manual, mas isto é uma característica
arquitetura SNMP, a maior parte das operações são         particular de implementação.
deste tipo. A exceção são as traps que são mensagens
espôntaneas do agente. No caso de necessidade da
autenticação de traps, esta só seria possível se for      2.3 Implementação dos Protocolos Propostos
utilizado o protocolo auth-P, já que ele não depende
de respostas para sincronizar as alterações dos              As     propostas   apresentadas    acima     foram
segredos de autenticação. Para este esquema               implementadas, para averiguação das condições dos
funcionar, basta que agente e gerente possuam a           protocolos e obtenção de dados para uma análise da
mesma chave mestre, como requer o protocolo auth-P.       utilidade e operacionalidade destes métodos de
   Por outro lado, o protocolo auth-P baseia-se numa      autenticação dentro do protocolo SNMP.
única chave: a chave mestre. Se esta for descoberta          O protocolo auth-N exige uma função de hash h
pode-se gerar mensagens autenticadas quaisquer.           para poder gerar a chave de autenticação específica da
Outra desvantagem deste protocolo é o fato da             mensagem em operação. A escolha do MD5 neste
mensagem SNMP carregar a chave de autenticação            trabalho levou em conta o nível de segurança aceitável
usada (chave da transação). Mesmo criptografada, esta     do algoritmo contra ataques de força bruta e sua
chave estará disponível para criptoanálise. E se uma      facilidade de implementação em máquinas de 32 bits
criptoanálise tiver sucesso, a chave usada na cifração    (PC Pentium), além da disponibilidade de código já
(chave mestre) ainda poderá ser descoberta. A             pronto na Internet.
passagem de chaves de autenticação cifradas pela rede        Tanto auth-P como auth-N precisam de uma função
oferece ao atacante várias amostras de cifração com a     criptográfica que gere o digest da mensagem, em
chave mestre.                                             função da mensagem e de uma chave. Como SNMP
   Auth-N, por sua vez, não apresenta essa                opta sempre pela simplicidade e os agentes a serem
característica. O que passa pela rede é somente um        implementados devem ser facilmente desenvolvidos,
número com significado apenas para quem possui as         constitui-se uma boa escolha utilizar um método que
utiliza o mesmo algoritmo usado na função h. Assim,
MD5, com o método de chaveamento HMAC, foi a              [1] IETF, RFC 1157 - Simple Network Management
escolha para a função de hash a ser usada em H.                Protocol (SNMP), (Status: standard), 1990.
   Para o protocolo auth-P, um cifrador de blocos         [2] IETF, RFC 1351 - SNMP Administrative Model,
chaveado é necessário para fazer a cifração da chave           (Status: proposed standard), 1992.
de autenticação a ser usada na mensagem. O algoritmo      [3] IETF, RFC 2026 - The Internet Standards
Blowfish [10] escolhido é um cifrador de blocos de 64          Process - Revision 3, 1996.
bits desenvolvido por Bruce Schneier em 1993, não é       [4] IETF, draft - The User-Based Security Model for
patenteado e é livre para utilização.                          Version 3 of the Simple Network Management
   No que diz respeito ao ambiente de                          Protocol (SNMPv3), 1999.
desenvolvimento, foi utilizado um sistema Linux Red       [5] IETF, RFC 1909 - An Administrative
Hat 5.1 para microcomputar PC. Os testes foram feitos          Infrastructure     for    SNMPv2,         (Status:
numa rede local composta de 3 máquinas semelhantes.            experimental), 1996.
A linguagem C++ foi escolhida para o                      [6] IETF, RFC 1321 - The MD5 Message-Digest
desenvolvimento e a interface de protocolo de rede foi         Algorithm, (Status: informational), 1992.
a biblioteca sockets que acompanha o sistema Linux        [7] NIST, FIPS Publication 180-1 – Secure Hash
usado. Para a implementação, partiu-se de um pacote            Algorithm, 1995.
de software CMU versão 3.5, contendo código-fonte         [8] IETF, RFC 2104 – HMAC: Keyed-Hashing for
em linguagem C de um agente SNMPv1/v2c                         Message Authentication, (Status: informational),
acompanhado de algumas pequenas aplicações SNMP.               1997.
Este código-fonte foi alterado para a linguagem C++,      [9] IETF, RFC 1905 - Protocol Operations for
resultando em um agente SNMPv1/v2c e algumas                   Version 2 of the Simple Network Management
pequenas aplicações SNMP, todos integrando os                  Protocol (SNMPv2), (Status: draft standard),
protocolos auth-P e auth-N aqui propostos.                     1996.
   O procedimento de teste das implementações             [10] SCHNEIER, Bruce. The Blowfish Encryption
preocupou-se em checar os itens críticos da execução           Algorithm, 1998. http://www.counterpane.com/
de ambos os protocolos, apontados no item anterior.            blowfish.html.
Verificou-se que em ambiente de laboratório os
protocolos funcionam conforme previsto nas
especificações iniciais.
                                                                              Gerador
                                                                              Aleatório


                                                             Gerente SNMP

3. CONCLUSÃO                                                   Kmestre      Ktransação               Geração do
                                                                                                       digest




   Tanto o modelo de segurança baseado em usuário                                C

de SNMPv3, como as propostas deste trabalho,                                 Kcipher                                                                                 Agente SNMP

dependem da prévia inicialização de chaves nos                                                        comunidade      Kcipher   digest (Ktransação)                      Kmestre

elementos da rede sendo gerenciados. O modo de
                                                                                                                                                                     C
realizar tal operação é deixado a cargo do fabricante e
dos administradores de redes, podendo ser usados                                                                                                              Ktransação

certificados, canais seguros, algoritmos assimétricos,
ou até mesmo procedimentos manuais, da maneira                                                                                                          Teste da
                                                                                                                                                       Autenicação



mais conveniente na inicialização dos segredos.             Figura 1: Protocolo Auth-P
   Este trabalho procurou mostrar que ainda é possível
implementar autenticação segura nas versões v1 e v2c
do protocolo SNMP. Mais ainda, foram propostos e
implementados dois protocolos de autenticação,
aproveitando elementos que existem e são empregados
                                                              Gerente SNMP

                                                                Kgeradora
atualmente nos protocolos SNMPv1 e SNMPv2c, não
interferindo de maneira nenhuma nos outros aspectos                hn

operacionais do SNMP, tais como o processamento da             Ktransação          Geração do
                                                                                     digest                                                                          Agente SNMP

mensagem ou o controle de acesso. O formato da                                                  comunidade        n   digest (Ktransação)
                                                                                                                                                                      Kgeradora
mensagem SNMP não foi alterado nas propostas.
                                                                                                                                                                          hn
   As implementações demostraram a robustez dos
serviços de autenticação dos protocolos auth-P e auth-                                                                                                               Ktransação

N. O preço pago pelo melhor serviço traduziu-se
basicamente em pequeno atraso no processamento de                                                                                                      Teste da
                                                                                                                                                      Autenicação


uma mensagem, já que o tamanho das implementações
                                                            Figura 2: Protocolo Auth-N
não aumentou de forma a inviabilizar a sua utilização.
O agente SNMPv1/v2c básico foi pouco onerado,
atendendo assim a uma das premissas do trabalho.


4. BIBLIOGRAFIA

Contenu connexe

Tendances

Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Arthur Emanuel
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosVictor Hazin da Rocha
 
Criptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores InstantâneosCriptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores InstantâneosRaphael Queiroz
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Eduardo Santana
 
Aula src openvpn-configuração com chave publica
Aula src   openvpn-configuração com chave publicaAula src   openvpn-configuração com chave publica
Aula src openvpn-configuração com chave publicaRafael Simões
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesFrederico Madeira
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Acesso a área de trabalho remota
Acesso a área de trabalho remotaAcesso a área de trabalho remota
Acesso a área de trabalho remotaRafael Requião
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 

Tendances (20)

Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Protocolo SNMP
Protocolo SNMPProtocolo SNMP
Protocolo SNMP
 
Protocolo SNMP
Protocolo SNMPProtocolo SNMP
Protocolo SNMP
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Criptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores InstantâneosCriptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores Instantâneos
 
Clusters, o que é?
Clusters, o que é?Clusters, o que é?
Clusters, o que é?
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4Fasciculo inf seg_redinf_semana4
Fasciculo inf seg_redinf_semana4
 
Aula src openvpn-configuração com chave publica
Aula src   openvpn-configuração com chave publicaAula src   openvpn-configuração com chave publica
Aula src openvpn-configuração com chave publica
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Artigo Wireshark
Artigo WiresharkArtigo Wireshark
Artigo Wireshark
 
Aula 4 semana
Aula 4 semanaAula 4 semana
Aula 4 semana
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Lamport
LamportLamport
Lamport
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de Redes
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Acesso a área de trabalho remota
Acesso a área de trabalho remotaAcesso a área de trabalho remota
Acesso a área de trabalho remota
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 

Similaire à Propostas de Autenticação para SNMP

Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 GredesAlbarado Junior
 
Gerenciamento-redes
Gerenciamento-redesGerenciamento-redes
Gerenciamento-redesjasonbastos
 
Trabalho de Diploma - Chaves Públicas - SSCT
Trabalho de Diploma - Chaves Públicas -  SSCTTrabalho de Diploma - Chaves Públicas -  SSCT
Trabalho de Diploma - Chaves Públicas - SSCTSamuel Canuto
 
Protocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHProtocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHPetterson Castro
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkIgor Bruno
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark IgorIgor Bruno
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAwolkartt_18
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Dalton Valadares
 
Questoes concurso13122011-com respostas
Questoes concurso13122011-com respostasQuestoes concurso13122011-com respostas
Questoes concurso13122011-com respostasfelipetsi
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalinstalinstm
 
Ferramentas De Monitoramento
Ferramentas De MonitoramentoFerramentas De Monitoramento
Ferramentas De Monitoramentocassiofernando
 
Ferramentas De Monitoramento
Ferramentas De MonitoramentoFerramentas De Monitoramento
Ferramentas De Monitoramentocassiofernando
 
Gerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSGerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSMauro Tapajós
 

Similaire à Propostas de Autenticação para SNMP (20)

Gerana
GeranaGerana
Gerana
 
Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 Gredes
 
Gabrielemiranda
GabrielemirandaGabrielemiranda
Gabrielemiranda
 
Gerenciamento-redes
Gerenciamento-redesGerenciamento-redes
Gerenciamento-redes
 
Trabalho de Diploma - Chaves Públicas - SSCT
Trabalho de Diploma - Chaves Públicas -  SSCTTrabalho de Diploma - Chaves Públicas -  SSCT
Trabalho de Diploma - Chaves Públicas - SSCT
 
Protocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHProtocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSH
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o Wireshark
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark Igor
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
 
Protocolos de Segurança
Protocolos de SegurançaProtocolos de Segurança
Protocolos de Segurança
 
Questoes concurso13122011-com respostas
Questoes concurso13122011-com respostasQuestoes concurso13122011-com respostas
Questoes concurso13122011-com respostas
 
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
Tecnologias Atuais de Redes - Aula 3 - VPN [Apostila]
 
Analisando O Caminho Dos Pacotes No Wireshark Stalin
Analisando O Caminho Dos Pacotes No Wireshark   StalinAnalisando O Caminho Dos Pacotes No Wireshark   Stalin
Analisando O Caminho Dos Pacotes No Wireshark Stalin
 
Tecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPNTecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPN
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Ferramentas De Monitoramento
Ferramentas De MonitoramentoFerramentas De Monitoramento
Ferramentas De Monitoramento
 
Ferramentas De Monitoramento
Ferramentas De MonitoramentoFerramentas De Monitoramento
Ferramentas De Monitoramento
 
Gerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSGerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRS
 

Plus de Mauro Tapajós

Proyecto liberació SIGATI
Proyecto liberació SIGATIProyecto liberació SIGATI
Proyecto liberació SIGATIMauro Tapajós
 
Integração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreIntegração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreMauro Tapajós
 
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes CorporativosInstalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes CorporativosMauro Tapajós
 
Serviço de Distribuição de SW em Plataforma Livre
Serviço de Distribuição de SW em Plataforma LivreServiço de Distribuição de SW em Plataforma Livre
Serviço de Distribuição de SW em Plataforma LivreMauro Tapajós
 
Migração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMigração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMauro Tapajós
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Mauro Tapajós
 
Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Mauro Tapajós
 
integração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livreintegração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma LivreMauro Tapajós
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreMauro Tapajós
 
Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Mauro Tapajós
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Mauro Tapajós
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do LinuxMauro Tapajós
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições LinuxMauro Tapajós
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosMauro Tapajós
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaMauro Tapajós
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxMauro Tapajós
 
Pequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivrePequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivreMauro Tapajós
 

Plus de Mauro Tapajós (20)

Proyecto liberació SIGATI
Proyecto liberació SIGATIProyecto liberació SIGATI
Proyecto liberació SIGATI
 
Integração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma LivreIntegração de Serviços em Plataforma Livre
Integração de Serviços em Plataforma Livre
 
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes CorporativosInstalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
 
Asterisk
AsteriskAsterisk
Asterisk
 
Serviço de Distribuição de SW em Plataforma Livre
Serviço de Distribuição de SW em Plataforma LivreServiço de Distribuição de SW em Plataforma Livre
Serviço de Distribuição de SW em Plataforma Livre
 
Migração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMigração para Software Livre nas Universidades
Migração para Software Livre nas Universidades
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)
 
Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?
 
Software Winrad
Software WinradSoftware Winrad
Software Winrad
 
integração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livreintegração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livre
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livre
 
Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do Linux
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições Linux
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no Linux
 
Pequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivrePequena Apostila sobre Software Livre
Pequena Apostila sobre Software Livre
 

Propostas de Autenticação para SNMP

  • 1. Propostas de Autenticação para o Protocolo de Gerência de Redes SNMP Mauro Tapajós Santos e Rafael Timóteo de Sousa Júnior Departamento de Engenharia Elétrica - Universidade de Brasília - UnB Caixa Postal 4386, CEP: 70919-970, Brasília DF – Brasil Tel: 061-2735977, Fax: 061-2746651, tapajos@abordo.com.br, desousa@unb.br Sumário - este trabalho apresenta propostas possibilitar a um atacante, não somente descobrir implementadas de serviços de autenticação no parâmetros críticos dos sistemas e da rede, como protocolo SNMP, provendo um mecanismo básico também alterá-los e prejudicar os serviços que deles de segurança para sua versão 1 e mantendo dependem. flexibilidade suficiente para permitir uma integração A segunda versão do protocolo [2], denominada ao modelo de segurança das novas versões do SNMPv2 clássica ou SNMPv2p, tenta solucionar o protocolo. Tais propostas têm base na utilização de problema da segurança, apresentando um modelo de senhas descartáveis na autenticação das mensagens segurança que integra autenticação e criptografia ao SNMP, com os necessários protocolos criptográficos protocolo, para protegê-lo de ameaças como para geração e troca de chaves de criptografia entre interrupção, interceptação, modificação e as entidades usuárias do protocolo. mascaramento de informações. Isso permitiria que troca de mensagens SNMP fosse ou totalmente aberta, ou autenticada mas não privada, ou privada mas não 1. INTRODUÇÃO autenticada, ou ainda autenticada e simultaneamente privada. O novo conceito de party era muito O protocolo de gerência de redes mais usado importante nesta proposta. Uma party é definida como atualmente é o SNMP (Simple Network Management um contexto de execução virtual nas entidades SNMP, Protocol). Juntamente com outros padrões onde a operação do protocolo restringe-se a um relacionados, SNMP oferece um denominador comum subconjunto de possíveis operações. A estrutura da na construção de arquiteturas de gerência de redes party substituía as comunidades da versão 1, distribuídas. acrescentando informações de tempo (clocks), chaves Como está hoje, o SNMP ainda não responde a de criptografia e políticas de acesso às entidades requisitos importantes de segurança. A efetiva SNMP. gerência de redes demanda tanto facilidades de Foi difícil a aceitação deste novo protocolo monitoração, como de controle dos diversos principalmente por causa de sua incompatibilidade componentes das redes. SNMP é usado basicamente com a versão 1, já que as novas mensagens para monitoração, devido aos seus mecanismos fracos criptografadas não eram compreendidas pelas de segurança que inibem a execução de ações à entidades SNMPv1. E, além de ter problemas de distância, necessárias às diversas tarefas de controle overhead nas mensagens, o modelo administrativo das redes. Em conseqüência, as operações de baseado em parties implica numa pré-configuração configuração possíveis via SNMP são subutilizadas destas parties, o que pode se tornar um processo por causa da desconfiança dos operadores e gerentes excessivamente complexo, já que aspectos como de redes com relação à segurança do processo. protocolos de transporte, clocks, chaves para os Contudo, o projeto inicial de SNMP previra a algoritmos de segurança e direitos de acesso devem necessidade de atualizações. A forma modular como ser previamente definidos na etapa de configuração foi definido o protocolo visou facilitar futuras das entidades do protocolo, ou seja, os agentes de modificações para as soluções das falhas, mantendo a gerência e gerentes de rede. filosofia da simplicidade do protocolo. Em conseqüência, foram empreendidos novos O problema-chave na versão mais utilizada esforços de revisão do protocolo em resposta à baixa (SNMPv1) do protocolo é o emprego de um aceitação da versão SNMPv2 clássica. Tal revisão se mecanismo de segurança trivial que visava oferecer deu principalmente no que diz respeito ao contexto autenticação para as mensagens e controle básico de baseado em parties, à configuração dos agentes autorizações de acesso para operações sobre objetos SNMP, à dificuldade de mapeamento da rede e à gerenciados [1]. De fato, o mecanismo de autenticação implementação do modelo administrativo e de em SNMPv1 consiste em preencher o campo segurança. Decidiu-se voltar o contexto de operação comunidade (communityString) das mensagens do do protocolo à antiga forma de comunidades, sem o protocolo com uma senha não criptografada e modelo de segurança proposto em SNMPv2 clássico, virtualmente imutável. Com freqüência, na prática da e, consequentemente, voltando ao antigo formato das gerência de redes, é usado o termo public como nome mensagens. Assim, foi apresentada mais uma versão de comunidade. Tal senha pode ser obtida por simples SNMP, chamada de SNMPv2c, baseada em análise do tráfego, permitindo a um atacante ter acesso comunidades, o que recolocou o problema de aos elementos gerenciados para executar operações de segurança original. gerência de rede. Assim, o acesso não-autorizado pode
  • 2. A partir daí, dentre as tentativas de definição do mensagem. Assim, qualquer um, de posse das modelo administrativo e de segurança, duas linhas de informações daquele usuário, pode agir sob seu nome. desenvolvimento se destacaram: a SNMP USEC Por outro lado, o modelo USM oferece capacidade (User-based Security Model) e a SNMPv2* (SNMPv2 de autenticação e confidencialidade da comunicação. “star”). Estas duas propostas, que representaram Como não é possível oferecer confidencialidade sem caminhos independentes percorridos por integrantes ter autenticação da origem e garantia da integridade das equipes originadoras do protocolo, terminaram por dos dados, existem 3 níveis de segurança possíveis convergir nos trabalhos de definição da versão 3 do dentro do modelo: protocolo, denominada SNMPv3, cujos trabalhos 1. Comunicação sem autenticação ou ainda estão sendo concluídos com a elaboração de confidencialidade (nível de segurança documentos que serão submetidos ao processo da denominado noAuthNoPriv); padronização definitiva [3]. Alguns detalhes da nova 2. Comunicação com autenticação, mas sem proposta ainda estão em discussão, e, até o momento confidencialidade (denominado authNoPriv); da redação deste artigo, as especificações geradas 3. Comunicação com autenticação e ainda não possuíam status de padronização completa. confidencialidade (denominado authPriv). Na proposta SNMPv3, existe, até o momento da Dentre os campos componentes dos dados globais redação deste trabalho, um único modelo de segurança da mensagem SNMPv3, está a informação de qual será sendo adotado. Ele se chama USM - User-Based o nível de segurança que deverá ser aplicado à Security Model [4] e sua implementação é obrigatória mensagem. em todas as entidades SNMPv3. O modelo de Para implementar os mecanismos de segurança segurança USM identifica as ameaças levadas em descritos acima, são definidos 3 módulos dentro do consideração na operação do protocolo SNMP e modelo de segurança: módulo de autenticação (que define as proteções a serem usadas e as regras que o lida com a integridade dos dados e autenticação da tornarão operacional dentro da arquitetura proposta origem), módulo de temporização (que lida com para SNMPv3. atrasos e replays de mensagens) e módulo de USM é basicamente derivado do modelo SNMP confidencialidade (que lida com a privacidade da USEC de segurança baseado em usuário [5], com mensagem). algumas alterações. Nele, existe um conceito de Visando a implementação desses módulos, é usuário ao qual estão associadas informações de preconizada a utilização de protocolos criptográficos segurança usadas em um ambiente de gerência SNMP. de autenticação, de integridade dos dados e A definição de SNMPv3 reconhece que é um erro autenticação da origem, com base nos algoritmos querer definir um único modelo de segurança MD5 [6] e SHA-1 [7], além do método HMAC definitivo e imutável, pois, com o tempo, novos (Keyed-Hashing for Message Authentication) [8]. requisitos de segurança aparecerão e outros podem Diante dessa evolução, e considerando que, apesar cair em desuso. Assim, admite-se que SNMP poderá do desenvolvimento já avançado, o trabalho em suportar vários modelos de segurança, sendo porém SNMPv3 ainda não está concluído e algumas questões obrigatória a implementação do USM para garantir ainda estão em aberto, o trabalho apresentado neste compatibilidade com o modelo inicial de SNMPv3 artigo procura desenvolver alternativas de mecanismos As principais ameaças levadas em consideração na de autenticação para SNMP compatíveis com as definição de SNMPv3 são a modificação da versões anteriores do protocolo, ainda largamente informação gerada por um usuário válido e o utilizadas e bastante eficazes. Nesse sentido, as mascaramento de um usuário, efetivado pelo uso de propostas descritas nesta artigo visam apresentar um uma identificação falsa por parte de uma entidade não mecanismo autenticador de mensagens SNMP para as autorizada. Também foram consideradas, ainda como versões v1 e v2c do protocolo, mecanismo este capaz secundárias, as seguintes ameaças de replay, ou seja de substituir o esquema trivial de autenticação dessas reordenamento e atraso das mensagens de forma versões. Por outro lado, foi também preocupação no estranha à operação normal da rede, e falta de desenvolvimento manter coerência com os trabalhos privacidade nas trocas de mensagens entre entidades em SNMPv3, de forma a tornar possível a utilização SNMP. das propostas aqui descritas dentro da arquitetura da Estas ameaças são evitadas com a utilização de versão 3. criptografia e de uma política de acesso às Assim, são apresentados a seguir dois protocolos de informações, o que subentende a utilização de autenticação, denominados auth-N e auth-P, ambos algoritmos criptográficos e de chaves de criptografia. com base no emprego de chaves de autenticação que Os serviços de segurança para defesa contra as mudam constantemente, reduzindo o risco da quebra ameaças consideradas acima são: integridade dos de qualquer uma das chaves a um comprometimento dados da mensagem, autenticação da origem das de somente uma mensagem SNMP e isso apenas no mensagens, confidencialidade dos dados das momento em que tal mensagem está sendo trocada mensagens e proteção temporizada contra replays. entre duas entidades de gerência de rede. Todos eles são serviços comuns de segurança nas mensagens do protocolo. Cabe notar que o serviço de autenticação da origem 2. PROTOCOLOS DE AUTENTICAÇÃO PROPOSTOS dos dados proposto só pode garantir que se saiba qual usuário dentro do modelo USM está enviando a
  • 3. Os protocolos de autenticação aqui propostos se mensagem tenha um novo valor para o campo preocupam basicamente com as ameaças de requestId, o mesmo pode ser dito aqui em relação à modificação da informação e mascaramento. Para chave de autenticação a ser usada: ela deve mudar a oferecer proteção contra estes ataques, é enviada cada mensagem, mesmo no caso de retransmissão. juntamente com a mensagem, a informação de No processo de autenticação, as respostas utilizam a autenticação. Esta informação será usada pelo receptor mesma chave de autenticação usada nas solicitações. no processo de verificação da autenticidade da Respostas sem correspondência com solicitações são mensagem, implicando na necessidade de um método descartadas. Ou seja, a autenticação é obrigatória para de geração desta informação, em função pelo menos as respostas também. dos dados da própria mensagem e de um segredo Estes mecanismos dependem da inicialização prévia compartilhado pelas duas partes, ou seja, uma chave de dados de autenticação nos elementos da rede, sendo de autenticação. este procedimento uma decisão de implementação e A solução do problema deve estar integrada podendo ser usados quaisquer métodos, tanto totalmente com a operação normal dos protocolos automáticos (certificados, canais seguros), como SNMPv1 e SNMPv2c. Isto significa que, além de a manuais. Esta é a mesma posição do grupo de trabalho mensagem permanecer a mesma, o novo módulo de SNMPv3. autenticação não deve alterar outros aspectos como o A chave de autenticação proposta tem 128 bits. Este controle de acesso às informações de gerência ou a valor foi considerado suficiente para a aplicação de execução normal de cada tipo de operação SNMP. autenticação em questão, pois as operações de Um cliente SNMP (gerente) deve construir e enviar gerência de rede têm um tempo de vida normalmente o seu pedido ao servidor (agente), usando a chave de curto. autenticação correta. Devido ao fato de o protocolo UDP (ou outro protocolo de transporte que não seja confiável) não garantir a entrega dos pacotes, o cliente 2.1 Protocolo Auth-P deve implementar estratégias para timeout e retransmissão das mensagens. Nessa situação, vale Este protocolo cria uma chave de autenticação mais uma vez lembrar que a comunicação autenticada aleatória a cada mensagem. Esta chave é cifrada e se dá então pelo procedimento que consiste em enviada juntamente com a mensagem, através de um calcular o campo de autenticação para a mensagem subcampo do communityString, denominado que se quer enviar e enviar tal campo juntamente com “informação de chave”. a mensagem. Na recepção, é feito novamente o mesmo Na recepção, a chave é decifrada e a autenticação é cálculo e a comparação entre os dois valores testada. O “P” aqui indica que a chave passa pela rede determina se a mensagem é autêntica. Para não alterar juntamente com a mensagem. o formato das mensagens, o próprio campo Para realizar o protocolo, uma função cifradora C comunidade (communityString) de SNMPv1 e chaveada deverá ser usada. Ela deverá consistir de um SNMPv2c é usado para enviar as informações de cifrador de blocos que terá o papel de cifrar sempre autenticação entre as entidades participantes. uma mensagem de tamanho 128 bits: a chave de A idéia básica das soluções aqui propostas é fazer autenticação. O tamanho de sua chave também será com que o segredo compartilhado entre gerente e 128 bits. agente mude a cada solicitação SNMP. Esta mudança Em síntese, o procedimento auth-P pode ser descrito contínua permite evitar que o segredo, mesmo da seguinte maneira, conforme ilustra a Figura 1: conhecido, não tenha maior utilidade já que sua 1. É inicializada uma mesma chave, chamada chave validade cobre tão somente uma única transação mestre de autenticação (Kmestre), em cada um SNMP. dos elementos de rede que compartilharem esta Para não alterar o formato da mensagem SNMP v1 chave. ou v2c, o campo a ser usado para transporte da 2. Quando o gerente for enviar um request, uma informação de autenticação é unicamente o campo chave de autenticação da transaçao (Ktransação) comunidade (communityString), que passa a ter uma será gerada aleatoriamente e usada no cálculo do nova interpretação. Desta forma, toda a informação digest. pertinente de autenticação será processada conforme 3. Ktransação será criptografada pela função C, descrito a seguir e será então inserida no campo chaveada por Kmestre, gerando sua cifração communityString, mais especificamente na forma de Kcipher; uma sequência de bits. 4. Kcipher é inserida na mensagem a ser enviada, A informação de autenticação a ser gerada e no subcampo “informação de chave” do campo inserida na mensagem deverá ser uma função da chave communityString redefinido. de autenticação definida, das características de 5. Na recepção, a chave Ktransação é recuperada controle de acesso desejadas e da própria mensagem. pela transformação inversa de C utilizando Mais especificamente, neste trabalho, as duas Kmestre em Kcipher propostas de protocolo de autenticação para SNMP 6. A chave Ktransação obtida é usada no teste da implementam um esquema onde ocorre uma autenticação. transformação contínua das chaves de autenticação. O Cabe notar que não fará diferença se o protocolo de comprometimento de uma delas não coloca em perigo transporte abaixo do SNMP for não-confiável, pois mensagens ou chaves que venham a ser geradas cada solicitação espera uma resposta especificada pelo posteriormente. A RFC 1905 [9] sugere que cada nova valor de requestId da mensagem. Logo, se uma
  • 4. mensagem ou sua resposta se perderem, cabe ao Supondo um protocolo de transporte não confiável, gerente estabelecer estratégias de retransmissão para deve-se prever as exceções possíveis na transmissão aquele determinado request, cuidando para que a nova destas mensagens. Duas situações são mais operação empregue uma nova chave de autenticação importantes: a perda de mensagem e a troca de ordem aleatória. na travessia pela rede. No caso de mensagens duplicadas, a que vale é a Se uma mensagem de request não obtiver resposta, primeira a chegar corretamente autenticada. Como o timeout de espera do gerente vai expirar. Dependerá definido anteriormente, mensagens recebidas sem da implementação o que será feito se, durante o tempo correspondência devem ser descartadas. de timeout, forem recebidas mensagens com mesmo RequestId, mas com autenticação falha. De qualquer forma, a sincronização das chaves geradoras não é 2.1 Protocolo Auth-N perturbada. Deve-se observar que a retransmissão do request deverá usar uma nova chave. Este protocolo cria uma chave de autenticação pela Se a mensagem com n=1 não obtiver resposta, uma aplicação de uma função de hash Hn várias vezes exceção à regra é imposta: n deverá permanecer em 1 sobre uma chave inicial, chamada chave geradora até que se receba a resposta para este request e a troca (Kgeradora). A cada mensagem, o número (n) destas da chave do gerente possa ser efetuada. aplicações é decrementado pelo gerente e a mensagem Para o manter o sincronismo de chaves, é necessário carregará o n para o agente poder chegar na mesma que o gerente nunca envie chaves da nova janela chave. Na recepção, a mesma função de hash Hn é (depois da transformação H) enquanto não receber a aplicada n vezes sobre a chave inicial para se chegar à resposta da mensagem autenticada com Kauth 1 da mesma chave usada para autenticar a mensagem. O janela anterior. Quando a mensagem com Kauth 1 não caracter “N” no nome Auth-N indica a dependência da receber resposta, a próxima mensagem deve ser chave com relação ao número de vezes n em que a autenticada com a mesma Kauth 1 até que uma função de hash deve ser aplicada. Este protocolo resposta seja recebida. Esta é a única situação onde o obedece às seguintes regras (Figura 2): gerente reutiliza a chave de autenticação. Em todos os 1. São inicializadas duas chaves idênticas no outros casos, a chave deve ser constantemente gerente e agente, K--matriz e Kgeradora. mudada. 2. Chama-se o intervalo 0  n  w de janela. O Quanto ao agente, este responderá às mensagens valor de n inicialmente é w. A cada nova reenviadas autenticadas com Kauth 1 tantas vezes transação, n decresce até chegar a 1. A constante quantas forem necessárias e fará sua transformação alteração do valor de n é de responsabilidade do somente quando receber a primeira mensagem da nova gerente e deve ser feita a cada mansagem janela, indicando que o gerente realizou sua troca da enviada. chave geradora. A mensagem será considerada de uma 3. A chave de autenticação da transação corrente, nova janela quando apresentar n > w/2. Ktransação = Kauth n corresponderá à Kgeradora No percurso pela rede, mensagens enviadas podem transformada n vezes por uma função de hash h sofrer troca de ordem ao chegar ao seu destino. Esta (K), sendo n um inteiro maior que 0 e menor ou possibilidade só prejudicaria a operação do protocolo igual a w. Logo Kauth n= hn(Kgeradora). auth-N se a resposta da mensagem com n=1 trocar de 4. Quando n chegar a 1, deve ser gerada uma nova ordem com uma anterior, caso em que uma mensagem chave Kgeradora, usando uma função H one-way corretamente autenticada poderia ser rejeitada pelo e a chave Kmatriz previamente inicializada. gerente. Logo, Kgeradora nova = H(Kgeradora velha, Se a resposta da mensagem com n=2 chegar depois Kmatriz). Note-se que para cada Kgeradora, a da resposta de n=1, para o gerente, ela estará na nova janela será completamente atravessada de w a 1. janela e este tentará autenticá-la com a nova chave 5. O gerente só deve efetuar a transformação da geradora, implicando em falha. chave após receber a resposta da mensagem com A solução para este problema estaria unicamente no n = 1. O agente muda sua chave geradora quando gerente. Uma cópia da chave geradora anterior sempre receber a primeira mensagem da nova janela. estaria disponível e, no caso da falha na autenticação Uma mensagem é considerada da nova janela de valores de n próximos de 1, essa cópia seria usada. quando seu valor for maior que w/2. Com esta abordagem, o agente não é onerado com 6. Assim que transformar sua chave geradora, o mais procedimentos de controle. agente deve começar a usá-la imediantamente na própria mensagem que disparou a mudança. 7. A mensagem a ser transmitida, então, deverá carregar n para que o agente (que supostamente possui também Kmatriz e Kgeradora sincronizadas) transforme Kgeradora tantas vezes quanto necessário para chegar à mesma chave de autenticação usada no envio. 8. Com a chave da transação correta, o agente procede o teste de auteticação da mensagem recebida.
  • 5. 2.3 Características dos Protocolos Propostos duas chaves usadas na autenticaçao: a chave matriz e a chave geradora. O que estará disponível para o Os protocolos propostos e descritos aqui atacante na rede será apenas o digest gerado pela identificam a origem de uma mensagem como sendo chave da transação, chave esta que muda a cada um endereço de rede de uma entidade SNMP. Um mensagem. Tanto a chave matriz como a geradora não endereço de rede, tal como entendido aqui, só poderá atravessam a rede e, portanto, suas características não ser na realidade um único endereço efetivo de rede estão disponíveis em qualquer informação carregada atribuído e alcançável. pela mensagem SNMP. As chaves empregadas nos mecanismos Além disso, em Auth-N, a chave geradora muda a autenticadores apresentados só fazem sentido quando cada n = 1, evitando que a descoberta de uma chave usadas entre dois elementos distintos, um gerente e um geradora signifique perda da segurança. Isto é possível agente. Em SNMPv1/v2c, estes são identificados por por que a nova chave geradora é alterada em função da seus endereços de rede. Isto associa um endereço de chave matriz por uma função one-way, portanto sem rede a uma entidade SNMPv1/v2c agente ou gerente. retorno. Para um atacante, só seria possível Desta forma, uma entidade SNMP (agente ou gerente) acompanhar as alterações das chaves do protocolo se deverá possuir uma tabela que armazenará chaves de conseguisse ambas as chaves e observasse os valores autenticação para cada outra entidade SNMP com de n para saber quando obter a nova chave geradora. quem puder se comunicar. Esta tabela, de forma Contudo, para auth-N funcionar sincronizadamente é semelhante à tabela de usuários de uma entidade necessário que a mensagem com n=1 receba sua SNMPv3, conterá informações sobre as possibilidades resposta e, enquanto isso não acontecer, o gerente só de comunicação daquela entidade com outras deve usar n=1 nas mensagens posteriores. A entidades SNMPv1/v2c. mensagem de resposta com n=1 é a confirmação do Uma vantagem direta das abordagens usadas nos agente para a mudança da atual chave geradora. É protocolos auth-P e auth-N é o fato de que não há interessante notar que esta é uma preocupação necessidade de se esperar a resposta da mensagem somente do gerente já que o agente só mudará sua anterior para poder disparar a próxima. Em operações chave geradora quando receber valores de n da nova SNMP como get-Next-Request, que normalmente são janela. Assim, colocando-se esta responsabilidade disparadas seguidamente, este aspecto de sobre o gerente, mantém-se a caraterística simples do seqüenciação é importante. Outro detalhe é que, nem agente SNMP. no protocolo auth-P nem no protocolo auth-N, é Desse modo, se o agente não responder à mensagem preciso que o agente armazene chaves anteriores à com n =1 apesar das retransmissões, considera-se que chave corrente. Conforme se sabe, é um requisito houve um problema com a rede, ou com o dispositivo interessante que o agente necessite do mínimo de gerenciado, ou ainda um ataque de negação de serviço. processamento e memória, de modo que o protocolo Por este motivo, é necessário limitar estas possa ser largamente adotado em todo tipo de retransmissões no gerente. Um número máximo de 50 equipamento. retransmissões parece razoável para operações de O mecanismo de autenticação auth-N exige que a gerência de rede. Após atingido este limiar, é comunicação entre agente e gerente seja do tipo de interrompida a comunicação com o elemento de rede pedido/resposta, ou seja, uma mensagem do gerente em questão e considera-se uma nova inicialização ou deverá sempre esperar uma resposta. Dentro da intervenção manual, mas isto é uma característica arquitetura SNMP, a maior parte das operações são particular de implementação. deste tipo. A exceção são as traps que são mensagens espôntaneas do agente. No caso de necessidade da autenticação de traps, esta só seria possível se for 2.3 Implementação dos Protocolos Propostos utilizado o protocolo auth-P, já que ele não depende de respostas para sincronizar as alterações dos As propostas apresentadas acima foram segredos de autenticação. Para este esquema implementadas, para averiguação das condições dos funcionar, basta que agente e gerente possuam a protocolos e obtenção de dados para uma análise da mesma chave mestre, como requer o protocolo auth-P. utilidade e operacionalidade destes métodos de Por outro lado, o protocolo auth-P baseia-se numa autenticação dentro do protocolo SNMP. única chave: a chave mestre. Se esta for descoberta O protocolo auth-N exige uma função de hash h pode-se gerar mensagens autenticadas quaisquer. para poder gerar a chave de autenticação específica da Outra desvantagem deste protocolo é o fato da mensagem em operação. A escolha do MD5 neste mensagem SNMP carregar a chave de autenticação trabalho levou em conta o nível de segurança aceitável usada (chave da transação). Mesmo criptografada, esta do algoritmo contra ataques de força bruta e sua chave estará disponível para criptoanálise. E se uma facilidade de implementação em máquinas de 32 bits criptoanálise tiver sucesso, a chave usada na cifração (PC Pentium), além da disponibilidade de código já (chave mestre) ainda poderá ser descoberta. A pronto na Internet. passagem de chaves de autenticação cifradas pela rede Tanto auth-P como auth-N precisam de uma função oferece ao atacante várias amostras de cifração com a criptográfica que gere o digest da mensagem, em chave mestre. função da mensagem e de uma chave. Como SNMP Auth-N, por sua vez, não apresenta essa opta sempre pela simplicidade e os agentes a serem característica. O que passa pela rede é somente um implementados devem ser facilmente desenvolvidos, número com significado apenas para quem possui as constitui-se uma boa escolha utilizar um método que
  • 6. utiliza o mesmo algoritmo usado na função h. Assim, MD5, com o método de chaveamento HMAC, foi a [1] IETF, RFC 1157 - Simple Network Management escolha para a função de hash a ser usada em H. Protocol (SNMP), (Status: standard), 1990. Para o protocolo auth-P, um cifrador de blocos [2] IETF, RFC 1351 - SNMP Administrative Model, chaveado é necessário para fazer a cifração da chave (Status: proposed standard), 1992. de autenticação a ser usada na mensagem. O algoritmo [3] IETF, RFC 2026 - The Internet Standards Blowfish [10] escolhido é um cifrador de blocos de 64 Process - Revision 3, 1996. bits desenvolvido por Bruce Schneier em 1993, não é [4] IETF, draft - The User-Based Security Model for patenteado e é livre para utilização. Version 3 of the Simple Network Management No que diz respeito ao ambiente de Protocol (SNMPv3), 1999. desenvolvimento, foi utilizado um sistema Linux Red [5] IETF, RFC 1909 - An Administrative Hat 5.1 para microcomputar PC. Os testes foram feitos Infrastructure for SNMPv2, (Status: numa rede local composta de 3 máquinas semelhantes. experimental), 1996. A linguagem C++ foi escolhida para o [6] IETF, RFC 1321 - The MD5 Message-Digest desenvolvimento e a interface de protocolo de rede foi Algorithm, (Status: informational), 1992. a biblioteca sockets que acompanha o sistema Linux [7] NIST, FIPS Publication 180-1 – Secure Hash usado. Para a implementação, partiu-se de um pacote Algorithm, 1995. de software CMU versão 3.5, contendo código-fonte [8] IETF, RFC 2104 – HMAC: Keyed-Hashing for em linguagem C de um agente SNMPv1/v2c Message Authentication, (Status: informational), acompanhado de algumas pequenas aplicações SNMP. 1997. Este código-fonte foi alterado para a linguagem C++, [9] IETF, RFC 1905 - Protocol Operations for resultando em um agente SNMPv1/v2c e algumas Version 2 of the Simple Network Management pequenas aplicações SNMP, todos integrando os Protocol (SNMPv2), (Status: draft standard), protocolos auth-P e auth-N aqui propostos. 1996. O procedimento de teste das implementações [10] SCHNEIER, Bruce. The Blowfish Encryption preocupou-se em checar os itens críticos da execução Algorithm, 1998. http://www.counterpane.com/ de ambos os protocolos, apontados no item anterior. blowfish.html. Verificou-se que em ambiente de laboratório os protocolos funcionam conforme previsto nas especificações iniciais. Gerador Aleatório Gerente SNMP 3. CONCLUSÃO Kmestre Ktransação Geração do digest Tanto o modelo de segurança baseado em usuário C de SNMPv3, como as propostas deste trabalho, Kcipher Agente SNMP dependem da prévia inicialização de chaves nos comunidade Kcipher digest (Ktransação) Kmestre elementos da rede sendo gerenciados. O modo de C realizar tal operação é deixado a cargo do fabricante e dos administradores de redes, podendo ser usados Ktransação certificados, canais seguros, algoritmos assimétricos, ou até mesmo procedimentos manuais, da maneira Teste da Autenicação mais conveniente na inicialização dos segredos. Figura 1: Protocolo Auth-P Este trabalho procurou mostrar que ainda é possível implementar autenticação segura nas versões v1 e v2c do protocolo SNMP. Mais ainda, foram propostos e implementados dois protocolos de autenticação, aproveitando elementos que existem e são empregados Gerente SNMP Kgeradora atualmente nos protocolos SNMPv1 e SNMPv2c, não interferindo de maneira nenhuma nos outros aspectos hn operacionais do SNMP, tais como o processamento da Ktransação Geração do digest Agente SNMP mensagem ou o controle de acesso. O formato da comunidade n digest (Ktransação) Kgeradora mensagem SNMP não foi alterado nas propostas. hn As implementações demostraram a robustez dos serviços de autenticação dos protocolos auth-P e auth- Ktransação N. O preço pago pelo melhor serviço traduziu-se basicamente em pequeno atraso no processamento de Teste da Autenicação uma mensagem, já que o tamanho das implementações Figura 2: Protocolo Auth-N não aumentou de forma a inviabilizar a sua utilização. O agente SNMPv1/v2c básico foi pouco onerado, atendendo assim a uma das premissas do trabalho. 4. BIBLIOGRAFIA