Você está na página 1de 68

BRENNO MICHAEL PISSINATI PESSÔA

SEGURANÇA EM REDES DE COMPUTADORES

LONDRINA - PARANÁ
2007
1

BRENNO MICHAEL PISSINATI PESSÔA

SEGURANÇA EM REDES DE COMPUTADORES

Monografia apresentada ao Curso de Especialização


em Redes de Computadores e Comunicação de Dados,
Departamento de Computação da Universidade
Estadual de Londrina, como requisito parcial para a
obtenção do título de Especialista, sob orientação do
Prof. Dr. Mario Lemes Proença Jr.

LONDRINA - PARANÁ
2007
2

PESSÔA, Brenno Michael Pissinati


Segurança em Redes de Computadores / PESSÔA, Brenno
Michael Pissinati. Londrina: UEL / Universidade Estadual de
Londrina, 2007.
67 f.

Orientador: Prof. Dr. Mario Lemes Proença Jr.


Dissertação (Especialização) – UEL / Universidade Estadual de
Londrina, 2007.
Referências bibliográficas: f. 64-67

1. Introdução. 2. Ataque e Defesa. 3. Algoritmos e

Protocolos. 4. Criptografia. 5. IPsec. 6. Conclusão I. Jr., Mario

Lemes Proença. II. Universidade Estadual de Londrina.

Especialização em Redes de Computadores e Comunicação de

Dados, III. Segurança em Redes de Computadores.


3

BRENNO MICHAEL PISSINATI PESSÔA

SEGURANÇA EM REDES DE COMPUTADORES

Esta monografia foi julgada adequada para obtenção do título de Especialista, e


aprovada em sua forma final pela Coordenação do Curso de Especialização em
Redes de Computadores e Comunicação de Dados, do Departamento de
Computação da Universidade Estadual de Londrina.

Banca Examinadora:

____________________________________________
Prof. Dr. Mario Lemes Proença Jr. - Orientador
Universidade Estadual de Londrina

____________________________________________
Prof. Dr. Alan Salvany Felinto
Universidade Estadual de Londrina

____________________________________________
Prof. Ms. Mauricio Botolli
Universidade Estadual de Londrina

Londrina, ____ de _____________de 2007.


4

DEDICATÓRIA

Agradeço a Deus, por estar presente em todos os meus momentos,

fazendo com que me sinta seguro com tua presença.

Agradeço à minha família, que em todos os momentos me deram


forças para continuar.
5

AGRADECIMENTOS

Agradeço também à Universidade Estadual de Londrina por permitir


que eu me qualificasse para juntos trabalharmos por uma Universidade cada vez
mais competente.

Agradeço aos colegas do Departamento de Computação pelo apoio em


busca de um mesmo ideal.

Agradeço especialmente ao meu orientador pelo apoio seguro, firme e


com qualidade.

Por fim, agradeço à todos que me apoiaram e incentivaram.


6

RESUMO

A segurança em redes de computadores é um assunto de extrema importância


para as empresas e demais organizações que utilizam a Internet para a
comercialização de seus produtos ou troca de informações que devem ser
mantidas em sigilo. Neste trabalho é abordado diversos aspectos em relação a
essa segurança, que envolve as falhas e problemas atualmente existentes e as
principais implementações disponíveis para tentar impedir alguma forma de
ataque.

Palavras Chave: 1) Segurança, 2) Criptografia, 3) IPsec, 4) Algoritmos


7

ABSTRACT

The security in computer networks is a subject of extreme importance for the


companies and too many organizations that use the Internet for the
commercialization of its products or exchange of information that must be kept in
secrecy. In this work he is boarded diverse aspects in relation to this security,
which involves the currently existing imperfections and problems and the main
available implementations to try to hinder some form of attack.

Keywords: 1) Security, 2) Cryptography, 3) IPsec, 4) Algorithms


8

SUMÁRIO

LISTA DE FIGURAS .........................................................................................................10


LISTA DE SIGLAS E ABREVIATURAS.........................................................................11
1 INTRODUÇÃO...........................................................................................................13
2 ATAQUE E DEFESA ................................................................................................15
2.1 Mecanismos de Defesa ................................................................................... 18
3 ALGORÍTMOS E PROTOCOLOS ..........................................................................21
3.1 SSL (Secure Sockets Layer)/TLS (Transport Layer Security) .................. 21
3.1.1 Objetivos .................................................................................................... 21
3.2 S-HTTP (Secure-Hyper Text Transfer Protocol) ..................................... 22
3.3 MD5 (Message Digest Series 5) .................................................................... 23
3.4 S/MIME (Secure/Multipurpose Internet Mail Extensions) .......................... 23
4 CRIPTOGRAFIA........................................................................................................25
4.1 Aplicações ......................................................................................................... 25
4.1.1 Comunicações com Segurança ............................................................. 26
4.1.2 Identificação e Autenticação................................................................... 26
4.1.3 Comércio Eletrônico................................................................................. 27
4.1.4 Certificação................................................................................................ 27
4.1.5 Recuperação de Chaves......................................................................... 27
4.5.6 Acesso Remoto ........................................................................................ 28
4.6 Padronização .................................................................................................... 28
4.7 Algoritmos e Protocolos................................................................................... 29
4.7.1 SET (Secure Electronic Transaction).................................................... 29
4.7.2 SSL ............................................................................................................. 30
4.7.3 S/WAN (Secure/Wide Area Network).................................................... 31
4.7.4 SSH (Secure Shell) .................................................................................. 32
4.7.5 RSA ............................................................................................................ 34
4.7.6 KERBEROS .............................................................................................. 35
4.7.7 DES ............................................................................................................ 36
4.7.7.1 Triple-DES.............................................................................................. 36
4.7.8 AES (Advanced Encryption Standard).................................................. 37
4.7.9 DIFFIE-HELLMAN.................................................................................... 37
9

4.7.10 RC5 .......................................................................................................... 37


4.7.11 SHA (Secure Hash Algorithm) ............................................................. 38
4.7.12 Funções Hash......................................................................................... 39
4.8 Chaves Públicas e Privadas ........................................................................... 40
4.8.1 Criptografia com Chave Pública e Chave Privada.............................. 40
5 IPsec............................................................................................................................43
5.1 Características .................................................................................................. 43
5.2 Funcionamento ................................................................................................. 44
5.3 Objetivos ............................................................................................................ 44
5.4 Onde Aplicar...................................................................................................... 45
5.5 Conjuntos criptográficos para o IPsec .......................................................... 46
5.6 Associações de Segurança ............................................................................ 46
5.6.1 Combinando SAs...................................................................................... 47
5.7 AH ....................................................................................................................... 49
5.7.1 Next Header .............................................................................................. 51
5.7.2 Payload Len .............................................................................................. 51
5.7.3 Reserved.................................................................................................... 51
5.7.4 SPI .............................................................................................................. 51
5.7.5 Sequence Number ................................................................................... 52
5.7.5.1 Número de seqüência extendido........................................................ 52
5.7.6 ICV .............................................................................................................. 53
5.7.7 Modos de operação ................................................................................. 53
5.8 ESP..................................................................................................................... 55
5.8.1 Payload Data............................................................................................. 58
5.8.2 Padding ...................................................................................................... 59
5.8.3 Pad Lenght ................................................................................................ 59
5.8.4 TFC (Traffic Flow Confidentiality) .......................................................... 60
5.8.5 Modos de Utilização................................................................................. 60
6 CONCLUSÃO ............................................................................................................63
REFERÊNCIAS .................................................................................................................64
10

LISTA DE FIGURAS

FIGURA 2.1: Ameaças de segurança. ................................................................. 15


FIGURA 2.2: Exemplo de Ataque Distribuído....................................................... 17
FIGURA 2.3: NAT/PAT ......................................................................................... 20
FIGURA 4.1: Nivelamento dos protocolos na camada de aplicação .................... 31
FIGURA 4.2: Chaves de 1024 bits ....................................................................... 35
FIGURA 5.1: Aplicação de AH e ESP combinados .............................................. 48
FIGURA 5.2: Túneis com extremidades em comum ............................................ 49
FIGURA 5.3: Túneis com apenas uma extremidade em comum.......................... 49
FIGURA 5.4: Túneis com extremidades diferentes .............................................. 49
FIGURA 5.5: Formato do AH................................................................................ 50
FIGURA 5.6: AH no modo túnel para IPv4 ........................................................... 53
FIGURA 5.7: IPv6 com AH ................................................................................... 54
FIGURA 5.8: AH no modo tunel para IPv4 e IPv6 ................................................ 55
FIGURA 5.9: Formato do topo de um pacote ESP ............................................... 57
FIGURA 5.10: Subestrutura para os dados do payload ....................................... 58
FIGURA 5.11: IPv4 com ESP no modo de transporte .......................................... 60
FIGURA 5.12: IPv6 com ESP ............................................................................... 61
FIGURA 5.13: ESP no modo túnel para IPv4 e IPv6............................................ 62
11

LISTA DE SIGLAS E ABREVIATURAS

AES - Advanced Encryption Standard


AH - Authentication Header
ANSI - American National Standards Institute
BITS - Bump-In-The-Stack
BITW - Bump-In-The-Wire
CBC - Chain Block Coding
CFB - Cipher Feedback
DES - Data Encryption Standard
DSA - Data Signature Algorithm
DSL - Digital Subscriber Line
DSS - Digital Signature Standard
ECB - Electronic Code Book
ESP - Encapsulating Secure Payload
FTP - File Transfer Protocol
HTML - Hyper Text Markup Language
IANA - Internet Assigned Numbers Authority
ICV - Integrity Check Value
IEEE - Institute of Electrical and Electronics Engineers
IETF - Internet Engineering Task Force
IKE - Internet Key Exchange
IKEv2 - Internet Key Exchange version 2
IMAP - Internet Message Access Protocol
IP - Internet Protocol
IPsec - Internet Protocol Security
IPv4 - Internet Protocol version 4
IPv6 - Internet Protocol version 6
ISAKMP - Internet Security Association and Key Management Protocol
ISDN - Integrated Services Digital Network
ISO - International Standard for Standardization
IV - Initialization Vector
LDAP - Lightweight Directory Access Protocol
12

MD4 - Message Digest series 4


MD5 - Message Digest series 5
MUAs - Mail User Agents
NAT - Network Address Translation
NIST - National Institute of Standards and Technology
NSA - National Security Agency
PAT - Port Address Translation
PGP - Pretty Good Privacy
RC4 - Rivest Cipher 4
RC5 - Rivest Cipher 5
RFC - Request for Comments
RSA - Rivest Shamir Adleman (sobrenome dos criadores do algoritmo)
S/MIME - Secure/Multipurpose Internet Mail Extensions
S/WAN - Secure/Wide Area Network
SA - Security Association
SET - Secure Electronic Transaction
SHA - Secure Hash Algorithm
SHS - Secure Hash Standard
S-HTTP - Secure-Hyper Text Transfer Protocol
SNMP - Simple Network Message Protocol
SPD - Security Police Database
SPI - Security Parameters Index
SSH - Secure Shell
SSL - Secure Sockets Layer
TCP - Transmission Control Protocol
TFC - Traffic Flow Confidentiality
TLS - Transport Layer Security
UDP - User Datagram Protocol
VPN - Virtual Private Network
XOR - Exclusive OR
13

1 INTRODUÇÃO

As redes de computadores surgiram para serem utilizadas na pesquisa,


possibilitando diversas opções de conectividade entre as partes que estivessem interagindo.
Logo, a interoperabilidade foi priorizada deixando de lado as questões de segurança.
Entretanto, com o crescimento da demanda comercial, a segurança tornou-se um requisito
de extrema importância para as pessoas envolvidas com a tecnologia de redes.
A Internet possibilitou a qualquer pessoa, além do fácil acesso, total controle
das informações em âmbito mundial.
Trabalhar em rede traz vários benefícios, porém, o compartilhamento de
informações também gera alguns riscos. Pois, mesmo que o acesso a essas informações
seja possibilitado através de algum tipo de controle, uma falha de especificação, pode
permitir o acesso não autorizado a elas.
Em função disto, torna-se necessário à configuração de regras que assegurem a
segurança dos sistemas. A análise para elaboração dessas regras deve avaliar três aspectos:
o que proteger, de que proteger e como proteger.
A base para a construção de um ambiente seguro, é saber o que precisa ser
realmente protegido, já que cada ambiente possui uma necessidade específica de proteção.
O que é de extrema importância para um, para outro pode não ter o mesmo valor. Por isso,
a segurança deve ser entendida sobre vários aspectos. Os principais são: autenticidade,
confidencialidade, integridade e disponibilidade.
O próximo passo é descobrir quais ações podem tornar inseguras as
informações ou os sistemas de uma organização. As providencias a serem tomadas, devem
se referenciar nos objetivos das transações e o que deve ser protegido.
Além disso, um outro aspecto que deve ser levado em consideração, é que
grande parte dos sistemas de segurança levam em consideração apenas ataques externos,
simplificando a segurança interna da rede, quando deveriam se preocupar com ameaças
internas, já que grande parte dos problemas está associada a elas.
Toda essa análise tem por objetivo buscar as informações necessárias para se
atingir o nível de segurança desejado, aplicando mecanismos para prevenir, detectar ou até
mesmo se recuperar de um ataque. Para isto, técnicas de criptografia e firewalls podem ser
desenvolvidas e utilizadas na proteção e obtenção de dados para análise da causa e até a
origem de um provável ataque.
14

