1
Segurança em Redes de
Computadores
Capítulo 7
Segurança WEB
Slides por H. Johnson & S. Malladi; Modificados por S. J. Fritz, 2006;
Modificados e traduzidos por P.S. Nicolletti, 2007;
2
Resumo
• Considerações de Segurança WEB
• Secure Socket Layer (SSL) e Transport Layer Security (TLS)
• Secure Eletronic Transactions (SET)
• Leituras
3
Considerações de Segurança WEB
Introdução
• A Internet é via de mão dupla (você vê, mas também é visível)
• A WEB é cada vez mais visível (sites pessoais, sites de serviços, lojas eletrônicas)
• Embora navegador seja fácil de usar, servidor Web seja [relativamente] fácil de configurar, conteúdo Web seja fácil de desenvolver, o software subjacente é muito complexo – facilitando o aparecimento de muitas falhas de segurança
• Um servidor Web pode ser violado e servir como plataforma de ataque para toda a rede de uma organização – uma vez corrompido, o servidor Web pode permitir acesso a dados e sistemas que não fazem parte do serviço Web propriamente dito
• Usuários casuais e/ou não treinados em segurança são clientes comuns de serviços Web
4
Considerações de Segurança WEB
Ameaças
Integridade
Alteração de dados armazenados Navegador cavalo de Tróia
Alteração de dados em memória Alteração de dados em trânsito
Confidencialidade
Espionagem na rede
Roubo de dados no servidor Roubo de dados do cliente
Informação de configuração da rede Informação sobre diálogo entre cliente e servidor
Consequências
Perda de informação
Comprometimento do hospedeiro Vulnerabilidade a outras ameaças
Consequências
Perda de informação Perda de privacidade
Prejuízos financeiros e de imagem
Prevenção
Verificação criptográfica
(cryptographic checksun = MAC)
Prevenção
5
Considerações de Segurança WEB
Ameaças
Proibição de Serviço (DoS)
Encerramento de “Threads” de usuário Inundação de servidor com requisições falsas
Saturação de disco ou memória
Isolamento do servidor por ataque DNS
Autenticação
Roubo de identidade de usuários legítimos
Falsificação de dados
Consequências
Serviço intermitente
Serviço ruim (chato) de usar Serviço inacessível
Consequências
Deturpação de usuário
Tomar informação falsa como verdadeira
Prevenção
Difícil de prevenir, principalmente se for DDoS
Prevenção
6
Considerações de Segurança WEB
Enfoques de Segurança
7
SSL e TLS
Introdução
• SSL foi criado pela Netscape• SSLv3 foi a base para TLS
• TLS é proposta padrão para Internet gerado por uma IETF
8
SSL e TLS
9
SSL e TLS
Arquitetura SSL - Introdução
• Usa TCP para prover serviço fim-a-fim seguro• Compõe-se de 4 protocolos
– Handshake
– Change Cipher Specification
– Alert
– Record
• Conceitos importantes
– Conexão – serviço de transporte (no sentido OSI) fim-a-fim,
transiente, associado com uma sessão
– Sessão – associação entre um cliente e um servidor, criada pelo
protocolo de ”handshake”, definindo conjunto de parâmetros de criptografia, que podem ser compartilhados por várias conexões;
sessões são usadas para evitar negociações demoradas de parâmetros de segurança para cada nova conexão entre o mesmo par
10
SSL e TLS
Arquitetura SSL – Record Protocol
• SSL Record Protocol fornece dois serviços para as conexões SSL– Confidencialidade – o Handshacke Protocol define uma chave secreta que
é usada em criptografia simétrica
– Integridade – o Handshake Protocol também define uma segunda chave
secreta que é usada para geração de MAC
• Cabeçalho do SSL Record protocol contém
– Content Type (8 bits) – indica o protocolo da carga útil (HTTPS, SSH, SCP, POP3S, IMAP4S, SSL Handshake, SSL Change Cipher, etc.)
– Major Version (8 bits) – Versão (maior) do SSL em uso (3, para SSLv3.0, p.ex.)
– Minor Version (8 bits) versão (menor) do SSL em uso (0, para SSLv3.0, p. ex.)
– Compressed Length (16 bits) – tamanho em bytes da carga útil (plaintext)
11
SSL e TLS
12
SSL e TLS
Arquitetura SSL
Change Cipher Spec. Protocol, Alert Protocol
• Change Cipher Protocol
– É o mais simples de todos, sendo usado unicamente para indicar mudanças de estado em uma conexão
• Alert Protocol
– É usado para transportar mensagens de erro para uma entidade
– Cada mensagem de erro tem 2 bytes • Nível – Aviso (1) ou Crítico (2)
• Código – Indicativo do erro propriamente dito. P. Ex. – Bad_record_mac (Crítico)
– Certificate_expired (Aviso)
– Erros críticos encerram imediatamente uma conexão • Outras conexões em andamento não são afetadas • Novas conexões não são permitidas
13
SSL e TLS
Arquitetura SSL - Handshake Protocol
• É a parte mais complexa do SSL• Permite ao cliente e ao servidor
– Autenticarem-se entre si
– Negociar algoritmos de criptografia e autenticação
– Trocar chaves de criptografia
• É usado sempre antes de qualquer troca de dados de aplicação
• Suas mensagens tem a forma (BER – Basic Enconding Rules)
– Type (1 byte) – Indica uma de dez mensagens possíveis (ver tabela no próximo slide)
– Length (3 bytes) – Tamanho da mensagem em bytes
– Contend (>= 0 bytes) – Parâmetros associados com a mensagem (ver tabela no próximo slide)
14
SSL e TLS
Arquitetura SSL - Handshake Protocol
Message Type Parameters
Hello_request Null
Client_hello Version, random, session id, cipher suite, compression method
Server_hello Version, random, session id, cipher suite, compression method
Certificate Chain of X.509v3 certificates Server_key_exchange Parameters, signature
Certificate_request Type, authorities Server_done Null
Certificate_verify Signature
Client_key_exchange Parameters, signature Finished Hash value
15
SSL e TLS
Arquitetura SSL - Handshake Protocol
Fase Mensagem(ns) Descrição
1 C->S: cliente_hello Version: mais atual suportada; timestamp+n.seq.; sessionID: 0 => nova, != 0 => velha; cipherSuite: suporte de criptografia (em ordem decrescente de prioridade); compressMethod: suporte de compressão (em ordem decrescente de prioridade)
S->C: server_hello Version: maior versão <= suportada pelo cliente;
timestamp+seq.; sessionID: nova, se sessionID.cli = 0, igual à do cliente, se sessionID.cli != 0; cipherSuite: melhor disponível, que atenda prioridade do cliente; compressMethod: melhor possível, que atenda
prioridade do cliente 2 S->C: - Certificate - Server_key_exchange - Certificate_request - Server_hello_done
Autenticação do servidor, troca chave de sessão, solicita autenticação de cliente (opcional), encerra apresentação
16
SSL e TLS
Arquitetura SSL - Handshake Protocol
Fase Mensagem(ns) Descrição
3 C->S:
- Certificate
- Client_key_exchange
- Certificate_verify
Cliente envia certificado (se solicitado), completa troca de chave de sessão, solicita (eventualmente) que servidor verifique seu certificado
4 C->S: - Change_cipher_spec - Finished S->C: - Change_cipher_spec - Finished
Cliente e servidor ajustam detalhes finais de cifragem e encerram handshake; tem início a troca da aplicação
17
SSL e TLS
TLS - Considerações
• É uma proposta de padrão Internet (RFC 2246)• É muito semelhante ao SSLv3.0
• Pequenas diferenças
– version number (atual é 3.1)
– message authentication code (também usa HMAC, com pequeno ajuste)
– pseudorandom function
– alert codes (acrescenta novos alertas)
– cipher suites (idem SSLv3, exceto Fortezza)
– client certificate types (idem SSLv3, menos {rsa|dss}.ephemeral e fortezza.kea)
– certificate_verify and finished message (pesqueno ajuste na aplicação de MD5 e SHA-1)
– cryptographic computations (pequeno ajuste na geração de chave secreta)
– Padding (no SSLv3 é o mínimo necessário para a cifragem de bloco; no TLS pode ser variável (o mínimo e seus múltiplos) para dificultar
cripto-análise baseada na avaliação do tamanho das mensagens trocadas)
18
Secure Electronic Transactions
Introdução
• Especificação aberta de criptografia e segurança para proteção de transações com cartão de crédito na Internet – envolve comprador, vendedor, agentes financeiros (emissor de cartão de crédito e banco) e autoridade certificadora
• Versão atual, SETv1, derivou de uma iniciativa de MasterCard e Visa em 1996
• Depois IBM, Microsoft, Netscape, RSA, Terisa e Verisign agregaram esforços para, em 1998, chegar à primeira leva de produtos com
suporte/utilização de SET
• SET não é um sistema de pagamento em si
– É um conjunto de formatos e protocolos de segurança que permitem o uso da infraestrutura de pagamento via cartões de crédito em uma rede aberta, tal como Internet, de modo seguro
19
Secure Electronic Transactions
Serviços
• Em essência, SET fornece– Canal de comunicação seguro entre todas as entidades envolvidas em uma transação com cartão de crédito
– Autenticidade com uso de certificados digitais X.509v3
– Privacidade porque a informação somente é disponibilizada para as partes envolvidas na transação quando e onde for necessária (ex. Cartão de crédito não é visto pelo vendedor)
• SET tem especificação complexa (editadas em maio/1997)
– Livro 1: Descrição Comercial (80 páginas)
– Livro 2: Guia do Programador (629 páginas)
– Livro 3: Definição Formal de Protocolo (262 páginas)
• Um total de 971 páginas
– SSLv3 tem especificação de 63 páginas
20
Secure Electronic Transactions
Requisitos
• Requisitos (do Livro 1)– Confidencialidade de ordens de pedido e pagamento (com criptografia – DES, 3DES, AES – troca de chaves com RSA)
– Integridade dos dados trafegados (assinatura digital – SHA-1, HMAC)
– Autenticação de comprador (assinatura e certificado digital)
– Autenticação de vendedor (assinatura e certificado digital)
– Autenticação de agente financeiro (assinatura e certificado digital)
– Garantia de uso das melhores práticas de segurança e técnicas de projeto de sistemas para proteger todas as partes legítimas em uma transação de comércio eletrônico (é bem testado sobre protocolos e algoritmos de alta segurança)
– Criação de um protocolo que não dependa de mecanismo de segurança em transporte (camada 4) nem impeça seu uso (funciona sobre TCP/IP puro, mas não interfere no uso de SSL/TLS e/ou IPsec)
– Facilidade e encorajamento à interoperabilidade entre fornecedores de software e serviços de rede (é independente de plataforma de hardware, sistema operacional e software Web)
21
Secure Electronic Transactions
22
Secure Electronic Transactions
Participantes
• Comprador (Cardholder)• Vendedor (Merchant)
• Issuer (Emissor do cartão de crédito)
• Acquirer (Banco do Vendedor)
• Payment gateway (operado pelo banco do vendedor ou um terceirizado, processa as mensagens de pagamento do vendedor)
23
Secure Electronic Transactions
Transação
• 1) O comprador abre uma conta (adquire um cartão de crédito)
• 2) O comprador recebe um certificado X.509v3
• 3) O vendedor tem seus próprios certificados
• 4) O comprador emite uma ordem de compra
• 5) O vendedor é verificado (enviando seu certificado para o comprador)
• 6) O comprador envia ordem de compra e pagamento (e seu certificado)
• 7) O vendedor solicita autorização de pagamento (ao payment gateway)
• 8) O vendedor confirma a ordem de compra (para o comprador)
• 9) O vendedor providencia o produto ou serviço
24
Leituras
• Obrigatória
– Stallings, W., Network Security Essentials, 3rd Ed., Cap. 7
• Recomendada
– Rescorla, E; SSL and TLS: Designing and Building Secure Systems; Addison-Wesley, 2001
25
Questões de Revisão
• Quais são as vantagens de cada um dos três enfoques mostrados na figura 7.1?
• Que protocolos compõe o SSL?
• Qual é a diferença entre conexão e sessão SSL?
• Que serviços são fornecidos pelo SSL Record protocol?
• Que passos são realizados na transmissão SSL Record protocol?