Comunicação de Dados - Mestrado em Telecomunicações

Prof. Eduardo Parente Ribeiro

Aluna: Luciana Helena de Araújo.

Seminário

TLS - Tranport Layer Security - Segurança da Camada de Transporte

1) Introdução:

O protocolo de segurança da camada de transporte é baseado no protocolo SSL versão 3.0 (Secure Socket Layer).

A meta primária do protocolo de TLS é fornecer privacidade e integridade na comunicação de dados.

Ele é composto por: Protocolo de registro TLS e Protocolo de autenticação/reconhecimento (handshake) TSL.

O protocolo de registro é a base da camada de transporte fornecendo segurança na conexão possuindo para isto duas propriedades básicas:

- A conexão é privada. É utilizada a criptografia simétrica para codificar informações. (ex: DES (DES)) As chaves para este tipo de criptografia são geradas exclusivamente para cada conexão e está baseado numa negociação secreta com um outro protocolo (como o de autenticação). O protocolo de registro também pode ser usado sem cifragem de dados.

- A conexão é segura. O transporte da mensagem inclui uma mensagem cheque de integridade (MACMessage Authentication Code - Código de autenticação de mensagem). O protocolo de registro pode operar sem um MAC, mas somente enquanto outro protocolo é usado pelo protocolo de registro como um transporte para negociar parâmetros de segurança.

O protocolo de registro TLS é usado para englobar outros níveis de protocolo mais altos. Deste modo, o protocolo de autenticação/reconhecimento TLS permite ao servidor e ao cliente se autenticarem e negociarem um algoritmo de cifragem e chaves de criptografia antes da transmissão ou recebimento do primeiro byte de informação.

O protocolo de autenticação/reconhecimento TLS assim como o de registro, fornece segurança na conexão e três propriedades básicas:

- A identidade das partes (servidor/cliente) pode ser autenticada usando senhas públicas ou privadas e criptografia. Isto pode ser opcional mas é geralmente requerida por uma das partes.

- A negociação feitas pelas partes é segura. A chave fica indisponível para terceiros que não podem obte-la mesmo que tentem faze-lo no meio da conexão.

- A negociação é segura. Ninguém pode interferir na comunicação sem ser descoberto pelas partes que estão conectadas.

Uma vantagem do TLS é que ele é um protocolo de aplicação independente, porém o TLS padrão não especifica como podem ser adicionados protocolos de segurança com o TLS. Decisões de como iniciar o protocolo de reconhecimento TLS e como interpretar a troca de certificados de autenticação ficam a critério de designers e de implementadores de protocolos.
 
 

Fig1 – Criptografia Simétrica

Fonte: http://www.c2net


2) Metas:

As metas deste protocolo, em ordem de prioridade, são:

  1. Segurança criptográfica: TLS deve ser usada para estabelecer uma conexão segura entre as duas partes.
  2. Interoperabilidade: Programas independentes devem ser capazes de desenvolver aplicações utilizando TLS que será então capaz de trocar parâmetros de criptografia com sucesso sem que haja conhecimento do código de um pelo outro.
  3. Extensibilidade: : TLS busca fornecer uma estrutura onde a chave pública e o volume de métodos de cifragem podem ser incorporados conforme necessário. Isto também realizará duas submetas: evitar a necessidade de se criar um protocolo novo (e arriscando a introdução de possíveis fraquezas novas) e evitar a necessidade para implementar uma biblioteca de segurança inteiramente nova.
  4. Eficiência relativa: O protocolo de TLS incorporou uma sessão opcional para reduzir o número de conexões necessárias para o estabelecimento da conexão. Adicionalmente, deve se ter cuidado para reduzir as atividades de cadeia.
