Segurança em Redes IP Alexandre Fernandez Marques - PDF
Segurança em Redes IP Alexandre Fernandez Marques
Download "Segurança em Redes IP Alexandre Fernandez Marques"
Luiz Eduardo Escobar Lage
1 Segurança em Redes IP Alexandre Fernandez Marques Monografia submetida ao corpo docente do ASIT como parte dos requisitos para obter o certificado de pós-graduação Abril 2001
2 Apresentação A evolução da tecnologia da informação no curso das últimas décadas trouxe um novo significado ao termo conectividade. As possibilidades de intercâmbio de dados entre computadores, que foram exploradas desde o início de sua evolução, alcançam agora limites além das mais ambiciosas expectativas, colocando à nossa disposição recursos e funcionalidades inéditas. A notável expansão da Internet compôs um espaço virtual dinâmico e anárquico, ao alcance de milhões de pessoas ao redor do planeta, onde renovam-se a cada momento possibilidades de descoberta, entretenimento e lucro. Nesse cenário, surgiram novas formas de produção e trabalho que privilegiam a interação entre agentes e instituem a informação como bem preponderante. É claro que essa evolução exigiu que uma interminável sequência de dificuldades técnicas fosse superada por algumas idéias brilhantes e pelo trabalho árduo de gerações de técnicos e pesquisadores. Hoje, quando encaramos informação, valor e poder como idéias convergentes, o problema que se impõe com maior urgência é a questão da segurança da informação. A ela associam-se suposições, mitos e idéias pré-fabricadas, que intrigam e divertem, mas contribuem pouco para o aperfeiçoamento de nossa compreensão sobre o assunto e muitas vezes retardam soluções e respostas. Acredito que é responsabilidade daqueles que estão envolvidos com tarefas de gerência, criação ou pesquisa na área da Tecnologia da Informação conduzir uma discussão objetiva sobre o problema, questionando situações, revendo paradigmas e propondo alternativas. Em outras palavras, cultivando a mesma atitude que nos trouxe até aqui e que poderá fazer a evolução tecnológica seguir seu curso, no sentido de oferecer a todos serviços mais eficientes e mais seguros. Essa é a motivação deste trabalho. - II -
3 Índice Apresentação II Índice III Introdução Capítulo 1 Arquitetura e operação do TCP/IP Capítulo 2 Sistemas operacionais de rede Capítulo 3 Violações da segurança Capítulo 4 Contramedidas Capítulo 5 Política de segurança Capítulo 6 Conclusões Bibliografia III -
4 Introdução - 1 -
5 Introdução O problema da segurança da informação está irremediavelmente ligado à tecnologia de redes. De fato, a presença das redes de computadores em ambientes institucionais, comerciais e mesmo domésticos aproxima essa tecnologia da vida cotidiana, determinando sua participação em uma ampla gama de atividades. A existência da grande rede como espaço intermediário entre as outras redes torna toda informação potencialmente acessível a qualquer pessoa. No cenário atual espera-se que pessoas, órgãos governamentais e instituições privadas busquem condições de beneficiar-se dos recursos oferecidos por essa tecnologia, encarando-os, conforme o caso, como objetos de interesse ou requisitos de sobrevivência. A Internet é a referência universal em termo de redes de computadores e todas as vertentes tecnológicas parecem convergir para seus padrões. Dentre eles, destaca-se o conjunto de protocolos TCP/IP como paradigma para o intercâmbio de dados. Sua aceitação como padrão não formalizado confere à tecnologia de redes de computadores homogeneidade e consistência e condiciona hoje a própria evolução dessa tecnologia. Tenho por certo que nenhuma discussão mais profunda sobre segurança em redes de computadores pode, atualmente, deixar os protocolos TCP/IP à sua margem. Foi assumido, desde a fase inicial desta, que o problema de segurança não admite abordagens restritivas ou perspectivas compartimentadas. Ao contrário, a complexidade de implicações e relacionamentos entre fatores e características recomenda um enfoque abrangente. Esse enfoque obriga, inúmeras vezes, à ampliação da discussão para além dos limites restritos aos aspectos de segurança do conjunto de protocolos TCP/IP. As falhas de segurança analisadas nem sempre estão diretamente relacionadas aos protocolos TCP/IP e as contramedidas estudadas são, frequentemente, aplicáveis a outros tipos de redes. Quando necessário, merecem abordagem também as particularidades e o funcionamento de componentes que interagem com o IP, assim como os efeitos que essas interações podem trazer à segurança de dados e serviços
6 Este trabalho está organizado em capítulos. No capítulo 1 são descritas as características das redes TCP/IP, focalizando seus aspectos arquiteturais e técnicos com impacto possível sobre a segurança da comunicação e dos dados. O propósito dessa descrição é estabelecer fundamentos para as análises e exposições que se seguirão, fornecendo um modelo detalhado do funcionamento do protocolo. Todavia, procura-se enfatizar nesse modelo as funções cuja relação com a segurança é imediata, o que certamente produzirá um resultado um tanto distinto do habitual. No capítulo 2 é elaborada uma apresentação bastante resumida dos sistemas operacionais de uso mais comum em redes TCP/IP. De fato, o sistema operacional de rede empregado ou, de acordo com a moderna tendência de redes heterogêneas, a combinação de sistemas são fatores preponderantes na definição do modelo de segurança. A hegemonia de UNIX e de Windows NT como plataformas para sistemas e serviços de rede está hoje firmemente estabelecida e constitui-se ela mesma num aspecto relevante na discussão acerca da segurança de redes. Uma vez mais, busca-se destacar os traços que podem ter significado na análise da questão da segurança. Com isso, ampliase a descrição iniciada no capítulo anterior, caracterizando o ambiente típico em que os problemas de segurança desenvolvem-se e onde devem ser tratados. No capítulo 3 é apresentado um amplo conjunto de técnicas usadas para violação e comprometimento da segurança. Considera-se aqui que as técnicas de exploração e ataque mapeiam, numa base eminentemente prática, as vulnerabilidades dos protocolos. Portanto, a finalidade expressa dessa exposição não é outra senão a de constituir uma base para a compreensão e avaliação das soluções que serão analisadas no capítulo seguinte. No capítulo 4, são feitas uma apresentação e uma avaliação de métodos e contramedidas que podem ser empregados com o propósito de prevenir incidentes e elevar o nível de segurança em redes que possuam as características delineadas nos capítulos 1 e 2. As contramedidas são expostas com base em seu funcionamento e aplicabilidade e avaliadas quanto à sua eficácia e limitações
7 O capítulo 5 apresenta um rápido comentário sobre a elaboração e a condução de uma política de segurança que deverá apoiar e orientar procedimentos relativos à manutenção da segurança no ambiente institucional. As idéias, bastante gerais, expostas ali são livremente inspiradas na metodologia recomendada pela Módulo Security Solutions, empresa líder no mercado de segurança de informação, em treinamentos oficiais. Esta por sua vez baseia-se em padrões internacionais estabelecidos ou em desenvolvimento, como a norma ISO/IEC 17799:2000. No capítulo 6 são estabelecidas conclusões baseadas nos aspectos discutidos nos capítulos anteriores. Em primeira instância, este trabalho seguiu um enfoque no qual a classificação e o estabelecimento de comparações e similaridades têm importância preponderante. Contudo, as classificações propostas aqui devem ser encaradas, em sua maioria, como provisórias. Destinam-se essencialmente a facilitar a exposição de meus pontos de vista. Uma base classificatória para as análises que conduzi foi útil, a meu ver, na medida em que dá alguma coesão a um tema que tende a ramificar-se em uma infinidade de exemplos, casos particulares e aspectos correlatos. Em segunda instância, as análises conduzidas direcionaram-se a uma avaliação de práticas, modelos e tendências. Aqui, a avaliação de produtos comerciais e soluções específicas foi deliberadamente evitada. A intenção foi a de desenvolver um pensamento orientado à observação e reconhecimento das variadas capacidades e limitações que a tecnologia de redes oferece e que afetam, de forma adversa ou não, a segurança da informação. Acredita-se que essa abordagem é capaz de fundamentar um método de julgamento e contribuir para que casos específicos possam vir a ser avaliados posteriormente, fora do escopo deste trabalho
8 Capítulo 1 Arquitetura e operação do TCP/IP - 5 -
9 Arquitetura e operação do TCP/IP O conteúdo deste primeiro capítulo consiste numa exposição particular da forma como o conjunto de protocolos TCP/IP está estruturado e dos aspectos de seu funcionamento com efeitos relevantes sobre a segurança do ambiente. Essa exposição concentra-se portanto, em traços particulares, não devendo ser tomada como uma análise completa dos protocolos. Os tópicos que serão desenvolvidos neste capítulo são, pela ordem, os seguintes : Modelos de camadas Modelo DoD ( Department of Defense ) Modelo OSI ( Open Systems Interconnected ) Os protocolos do conjunto TCP/IP O protocolo IP ( Internet Protocol ) O sistema de endereçamento IP O Datagrama IP DNS Domain Name System Roteamento Fragmentação Portas e soquetes O cabeçalho TCP A conexão TCP O cabeçalho UDP 1. Modelos de camadas : A comunicação de dados entre computadores conectados a uma rede, ou entre várias redes de computadores interconectadas entre si, é feita por meio de um complexo conjunto de tarefas ou funções, executadas por uma grande variedade de componentes de hardware e software presentes em computadores e equipamentos de conexão. A eficácia da comunicação depende em grande parte do fato de que esses - 6 -
10 componentes, ainda que possam ser diferentes entre si, processem os dados segundo regras comuns. Os modelos de camadas são modelos conceituais que descrevem as funções envolvidas na comunicação de dados nas redes de computadores, organizando-as em grupos denominados camadas e relacionando-as entre si numa estrutura hierárquica vertical. Embora sejam apenas construções teóricas, os modelos de camadas constituem-se numa orientação fundamental para o projeto e desenvolvimento do hardware e software de rede. Os modelos de camadas estabelecem que na transmissão de dados cada camada recebe os dados da camada imediatamente superior, acrescenta-lhes um conjunto de informações de controle denominado cabeçalho e passa-os para a camada imediatamente inferior. Essa camada também irá acrescentar um novo cabeçalho relacionado às funções que lhe são próprias e passar o conjunto de dados recebidos mais informações de controle acrescentadas para outra camada um nível abaixo e assim, sucessivamente, até que os dados possam ser transmitidos ao meio físico de ligação da rede. No host de destino, a camada de menor nível irá interpretar as informações que constam do cabeçalho acrescentado pela camada inferior do host de origem. Essas informações determinam a forma como os dados serão processados na camada inferior do host de destino e como essa camada irá passá-los para a camada imediatamente superior nesse host. Os dados serão agora passados de uma camada a outra, do nível mais baixo para o nível mais alto, até que os dados originais estejam disponíveis para utilização. Em cada uma das camadas as informações de controle acrescentadas pela camada correspondente no host de origem são interpretadas de modo a orientar a execução das funções próprias daquela camada
11 2. O modelo DoD ( Department of Defense ) : Definido no âmbito das pesquisas da ARPA (Advanced Research Projects Agency, uma agência do Departamento de Defesa norte-americano), o modelo DoD prevê a existência de quatro camadas, dispostas conforme mostra a figura a seguir : A camada de Aplicação inclui as funções próprias das aplicações em uso na rede, tais como browsers, emuladores de terminal e utilitários. Essas funções conectam processos em execução nos hosts e estabelecem formatos compatíveis para apresentação dos dados. A camada de Transporte, às vezes chamada da camada Host-to-Host, assegura o transporte dos dados entre transmissor e receptor, gerenciando o estabelecimento, a manutenção e o encerramento da conexão e controlando o fluxo dos dados. A camada de Transporte verifica a entrega dos pacotes e a sua ordenação no host de destino. A camada de Internet, também referenciada como de Rede ou de Inter-redes, engloba as funções relacionadas ao roteamento dos pacotes entre as várias redes envolvidas na comunicação, como a determinação e seleção de rotas preferenciais e alternativas. A camada Física ou de Interface de Rede e Hardware faz a interface entre os componentes de hardware de rede e os elementos lógicos que trabalham nas camadas superiores, abrangendo tarefas relativas à estrutura física da rede, às - 8 -
12 especificações elétricas e mecânicas da mídia de transmissão e à codificação e sincronização dos bits transmitidos. 3. O modelo OSI ( Open Systems Interconnected ) : Este modelo foi proposto em 1977 pelo CCITT Comitee Consultatif International Telephonique et Telegraphique - e pela ISO International Standards Organization como uma abordagem alternativa ao modelo DoD, proposto pela ARPA e suas associadas. Embora descreva as funções de rede de forma bastante semelhante ao modelo Dod, o modelo OSI é mai s detalhado, estabelecendo sete camadas, dispostas conforme mostra a figura a seguir : As camadas de Aplicação, de Apresentação e de Sessão do modelo OSI dividem entre si as funções que no modelo DoD acham-se englobadas na camada de Aplicação. Essas funções incluem a conexão de processos e serviços entre os hosts, compressão e conversão de formato dos dados e criptografia. A camada de Transporte desempenha basicamente as mesmas funções da camada de Transporte do modelo DoD, estabelecendo e mantendo as conexões e executando - 9 -
13 tarefas ligadas à confirmação da entrega dos pacotes e à sua correta reordenação no host de destino. A camada de Internet, a exemplo da camada homônima do modelo DoD, especifica métodos para a movimentação dos pacotes entre as várias redes, definindo formas de endereçamento lógico dos hosts em várias redes e determinando as rotas a serem percorridas pelos pacotes. A camada de Link de Dados organiza os bits recebidos da camada Física em grupos lógicos, normalmente chamados frames, executando ainda funções relativas ao controle de fluxo e à identificação dos hosts dentro de um mesmo segmento de rede. A camada Física engloba as funções relacionadas ao hardware de rede e à mídia de transmissão, de forma análoga à camada do modelo DoD. 4. Os protocolos do conjunto TCP/IP : Protocolos são implementações de software que executam as funções necessárias à comunicação de dados conforme definidas nos modelos de camadas. A estrutura vertical dos modelos de camadas levou ao desenvolvimento de conjuntos de protocolos. Cada um dos protocolos de um conjunto executa tarefas que se relacionam, de forma mais ou menos direta, a uma camadas específica do modelo. Os conjuntos de protocolos receberam o nome de pilhas. A pilha de protocolos TCP/IP é, portanto, um conjunto composto por diversos protocolos, dentre eles o TCP (Transmission Control Protocol ) e o IP ( Internet Protocol ). Apresentamos a seguir uma descrição sucinta de alguns dos protocolos que compõe a pilha TCP/IP. O TCP (Transmission Control Protocol ), o UDP ( User Datagram Protocol ) e o IP ( Internet Protocol ), por sua importância nas questões que esse trabalho aborda, merecerão uma análise detalhada mais adiante
14 IP ( Internet Protocol ) : É o protocolo responsável pelo roteamento de pacotes de dados entre as redes. Atua na camada de Internet e pode ser considerado o protocolo central do conjunto. As unidades de transferência de dados geradas pelo IP são denominadas datagramas. ICMP ( Internet Control Message Protocol ) : O ICMP é o protocolo utilizado para a transmissão de mensagens de erro no processamento de datagramas IP. As unidades de transferência de dados geradas pelo ICMP são denominadas mensagens ICMP. ARP ( Address Resolution Protocol ) : O ARP é usado para mapear os endereços IP para endereços de hardware ( também chamados endereços físicos ou endereços MAC ), que são utilizados para a localização de hosts no âmbito de cada rede local. Seu funcionamento consiste basicamente na conversão dos endereços IP, que constam no cabeçalho dos datagramas que chegam à rede local como endereços de hosts de destino, em endereços de hardware, o que possibilita a entrega dos datagramas ao host correto. Para fazer essa resolução, ARP baseia-se em consultas por meio de broadcasts e na utilização de uma tabela atualizada dinamicamente, que contém os mapeamentos já definidos a partir de consultas anteriores. O ARP é descrito na RFC 826. RARP ( Reverse Address Resolution Protocol ) : O RARP realiza uma resolução em sentido reverso ao daquela executada pelo ARP, ou seja, converte endereços de hardware em endereços IP. Essa função é útil em circunstâncias especiais, como por exemplo em redes onde existam
15 estações sem disco rígido. Essas estações conhecem seus endereços de hardware, que é registrado no firmware dos adaptadores de rede. Contudo, as estações não conhecem o endereço IP que lhes for atribuído, uma vez que não tem como armazenar essa configuração. Assim, deve ser mantida uma base de dados num servidor da rede, onde constem mapeamentos entre os endereços de hardware das estações e os endereços IP atribuídos a elas. O RARP é utilizado para consultar essa base de dados e obter o endereço IP que deve ser utilizado pela estação. Os pacotes RARP têm estrutura muito semelhante à dos pacotes ARP, com pequenas diferenças no cabeçalho. O RARP é descrito na RFC 903. BOOTP ( Bootstrap Protocol ) : O BOOTP executa funções análogas àquelas desempenhadas pelo RARP, provendo a resolução de endereços de hardware em endereços IP a partir de uma base de dados preestabelecida e armazenada em um servidor da rede. Isso permite a inicialização de hosts com uma pilha IP reduzida, solicitando através do BOOTP o endereço IP que será utilizado e outras configurações adicionais como o endereço de gateway. O BOOTP oferece uma funcionalidade extra em relação ao RARP : a possibilidade de ter seus pacotes encaminhados através de roteadores, permitindo assim que um servidor BOOTP atenda solicitações originadas em redes distintas daquela em que está localizado. Protocolos de roteamento Os protocolos de roteamento dão suporte às comunicações entre roteadores e outros dispositivos. Por meio de mensagens desses protocolos é feito o compartilhamento e a sincronização das informações utilizadas em tarefas de roteamento. O RIP Routing Information Protocol o OSPF Open Shortest Path First e os protocolos de roteamento externos são objeto de
16 comentários mais detalhados na seção deste trabalho que trata do roteamento. TCP (Transmission Control Protocol ) : É um dos protocolos da camada de Transporte. Foi projetado para oferecer às camadas superiores serviços confiáveis e orientados à conexão. O TCP gerencia conexões ponto a ponto, isto é, com origem e destino perfeitamente definidos, e garante que os pacotes enviados tenham sido recebidos em ordem correta pelo host de destino, providenciando sua retransmissão quando requerido. O TCP é descrito na RFC 793. UDP ( User Datagram Protocol ) : O UDP é outro protocolo da camada de Transporte que diferencia-se do TCP pela característica de não ser orientado à conexão. Ao contrário do TCP, ele não oferece garantia de entrega de pacotes, nem recursos de recuperação de erros ou de controle de fluxo. O UDP funciona como uma simples interface para o protocolo IP, provendo o correto direcionamento dos datagramas entre processos em execução nos hosts de origem e destino. O mecanismo de soquetes e portas, que será descrito posteriormente, possibilita esse direcionamento. As funcionalidades limitadas do UDP em relação ao TCP implicam, em contrapartida, em uma sobrecarga ou overhead consideravelmente menor na comunicação. Isso recomenda seu emprego em situações nas quais a confiabilidade na entrega dos dados não é crítica, como aplicações de áudio e vídeo, e na transmissão de informações sem endereços de destino definidos. O UDP é descrito na RFC
17 Protocolos da camada de Aplicação : Os protocolos dessa camada executam tarefas que compreendem desde a compatibilização de formatos de dados até o fornecimento ao usuário de comandos e interfaces. Eles relacionam-se de maneira direta com as aplicações e são freqüentemente implementados como parte integrante delas. Isso conduz não só a uma grande diversidade de protocolos mas também à ocorrência de implementações diferentes de um mesmo protocolo. Alguns protocolos da camada de Aplicação, entretanto, obedecem a padrões bastante estáveis e têm seu uso amplamente difundido. A seguir oferecemos uma breve descrição dos mais importantes : HTTP ( Hypertext Transfer Protocol ) : O HTTP é o protocolo utilizado para o acesso e apresentação de documentos em ambientes de intranets e Internet, como páginas web por exemplo. Ele define métodos de solicitação e resposta que permitem a uma aplicação cliente, geralmente um browser, conectar-se a uma aplicação servidor e executar tarefas simples de pesquisa e recuperação. O HTTP é usado também como um protocolo genérico de comunicação por agentes e gateways que utilizam protocolos diferentes de TCP/IP. O HTTP é descrito na RFC SMTP ( Simple Mail Transfer Protocol ) : O SMTP é empregado na troca de mensagens de correio eletrônico entre servidores de correio e para o envio de mensagens a partir de estações de trabalho. As funções do SMTP são limitadas ao roteamento das mensagens entre os hosts, não abrangendo a definição de interfaces locais para a
18 apresentação das mensagens. Para essa tarefa é comumente empregado outro protocolo, o POP3. A RFC 821 apresenta as especificações válidas para o SMTP. FTP ( File Transfer Protocol ) : As funções principais do FTP envolvem a cópia e transferência de arquivos entre hosts. Ele oferece ainda um número considerável de funcionalidades adicionais, como inspeção de diretório, autenticação do usuário, manipulação de arquivos e outras. O FTP requer que os protocolos da camada de Transporte ofereçam um serviço confiável para que ele possa estabelecer um circuito virtual entre os hosts. Tipicamente, o TCP fornece esses serviços. Em situações nas quais a confiabilidade não representa um requisito crítico, como aquelas em que a autenticação do usuário não será exigida, pode ser empregado o TFTP Trivial File Transfer Protocol. O TFTP aceita o UDP como protocolo de Transporte. O FTP tem suas especificações apresentadas na RFC 959 e atualizadas na RFC O TFTP é descrito na RFC SNMP ( Simple Network Management Protocol ) : O SNMP é um protocolo utilizado especificamente na comunicação relacionada a tarefas de gerenciamento de redes. Essas tarefas são executadas por meio de métodos e objetos especificados na SMI Structure and Information of Management Information descrita na RFC Entre esses objetos estão as NMS Network Management Stations e os MA Management Agents. Os MA, usualmente chamados de agentes SNMP, são executados em elementos da rede tais como hosts, servidores e gateways. Eles monitoram eventos e parâmetros da rede e armazenam o
19 resultado de suas observações em bases de dados chamadas MIBs - Management Information Bases. Os valores contidos nas MIBs podem ser comunicados às NMS. As NMS, freqüentemente chamadas de estações ou consoles de gerenciamento podem, por sua vez, solicitar informações aos agentes ou mesmo executar reconfigurações limitadas. A troca de informações entre as consoles de gerenciamento e os agentes é feita por meio de cinco tipos básicos de mensagens SNMP : GetRequest é uma mensagem enviada pela console de gerenciamento para recuperar um determinado valor da base de dados do agente. GetNextRequest recupera o valor seguinte na base de dados. SetRequest é enviada pela console a fim de alterar valores na base de dados do agente. GetResponse é enviada pelo agente em resposta a uma das mensagens anteriores. Trap é enviada pelo agente para notificar a console de eventos específicos, tais como a inicialização do agente, falhas de conexão etc. A versão dois do SNMP admite outros tipos de mensagens que estendem as funcionalidades dos tipos básicos mencionados acima. Os agentes e as consoles são vinculados a grupos denominados comunidades SNMP. As comunidades são empregadas para organizar a troca de informações de gerenciamento e controle, garantindo-lhes acesso controlado e confidencialidade por meio de mecanismos de autenticação próprios
20 O SNMP é descrito na RFC MIB-II ( Management Information Base Protocol ) : Analogamente ao SNMP, o MIB-II é também um protocolo utilizado em gerenciamento de redes. O MIB-II é descrito na RFC O protocolo IP ( Internet Protocol ) : O protocolo IP é o protocolo que atua na camada de Internet, provendo as funções necessárias ao roteamento da informação entre várias redes interconectadas. Por atuar logo acima da camada física, é o IP que define a imagem virtual ou lógica da rede. O IP é responsável pela troca de pacotes numa base de menor esforço, ou seja, ele não oferece nenhum serviço adicional além do roteamento, exceto por alguns recursos bastante simples que permitem verificar a entrega dos pacotes e a integridade dos dados recebidos. Outras tarefas, como o estabelecimento de conexões entre os hosts envolvidos na comunicação, o controle do fluxo de dados entre eles, são deixadas para os protocolos das camadas superiores. As primeiras especificações do protocolo IP priorizavam a necessidade estabelecida pelo DoD de manter a comunicação, mesmo na eventualidade de que algumas das redes interconectadas deixassem de operar. Com algumas das redes do sistema indisponíveis, o protocolo da camada de Internet deveria ser capaz de encontrar rapidamente rotas alternativas entre as redes remanescentes, reorientando os pacotes de uma forma tão automática quanto possível. Isso só seria possível se as funções da camada de Internet viessem a ser definidas segundo modelos nãohierárquicos, eliminando a dependência de elementos de controle que poderiam falhar, e se fosse suprimido nessa camada o emprego de serviços orientados à conexão, permitindo assim reconfigurações rápidas das rotas. Essas necesidades
21 foram determinantes das características atuais do protocolo e delinearam as deficiências em termos de segurança que o IP apresentaria ao ser empregado num ambiente comercial e aberto. As especificações do protocolo IP constam das RFC 791, 919, 922 e 950, com atualizações na RFC O Datagrama IP : As unidades de transferência de dados gerenciadas pelo protocolo IP são chamadas datagramas. Um datagrama é formado pelos dados recebidos das camadas superiores, incluídas aí as informações de controle acrescentadas naquelas camadas, e pelo cabeçalho IP. O cabeçalho IP contém as informações de controle acrescentadas na camada de Internet que o protocolo IP registra ou interpreta ao executar suas funções. O formato do cabeçalho IP é ilustrado no esquema que se segue : VERS IHL Tipo de Serviço Comprimento total ID FLG Fragment offset TTL Número do protocolo Checksum Endereço IP de origem Endereço IP de destino Opções IP Padding Dados... Os campos que compõe o cabeçalho IP são descritos a seguir : VERS Indica a versão do protocolo IP, na maioria dos casos a versão 4, atualmente em uso
22 IHL Internet Header Length Informa o comprimento do cabeçalho IP em unidades de 32 bits. Tipo de serviço Indica a qualidade do serviço requerida pelo datagrama. A qualidade do serviço é expressa através de um conjunto de três valores. O primeiro, denominado Prioridade, indica a precedência que deve ser dada ao datagrama. O segundo, denominado TOS, ou Type of Service, fornece informações adicionais acerca do tratamento que deve ser dado ao datagrama. O terceiro valor, denominado MBZ, tem uso exclusivamente experimental. A RFC 1349 oferece uma descrição detalhada das informações incluídas nesse campo do cabeçalho IP. Comprimento Total Informa o comprimento total do datagrama em bytes, incluindo o cabeçalho IP e os dados. Identificação ( ID ) É um número único, registrado no cabeçalho IP do datagrama pelo host de origem com o propósito de orientar a recomposição pelo host de destino de datagramas fragmentados. Flags Este campo contém três flags cujos valores indicam atributos do datagrama relativos à fragmentação. O primeiro flag é de uso reservado e deve ser zero em todos os casos. O segundo flag, denominado DF ( Don t fragment ) indica quando tiver valor 1 que o datagrama não deve ser fragmentado. O terceiro flag, denominado MF ( More fragments ), indica quando tiver valor 0 que o datagrama não é um fragmento ou que é o último fragmento de um datagrama maior. Se tiver valor 1, indica que devem seguirse mais fragmentos do datagrama original. Fragment offset ( deslocamento do fragmento ) Este campo informa, em unidades de 8 bytes, o deslocamento do bloco de dados contido no datagrama em relação ao início do bloco de dados do datagrama original. Se o datagrama não é fragmentado ou se o datagrama é o primeiro fragmento de um
23 datagrama maior, o valor indicado deverá ser zero. Os cabeçalhos dos datagramas não são computados no deslocamento. TTL ( Tempo de vida ) É o tempo em segundos durante o qual um datagrama permanece válido, antes de ser descartado. O valor inicial deste campo é estabelecido na criação do datagrama por um protocolo de camada superior, o TCP ou o UDP, por exemplo. Cada roteador por onde o datagrama passa subtrai um segundo do valor registrado nesse campo. Quando o valor chegar a zero o datagrama é descartado, baseado na suposição de que ele está sendo transmitido em círculos pela rede sem condições de alcançar o host de destino. Essa técnica visa evitar que datagramas permaneçam circulando indefinidamente pela rede, ocasionando tráfego desnecessário. Os roteadores são capazes de encaminhar um datagrama em menos de um segundo, mas sempre decrementam o valor do campo TTL em uma unidade a cada processamento dado ao datagrama. Embora o valor seja teoricamente expresso em segundos, na prática ele indica uma métrica de saltos de roteador a roteador, em lugar de uma métrica de tempo. Número do protocolo Indica o protocolo de camada superior para o qual os dados contidos no datagrama devem ser passados. As indicações são feitas em valores numéricos, cada um deles correspondendo por convenção a um determinado protocolo. A STD 2 Números Internet Designados relaciona os números de protocolos empregados neste campo. Checksum do cabeçalho A finalidade deste campo é permitir a verificação da integridade do cabeçalho IP a nível de bit. Contém um valor obtido a partir de uma seqüência de operações lógicas efetuadas sobre os bits que compõe o cabeçalho. Cada vez que o cabeçalho é processado o valor do checksum é recalculado. Se for obtido um valor diferente daquele que consta neste campo assume-se que pelo menos um bit do cabeçalho foi alterado indevidamente e todo o datagrama é descartado