No capítulo 2 são abordados alguns mecanismos de ataques utilizados por


pessoas mal intencionadas e algumas das técnicas aplicadas para se defender e se prevenir
contra esses ataques. No capítulo 3, comenta-se sobre os principais algoritmos e protocolos
utilizados. Já no capítulo 4 aborda aspectos relacionados à criptografia dos dados. O
Capitulo 5 descreve de maneira ampla as características do protocolo IPsec (Internet
Protocol Security). Finalizando, no capitulo 6 são apresentadas as conclusões sobre o
trabalho.
15

2 ATAQUE E DEFESA

Howard [1] apud Stallings [2] apresenta um modelo simples para classificar as
ameaças de segurança. Este modelo se restringe a informação trafegada. Nele são definidas
quatro categorias de ataque descritas a seguir e ilustrada na figura 2.1.
 Interrupção: nele um recurso do sistema é destruído ou se torna indisponível
ou inutilizável.
 Interceptação: acesso não autorizado a um recurso.
 Modificação: acesso não autorizado a um recurso, com alteração do mesmo.
 Fabricação: inserção não autorizada de falsas informações ao sistema.

FIGURA 2.1: Ameaças de segurança.

Pessoas atacam computadores. Eles fazem isso com uma variedade de métodos
e por diversos motivos.
Tais pessoas podem ser identificadas por quem elas são e sua origem, como ser
um estudante de uma escola de uma determinada cidade, um ex-empregado, ou um
estrangeiro. Eles também podem ser identificados por suas capacidades.
16

Para alcançar o seu objetivo, o atacante deve tomar vantagem de uma


vulnerabilidade de um computador ou da rede, na qual seja possível realizar o acesso ou o
uso não autorizado.
Uma vulnerabilidade pode se mencionada de três maneiras. A forma mais
conhecida é através de um erro de software, que seja um problema de execução onde o
projeto é satisfatório, mas o erro ocorreu na sua aplicação no software ou no hardware.
A segunda vulnerabilidade pode ser levantada no próprio projeto, o qual é
potencialmente mais sério e difícil de corrigir. Nesta situação, a vulnerabilidade é inerente
ao projeto e mesmo com o perfeito desenvolvimento, ainda será vulnerável.
A terceira forma de vulnerabilidade pode ser levantada por falhas de
configuração. Este é muito comum de acontecer. Diversos vendedores vendem seus
sistemas que são convenientemente seguros para os usuários, mas podem ser altamente
vulneráveis aos ataques [2].
Os métodos mais comuns utilizados por intrusos são descritos a seguir [3].
Cavalos de Tróia – é a maneira mais simples de ser enganado por um intruso
instalando programas back door. Às vezes referenciada como Engenharia Social. Estes
programas permitem aos intrusos fácil acesso ao computador sem o conhecimento do
usuário, mudando configurações do sistema, ou infectando com vírus.
Back Door ou Programas de Administração Remota - é um mecanismo
introduzido em um sistema para facilitar o acesso desautorizado a este sistema. São
instalados para acessar diversos serviços. Comprometem o sistema para facilitar um
posterior acesso ao mesmo.
Negação de Serviço – este ataque interrompe o processamento da máquina ou
a deixa muito ocupada para processar as tarefas. Na maioria dos casos as últimas correções
dos sistemas previnem este tipo de ataque.
Ser um intermediário para outro ataque – os intrusos normalmente utilizam
computadores comprometidos para realizar o ataque a outros sistemas. Os intrusos
instalam um “agente” que são executados nestes computadores e ficam aguardando novas
instruções. Então quando certo número de agentes estiver rodando em diferentes
computadores, um simples comando pode instruí-los a realizar o ataque em outro sistema.
Com isto, o alvo do ataque não são estes computadores, mas algum outro. Estes
computadores são apenas ferramentas para um grande ataque [3]. A figura 2.2 dá uma idéia
de como este ataque funciona [4].
17

FIGURA 2.2: Exemplo de Ataque Distribuído

Códigos Móveis (Java/JavaScript/ActiveX) – estas são linguagens de


programação que permitem aos desenvolvedores da web escrever códigos que são
executados pelos navegadores. Embora o código seja útil, pode ser utilizado por intrusos
para obter informação ou executar código malicioso nos computadores. É possível
desabilitar esses códigos dos navegadores. Isto é recomendável quando estiver navegando
em páginas desconhecidas ou não confiáveis.
Diversos programas de e-mail utilizam o mesmo código para exibir HTML
(Hyper Text Markup Language). Então as vulnerabilidades que exploram estes códigos são
frequentemente utilizados como nas páginas web.
Spoofing – no quesito segurança de rede, um ataque de spoofing é uma
situação em que uma pessoa ou programa finge ser outro falsificando dados e obtendo
dessa forma vantagens ilegítimas.
Man-in-the-Middle – neste tipo de ataque, o atacante consegue ler, inserir e
modificar o que quiser, com mensagens entre as duas partes sem que uma delas saiba que a
ligação entre elas está comprometida. O atacante precisa estar preparado para observar e
interceptar as mensagens trocadas entre as duas vítimas.
Vírus – programa ou instrução de máquina que cujo objetivo é prejudicar um
usuário, apagando seus dados, capturando informações ou modificando o funcionamento
normal da máquina.
18

2.1 Mecanismos de Defesa

Firewall é o primeiro mecanismo para manter o computador seguro contra


intrusos. Este sistema permite ou bloqueia o tráfego da rede dentro de uma rede privada ou
dos computadores dos usuários. Os Firewalls são muito utilizados para dar acesso seguro a
Internet aos seus usuários, também podem separar os servidores da rede interna de uma
empresa.
Firewalls pessoais podem detectar trafego de saída para proteção contra
spywares, que podem enviar os hábitos de navegação do usuário para um site na Internet.
Este tipo de firewall alerta o usuário quando um software gera um tráfego de saída pela
primeira vez.
Nas empresas, o firewall pode ser uma única máquina ou um software
instalado no roteador ou no servidor. Pode ser simplesmente um único roteador que filtra
os pacotes de saída não autorizados, como também pode compreender a combinação de
servidores e roteadores, cada um realizando algum tipo de serviço de firewall [5].
A seguir são descritos alguns métodos para oferecer proteção, muitos destes
são normalmente utilizados em combinação.
SPI (Security Parameters Index) – rastreia as transações para garantir que os
pacotes de entrada foram solicitados pelo usuário. Normalmente pode examinar múltiplas
camadas da pilha do protocolo, incluindo os dados, se necessário, o bloqueio poderá então
ser feito em qualquer camada ou nível.
NAT (Network Address Translation) – permite a um endereço IP (Internet
Protocol), que é visto pelo mundo exterior, referenciar diversos endereços IP internamente,
cada um nas estações clientes. Executa a tradução nos dois sentidos. É encontrado em
roteadores e montado nas conexões compartilhadas de Internet do Windows.
Filtro de Pacotes – bloqueia o tráfego para um determinado endereço da
Internet, que pode ser um endereço IP ou uma aplicação, que é especificada por uma
numeração de porta. O Filtro de pacotes normalmente é feito em um roteador.
Servidor Proxy – atua como um substituto entre duas redes, interrompendo a
conexão entre elas. Armazena as paginas da Internet.
NAT é um padrão da IETF (Internet Engineering Task Force) que permite a
uma empresa participar da Internet com menos endereços IP do que os existentes em sua
rede interna. Esta tecnologia converte o endereço IP de uma máquina da rede privada
19

interna para um ou mais endereços públicos para a Internet. Trocando o cabeçalho dos
pacotes para os novos endereços e mantendo o mapeamento deles através de tabelas
internas que são montadas. Quando os pacotes retornam, utiliza essas tabelas para realizar
a conversão reversa para o endereço IP das máquinas clientes.
Uma desvantagem desta tecnologia, é que ela anula a transparência da Internet,
a qual significa que os pacotes permanecem intactos de uma ponta a outra da comunicação.
NAT não apenas mantém os endereços IP público, como também garante a
segurança mantendo os endereços internos, ocultos do mundo externo. Previne diversos
tipos de ataques de primeiro nível, mas não todos, e precisa ser aplicado em conjunto com
um firewall pessoal em uma rede doméstica e firewalls mais robustos em empresas.
A técnica NAT mais utilizada atualmente, é a Port Address Translation (PAT).
É aplicada em grandes empresas, pequenos escritores e casas. Como em departamentos em
empresas, as famílias querem o acesso simultâneo da Internet para diversas pessoas, e os
cable modems, DSL (Digital Subscriber Line) e ISDN (Integrated Services Digital
Network) possuem somente um único endereço IP público.
PAT garante que portas TCP (Transmission Control Protocol) de diferentes
números sejam utilizadas para cada sessão dos clientes com os servidores na Internet.
Quando a resposta retorna do servidor, o número da porta de origem (porta de destino no
retorno) determina qual usuário encaminhou os pacotes. Além de validar os pacotes que
realmente foram solicitados.
Na figura 2.3 é possível visualizar as mudanças ocasionadas com a utilização
da NAT em uma rede.
20

FIGURA 2.3: NAT/PAT

O Servidor Proxy é um sistema ou um roteador que interrompe a conexão entre


remetente e destinatário. Funcionando como um substituto entre o cliente e o servidor, os
Servidores Proxy são aplicados para prevenir um ataque de invasão da rede privada [6].
A palavra proxy significa “atuar a favor do outro”, assim, um servidor proxy
atua a favor do cliente e do servidor. Todas as solicitações dos clientes para a Internet
passam pelo proxy antes. O proxy analisa essas solicitações, e se for permitido, restabelece
a conexão com a parte externa para a Internet. Como também, as respostas ou solicitações
iniciais oriundas da Internet passam pelo servidor proxy para serem analisadas. E o proxy
se comunica com o cliente, que considera que a comunicação está sendo realizada
diretamente com o outro lado [7].
Antivírus [8] é um programa que tenta identificar, bloquear e eliminar os vírus
e outros softwares maliciosos. Para isto utiliza normalmente duas técnicas:
 Examinar os arquivos para localizar vírus conhecidos encontrando suas
definições em um dicionário de vírus.
 Identificar ações suspeitas de qualquer programa de computador que possa
estar infectado. Esta análise pode incluir captura de dados, monitoramento de
portas e outras operações.
21

3 ALGORÍTMOS E PROTOCOLOS

3.1 SSL (Secure Sockets Layer)/TLS (Transport Layer Security)

É um padrão tecnológico de segurança para o estabelecimento de uma ligação


cifrada entre o servidor web e o browser. Esta ligação garante que todos os dados
transmitidos permaneçam privados e íntegros. É um padrão industrial utilizado por milhões
de sites nas transações online com seus clientes [9].
O protocolo [10] é formado por duas camadas. Na camada mais baixa,
introduzida no topo de alguns importantes protocolos de transporte como o TCP, está o
Protocolo de Registro. Este é usado no encapsulamento de vários protocolos e alto nível.
Um protocolo de alto nível pode ser incorporado ao protocolo de forma transparente.
Permite uma conexão segura que possui três propriedades básicas:
 A conexão é particular.
 É utilizada uma cifragem depois de um acordo inicial para definição da
chave secreta.
 É utilizada criptografia simétrica para a cifragem dos dados, como DES
(Data Encryption Standard ) ou RC4 (Rivest Cipher 4), por exemplo.

3.1.1 Objetivos

Seus objetivos são:


Segurança Criptográfica – pode ser usado para estabelecer uma conexão segura
entre duas partes.
Interoperabilidade – programadores independentes podem desenvolver
aplicações utilizando este protocolo, permitindo assim que parâmetros criptográficos
possam ser trocados sem que um conheça o código do outro.
Flexibilidade – procura fornecer uma estrutura em que novas chaves públicas e
volumosos métodos públicos possam ser incorporados se necessário.
Eficiência Relativa – operações criptográficas costumam provocar intenso
processamento, como nas operações com chave publica. Por esta razão, incorporou um
esquema opcional de uma sessão escondida para reduzir o número de conexões que
22

precisam ser estabelecidas com risco. Além disso, cuidados têm sido tomados para reduzir
a atividade da rede.

S-HTTP (Secure-Hyper Text Transfer Protocol)

Foi inicialmente especificado pela CommerceNet, um grupo de comerciantes


interessados em utilizar a Internet com propósitos comerciais [11].
É uma extensão do http, que permite a troca segura de arquivos pela Internet.
Cada arquivo S-HTTP pode ser cifrado ou também possuir um Certificado Digital. Pode
ser uma alternativa a outro protocolo de segurança bem conhecido, o SSL. A principal
diferença é que o S-HTTP permite ao cliente enviar um certificado para autenticar o
usuário, enquanto que usando SSL, apenas o servidor pode ser autenticado. É mais comum
utilizar o S-HTTP em situações onde o servidor representa um banco e exige autenticação
de seus usuários, sendo mais seguro o uso de usuário e senha.
Fornece mecanismos seguros de comunicação entre o par cliente – servidor
HTTP a fim de permitir transações comerciais espontâneas para uma grande quantidade de
aplicações. Foi projetado com a intenção de fornecer um protocolo flexível que suporte
múltiplos modos de operação ortogonal, mecanismos de gerenciamento de chave, modelos
confiáveis, algoritmos criptográficos permitindo a negociação entre as partes de cada
transação [12].
A criação de mensagens S-HTTP pode ser pensada como uma função com três
entradas:
 A mensagem de texto, que pode ser uma mensagem HTTP ou qualquer
outro objeto de dados. Note que como a mensagem de texto é transportada de
maneira transparente, qualquer versão de HTTP pode ser transportada sob o
protocolo S-HTTP.
 As preferências criptográficas do destinatário e o material de chaveamento.
Este poder ser claramente especificado pelo receptor ou submetido a um
conjunto padrão de preferências.
 As preferências criptográficas da origem e o material de chaveamento. Esta
entrada à função pode ser pensada implicitamente desde que exista somente na
memória da origem.
23

A recuperação de uma mensagem S-HTTP pode ser pensada como uma função
com quatro entradas diferentes:
 A mensagem S-HTTP.
 As preferências criptográficas indicadas e o material de chaveamento do
receptor. O receptor tem a oportunidade de relembrar as opções criptográficas
fornecidas para que o documento fosse demarcado.
 As atuais preferências criptográficas do receptor e o material de
chaveamento.
 As opções criptográficas indicadas anteriormente pela origem. A origem
pode ter indicado que ele poderia realizar algumas operações criptográficas
nesta mensagem.

3.3 MD5 (Message Digest Series 5)

Foi projetado para tornar mais rápidos os sistemas de 32 bits. Além de não
exigir grandes tabelas de substituição; o algoritmo pode ser codificado de forma compacta.
É uma extensão do algoritmo MD4 (MESSAGE DIGEST SERIES 4), que é
ligeiramente mais rápido que ele, porém menos seguro.
A partir de uma mensagem de entrada com tamanho arbitrário, o algoritmo
produz uma saída de 128 bits. Deve ser utilizado em aplicações de assinatura digital, onde
o arquivo deve ser “compactado” de forma segura antes de ser cifrado com uma chave
privada sob um sistema de chave pública como o RSA - Rivest Shamir Adleman
(sobrenome dos criadores do algoritmo) [13].

3.4 S/MIME (Secure/Multipurpose Internet Mail Extensions)

É um protocolo que insere assinaturas digitais e cifragem paras as mensagens


MIME de Internet.
Fornece uma maneira segura de enviar e receber dados seguros do MIME.
Baseado no popular padrão MIME da Internet, fornece os seguintes serviços criptográficos
de segurança para aplicações de correio eletrônico: autenticação, integridade da mensagem
24

e não-repudiação da origem (que usam assinaturas seguras), e confidencialidade dos dados


(que usam cifragem).
Pode ser usado por tradicionais MUAs (Mail User Agents), adicionando
serviços de segurança criptográfica à mensagem emitida, e ser interpretado quando for
recebido. Entretanto, este protocolo não é usado apenas para correio eletrônico; pode ser
utilizado em qualquer mecanismo de transporte que transportam dados MIME, como o
HTTP. Dessa forma, ele analisa as características do objeto MIME e permite a troca de
mensagens seguras com sistemas de transporte mistos. Além de poder ser usado nos
agentes de transferência automatizada de mensagens que usam serviços de segurança
criptográfica que não necessitam de intervenção humana, a assinatura de documentos
gerados por software e a cifragem das mensagens de fax enviadas pela Internet [14].
25

4 CRIPTOGRAFIA

Atualmente a criptografia significa mais do que cifrar e decifrar. A


autenticação é tão fundamental quanto a privacidade. Utilizamos autenticação em nosso
cotidiano frequentemente, quando assinamos um documento, por exemplo, e estamos
caminhando para um mundo onde nossos acordos e decisões se comunicam
eletronicamente, com isso precisamos de técnicas que forneçam autenticação.
A criptografia fornece mecanismos para esses procedimentos. Tais
mecanismos podem ser usados para controlar o acesso a unidades de disco compartilhadas,
instalações de segurança elevada, ou um canal de televisão pay-per-view.
O campo da criptografia abrange também outras aplicações. Com apenas
algumas ferramentas de criptografia básica, é possível construir elaborados esquemas e
protocolos que permitem efetuar pagamentos com dinheiro eletrônico, para provar que
possuímos a informação sem revelá-la, e compartilhar quantidades secretas dos dados de
maneira que uma parte do compartilhamento possa reconstruir o segredo.
Enquanto a criptografia moderna tem se tornado cada vez mais diversificada, a
criptografia se baseia fundamentalmente nos problemas difíceis de solucionar. Um
problema pode ser difícil por sua solução exigir algum conhecimento secreto, como
decifrar uma mensagem cifrada, ou assinar algum documento digital. O problema também
pode ser complicado, pois é intrinsecamente difícil concluir, como encontrar uma
mensagem que produza o valor do hash fornecido.
Existem duas técnicas de sistemas de criptografia, Criptografia Simétrica e
Criptografia Assimétrica. Em sistemas simétricos utiliza-se a mesma chave (chave privada)
para cifrar e decifrar uma mensagem, nos sistemas assimétricos utiliza-se uma chave
(chave pública) para cifrar a mensagem e uma outra chave (chave privada) para decifrá-la.
Os sistemas simétricos possuem um problema, transportar a chave privada com segurança
até o destino, para isso uma alternativa é utilizar transportadores confiáveis [15].

4.1 Aplicações

A criptografia é extremamente útil. Existe uma infinidade de aplicações para


ela, muitas delas estão atualmente em uso. Uma aplicação típica é um sistema construído
26

fora das técnicas básicas. Tais sistemas podem ser de diferentes níveis de complexidade.
Algumas das aplicações mais simples possuem comunicação segura, identificação,
autenticação e compartilhamento de segredos. As aplicações mais complicadas incluem
sistemas para o comércio eletrônico, certificação, correio eletrônico seguro, recuperação de
chaves, e acesso seguro a computadores.
Em geral, quanto menor a complexidade da aplicação, mais rapidamente ela se
torna realidade. Existem diversos esquemas de identificação e autenticação, enquanto
sistemas de comércio eletrônico ainda estão sendo estabelecidos. Entretanto, existem
exceções a esta regra.

4.1.1 Comunicações com Segurança

A comunicação com segurança é a forma mais direta de aplicar criptografia.


Duas pessoas se comunicam com segurança através da cifragem das mensagens enviadas
entre elas. Isto pode ser feito de forma que uma outra pessoa nunca possa decifrar as
mensagens. Enquanto comunicações seguras existem há séculos, o problema do
gerenciamento de chaves impediu a sua popularização. Graças ao desenvolvimento do
sistema de criptografia com chave pública, existem as ferramentas que criaram uma rede
em larga escala de pessoas que se comunicam com segurança sem nunca terem se
comunicado antes.

4.1.2 Identificação e Autenticação

A identificação e a autenticação são amplamente utilizadas na criptografia. A


identificação é o processo de identificar a identidade de alguém ou de alguma coisa. A
autenticação é similar à identificação, já que ambas permitem o acesso de uma entidade
aos recursos, mas a autenticação é mais ampla porque não envolve necessariamente
identificar uma pessoa ou entidade. Ela determina se essa pessoa ou entidade está
autorizada a realizar a operação solicitada.
27

4.1.3 Comércio Eletrônico

Sobre um passado de poucos anos vem ocorrendo uma quantidade crescente de


negócios realizados pela Internet. Este modelo de negócio é chamado de comércio
eletrônico ou e-commerce. O e-commerce é compreendido por uma operação bancária
online, clientes de agências corretoras online, e compras pela Internet. Porém,
simplesmente incorporar um número de cartão de crédito na Internet deixa espaço para
fraudes. Uma solução criptográfica para este problema é cifrar o número do cartão de
crédito quando fornecido online. Outra é proteger a sessão iniciada. Quando um
computador cifra esta informação e a envia pela Internet, esta não pode ser compreendida
por terceiros. Um servidor web recebe a informação cifrada, decifra-a, e continua com a
venda sem se preocupar que o número do cartão de crédito possa parar em mãos erradas.
Como mais e mais negócios são realizados pela Internet, a necessidade de proteção contra
fraudes, roubo, perda ou dano de informação vital, aumenta.

4.1.4 Certificação

A certificação é um esquema pelo qual agentes confiáveis, tais como


autoridades certificadoras confirmam usuários desconhecidos, como sendo usuários. Os
agentes confiáveis emitem os comprovantes chamados de certificados onde cada um possui
um significado inerente. A tecnologia da certificação foi desenvolvida para fazer a
identificação e possíveis autenticações em larga escala.

4.1.5 Recuperação de Chaves

É uma tecnologia que permite que uma chave seja revelada sobre certas
circunstâncias sem que o proprietário da chave a revele. Isto é útil por duas razões
principais: Primeiro, se um usuário perder ou acidentalmente apagar sua chave, este
procedimento pode prevenir um desastre. Segundo, se uma lei obrigar uma agência que
deseja espionar um suspeito criminoso sem o seu conhecimento, a agência pode recuperar
a chave. A recuperação de chaves é utilizada em algumas situações, porém sua aplicação
através de uma lei que a obrigue é um tanto controversa.
28

4.5.6 Acesso Remoto

Um simples sistema de senhas certamente oferece um nível de segurança para


acessos seguros, porém pode não ser suficiente em alguns casos. Nestes, as senhas podem
ser espiadas, esquecidas, roubadas, ou descobertas. Diversos produtos fornecem métodos
criptográficos para acessos remotos com um alto grau de segurança.

4.6 Padronização

Os padrões de criptografia são necessários para criar interoperabilidade no


mundo da segurança da informação. Essencialmente são circunstâncias e protocolos
determinados para permitir a uniformidade dentro da comunicação, de transações e
atividades virtuais realizadas pelo computador. A contínua evolução da tecnologia da
informação motiva o desenvolvimento de mais padrões, que ajudam a guiar esta evolução.
A principal motivação por trás dos padrões é permitir que a tecnologia de diferentes
fabricantes seja compatível.
Na criptografia, a padronização serve a um propósito adicional. Pode servir
como um terreno de prova para técnicas criptográficas, pois complexos protocolos são
propensos à falhas de projeto. Estabelecendo um padrão bem avaliado, a indústria pode
produzir um produto mais confiável. Mesmo que um protocolo seguro se torne confiável
aos clientes depois de se tornar um padrão, por causa do processo de ratificação envolvido.
O governo, a indústria privada, e outras organizações contribuem para a vasta coleção de
padrões na criptografia. Alguns destes são ISO (International Standard for Standardization
), ANSI (American National Standards Institute), IEEE (Institute of Electrical and
Electronics Engineers), e IETF. Existem diversos tipos de padrões, alguns usados dentro da
indústria de operações bancárias, algumas internacionais e outras dentro do governo. A
padronização ajuda os desenvolvedores a criar novos produtos. Ao invés de gastar tempo
desenvolvendo um novo padrão, eles podem seguir um padrão pré-existente durante o
processo de desenvolvimento. Com este processo os clientes têm a possibilidade de
escolher entre produtos ou serviços mais competitivos.
29

4.7 Algoritmos e Protocolos

Os algoritmos criptográficos são a base para elaboração de aplicações e


protocolos criptográficos. Este capítulo apresenta os principais algoritmos de cifragem,
funções hash, cifras de tráfego, e outros tipos de algoritmos mais simples.

4.7.1 SET (Secure Electronic Transaction)

Visa e Mastercard desenvolveram em conjunto este protocolo como um


método para gastos eficientes e seguros nas transações com o cartão do banco sobre redes
abertas. Inclui protocolos para compras de bens e serviços eletronicamente, solicitando
autorização de pagamento, e chaves públicas solicitando certificados ligando as chaves
públicas às identidades, entre outros serviços. Depois de adotado completamente, a
confiança necessária em transações eletrônicas estará posicionada, permitindo que
comerciantes e clientes tomem seus lugares no comércio eletrônico [16].
É um protocolo específico para pagamentos. Define a comunicação entre o
portador do cartão, comerciantes e o payment gateway para compras e reembolsos com o
cartão. Define a comunicação entre as diferentes partes e certificação de autoridades para a
assinatura de chaves públicas.
Em uma transação usando o SET, é necessário um certificado para se
autenticar. Um certificado precisa ser emitido pelo portador do cartão, o comerciante ou o
payment gateway.
O certificado do possuidor do cartão liga o proprietário do cartão aos detalhes
da conta (número da conta e data de validade). A informação da conta é um segredo, e o
SET vai fundo para apenas revelá-lo ao payment gateway e não ao comerciante. Com isto,
está claro que a informação da conta não se encontra acessível no certificado do
proprietário do cartão. Na verdade as informações da conta e o segredo conhecido apenas
pelo proprietário do cartão são completamente gerados por uma função hash e incluídos no
certificado. Quando este certificado é apresentado pelo proprietário do cartão ou trafega
pela rede, ninguém pode acessar essas informações, pois foram codificadas por uma função
hash unidirecional. Desta forma o certificado pode ser utilizado para verificar que o
proprietário do cartão é valido.
30

Porém, quando a autorização do pagamento é solicitada o requisitante precisa


certificar que o cartão realmente pertence ao portador do cartão. A mensagem com
instruções de pagamento do protocolo SET incluem informações da conta do proprietário
do cartão e o segredo. Esta mensagem é cifrada e pode apenas ser decifrado pelo
solicitante do payment gateway. Isto significa que o payment gateway pode verificar o
resumo na assinatura e estabelecer uma conexão entre o proprietário do cartão e as
informações de sua conta, enquanto ainda esconde as informações do resto do mundo.
O certificado do comerciante representa o relacionamento entre ele e a
instituição financeira, permitindo aceitar um tipo de cartão de pagamento. Estes
certificados são aprovados pela instituição financeira adquirindo e oferecendo garantia de
que o comerciante possui um acordo válido com o requisitante.
O comerciante precisa de dois pares de chaves públicas para o SET, um para
assinaturas digitais e outro para troca de chaves cifradas. Necessitando de dois certificados
para cada tipo de cartão de pagamento aceito.
O payment gateway recebe estes certificados do requisitante. Durante o
processo de recebimento, o proprietário do cartão cifra as informações de pagamento
usando a chave pública do payment gateway. Esta chave é extraída do certificado do
payment gateway.
SET é publicado com suas especificações abertas para a indústria, as quais
podem ser utilizadas por vendedores de software para desenvolver suas aplicações.

4.7.2 SSL

Foi desenvolvido pela Netscape para fornecer segurança e privacidade sobre a


Internet. O protocolo suporta autenticação de cliente e servidor. É independente de
aplicação, permitindo que protocolos como o HTTP, FTP (File Transfer Protocol) e Telnet
sejam nivelados no topo transparentemente, conforme figura 4.1. O protocolo ainda é
otimizado para que HTTP, FTP e IPsec tenham preferência. É habilitado para negociar a
cifragem das chaves assim como a autenticação do servidor antes que os dados sejam
trocados pela aplicação da camada superior. Mantém a segurança e a integridade do canal
de transmissão usando cifragem, autenticação e códigos de mensagens autenticadas [17].
31

FIGURA 4.1: Nivelamento dos protocolos na camada de aplicação

O “aperto de mão” do protocolo SSL consiste de duas fases: autenticação do


servidor uma autenticação opcional do cliente. Na primeira fase, o servidor, em resposta a
uma solicitação do cliente, envia o certificado e a cifra de sua preferência. O cliente então
gera uma chave mestra para o servidor. O servidor recupera essa chave mestra e se
autentica para o cliente retornando uma mensagem autenticada com a chave mestra. Na
seqüência o dado é cifrado e autenticado com chaves derivadas da chave mestra. Na fase
opcional, o servidor envia um desafio para o cliente. O cliente se autentica para o servidor
encaminhando a sua assinatura digital no desafio. Assim como o certificado da chave
pública.
Uma conexão SSL cifrada exige que toda a informação enviada entre um
cliente e um servidor seja cifrada pelo software remetente e decifrada por um software
receptor, isto oferece um alto nível de confidencialidade. Confidencialidade é importante
para ambas as partes em qualquer transação particular. Além disso, todos os dados
enviados sobre a conexão cifrada são protegidos com um mecanismo para detectar
alteração, isto é, para automaticamente determinar se os dados foram alterados no
percurso.
Uma variedade de algoritmos criptográficos é suportado pelo SSL. Durante o
processo do “aperto de mão”, a chave pública do sistema de criptografia RSA é usada.
Depois da troca de chaves, um número de cifras é utilizado.

4.7.3 S/WAN (Secure/Wide Area Network)

Designa especificações para executar IPsec, a arquitetura de segurança para o


protocolo de Internet, assegurando interoperabilidade entre o firewall e os produtos
32

TCP/IP. Seu objetivo é aplicar IPsec para permitir que as empresas obtenham o melhor
firewall e a melhor pilha de produtos TCP/IP para desenvolver a Internet baseada em
Virtual Private Networks (VPN).
Suporta cifragem no nível do IP, o que oferece fundamentalmente mais
segurança para os protocolos de baixo nível do que de alto nível, como o SSL e o S-HTTP.
Com isto espera-se que as especificações de segurança de alto nível, incluindo o SSL e S-
HTTP, sejam constantemente niveladas no topo das implementações S/WAN, e estas
especificações trabalhem em sinergia [18].
Para garantir a interoperabilidade do IPsec, o S/WAN define um conjunto
comum de algoritmos, modos e opções. Utiliza RC5 em todas as chaves de tamanho na
faixa de 40 a 128 bits (para exportabilidade). Pode também ser implementado usando DES.

4.7.4 SSH (Secure Shell)

É um protocolo de segurança de login remoto e outros serviços seguros de rede


sobre uma rede não segura. É formado por três componentes principais:

 O Protocolo da Camada de Transporte oferece autenticação de servidor,


confidencialidade e integridade. Pode também oferecer opcionalmente
compressão. A camada de transporte irá tipicamente funcionar sobre uma
conexão TCP/IP, mas pode também ser aplicada no topo de qualquer outra
transferência confiável de dados.
 O Protocolo de Autenticação do Usuário autentica o usuário do lado do
cliente para o servidor. Funciona sobre o protocolo de camada superior.
 O Protocolo de Conexão multiplexa o túnel cifrado em diversos canais
lógicos. Funciona sobre o protocolo de autenticação do usuário.

O cliente envia um pedido de serviço uma vez que uma conexão estiver
estabelecida. Um segundo serviço solicitado é enviado depois que a autenticação do
usuário estiver completa. Isto permite aos novos protocolos serem definidos e coexistirem
com os protocolos listados anteriormente.
O protocolo de conexão oferece canais que podem ser usados para diversos
propósitos.
33

Nas aplicações mais avançadas, o SSH permite a criação de pares de chaves


assimétricas RSA ou DSA (Data Signature Algorithm). A chave privada é armazenada em
um arquivo identidade, possivelmente cifrado usando uma frase de validação. A chave
pública pode ser copiada com liberdade pela rede, normalmente terminando em uma lista
de usuários de chaves autorizadas. Um cliente SSH, autenticado apropriadamente com uma
chave privada combinada com uma das chaves públicas autorizadas, pode efetuar o login
sem fornecer uma senha. Isto pode ser usado para logar sem uma senha, desde que as
senhas ainda devam ser usadas para garantir a segurança. De mais interessante é a
habilidade de automatizar processos remotos, permitindo que um programa confiável
autenticar-se com uma chave RSA ou DSA e executar comandos no sistema remoto [19].
O SSH suporta tunelamento genérico, então pode ser utilizado para cifrar
tráfego de sistemas Windows, por exemplo, operando X Windows sobre uma sessão
cifrada. Esta habilidade de executar comandos remotos o torna um transporte comum para
outros comandos, como o rsync (transferência crescente de arquivo) e cvs (controle de
versão distribuída). Por exemplo, depois de estabelecer um relacionamento DSA confiável
entre dois hosts, um serviço periódico pode utilizar o rsync para o download de qualquer
arquivo alterado uma vez por dia, aplicando SSH para autenticar e cifrar a transação.
Em resumo, o SSH é uma poderosa e popular ferramenta para a cifragem de
sessões TCP sobre a Internet, sendo mais utilizada para acesso remoto, mas também com
outras utilidades.
Os pacotes SSH possuem números de mensagens na faixa de 1 a 255. Estes
números foram organizados da seguinte maneira:

Camada de Transporte:
De 1 a 19 – Camada de Transporte Genérica (por exemplo, desconectar,
ignorar, analisar, etc.)
De 20 a 29 – Algoritmo de negociação
De 30 a 49 – Método específico de troca de chave (os números podem ser
reutilizados para a autenticação de diferentes métodos)

Protocolo de autenticação do Usuário:


De 50 a 59 – Autenticação Genérica de Usuário
De 60 a 79 – Método específico de autenticação de usuário (os números podem
ser reutilizados para a autenticação de diferentes métodos)
34

Protocolo de Conexão:
De 80 a 89 – Protocolo de Conexão Genérico
De 90 a 127 – Mensagens do canal relacionado

Reservado para protocolos de cliente:


De 128 a 191 – Reservado

Extensões locais:
De 192 a 255 – Extensões locais

4.7.5 RSA

É um sistema criptográfico de chave pública que oferece cifragem e assinaturas


digitais. O sistema funciona da seguinte maneira: escolhe-se dois números primos de
grande valor, p e q, e efetua o seu produto n = p*q, onde n é o modulo. Escolhe um
número e, menor que n e relativamente primo para (p-1)(q-1) que represente e e (p-1)(q-1)
não possua fatores comuns exceto 1. Encontre outro número d de forma que (ed – 1) seja
divisível por (p-1)(q-1). Os valores e e d são chamados de expoentes públicos e privados,
respectivamente. A chave pública é o par (n, e), e a chave privada é (n, d). Os fatores p e q
podem ser destruídos ou mantidos com a chave privada [20].
Atualmente é difícil de obter a chave privada d da chave pública (n, e).
Entretanto se alguém puder fatorar n em p e q, então poderá obter a chave privada d.
Portanto a segurança do sistema RSA é baseada na hipótese de que a fatoração é difícil.
Provavelmente, é possível encontrar números primos longos pelo Teste de
Fermat. Além disso, os pesquisadores têm demonstrado pelo Teorema do Número Primo
que existem mais números primos de 512 bits ou menos que a quantidade de átomos
conhecida no universo.
35

FIGURA 4.2: Chaves de 1024 bits

A figura 4.2 ilustra um par de chaves de 1024 bits, onde n é o modulo, e é o


expoente público e d é o expoente privado [21].

4.7.6 KERBEROS

É um protocolo de autenticação de rede. Desenvolvido para oferecer


autenticação forte para aplicações cliente/servidor utilizando criptografia de chave privada.
Diversos protocolos utilizados na Internet não oferecem segurança alguma.
Ferramentas para vasculhar senhas fora da rede são normalmente utilizadas por hackers
maliciosos. Neste caso, os que enviam senhas não criptografadas pela Internet são
extremamente vulneráveis. Para piorar, outras aplicações cliente/servidor confiam que os
programas clientes sejam honestos com a identidade do usuário que está utilizando o
sistema. Já outras confiam que os clientes se restringem as atividades que são permitidas,
sem que haja qualquer outro reforço pelo servidor.
Alguns sites procuram utilizar firewalls para solucionar seus problemas de
segurança. Infelizmente, os firewalls assumem que os maus usuários estão do lado de fora,
36

o que normalmente é uma suposição equivocada. A maioria dos ataques são feitos pelos
usuários internos. Firewalls também possuem uma significante desvantagem nas restrições
de como os usuários podem acessar a Internet. Em vários locais, estas restrições são
simplesmente irreais e inaceitáveis.
Em função destes problemas, o MIT desenvolveu o Kerberos como uma
solução para eles. Através dele, o cliente pode provar sua identidade para o servidor e vice
versa entre redes não seguras. Depois de utilizar o Kerberos para provar sua identidade,
ambos podem também cifrar sua comunicação para garantir privacidade e a integridade dos
dados [22].

4.7.7 DES

Trabalha nos bits, ou números binários. Cada grupo de quatro bits forma um
valor hexadecimal, ou base 16. Faz a cifragem de mensagens de 64 bits, que é o mesmo
que 16 números hexadecimais. Para realizar a cifragem, utiliza “chaves” que também
possuem 16 números hexadecimais. Entretanto, em toda chave, oito bits são ignorados
neste algoritmo, com isto o tamanho efetivo da chave é 56 bits. Em todo caso, 64 bits é o
número arredondado sobre o qual o algoritmo é organizado.
É um bloco cifrado, o que significa atuar sobre blocos de dados de 64 bits e
retornar os dados cifrados com o mesmo tamanho. Portanto DES resulta em uma
permutação entre 2^64 possíveis organizações de 64 bits, onde cada um deles pode ser
formado por 0 ou 1. Cada bloco de 64 bits é dividido em dois blocos de 32 bits, o bloco da
metade esquerda e o da metade direita.
Se cada bloco de 64 bits for cifrado individualmente, então o modo de
operação é chamado de ECB (Electronic Code Book). Existem outros dois modos de
operação, CBC (Chain Block Coding) e o CFB (Cipher Feedback), que tornam cada bloco
de cifras dependente de todos os blocos de mensagens anteriores a partir da operação XOR
(Exclusive OR) inicial [23].

4.7.7.1 Triple-DES

É apenas o algoritmo DES com a aplicação de duas chaves de 56 bits. Dado


uma mensagem de texto, a primeira chave é usada para cifrar a mensagem com DES. A
37

segunda chave decifra a mensagem cifrada (esta chave não é a chave correta, ela apenas
mistura mais os dados). Após a segunda mistura da mensagem, esta é cifrada novamente
com a primeira chave para obter o texto cifrado final.
Este algoritmo pode utilizar três chaves ao invés de apenas duas. Nos demais
casos a chave resultante ocupa um espaço de 2^112.

4.7.8 AES (Advanced Encryption Standard)

É um algoritmo criptográfico que pode se usado para proteger dados


eletrônicos. É uma cifra de um bloco simétrico que pode cifrar e decifrar informações.
A cifragem converte os dados para uma forma ilegível chamada de texto
cifrado. A decifragem deste texto converte os dados à sua forma original.
Este algoritmo é capaz de utilizar chaves de 128, 192 e 256 bits para cifrar e
decifrar os dados em blocos de 128 bits.
Pode ser implementado em software, firmware, hardware ou em qualquer uma
dessas combinações. O funcionamento específico pode depender de diversos fatores como
a aplicação, o meio e a tecnologia utilizada.
O Algoritmo AES é baseado em permutações e substituições. Permutações são
reorganizações de dados, e substituições trocam uma unidade de dados por outra. O
algoritmo realiza permutações e substituições usando diversas técnicas diferentes [24].

4.7.9 DIFFIE-HELLMAN

Descreve uma maneira para que duas partes concordem com um segredo
compartilhado de forma que este segredo fique indisponível aos espiões. Assim, este
segredo pode então ser convertido em um conteúdo com chaveamento criptográfico para
outros algoritmos simétricos.

4.7.10 RC5

Formado por três componentes: algoritmo de expansão de chave, algoritmo de


cifragem e algoritmo de decifragem [25].
Foi projetado com os seguintes objetivos:
38

 Deve ser uma cifra de bloco simétrico. A mesma chave privada criptográfica
é usada para cifrar e decifrar. O texto original e o texto cifrado são uma
seqüência de bits de tamanho fixo.
 Deve ser apropriado para hardware ou software. Isto significa que o
algoritmo deve utilizar somente as operações computacionais primitivas
normalmente encontradas em típicos microprocessadores.
 Deve ser rápido. Isto mais ou menos significa que o algoritmo seja orientado
a palavra: as operações computacionais básicas devem ser operadores que
trabalhem em palavras de dados completas em um determinado tempo.
 Adaptável aos processadores de diferentes tamanhos de palavras.
 Possuir interatividade na estrutura, com variados números de ciclos.
 Possuir chaves criptográficas de tamanhos variados. O usuário pode
escolher o nível de segurança apropriado para sua aplicação, ou necessário
devido a considerações externas, como restrições de exportação.
 Ser simples. Fácil de implementar. E o mais importante, uma estrutura
simples pode ser mais interessante de analisar e avaliar e então determinar mais
rapidamente a força criptográfica do algoritmo.
 Necessitar de pouca memória, isto pode ser mais fácil de implementar em
smart cards ou outros dispositivos com restrição de memória.
 Oferecer alta segurança quando parâmetros de valores apropriados forem
escolhidos.

4.7.11 SHA (Secure Hash Algorithm)

Foi desenvolvido pelo National Institute of Standards and Technology (NIST),


em parceria com a National Security Agency (NSA), para ser utilizado junto com o Padrão
de Assinatura Digital sendo especificado dentro do Secure Hash Standard (SHS) [26].
É um algoritmo criptográfico de resumo de mensagens semelhante à família de
funções Hash MD4 desenvolvido por Rivest. Se difere por inserir uma operação adicional
de expansão, um arredondamento extra e a transformação inteira foi projetada para
acomodar o tamanho do bloco DSS (Digital Signature Standard) de maneira eficiente.
Este algoritmo pega uma mensagem menor que 2^64 bits de tamanho e
produzir uma mensagem resumida de 160 bits [27] o qual é projetado para que seja
39

computacionalmente custoso encontrar um texto que combine com um hash fornecido. Por
exemplo, para um hash de um documento qualquer, é difícil encontrar um outro
documento que possua o mesmo hash, e ainda mais difícil de fazer com que este outro
documento represente a informação em questão.

Características do Algoritmo:

 O algoritmo é usado para processar o resumo de uma mensagem ou arquivo


de dados que é fornecido na entrada.
 A mensagem ou o arquivo de dados pode ser considerado uma string de
bits.
 O tamanho da mensagem é o número de bits na mensagem.
 Se o número de bits de uma mensagem é múltiplo de oito, para compactação
esta pode ser representada em hexadecimal.
 A finalidade do preenchimento da mensagem é tornar o tamanho da
mensagem preenchida um múltiplo de 512.
 A seqüência de cifragem processa blocos de 512 bits quando processa o
resumo da mensagem.
 Como um resumo, um “1” seguido por m “0”s seguido de um inteiro de 64
bits são adicionados ao final da mensagem para produzir uma mensagem
preenchida com tamanho de 512* m.
 O inteiro de 64 bits é 1, o tamanho da mensagem original.
 A mensagem preenchida é então processada pelo SHA-1 como n blocos de
512 bits.

4.7.12 Funções Hash

Uma função hash H é uma transformação que através de um valor de entrada


retorna uma string de tamanho fixo, que é chamada de valor hash. Funções Hash com
apenas esta característica possui uma grande variedade de aplicação computacional, mas
quando aplicado na criptografia, são normalmente escolhidas por possuírem algumas
características adicionais.
Os requisitos básicos para a criptografia com funções hash são os seguintes:
40

 A entrada pode ter qualquer tamanho.


 A saída possui tamanho fixo.
 O H(x) é relativamente fácil de processar para um dado x.
 O H(x) é unidirecional.
 O H(x) é livre de colisão.

Uma função hash é dita unidirecional se for difícil restaurá-la, onde essa
dificuldade está em para um dado valor hash, a capacidade computacional necessária para
encontrar o seu valor de entrada. Uma função hash livre de colisão é considerada fraca
quando é necessária grande capacidade computacional para obter um outro valor de
entrada com o mesmo hash. Uma função é considerada forte quando exige elevado
processamento computacional para obter as duas entradas que geram o mesmo valor hash
[28].
O valor do hash é a representação concisa de uma mensagem ou documento
maior do que a computada. Este valor é chamado de sumário da mensagem. Pode imaginar
este sumário como uma impressão digital da mensagem maior.
Talvez o papel principal de uma função criptográfica de hash seja a realização
de verificações de integridade das mensagens e assinaturas digitais. Sendo as funções hash
mais rápidas que cifragem ou algoritmos de assinatura digital, é comum processar uma
assinatura digital ou uma verificação de integridade de um documento aplicando
processamento criptográfico aos valores hash deste documento, que é pequeno se
comparado ao seu original. Adicionalmente, um sumário pode se tornar público sem
revelar o conteúdo do documento do qual ele deriva.

4.8 Chaves Públicas e Privadas

4.8.1 Criptografia com Chave Pública e Chave Privada

Na criptografia tradicional, o remetente e o receptor de uma mensagem sabem


e usam a mesma chave secreta. O remetente utiliza a chave para cifrar a mensagem e o
receptor para decifrá-la. Este método é conhecido como chave privada ou criptografia
simétrica. O principal desafio é fazer com que ambos concordem com essa chave sem que
41

um deles tenha que encontrá-la. Se estiverem em pontos físicos distintos, devem confiar
em um transportador, sistema de telefonia, ou qualquer outro meio de transmissão que não
divulgue essa informação. Qualquer um que escutar ou interceptar a chave no percurso
pode mais tarde ler, para modificar e forjar todas as mensagens cifradas ou autenticadas
com esta chave. A geração, transmissão e o armazenamento das chaves são conhecidos
como gerenciamento de chaves. Todos os sistemas de criptografia devem concordar com a
emissão do gerenciamento de chaves. Pois todas as chaves em um sistema de chave
privada devem permanecer secretas, criptografia de chave privada tem frequente
dificuldade de oferecer uma gerência de chave segura, especialmente em sistemas abertos
com grande número de usuários [29].
Para resolver o problema de gerência de chaves, Whitfield Diffie e Martin
Hellman introduziram o conceito de chave pública. Os sistemas de chave pública possuem
duas aplicações preliminares, cifragem e assinatura digital. Neste sistema, cada pessoa
possui um par de chaves, uma chamada de chave pública e outra de chave privada. A chave
pública é divulga enquanto que a chave privada é mantida em segredo. A necessidade para
o remetente e o receptor compartilharem a informação secreta é eliminada. Todas as
comunicações envolvem somente chaves públicas, e nenhuma chave privada é
compartilhada ou transmitida. Neste sistema já não é mais necessário confiar na segurança
de alguns meios de transmissão. A única exigência é que as chaves públicas estejam
associadas com seus usuários de maneira confiável. Qualquer um pode emitir uma
mensagem confidencial apenas utilizando informação pública, mas a mensagem somente
pode ser decifrada pela chave privada, que esteja em posse somente do receptor
pretendido. Além disso, a criptografia de chave pública pode ser usada não apenas para
privacidade, mas também para autenticação e várias outras técnicas.
Em sistemas de chave pública, a chave privada está sempre ligada
matematicamente à chave pública. Consequentemente, sempre é possível atacar um
sistema de chave pública derivando a chave privada da chave pública. Tipicamente, a
defesa para este caso é tornar a derivação o mais difícil possível. Por exemplo, alguns
desses sistemas são projetados para que a derivação seja feita com números muito grandes,
neste caso é computacionalmente custoso realizar essa derivação. Esta é a idéia por trás do
sistema de chave pública do RSA.
Uma vantagem dos sistemas de chave pública é o aumento da segurança e da
conveniência: as chaves privadas nunca precisam ser transmitidas ou reveladas a qualquer
um. Em um sistema de chave privada, ao contrário, as chaves privadas precisam ser
42

transmitidas desde que a mesma chave seja utilizada para cifrar e decifrar a mensagem.
Uma preocupação importante é que pode haver alguém que intercepte a chave secreta
durante a transmissão.
Outra importante vantagem dos sistemas de chave pública é que podem
oferecer assinaturas digitais que não podem ser desprezadas. A autenticação através de
sistemas de chave privada, precisa compartilhar uma parte do segredo e que algumas vezes
exige a confiança de terceiros. Como resultado, o remetente pode repudiar uma mensagem
autenticada anteriormente reivindicando o segredo compartilhado que de algum modo uma
das partes se comprometeu em compartilhá-lo.
Uma desvantagem em utilizar a chave pública para cifragem está na
velocidade. Existem diversas técnicas de cifragem com chave privada que são mais rápidos
que todos os sistemas atualmente existentes de cifragem por chave pública. Contudo, a
criptografia de chave pública pode ser aplicada com a criptografia de chave privada para
obter o melhor dos dois mundos. Para cifragem a melhor solução é combinar sistemas de
chave pública e privada de forma a obter as vantagens de segurança da chave pública e a
velocidade da chave privada. Tal protocolo é chamado de envelope digital.
Em certas situações a criptografia de chave pública não é necessária, nesses
casos apenas a criptografia de chave privada já é suficiente. Nelas incluem os ambientes
onde pode ocorrer a distribuição da chave secreta de forma segura. Inclui também os
ambientes onde uma única autoridade conhece e gerencia todas as chaves. Desde que uma
autoridade já conheça cada uma das chaves, não é muito vantajoso ser pública para alguns
e privada para outros.
A criptografia de chave pública normalmente não é necessária em ambientes
com um único usuário. Por exemplo, se alguém desejar manter seus arquivos pessoais
cifrados, ela pode fazer isso com qualquer algoritmo de cifragem com chave privada,
usando sua senha pessoal como chave privada. Geralmente, a criptografia de chave pública
é mais útil em ambientes abertos com diversos usuários.
A criptografia de chave pública não surgiu para substituir a criptografia de
chave privada, mas sim para melhorá-la, para torná-la mais segura. A primeira aplicação da
técnica de chave pública foi para o estabelecimento de chave seguras em sistemas de
chaves privadas. E esta ainda é uma de suas principais funções. A criptografia com chave
privada ainda é extremamente importante e é atualmente assunto de muito estudo e
pesquisa.
43

5 IPSEC

O IP possui várias vulnerabilidades que ainda são muito exploradas. Em função


disto, torna-se necessário o desenvolvimento de dispositivos de segurança no nível de
aplicação para serviços que devem ser seguros. Isto tem distanciado as funcionalidades do
protocolo das necessidades dos serviços de rede.
Para isto, foi desenvolvido o IPsec, que possui segurança no próprio nível de
IP, tornando desnecessário o desenvolvimento de tais dispositivos. Desta forma, todos os
serviços da rede estariam seguros.
Por estar abaixo da camada de transporte, é completamente transparente às
aplicações a qual dá suporte. Sendo aplicado em um firewall ou roteador, descarta-se a
necessidade de mudança nos softwares dos servidores.

5.1 Características

Uma característica do IPsec é poder ser utilizado tanto no IPv4 (Internet


Protocol version 4) quanto no IPv6 (Internet Protocol version 6).
Integra mecanismos de autenticação, distribuição e gestão de chaves. Para os
mecanismos de autenticação, são utilizados os cabeçalhos de autenticação do IPv6:
Cabeçalho de Autenticação (AH – Authentication Header) e o cabeçalho de
encapsulamento de dados de segurança (ESP – Encapsulating Security Payload Header).
Uma ferramenta de IPsec atua em um host ou ambientes com gateways de
segurança, disponibilizando proteção ao tráfico do IP. A proteção oferecida é baseada nas
exigências definidas em uma base de dados da política de segurança (SPD – Secutity
Policy Database) estabelecida e mantida por um usuário ou por um administrador de
sistema, ou por uma aplicação.
O IPsec fornece serviços de segurança na camada do IP permitindo a um
sistema a escolha dos protocolos de segurança necessários, determina os algoritmos
utilizados para os serviços, e põe no lugar todas as chaves criptográficas necessárias para
fornecer os serviços solicitados. Pode ser usado para proteger um ou mais “caminhos”
entre um par de hosts, entre um par de gateways de segurança ou entre um gateway de
44

segurança e um host. Um gateway de segurança pode ser entendido como um sistema


intermediário que utiliza o IPsec, como um roteador ou um firewall.
O conjunto de serviços de segurança oferecidos pelo IPsec incluem controle de
acesso, conectividade com integridade, autenticação da origem dos dados, descarte de
pacotes repetidos, confidencialidade e confidencialidade do limitado fluxo de tráfego. Pois
esses serviços são fornecidos pela camada IP, e podem ser utilizados por qualquer
protocolo da camada superior, como o TCP, UDP (User Datagram Protocol) ou PGP
(Pretty Good Privacy) [30].

5.2 Funcionamento

Utiliza dois protocolos para fornecer segurança de tráfego, o AH e o ESP.


Estes protocolos podem ser usados separados ou combinados para fornecer um
conjunto desejado de serviços de segurança em IPv4 e IPv6.
Cada protocolo aceita dois modos de uso: modo de transporte e modo túnel. No
modo de transporte os protocolos fornecem proteção a partir dos protocolos de camadas
superiores. No modo túnel, os protocolos são aplicados no tunelamento dos pacotes IP.
O IPsec permite ao usuário controlar a granularidade em cada serviço de
segurança oferecido. Por exemplo, um pode criar um único túnel cifrado para transportar
todo o tráfego entre dois gateways de segurança ou um túnel cifrado pode ser criado
separadamente para cada conexão TCP entre cada par de hosts comunicantes entre esses
gateways. A gerência de IPsec deve incorporar facilidades para especificar: quais serviços
de segurança utilizar e em quais combinações, a granularidade em que uma proteção de
segurança deve ser aplicada e os algoritmos utilizados para efetuar a segurança baseada em
criptografia[30].

5.3 Objetivos

O IPsec possui uma especificação para a funcionalidade mínima de um


firewall, desde que esse seja um aspecto essencial no controle de acesso da camada IP. As
ferramentas são livres para fornecerem os mais sofisticados mecanismos de firewall, e
executar a funcionalidade exigida do IPsec usando tais mecanismos. A função de firewall
45

do IPsec emprega a autenticação reforçada criptograficamente e a integridade fornecida


para todo o tráfego IPsec oferecendo o melhor controle de acesso que poderia ser obtido
através de um firewall mais a proteção criptográfica separada.
A maioria dos serviços de segurança é oferecida com o uso de dois protocolos
de segurança do tráfego, do AH e do ESP, e com o uso de procedimentos e protocolos de
gerenciamento de chaves criptográficas. O conjunto de protocolos aplicados em um
contexto, e as maneiras como são empregados, serão determinados pelos usuários ou
administradores deste contexto. É o objetivo da arquitetura IPsec assegurar que as
ferramentas compatíveis incluam os serviços e as interfaces de gerência necessários para
atingir os requisitos de segurança de muitos usuários.
Os protocolos de segurança do IPsec (AH, ESP e em menor proporção, o IKE
(Internet Key Exchange)) são projetados para serem independentes de algoritmo
criptográfico. Esta modularidade permite escolher diferentes conjuntos de algoritmos
criptográficos como apropriados, sem afetar as outras partes da ferramenta. Por exemplo,
diferentes grupos de usuários podem escolher diferentes algoritmos se necessário.

5.4 Onde Aplicar

Existem diversas formas de aplicar o IPsec em um host, ou em conjunto com


um roteador ou firewall criando um gateway de segurança, ou um dispositivo de segurança
específico.
Pode ser implementado em uma pilha de IP nativo. Para isto, é necessário ter
acesso ao código fonte do IP sendo aplicado em ambos os hosts e gateways de segurança,
mesmo que as execuções nativas de um host se beneficiem da maior parte destes
dispositivos.
Em uma aplicação de “colisão de empilhamento”, o IPsec é aplicado sob uma
aplicação de uma pilha do protocolo IP, entre o IP nativo e os drivers da rede local. O
acesso ao código fonte para o empilhamento do IP não é necessário, tornando esta
aplicação uma boa aproximação para o uso em sistemas legados. Esta aproximação,
quando aplicada, é feita geralmente nos hosts.
O uso de um dedicado e alinhado processador do protocolo de segurança é uma
característica de projeto comum dos sistemas usados por militares, e também de alguns
sistemas comerciais. É consultada algumas vezes como uma aplicação de BITW (Bump-
46

In-The-Wire). Tais aplicações podem ser projetadas para servir em hosts ou gateways.
Normalmente, o dispositivo de BITW é o próprio IP endereçável. Ao suportar um único
host, pode ser comparado a uma aplicação de BITS (Bump-In-The-Stack), mas suportando
um firewall ou um roteador, que deve funcionar com um gateway [30].

5.5 Conjuntos criptográficos para o IPsec

O IPsec, e os protocolos IKE e IKEv2 (Internet Key Exchange version 2)


confiam em algoritmos de segurança para obter privacidade e autenticação entre os pontos
de comunicação. Para isto existem diversos algoritmos disponíveis, e dois sistemas com
IPsec não podem funcionar a não ser que eles estejam utilizando o mesmo algoritmo.

5.6 Associações de Segurança

O conceito de uma SA (Security Association) tem extrema importância ao


IPsec. O AH e o ESP fazem uso dela e uma das principais funções do IKE é o
estabelecimento e manutenção das Associações de Segurança.
Uma SA é uma “simples conexão” que oferece serviços de segurança ao
tráfego transportado por ela. Os Serviços de Segurança são oferecidos por uma SA para ser
utilizado por um AH, ou um ESP, mas nunca os dois ao mesmo tempo. Se ambas as
proteções forem aplicadas durante o fluxo do tráfego, então duas ou mais SAs serão
criadas para oferecer segurança a este fluxo. A proteção típica de uma comunicação
bidirecional entre dois hosts, ou dois gateways de segurança, exige a utilização de duas
SAs, uma em cada direção [30].
Uma SA é exclusivamente identificada por uma tripla formada por uma SPI,
um endereço IP de destino e um protocolo de segurança que pode ser o AH ou o ESP. A
princípio, o endereço de destino pode ser um endereço unicast ou um grupo de endereços
multicast. Porém, atualmente os mecanismos de gerenciamento da SA do IPsec são
definidos apenas para SAs unicast.
Existem dois tipos de SA, o modo de transporte e modo túnel. O modo de
transporte é uma SA entre dois hosts. No IPv4, um cabeçalho do protocolo de segurança no
modo de transporte, aparece logo após o cabeçalho IP e demais opções, e antes de um
47

protocolo da camada superior (TCP ou UDP). No IPv6, o protocolo de segurança aparece


depois da base do cabeçalho IP e de suas extensões, mas pode aparecer antes ou depois das
opções de destino, e antes dos protocolos das camadas superiores. No caso do ESP, uma
SA no modo de transporte oferece serviços de segurança apenas para estes protocolos das
camadas superiores, e não para o cabeçalho IP ou qualquer extensão de cabeçalho que
precede o cabeçalho ESP. Para o AH, a proteção pode ser estendida para escolher partes do
cabeçalho IP, escolher partes ou extensões de cabeçalhos, e escolher dados contidos no
cabeçalho IP, nas extensões hop-by-hop do IPv6, ou nas extensões de destino do cabeçalho
do IPv6.
Uma SA no modo túnel é essencialmente uma SA aplicada a um túnel de IP.
Sempre que qualquer um dos finais de uma SA for um gateway de segurança, ou uma SA
estiver entre dois gateways de segurança ou estiver entre um host e um gateway de
segurança, a SA deverá estar em modo túnel. Para o caso em que o tráfego é destinado ao
gateway de segurança, como comandos SNMP (Simple Network Message Protocol), o
gateway de segurança estará atuando como um host e o modo de transporte será permitido.
Mas neste caso, o gateway de segurança não irá atuar como um gateway. Dois hosts podem
estabelecer uma SA em modo túnel entre eles. O requisito para qualquer SA que envolva
um gateway de segurança se tornar um túnel SA surge devido à necessidade de evitar
potenciais problemas no que diz respeito à fragmentação e a remontagem de pacotes de
IPsec e em ocasiões onde múltiplos caminhos existam para os mesmos destinos por trás
dos gateways de segurança.
Para uma SA em modo túnel, existe um cabeçalho IP “externo” que especifica
o destino de processamento do IPsec, mais um cabeçalho IP “interno” que especifica o
destino final do pacote. O cabeçalho do protocolo de segurança surge depois do cabeçalho
IP externo, e antes do cabeçalho IP interno. Se um AH for utilizado no modo túnel, partes
externas ao cabeçalho IP irão obter proteção como também todos os pacotes IP que estejam
passando pelo túnel. Se o ESP for empregado, a proteção é feita apenas aos pacotes que
passam pelo túnel, e não para os cabeçalhos externos.

5.6.1 Combinando SAs

Aos datagramas IP transmitidos por uma SA disponibiliza-se proteção para um


único protocolo de segurança, como o AH ou o ESP, mas não ambos. Às vezes uma regra
de segurança pode solicitar uma combinação de serviços para um tráfego específico que
48

não é armazenável com uma única SA. Nestas situações torna-se necessário utilizar várias
SAs para aplicar a regra de segurança necessária. O termo “pacote de SA” é aplicado para
uma seqüência direta de SAs na qual o tráfego precisa ser processado para satisfazer a
regra de segurança. A ordem de seqüência é definida pela regra.
SAs podem ser agrupadas em pacotes de duas maneiras: transporte adjacente e
tunelamento iterativo.
Transporte Adjacente refere-se à aplicação de mais de um protocolo de
segurança ao mesmo datagrama IP, sem utilizar tunelamento. Esta aproximação
combinando o AH e o ESP permite apenas um único nível de combinação; mais
agrupamentos não acrescentam benefícios extras desde que o processamento seja realizado
por uma instância do IPsec no destino final, conforme demonstrado na figura 5.1.

FIGURA 5.1: Aplicação de AH e ESP combinados

Tunelamento Iterativo consulta a aplicação de múltiplas camadas de protocolos


de segurança efetuados com o tunelamento de IP. Esta aproximação permite múltiplas
camadas de agrupamentos, desde que cada túnel possa originar ou terminar em um site
diferente com IPsec durante o percurso. Não é esperado nenhum tratamento diferenciado
pelo tráfego ISAKMP (Internet Security Association and Key Management Protocol) entre
os gateways de segurança a não ser por aqueles que possam ser especificados por entradas
apropriadas no Security Policy Database (SPD).
Para este existem três casos básicos:
Na figura 5.2 é mostrado a situação em que o túnel possui as extremidades em
comum, onde cada um deles pode ser um AH ou ESP.
49

FIGURA 5.2: Túneis com extremidades em comum


Para o segundo caso, a figura 5.3 ilustra, o tunelamento em que uma das
extremidades é comum entre eles.

FIGURA 5.3: Túneis com apenas uma extremidade em comum

A figura 5.4 demonstra o tunelamento onde suas extremidades são diferentes.

FIGURA 5.4: Túneis com extremidades diferentes

5.7 AH

O Cabeçalho de autenticação do IP é usado para fornecer integridade de


conectividade e autenticação dos dados originais para datagramas IP e para fornecer
proteção contra repetição de dados. No caso do último serviço, serviços adicionais podem
ser escolhidos pelo receptor, quando uma associação de segurança é estabelecida. (O
protocolo padrão solicita que a origem aumente o número de seqüência utilizado na
50

prevenção da repetição de dados, porém este serviço é funcional somente se o receptor


realizar a verificação deste número). Entretanto, para utilizar características extendidas do
número de seqüência de forma interoperável, o AH impõe um exigência no gerenciamento
de protocolos de SA que negociam esta nova característica [31].
O AH fornece autenticação tanto para o cabeçalho IP, como para os dados do
protocolo do próximo nível. Entretanto alguns campos do cabeçalho e seus valores podem
mudar durante o percurso, quando os pacotes chegam ao receptor, não podendo ser
previsto pela origem. Os valores de tais campos não podem ser protegidos pelo AH.
Assim, a proteção fornecida ao cabeçalho do IP é parcial.
Pode ser aplicado sozinho, em combinação com o ESP, ou de forma agrupada.
Serviços de segurança podem ser gerados entre um par de hosts comunicantes, gateways de
segurança, ou entre gateways de segurança e hosts. O ESP pode ser usado para
proporcionar a mesma proteção contra repetição de dados e serviços de integridade
semelhantes, e também pode proporcionar serviços de confidencialidade. A principal
diferença entre a integridade proporcionada pelo ESP e o AH é a extensão da cobertura.
Especificamente, o ESP não protege nenhum campo do cabeçalho IP a menos que os
campos estejam encapsulados por ele.
A figura 5.5 ilustra o formato do AH.

FIGURA 5.5: Formato do AH

A seguir são descritos os campos que integram o formato AH.


51

5.7.1 Next Header

Este campo possui tamanho de 8 bits que identifica o tipo do próximo payload
depois do AH. Seu valor é escolhido a partir de um conjunto de números do protocolo IP
definido na web page da Internet Assigned Numbers Authority (IANA). Por exemplo, o
valor 4 representa o IPv4, o valor 41 indica o IPv6 e o valor 6 representa o TCP.

5.7.2 Payload Len

Campo de 8 bits que especifica o tamanho do AH em palavras de 32 bits


(quatro unidades de byte), menos dois. Assim, por exemplo, se um algoritmo de
integridade gerar um valor de autenticação de 96 bits, o tamanho deste campo será quatro
(três campos fixos com palavras de 32 bits mais três palavras de 32 bits para o ICV
(Integrity Check Value), menos dois). Para o IPv6, o tamanho total do cabeçalho deve ter
unidades múltiplas de oito octetos. (Embora o IPv6 caracterize o AH como um cabeçalho
de extensão, seu tamanho é medido com palavras de 32 bits, e não palavras de 64 bits
usados por outras extensões do cabeçalho do IPv6).

5.7.3 Reserved

Este campo de 16 bits é reservado para uso futuro. Precisa ser configurado com
o valor zero pela origem, e deve ser ignorado pelo destinatário.

5.7.4 SPI

É um valor arbitrário de 32 bits que é usado pelo destinatário para identificar a


qual SA o pacote recebido se limita. Para um SA unicast, o SPI pode ser usado por conta
própria para especificar uma SA, ou ser usado em conjunto com o tipo do protocolo IPsec,
neste caso o AH. Pois para unicast SAs o valor do SPI é gerado pelo receptor, se o valor é
suficiente para identificar uma SA por si só ou deve ser usado em conjunto com o valor do
protocolo de IPsec é uma preocupação local. O campo de SPI é imperativo, e este
mecanismo para traçar o tráfego limitado aos unicast SAs descritos anteriormente deve ser
suportado por todas as aplicações do AH.
52

Em diversas arquiteturas de multicast, um controlador central do grupo ou um


servidor chave atribui SPI unilateralmente ao grupo da associação de segurança. Esta
atribuição de SPI não é negociada ou coordenada com os subsistemas chaves da gerência
(por exemplo o IKE) que residem nos sistemas individuais de extremidade que
compreendem o grupo. Conseqüentemente, é possível que uma associação de segurança do
grupo e uma associação de segurança unicast possam utilizar simultaneamente o mesmo
SPI. Uma implementação multicast do IPsec deve demultiplexar corretamente mesmo em
uma situação com colisões de SPI.

5.7.5 Sequence Number

Este campo não sinalizado possui um contador que é incrementado de um para


cada pacote enviado. Para uma unicast ou multicast SA de remetente único, o remetente
deve incrementar este campo para cada pacote transmitido. O compartilhamento de SA
entre múltiplos remetentes é permitido, embora não recomendado. O AH não fornece
nenhum meio de sincronização dos contadores de pacotes entre múltiplos remetentes como
também não possui nenhum controle significativo desses pacotes para esta situação.
Este campo é imperativo e deve sempre estar presente mesmo se o receptor não
permita o serviço de anti-repetição para uma SA específica. O processamento deste campo
cabe ao receptor, mas todas as execuções do AH devem ser capazes de gerar o número de
seqüência, e realizar a sua verificação. Por isso o remetente sempre deve enviar este
campo, mas o receptor não precisa utilizá-lo.

5.7.5.1 Número de seqüência extendido

Para suportar execuções de alta velocidade do IPsec, uma nova opção para os
números de seqüência devem ser oferecidos como uma extensão para este campo. O uso do
campo do número de seqüência extendido deve ser negociado por um protocolo de
gerência do SA. No IKEv2, esta negociação é implícita; o padrão é que números maiores
que 32 bits, sejam negociados explicitamente.
Para os números de 64 bits, os 32 bits de ordem inferior são transmitidos no
cabeçalho de AH de cada pacote, diminuindo o custo com o pacote. Os 32 bits de ordem
53

superior são mantidos como parte do contador do número de seqüência pelo transmissor e
pelo receptor e incluído no valor de verificação de integridade, mas não são transmitidos.

5.7.6 ICV

Este é um campo de tamanho variado que possui a verificação do valor de


integridade dos pacotes. O valor deve ser múltiplo de 32 bits no comprimento. Este campo
pode incluir preenchimento explícito, para completar o comprimento do cabeçalho AH.
Todas as execuções devem suportar este preenchimento para satisfazer a exigências de
alinhamento. A especificação do algoritmo de integridade precisa definir o comprimento
do ICV, as regras de comparação e os passos de processamento para a validação.

5.7.7 Modos de operação

O cabeçalho AH pode ser aplicado de duas maneiras: no modo transporte e no


modo túnel.
No modo de transporte, o AH é inserido depois do cabeçalho IP e antes do
protocolo da próxima camada (por exemplo, TCP, UDP, etc), ou antes de qualquer outro
cabeçalho IPsec que já tenha sido inserido. No ambiente IPv4, estas denominações
posicionam o AH depois do cabeçalho IP, mas antes do protocolo da próxima camada. A
figura 5.6 ilustra o AH no modo de transporte para um típico pacote IPv4.

FIGURA 5.6: AH no modo túnel para IPv4


54

A figura 5.7 representa o ambiente IPv6 onde o AH é visto como um payload


fim a fim, como também pode aparecer após cada salto, no roteamento, e na fragmentação
de cabeçalhos de extensão. As opções de destino do cabeçalho de extensão podem aparecer
antes e/ou depois do cabeçalho AH dependendo da semântica desejada.

FIGURA 5.7: IPv6 com AH

No modo túnel, o cabeçalho IP interno transporta a última fonte IP e o


endereço destino, enquanto um cabeçalho IP externo possui os endereços dos pares de
IPsec. A mistura de versões de IP interna e externa são permitidas, como IPv6 sobre IPv4 e
IPv4 sobre IPv6. No modo túnel, o AH protege todos os pacotes IP internos, incluindo
todos os cabeçalhos IP internos. O posicionamento do AH no modo túnel em relação ao
cabeçalho IP externo, é o mesmo para o AH no modo transporte. Na figura 5.8 são
ilustradas o posicionamento do AH no modo túnel para o IPv4 e o IPv6.
55

FIGURA 5.8: AH no modo tunel para IPv4 e IPv6

5.8 ESP

O cabeçalho ESP foi criado para fornecer uma mistura de serviços de


segurança em IPv4 e IPv6. Pode ser aplicado sozinho, combinado com o AH, ou de forma
agrupada. Os serviços de segurança podem ser fornecidos entre um par de hosts que se
comunicam, na comunicação entre gateways de segurança, ou entre um gateway de
segurança e um host.
O cabeçalho ESP é introduzido depois do cabeçalho do IP e antes do cabeçalho
do protocolo da próxima camada (modo transporte) ou, antes do cabeçalho encapsulado do
IP (modo túnel).
Pode ser usado para oferecer confidencialidade, autenticação da origem dos
dados, integridade na conexão, um serviço de anti-repetição, e confidencialidade do fluxo
do tráfego. O conjunto de serviços oferecidos depende das opções escolhidas no momento
do estabelecimento da associação de segurança e a posição da execução em uma topologia
de rede.
Utilizar cifragem única para confidencialidade é permitido pelo ESP. Deve-se
notar que em geral, isto fornecerá defesa somente aos atacantes passivos. Utilizar a
cifragem sem um mecanismo robusto de integridade sobre ele, pode criar serviços de
integridade inseguros. Isto é permitido por poder melhorar consideravelmente o
desempenho e oferecer segurança adequada quando a autenticação da camada superior ou
56

proteção da integridade for oferecida independentemente. Contudo, este padrão não exige
que uma execução ESP ofereça serviços de cifragem única.
O ESP deve ser oferecido como uma opção de escolha do serviço, por
exemplo, deve ser negociado em protocolos de gerencia da SA e deve ser configurado
através das relações de gerência.
Embora a integridade e a confidencialidade possam ser oferecidas
independentemente, o ESP normalmente utiliza ambos os serviços, por exemplo, os
pacotes serão protegidos no que diz respeito à integridade e a confidencialidade. Assim,
existem três maneiras de combinar os serviços de segurança:

 Somente confidencialidade
 Somente integridade
 Confidencialidade e integridade
O serviço de anti-repetição pode ser escolhido por uma SA apenas se o serviço
de integridade for escolhido pela mesma SA. A escolha deste serviço está unicamente no
papel do receptor e não necessita ser negociado. Porém, para aplicar a característica do
número de seqüência extendido de maneira interoperável, o ESP impõe uma exigência na
gerência dos protocolos da SA, esta característica deve ser negociada [32].
O serviço de confidencialidade do fluxo de tráfego geralmente é eficaz
somente se o ESP for aplicado de forma que esconda a fonte e os endereços de destino
finais dos correspondentes, por exemplo, no modo túnel entre gateways de segurança, e
somente se existir fluxo de tráfego suficiente entre os pares de IPsec , para esconder as
características específicas, e individuais de usuários do fluxo do tráfego.
O cabeçalho exterior do protocolo (IPv4, IPv6, ou extensão) que precede
imediatamente o cabeçalho ESP conterá o valor 50 no protocolo IPv4 ou no campo
seguinte do protocolo IPv6 ou posterior. A figura 5.9 ilustra o formato da camada do topo
de um pacote ESP.
57

FIGURA 5.9: Formato do topo de um pacote ESP

Como pode ser notar, os dados do payload podem conter uma subestrutura. Um
algoritmo de cifragem que precisa de um Vetor de Inicialização explícito. Algumas
modalidades do algoritmo combinam a cifragem e a integridade em uma única operação. A
acomodação de algoritmos combinados exige que o algoritmo descreva explicitamente a
subestrutura do payload usado para transportar os dados da integridade.
Alguns algoritmos combinados fornecem integridade apenas aos dados
cifrados, já que outros podem fornecer a integridade para alguns dados adicionais para os
que não são cifrados para a transmissão. Porque os campos SPI e o Número de Seqüência
exigem integridade como parte do serviço de integridade, e não sendo cifrados, é preciso
garantir recursos de integridade sempre que o serviço for escolhido, qualquer que seja o
modo de combinação do algoritmo escolhido [32].
Quando qualquer modo de combinação do algoritmo é utilizado, ele mesmo
aguarda o retorno de uma área de texto com os dados decifrados e com a validação ou
falha da integridade dos dados. Para estes casos o ICV que normalmente aparece no final
do pacote ESP pode ser omitido. Neste caso se a opção de integridade estiver selecionada,
é obrigação do algoritmo combinado, codificar junto com os dados do payload um ICV
alternativo para se realizar a verificação da integridade dos dados do pacote.
58

Se a forma de combinação do algoritmo oferecer integridade somente aos


dados cifrados, será necessário replicar o SPI e o Número de Seqüência como parte dos
dados do payload.
Na figura 5.10 é ilustrada a subestrutura para os dados do payload.

FIGURA 5.10: Subestrutura para os dados do payload

A seguir são descritos detalhadamente os campos da estrutura do ESP que não


foram descritos para estrutura do AH.

5.8.1 Payload Data

É um campo de tamanho variável que contém os dados descritos pelo próximo


campo do cabeçalho. Este campo é imperativo e preenchido de forma integral. Se o
algoritmo usado na cifragem do payload exigir criptografia sincronizada dos dados, estes
dados são carregados explicitamente no campo do payload, mas não são descritos como
um campo separado no ESP, por exemplo, o IV (Initialization Vector) é transparente ao
59

ESP. Qualquer algoritmo de cifragem que exija explicitamente a sincronização dos dados
por pacote deve indicar o comprimento, toda a estrutura para os dados, e a localização
destes dados como parte de uma RFC (Request for Comments) especificando como este
será utilizado com o ESP. Se os dados de sincronização forem implícitos, o algoritmo para
derivação dos dados precisa compor a RFC de definição do algoritmo.
O início do cabeçalho do protocolo da próxima camada deve ter alinhamento
relativo ao início do cabeçalho do ESP, onde para o caso do IPv4 , o alinhamento deve ser
formado por múltiplos de 4 bytes. Para o IPv6, este alinhamento é formado por múltiplos
de 8 bytes.

5.8.2 Padding

Dois fatores preliminares exigem ou motivam a utilização do campo de


preenchimento.
Se um algoritmo de cifragem for utilizado isto requer que a área de texto seja
múltipla de algum número de bytes, ou seja, deve preencher a área de texto não utilizada
pelos dados do payload até completar o seu comprimento.
O preenchimento pode ser necessário, independente das exigências de cifragem
do algoritmo, assegurando que a mensagem cifrada resultante finalize com um limite de 4
bytes.
Se o preenchimento de bytes for necessário, mas se o algoritmo não especificar
o conteúdo do preenchimento, então o seguinte padrão deve ser adotado. Os bytes do
preenchimento começam com uma série de valores inteiros. O primeiro byte do
preenchimento adicionado à área de texto é numerado 1, com os preenchimentos que se
sucederem será feito uma seqüência com incremento unitário crescente desse valor. Para
este caso, o receptor deve inspecionar o campo do preenchimento.

5.8.3 Pad Lenght

Este campo indica o tamanho do preenchimento em bytes e precede ao campo


do preenchimento propriamente dito. A escala de valores válidos vai de 0 a 255, onde 0
indica que nenhum byte foi utilizado no preenchimento. Este campo é imperativo.
60

5.8.4 TFC (Traffic Flow Confidentiality)

Se este preenchimento for adicionado, no campo será especificado o


comprimento do datagrama IP não devendo ser modificado para propagar este
preenchimento.
Este serviço é geralmente eficaz somente se for aplicado ESP de forma que
esconda a fonte e os endereços de destino finais dos correspondentes.

5.8.5 Modos de Utilização

O ESP também pode ser utilizado no modo de transporte e no modo túnel, a


seguir são descritas suas características de funcionamento.
No modo de transporte, no ambiente do IPv4, o ESP é inserido depois do
cabeçalho do IP e antes do protocolo da próxima camada. A figura 5.11 ilustra esta
situação.

FIGURA 5.11: IPv4 com ESP no modo de transporte

No ambiente IPv6, o ESP é visto como um payload ponto a ponto, e então deve
aparecer antes de cada salto, roteamento, e fragmentação dos cabeçalhos extendidos. As
opções de destino do cabeçalho extendido podem aparecer antes, depois ou nos dois casos
para o cabeçalho ESP dependendo da semântica desejada. Porém pelo fato do ESP proteger
61

somente os campos que sucedem seu cabeçalho, é comum posicionar o cabeçalho das
opções de destino após o cabeçalho do ESP [32], conforme é demonstrado na figura 5.12.

FIGURA 5.12: IPv6 com ESP

No modo túnel, o cabeçalho IP interno transporta a última fonte IP e o


endereço destino, enquanto um cabeçalho IP externo possui os endereços dos pares de
IPsec. A mistura de versões de IP interna e externa são permitidas, como IPv6 sobre IPv4 e
IPv4 sobre IPv6. No modo túnel, o ESP protege todos os pacotes IP internos, incluindo
todos os cabeçalhos IP internos. O posicionamento do ESP no modo túnel em relação ao
cabeçalho IP externo, é o mesmo para o ESP no modo transporte. Na figura 5.13 são
ilustradas os posicionamentos do ESP no modo túnel para o IPv4 e o IPv6.
62

FIGURA 5.13: ESP no modo túnel para IPv4 e IPv6


63

6 CONCLUSÃO

Atualmente, os responsáveis por grande parte dos dados que trafegam pela
Internet necessitam de uma garantia de que esses dados irão chegar aos seus destinos sem
terem sidos interpretados ou alterados por pessoas mal intencionadas.
Desde a criação da Internet diversas técnicas foram e estão sendo
desenvolvidas para tentar aumentar cada vez mais a segurança dos dados. Estas técnicas
estão em constante evolução. Pois a capacidade de processamento das máquinas utilizadas
para a tentativa de quebra das barreiras criadas por técnicas criptográficas, vem
aumentando dia-a-dia.
Neste trabalho foram tratados de algumas das mais recentes formas para tentar
se proteger de um eventual ataque, como também alguns recursos empregados para
aumentar a segurança da Internet.
Porém de nada adianta tudo isso, se não forem aplicados corretamente. Além
disso, é preciso que os próprios usuários tomem consciência para o uso preventivo das
informações pessoais na rede e o acesso a ambientes não seguros. A partir daí, os
mecanismos existentes podem proporcionar proteção com maior qualidade.
64

REFERÊNCIAS

[1] INTERNET. A Taxonomy of Computer and Network Attacks. Disponível


em: http://www.cert.org/research/JHThesis/Chapter6.html. Acesso em
11/02/2007.

[2] STALLINGS William, NETWORK AND INTERNETWORK SECURITY,


Editora Prentice Hall, 1995.

[3] INTERNET. Home Network Security. Disponível em:


http://www.cert.org/tech_tips/home_networks.html#III-B-2. Acesso em
11/02/2007.

[4] INTERNET. Ataques DoS (Denial of Service) e DDoS (Distributed DoS).


Disponível em: http://www.infowester.com/col091004.php. Acesso em
11/02/2007.

[5] INTERNET. Firewall. Disponível em: http://www.answers.com/topic/firewall.


Acesso em 20/02/2007.

[6] INTERNET. Network Address Translation. Disponível em:


http://www.answers.com/topic/networ-address-translation. Acesso em
20/02/2007.

[7] INTERNET. Proxy Server. Disponível em:


http://www.answers.com/topic/proxy-server. Acesso em 20/02/2007.

[8] INTERNET. Antivirus. Disponível em:


http://www.answers.com/topic/antivirus-software. Acesso em 20/02/2007.

[9] INTERNET. What is SSL. Disponível em:


http://info.ssl.com/article.aspx?id=10241. Acesso em 22/04/2007.
65

[10] INTERNET. The SSL Protocol Version 3.0. Disponível em:


http://wp.netscape.com/eng/ssl3/draft302.txt, Acesso em 22/04/2007.

[11] INTERNET. Secure Hypertext Transfer Protocol (Secure-HTTP, S-


HTTP). Disponível em:
http://www.linuxsecurity.com/component/option,com_dictionary/task,view/id,
348/. Acesso em 22/04/2007.

[12] INTERNET. The Secure Hypertext Transfer Protocol. Disponível em:


http://www.ietf.org/rfc/rfc2660.txt. Acesso em 22/04/2007.

[13] INTERNET. MD5 Message-Digest Algorihm. Disponível em:


http://people.csail.mit.edu/rivest/Rfc1321.txt. Acesso em 23/04/2007.

[14] INTERNET. Secure/Multipurpose Internet Mail Extensions (S/MIME)


Version 3.1 Message Especification. Disponível em:
http://www.ietf.org/rfc/rfc3851.txt. Acesso em 19/02/2007.

[15] INTERNET. What is Cryptography?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2157. Acesso em 27/01/2007.

[16] INTERNET. What is SET?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2287. Acesso em 27/01/2007.

[17] INTERNET. Introduction to SSL. Disponível em:


http://docs.sun.com/source/816-6156-10/contents.htm. Acesso em
20/04/2007.

[18] INTERNET. What is S/WAN?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2294. Acesso em: 27/01/2007.

[19] INTERNET. The Secure Shell (SSH) Protocol Architecture. Disponível


em: http://www.ietf.org/rfc/rfc4251.txt. Acesso em 22/04/2007.
66

[20] INTERNET. What is the RSA Cryptosystem?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2214. Acesso em 27/01/2007.

[21] BURNET Steve; PAINE Stephen. RSA Security´s Official Guide to


Cryptography. Editora McGraw-Hill, 2001. 98-105p.

[22] INTERNET. Kerberos: The Network Authentication Protocol. Disponível


em: http://web.mit.edu/kerberos/www//#what_is. Acesso em 07/06/2007.

[23] INTERNET. The DES Algorithm Illustrated. Disponível em:


http://www.aci.net/kalliste/des.htm. Acesso em 29/04/2007.

[24] INTERNET. What is the AES?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2235. Acesso 29/04/2007.

[25] INTERNET. The RC5 Encryption Algorithm. Disponível em:


http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf. Acesso em 27/04/2007.

[26] INTERNET. SHA 1 Secure Hash Algorithm – Version 1.0. Disponível em:
http://www.w3.org/PICS/DSig/SHA1_1_0.html. Acesso em 26/04/2007.

[27] INTERNET. US Secure Hash Algorithm 1 (SHA1). Disponível em:


http://www.ietf.org/rfc/rfc3174.txt. Acesso em 26/04/2007.

[28] INTERNET. What is a Hash Function?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2176. Acesso em 28/01/2007.

[29] INTERNET. What is public-key cryptography?. Disponível em:


http://www.rsa.com/rsalabs/node.asp?id=2165. Acesso em 2/01/2007.

[30] INTERNET. Security Architecture for the Internet Protocol. Disponível


em: http://www.ietf.org/rfc/rfc4301.txt. Acesso em 18/01/2007.
67

[31] INTERNET. IP authentication Header. Disponível em:


http://www.ietf.org/rfc/rfc4302.txt. Acesso em 25/01/2007.

[32] INTERNET. IP Encapsulating Security Payload (ESP). Disponível em:


http://www.ietf.org/rfc/rfc4303txt. Acesso em 25/01/2007.