3) Protocolo de registro: O Protocolo de registro TLS é um protocolo de camadas. A cada camada, as mensagens podem incluir campos para duração, descrição, e conteúdo. O protocolo de registro leva mensagens a serem transmitidas, fragmenta dados em blocos manejáveis, opcionalmente comprime dados, aplica um MAC, codifica, e transmite o resultado. Os dados recebidos são decifrados, verificados, descomprimidos, e reorganizados e então entregues aos clientes. Quatro protocolos de registro são descritos neste documento: o protocolo de reconhecimento, o protocolo de alerta, o protocolo para a mudança de código e o protocolo de aplicação de dados. Para permitir extensão do protocolo TLS tipos de registro adicionais podem ser apoiados pelo protocolo de registro. Se for adicionado um tipo de registro desconhecido, ele será ignorado. Qualquer protocolo projetado para uso em cima de TLS deve ser cuidadosamente projetado para lidar com todo possíveis ataques contra isto. Note que se o tipo e duração de um registro não for protegido através de cifragens, deve-se ter cuidado em minimizar o valor da análise de tráfico destes valores. 4) Protocolo de reconhecimento:

Consiste em uma série de três sub-protocolos que são usados para permitir um acordo entre as partes no que diz respeito aos parâmetros de segurança da camada de registro, autenticação e relatório de condições de erros. Estes sub-protocolos são o protocolo de alerta, o protocolo para a mudança de código e o protocolo de aplicação de dados.

No protocolo de alerta são mostradas mensagens de alerta contendo a severidade e a descrição do alerta. Se o alerta for de um nível fatal, a conexão é interrompida. Neste caso, outras conexões podem continuar mas a que recebeu o alerta é invalidada prevenindo assim, que seja utilizada para novas conexões. Como outras mensagens, as mensagens de alerta podem ser codificadas e comprimidas como especificadas no corrente estado de conexão.

As mensagens de alerta podem ser:

a) de Fechamento: O cliente e o servidor compartilham a informação de que a conexão será finalizada para evitar um ataque externo. Qualquer uma das partes pode iniciar a troca de mensagens finais. Esta mensagem de fechamento avisa que o remetente não irá mais enviar mensagens nesta conexão. Qualquer mensagem enviada após este alerta é ignorada. As mensagens em andamento são concluídas antes do fechamento da conexão.

b) de Erro: Quando um erro é descoberto, a parte detectora envia uma mensagem para a outra. Em caso de recebimento ou transmissão de um alerta fatal, ambas as partes fecham imediatamente a conexão. Alguns exemplos de alertas de erro são: acesso negado, erro interno, usuário cancelado, segurança insuficiente.

O protocolo de mudança de código consiste em uma única mensagem que é codificada ou comprimida na conexão corrente. Esta mensagem consiste em um único byte de valor 1. Ela é enviada ao servidor e ao cliente para notificá-los que os registros subsequentes serão protegidos por novos códigos. Logo após o recebimento da mensagem, o novo código deve ser ativado para que o anterior seja invalidado. Esta mensagem é enviada durante o reconhecimento, logo após os parâmetros de segurança serem fixados e antes de enviada a mensagem de fechamento.

Os parâmetros de criptografia de uma sessão são produzidos pelo protocolo de reconhecimento que opera na camada de registro. Quando cliente e servidor iniciam a comunicação, eles escolhem uma versão de protocolo, selecionam algoritmos de criptografia, podem se autenticar, e utilizam técnicas de senhas públicas para gerar segredos compartilhados.

O protocolo de reconhecimento/autenticação envolve os seguintes passos:


 
 

Fig2 – Comunicação entre servidor e cliente

Fonte: http://www.c2net



 
 
 
 

5) Notas finais:

Para o TLS poder fornecer uma conexão segura, cliente, servidor, chaves e aplicações devem estar em um ambiente seguro. A implementação deve estar livres de erros de segurança. Deve-se ter cuidado no que diz respeito as decisões de quais certificados serão utilizados e se são aceitáveis porque qualquer erro neste sentido pode causar grandes danos.
 
 
 
 

6) Referências Bibliográficas: