290 likes | 397 Views
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. Motivação. Para que segurança?
E N D
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
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
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
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
Criptografia • Mensagens em forma cifrada ou em código • Criptografia simétrica • Criptografia assimétrica
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)
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
Criptografia Assimétrica • Não há compartilhamento de um segredo • Alto processamento • Tamanho da chave: 1024 bits • Ex: RSA, Diffie-Helman e Fortezza
Protocolo de Registro • Encapsula mensagens de protocolos superiores • Durante transmissão: • Fragmentação • Compressão (opcional) • Aplicação do MAC • Encriptação
Protocolos de Handshaking • TLS possui três protocolos de negociação • Protocolo Handshake • Protocolo ChangeCipherSpec • Protocolo de Alerta
Protocolo Handshake (1) • Responsável pela negociação dos parâmetros de segurança • ID da sessão • Método de Compressão • Cipher Spec - algoritmo de criptografia a ser utilizado • Chave Mestre (master key) • Is Resumable – flag que indica se a sessão é reiniciável
Protocolo Handshake (2) • Negociando os parâmetros Cliente Servidor ClientHello ServerHello Certificate* ServerKeyExchange ServerHelloDone Certificate Message* ClientKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished Fim da negociação
Protocolo ChangeCipherSpec • Composto por uma única mensagem • Sinaliza mudanças na estratégia de criptografia
Protocolo de Alerta • Informa problemas na comunicação • Níveis de alerta • Dois tipos de mensagens • Alerta de Encerramento • Alerta de Erro
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.
Perguntas • Por que a comunicação não se dá por chave simétrica desde o seu início? • Por que não se utiliza chave assimétrica durante toda a comunicação? • Para que serve o protocolo de handshake (negociação) ? • Quais serviços de segurança que o TLS provê? • 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?
Pergunta (1) 1. Por que a comunicação não se dá por chave simétrica desde o seu início?
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.
Pergunta (2) 2. Por que não se utiliza chave assimétrica durante toda a comunicação?
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.
Pergunta (3) 3. Para que serve o protocolo de handshake (negociação) ?
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.
Pergunta (4) 4. Quais serviços de segurança que o TLS provê?
Resposta (4) 4. Quais serviços de segurança que o TLS provê? R: Confidencialidade, integridade e autenticidade.
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?
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.
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.