29
Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Embed Size (px)

Citation preview

Page 1: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Redes de Computadores I

SSL (Secure Socket Layer)

TLS (Transport Layer Security)Gustavo Lacerda Coutinho

Renan Galvão Machado e Silva

Page 2: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Introdução

Provê segurança em comunicações na Internet– Integridade– Autenticidade– Confidencialidade

Page 3: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Motivação

Para que segurança?– Dados muito importantes trafegando na rede– Surgimento do E-Commerce– Internet Banking– Arquitetura TCP/IP não provê conexões seguras

Page 4: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Soluções

SSL v3, solução proprietária da Netscape TLS v1.1, padrão aberto desenvolvido pela IETF

(RFC 4346) Diferenças entre TLS e SSL:

– TLS é padronizado pelas RFC 2246 (v1.0) e RFC 4346 (v1.1)

– TLS usa o algoritmo keyed-Hashing for Message Authentication Code (HMAC) enquanto o SSL apenas Message Authentication Code (MAC). O algoritmo HMAC produz hashes mais seguros que o algoritmo MAC

Page 5: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Diferenças entre TLS e SSL (cont.)

No TLS nem sempre é necessário recorrer à raiz de uma AC (Autoridade de Certificação) para usar uma certificação. Pode ser usada uma autoridade intermediária

Novas mensagens de alerta O algoritmo Fortezza de criptografia não é

suportado, pois não é aberto ao público. (Política da IETF)

Campos dos cabeçalhos

Page 6: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Criptografia

Mensagens em forma cifrada ou em código

Criptografia simétrica

Criptografia assimétrica

Page 7: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Criptografia Simétrica

Chave única Chave distribuída por uma canal inseguro Processamento baixo Tamanho da chave: 128 bits Ex: DES (Data Encryption Standard), 3DES

(Triple DES), IDEA (International Data Encryption Algorithm), RC2 e RC4 e AES (Advanced Encryption Standard)

Page 8: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Criptografia Assimétrica

Chave pública– Divulgada pelo receptor– Usada pelo transmissor para encriptação

Chave privada– Pertencente somente ao receptor– Usada pelo receptor para decriptação

Page 9: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Criptografia Assimétrica

Não há compartilhamento de um segredo

Alto processamento

Tamanho da chave: 1024 bits

Ex: RSA, Diffie-Helman e Fortezza

Page 10: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Arquitetura TLS

Page 11: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolo de Registro

Encapsula mensagens de protocolos superiores Durante transmissão:

– Fragmentação

– Compressão (opcional)

– Aplicação do MAC

– Encriptação

Page 12: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolos de Handshaking

TLS possui três protocolos de negociação

1. Protocolo Handshake

2. Protocolo ChangeCipherSpec

3. Protocolo de Alerta

Page 13: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolo Handshake (1)

Responsável pela negociação dos parâmetros de segurança

1. ID da sessão

2. Método de Compressão

3. Cipher Spec - algoritmo de criptografia a ser utilizado

4. Chave Mestre (master key)

5. Is Resumable – flag que indica se a sessão é reiniciável

Page 14: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolo Handshake (2)

Negociando os parâmetrosCliente ServidorClientHello

ServerHelloCertificate*ServerKeyExchangeServerHelloDone

Certificate Message*ClientKeyExchangeChangeCipherSpecFinished

ChangeCipherSpecFinished

Fim da negociação

Page 15: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolo ChangeCipherSpec

Composto por uma única mensagem

Sinaliza mudanças na estratégia de criptografia

Page 16: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Protocolo de Alerta

Informa problemas na comunicação

Níveis de alerta

Dois tipos de mensagens1. Alerta de Encerramento

2. Alerta de Erro

Page 17: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Análise de Segurança

Três modos de autenticação:– Servidor e cliente autenticados– Somente servidor autenticado– Anonimato completo

Sujeito a ataques, em que o atacante se “posiciona” entre o cliente e o servidor

Suscetível a ataques de negação de serviço– Atacante inicia um grande número de conexões

Alto consumo de CPU do servidor, graças ao custo computacional de se utilizar criptografia.

Page 18: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Perguntas

1. Por que a comunicação não se dá por chave simétrica desde o seu início?

2. Por que não se utiliza chave assimétrica durante toda a comunicação?

3. Para que serve o protocolo de handshake (negociação) ?

4. Quais serviços de segurança que o TLS provê?

5. Qual a condição necessária para deixar o canal protegido para ataques em que o atacante se “posiciona” entre o cliente e o servidor?

Page 19: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Pergunta (1)

1. Por que a comunicação não se dá por chave simétrica desde o seu início?

Page 20: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Resposta (1)

1. Por que a comunicação não se dá por chave simétrica desde o seu início?

R: Porque não existe uma maneira segura

de passar a chave secreta pela rede.

Page 21: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Pergunta (2)

2. Por que não se utiliza chave assimétrica durante toda a comunicação?

Page 22: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Resposta (2)

2. Por que não se utiliza chave assimétrica durante toda a comunicação?

R: Pois este tipo de criptografia é muito custoso em termos computacionais, devido à quantidade de operações que são realizadas.

Page 23: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Pergunta (3)

3. Para que serve o protocolo de handshake (negociação) ?

Page 24: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Resposta (3)

3. Para que serve o protocolo de handshake (negociação) ?

R: Serve para estabelecer os parâmetros de segurança que serão usados na comunicação, tais como, suíte de criptografia, método de compressão e chaves secretas.

Page 25: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Pergunta (4)

4. Quais serviços de segurança que o TLS provê?

Page 26: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Resposta (4)

4. Quais serviços de segurança que o TLS provê?

R: Confidencialidade, integridade e autenticidade.

Page 27: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Pergunta (5)

5. Qual a condição necessária para deixar o canal protegido para ataques em que o atacante se “posiciona” entre o cliente e o servidor?

Page 28: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Resposta (5)

5. Qual a condição necessária para deixar o canal protegido para ataques em que o atacante se “posiciona” entre o cliente e o servidor?

R: Basta o servidor estar autenticado.

Page 29: Redes de Computadores I SSL (Secure Socket Layer) TLS (Transport Layer Security) Gustavo Lacerda Coutinho Renan Galvão Machado e Silva

Referências Bibliográficas

[1] NETSCAPE. NETSCAPE. SSL 3.0 SPECIFICATION.       http://wp.netscape.com/eng/ssl3/ [2] Kant, K., Iyer, R., Mohapatra, P. Architectural Impact of Secure Socket Layer on               Internet Servers. Em Proc. Int. Conf. Computer Design, 2000. pág 7-9 [3] SHACHAM, D., E BONEH, D. Improving SSL Handshake Performance via

Batching.            Em ed. D. Naccache, editor, Proceedings of RSA 2001, volume 2020 (Springer-      Verlag, 2001), pág 1-2. [4] SUN. Introduction to SSL.       http://docs.sun.com/source/816-6156-10/contents.htm#1041986 [5] TECHONLINE. SSL and TLS Essentials: Securing the Web.                  http://www.techonline.com/community/tec h_topic/ internet/feature_article/14364 [6] WIKIPEDIA. Transport Layer Security.       http://en.wikipedia.org/wiki/Secure_Socket_Layer [7] TANENBAUM. TANENBAUM, A., Computer Networks. Prentice Hall, 1996. pág 864-

868 [8] RFC 4346 - The Transport Layer Security (TLS) Protocol Version 1.1 [9] C. ÍNTIA. B.Um Mecanismo Para Distribuição Segura de Vídeo MPEG. Dissertação

apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do título de Mestre em Engenharia.2000. pág. 23-55.