Anda di halaman 1dari 8

Conceitos de IPSec

Quarta-feira, 16/07/2008 às 10h00, por Douglas Falsarella

Recentemente participei de um projeto de IPSec e tive algumas dúvidas. Resolvi traduzir um artigo
do site SecurityFocus.com que me ajudou muito a entender os conceitos de segurança envolvidos
neste processo

Conceitos de IPSec
Quando uma mensagem é transmitida utilizando uma rede pública como a Internet, a mensagem
trafega por diversos equipamentos antes de chegar até o computador de destino. Durante o transito
até o computador de destino a mensagem está sujeita a ser lida ou até mesmo alterada por uma
terceira pessoa. Não existe garantia que a mensagem recebida pelo destino seja a mesma enviada.
O tráfego entre origem e destino precisa possuir:
Privacidade - ninguém pode ler suas mensagens
O remetente precisa garantir que a mensagem enviada pode ser lida somente pelo destinatário.
Privacidade pode ser obtida utilizando criptografia.
Integridade - suas mensagens não podem ser alteradas
O remetente precisa garantir que a mensagem recebida é exatamente a mesma mensagem enviada,
isto é, a mensagem não foi alterada no caminho. Integridade pode ser obtida através do uso de
hashing.
Autenticidade - que ninguém enviará mensagens falsas.
O destinatário precisa ter certeza que as mensagens enviadas pelo remetente foram enviadas por ele.
Autenticidade pode ser obtida através do uso de assinaturas digitais.

Definições
Criptografia
A mensagem criptografada modifica ("criptografa") seu texto ("plaintext" ou "cleartext") de modo
que o texto modificado ("ciphertext") somente pode ser lido ("decriptografado") com ajuda de
informações adicionais ("keys") conhecidas apenas pelo remetente e o destinatário.
Algoritmo de Criptografia
Composto por uma complexa seqüências de operações matemáticas em que uma chave é combinada
com o conteúdo cleartext resultando em um texto criptografado. Exemplos de algoritmos de
criptografia são o DES (Data Encryption Standard) e o AES (Advanced Encryption Standard).
Key Strength
Um forma de medir a dificuldade para decriptar um texto quando o algoritmo de criptografia é
conhecido e somente a chave é desconhecida. O key strength é geralmente uma função do tamanho
da chave.
Hashing
Um hash é o calculo feito em uma mensagem em que o resultado pode ser utilizado para
unicamente identificar a mensagem, pois:
(a) Uma mínima alteração na mensagem acarreta em um hash completamente diferente.
(b) É computacionalmente inviável conseguir calcular uma mensagem a partir de um hash
conhecido.
Assinatura Digital
Assinatura digital é um texto que somente pode ser criado por alguém que conhece uma chave
especifica. A criptografia de um texto pode ser utilizada como assinatura digital pois somente o
"signer" conhece a chave utilizada.
Privacidade
Criptografia com chave secreta (secret key)
A maneira mais simples de criptografar uma mensagem é a utilização de uma secret key, conhecida
somente pelo remetente e o destinatário. Por ser utilizada tanto para criptografar quanto para
decriptografar uma mensagem, a secret key também é conhecida como chave simétrica. Garantir a
privacidade da secret key é uma tarefa crítica pois qualquer pessoa de posse da chave poderia
decifrar a mensagem.

Compartilhando a Secret Key


Criptografia com secret key é rápido e simples, porém possui duas desvantagens:
1. Um canal seguro é requerido para que os correspondentes possam concordar em uma chave única
antes de iniciar a criptografia das mensagens.
Esta necessidade é uma grande desvantagem, pois se existisse um tal canal seguro, talvez não fosse
necessário a necessidade por criptografia. A negociação de uma secret key feita através de um
acordo face-a-face entre os correspondentes seria impraticável e poderia ser feita através de telefone
ou outro meio inseguro.
2. A quantidade de keys necessárias poderia aumentar rapidamente tornando a solução sem controle,
pois é necessário uma key diferente para cada correspondente.
Criptografia por chave Pública (Public Key)
Um par de chaves é composto de duas chaves matematicamente relacionadas: a chave pública
conhecida por todos, e a chave privada conhecida somente pelo dono. Uma mensagem
criptografada por qualquer uma das chaves é somente decriptografada pela chave oposta. Por
possuir uma chave diferente para criptografar e outra para decriptografar este sistema é conhecido
como chaves assimétricas.
Exemplo de utilização da chave pública RSA:
Se Alice precisa enviar a Bob uma mensagem, ela criptografa a mensagem utilizando a chave
pública de Bob. Por ter utilizado a chave pública de Bob a mensagem somente pode ser decifrada
utilizando a chave privada de Bob. A única pessoa que conhece a chave privada de Bob é Bob,
assim somente Bob pode ler a mensagem. Se uma terceira pessoa interceptasse a mensagem, ela
seria incapaz de ler a mensagem pois não conhece a chave privada de Bob.

Integridade
O remetente precisa garantir que a mensagem enviada é a mesma que o destinatário recebeu, ou
seja, que durante o trânsito até o computador do destinatário ela não foi alterada por alguém. Para
garantir a integridade da mensagem o remetente aplica um hash na mensagem.
Quando o destinatário receber a mensagem ele vai decripta-la e aplicar a mesma função de hash na
mensagem e comparar com o hash obtido pelo remetente. Se ambos resultados forem iguais, o
destinatário terá certeza que a mensagem não foi alterada.
Autenticidade
Se um remetente enviar uma mensagem, ele quer que o destinatário possa verificar que a mensagem
realmente foi enviada por ele e não por um impostor. A assinatura digital funciona como prova de
identidade para o remetente e integridade da mensagem.
Uma técnica amplamente utilizada para criação de assinaturas digitais é Bob criptografar um texto
(por exemplo o hash da mensagem) com sua chave privada. Alice pode decriptografar a assinatura
digital utilizando a chave pública de Bob e comparar o resultado com o hash calculado por ela. Se
os resultados forem os mesmos, ela saberá que a mensagem somente poderá ter vindo de Bob.

Certificados
Confiança na chave pública
Por ser um item necessário para a criptografia, precisa haver uma maneira eficiente e segura para
obtenção das chaves públicas. Por exemplo, se Bob obter a chave pública da Alice via um meio
inseguro como a Internet, ele precisa de garantia sobre a genuinidade da chave. Bob não pode
simplesmente pedir a Alice sua chave pública, pois Charlie (um intruso) poderia interceptar a
requisição e enviar a Bob sua própria chave pública. Charlie poderia então ser capaz de ler todas as
mensagens criptografadas para Alice.
Autoridade Certificadora (Certification Authority)
Autoridade Certificadora (CA) é uma entidade em que as chaves públicas ( e possivelmente outras
informações) podem ser obtidas de maneira confiável, mesmo sob meio inseguro como a Internet.
Certificado Digital
Um certificado é emitido pela CA e identifica um indivíduo ou equipamento e contém informações
sobre os mesmos. Por exemplo, uma CA pode enviar a Alice o certificado de Bob. Se Alice confia
na CA então por conseqüência confia nas informações contidas no certificado. Estas informações
podem ser:
• Identificador de Bob (por exemplo, seu LDAP Distinguished Name)
• Chave pública de Bob
• Identificador da CA, para que todos possam identificar quem gerou o certificado
• Uma assinatura digital, assinado com a chave privada da CA.
Outra alternativa é Bob enviar a Alice seu certificado diretamente. Em ambos os casos Alice pode
verificar o certificado (é equivalente a verificar a chave pública de Bob) pelo procedimento descrito
anteriormente. Para isso Alice precisa da chave pública da CA, que precisa ser obtida de maneira
segura e "desconectada" como por exemplo diretamente do administrador da CA.
Para provar sua identidade a Alice, Bob envia uma mensagem a Alice contendo:
oA assinatura digital, criptografado com sua chave privada.
oSeu certificado (se Alice não já o tiver) contendo o Identificador de Bob (por exemplo, seu LDAP
Distinguished Name e seu endereço IP)
Alice verifica a assinatura digital utilizando a chave pública de Bob (contida no certificado)
provando que a mensagem só pode ter sido criptografada por Bob e que a informação apresentada
(principalmente o identificador único de Bob que esta presente no certificado e na mensagem) é
genuína. Assim, Bob pode provar quem ele é e qual é seu endereço IP, e Alice pode ter certeza que
está se comunicando com Bob e não com outra pessoa fingindo ser Bob.
Depois que Alice e Bob se identificam utilizando o procedimento acima, eles podem utilizar a chave
pública de seu parceiro com confiança, pois elas são garantidas por certificados emitidos por uma
CA confiável. Geralmente as chaves públicas são utilizadas para negociar o secret key utilizado
para finalmente criptografar a mensagem.
Um certificado é emitido por uma Autoridade Certificadora e identifica o portador (pessoa ou
equipamento). Um certificado pode ser acoplado a um token que pode ser um arquivo criptografado
ou um hardware como o Smart Card. O token possui um password ou PIN. Somente a pessoa que
tem posse física do token (arquivo ou dispositivo) e sabe o PIN pode usar o token.

O certificado contém informações importantes sobre o portador.


1. Prova que o certificado pertence ao portador, por exemplo a chave pública do portador.
2. A chave pública pode ser considerada como prova, pois a assinatura pode ser verificada com ela.
3. Informações importantes sobre o portador: por exemplo o DN (distinguish name) do portador
4. Data de validade
5. Prova que o certificado é genuíno e que não foi falsificado: assinatura digital.
6.Todo o certificado, incluindo seu hash é assinado pela CA, provando que o certificado somente
pode ter sido criado pela CA.
Continuando a utilizar nosso exemplo, Bob não pode utilizar o certificado de Alice por duas razões:
1. Bob não possui a chave privada da Alice
2. Mesmo que Bob consiga o certificado da Alice, ele não terá acesso ao PIN. Somente Alice possui
o PIN e sem o PIN o certificado não pode ser utilizado.

Esquema de Criptografia
O projeto IPSec representa um esforço desenvolvido pelo Working Group IPSec da IETF para
desenvolver uma arquitetura de segurança para o protocolo IP e tem como objetivos:
• criar uma infra-estrutura de rede segura providenciando proteção nos cabeçalhos de dados e
de chaves;
• reduzir a preocupação de implementar mecanismos de segurança nas aplicações;
• compatibilizar o seu funcionamento com mecanismos de segurança já existentes e utilizados
por aplicações;
• evitar problemas de exportação de criptografia;
• ser parte integrante do protocolo IPv6 e poder ser aplicável ao IPv4.
Através dos seus componentes, o IPSec usa este conceito para permitir a implementação de redes
virtuais privadas (VPN) e seguras através de redes públicas tais como a Internet.
Isto implica em um custo mínimo na criação de redes corporativas pois são utilizadas com a
segurança e infra-estrutura já existente.
Características
O IPSec representa uma arquitetura para o protocolo IP, integrando mecanismos de autenticação,
gestão e distribuição de chaves que podem ser usados com qualquer das versões do protocolo IP.
O IPSec utiliza como mecanismos de autenticação dois cabeçalhos de extensão específicos do
protocolo IPv6: o cabeçalho de Autenticação (Authentication Header) e o cabeçalho de
encapsulamento de dados de segurança (Encapsulating Security Payload Header).
Além destes dois cabeçalhos, o IPSec define também o conceito de associação de segurança
(security associations) - conjunto de diretivas que permite negociar algoritmos de criptografia a
utilizar. Uma associação de segurança representa uma relação entre duas ou mais entidades que
comunicam e descrevem quais os mecanismos de segurança a utilizar para estabelecer uma
comunicação segura. A associação de segurança permite negociar protocolos, algoritmos de
criptografia e chaves a usar e contém informação sobre:
• Algoritmo e modo de autenticação a aplicar ao cabeçalho de autenticação;
• Chaves usadas no algoritmo de autenticação;
• Algoritmo e modo de criptografia utilizados no cabeçalho de encapsulamento de dados de
segurança, ESP;
• Chaves usadas no algoritmo de criptografia do cabeçalho de encapsulamento de dados;
• Chaves de autenticação usadas com o algoritmo que faz parte da "transform" ESP;
• Tempo de vida da chave;
• Tempo de vida da associação de segurança;
• Endereço(s) fonte da associação de segurança;
• Nível de sensibilidade dos dados protegidos.
Na prática, uma associação de segurança é representada por um índice de parâmetros de segurança -
Security Parameter Index (SPI) - com um endereço IP destino. O SPI é um campo que surge nos
cabeçalhos de segurança IPv6 (AH e ESP), que não é criptografado na transmissão, já que a sua
informação é essencial para decifrar a informação transmitida.
Quando uma entidade quiser estabelecer uma associação de segurança, utiliza um SPI e um
endereço destino (pertencente à entidade com quem deseja estabelecer comunicação segura) e envia
essa informação à entidade com quem se quer estabelecer o canal seguro. Assim, para cada sessão
de comunicação autenticada entre dois nós, são necessários dois SPI - um para cada sentido, dado
que cada associação de segurança é unidirecional.
Elementos de um esquema de Criptografia
Um esquema de criptografia consiste dos seguintes elementos:
• Um protocolo para gerenciamento de chaves - para geração e troca de chaves
• Um algoritmo de criptografia - para criptografar mensagens
• Um algoritmo de autenticação - para garantir integridade.
Esquema de Criptografia IKE
Os elementos do mecanismo criptofrafia IKE, são mostrados na tabela abaixo:

DES, 3DES e AES, são algoritmos de criptografia utilizados para criptografar a parte de dados de
um pacote.
O IKE é o protocolo padrão para negociar as Security Associations (SAs) entre dois hosts que
estarão utilizando IPSec, e é o mecanismo para gerenciamento de chaves escolhido para a versão 6
do IP. Na versão 4, o IKE é opcional.
A implementação IKE na plataforma Cisco suporta PKI (Infra-estrutura de chaves Públicas)
O IKE usa a porta 500 do protocolo UDP e interage com os restantes mecanismos de segurança
IPSec através de associações de segurança. Assim, o IKE proporciona a possibilidade de estabelecer
associações de segurança para diversos protocolos e aplicações de segurança, tendo assim um
método transparente e aberto de associar diferentes mecanismos de segurança, sem envolver as
entidades participantes na comunicação.
Quando uma entidade pretende estabelecer comunicação segura, passa pelas seguintes fases IKE:
Fase 1: Ocorre num meio inseguro. Tem o objetivo de estabelecer um canal seguro que irá proteger
as trocas da Fase 2. É executada uma vez para várias fases 2;
Fase 2: Ocorre no canal seguro criado na fase 1. As suas negociações têm o objetivo de estabelecer
as associações de segurança que irão proteger a comunicação.
Após estas duas fases, encontra-se estabelecido um canal seguro através do qual ocorre
comunicação segura.
Mecanismos de Chave Pública
A plataforma Cisco suporta dois tipos de chaves públicas:
• Diffie-Hellman
O sistema de chaves públicas/privadas Diffie-Hellman é utilizado para calcular um secret key, que
por sua vez é utilizado para criptografar e decriptografar as mensagens. Nenhuma informação
confidencial é transportada durante a criação das chaves, assim não é necessário utilizar um canal
seguro.
• Chaves Públicas RSA (Certificates)
Ao contrário do par de chaves público/privado utilizado pelo algoritmo Diffie-Hellman, o par de
chaves público/privado do algoritmo RSA é utilizado para criptografar e decriptografar mensagens.
A mensagem criptografada com a chave pública pode somente ser decriptografada com a chave
privada e vice-versa.
Mecanismo Diffie-Hellman
Para criação do secret key, utilizando o Diffie-Hellman, nenhuma informação confidencial é
enviada durante a transmissão. Cada peer calcula sua chave secreta, que será utilizada para
criptografar e decriptografar as mensagens.
Como exemplo, a figura abaixo ilustra o mecanismo para geração do secret key, utilizando as
chaves DH públicas/privadas de Bob e Alice. O processo é o seguinte:
1.Bob recebe a chave pública de Alice e calcula o secret key, utilizando sua chave privada e a chave
pública de Alice
2.Alice recebe a chave pública de Bob e calcula o secret key, utilizando sua chave privada e a chave
pública de Bob.
O resultado de ambos cálculos são iguais, e o resultado é o secret key. Nenhuma informação
confidencial é enviada, assim não há oportunidade para um intruso obter acesso a secret key.

Anda mungkin juga menyukai