Sistemas criptogrficos Exemplos IPsec Secure Internet Protocol SSL

  • Slides: 42
Download presentation
Sistemas criptográficos • Exemplos – IPsec (Secure Internet Protocol) – SSL (Secure Socket Layer)/

Sistemas criptográficos • Exemplos – IPsec (Secure Internet Protocol) – SSL (Secure Socket Layer)/ TLS (Transport Layer Security) Netscape – SSH (Secure Shell) – PGP (Pretty Good Privacy) Phillip Zimmerman – SET (Secure Electronic Transactions) Visa, Mastercard

IP x IPsec • IPv 4: falta de privacidade e autenticação fraca • IPv

IP x IPsec • IPv 4: falta de privacidade e autenticação fraca • IPv 6: dados cifrados e integridade de dados (“autenticação”) • Problema do IPv 6: incompatibilidade com IPv 4 • Solução alternativa: IPsec – Cifragem dos dados (via algoritmo de chave única) – Integridade dos dados (via função de hash com chave) – Forma associação segura entre duas máquinas – NÃO utiliza algoritmos de chave pública

IPsec - modos de operação • Modo transporte (usado fim-a-fim) IPV 4 Cab. IP

IPsec - modos de operação • Modo transporte (usado fim-a-fim) IPV 4 Cab. IP Cab. TCP Dados Cab. ESP Cab. TCP Dados IPsec Cab. IP Privacidade Autenticação Trail. ESP Autent.

IPsec - modos de operação • Modo túnel (intermediário) IPV 4 Cab. IP Cab.

IPsec - modos de operação • Modo túnel (intermediário) IPV 4 Cab. IP Cab. TCP Dados IPsec Novo IP Cab. ESP Privacidade Autenticação Trail. ESP Autent.

IPsec - associações seguras • SA: security association • Unidirecional (uma SA de A

IPsec - associações seguras • SA: security association • Unidirecional (uma SA de A para B, outra de B para A) • Ligada ao protocolo (uma para cifragem, outra para autenticação) • Mantida em uma base de dados (SPD - Security Policy Database) • Identificada por um índice (SPI - Security Parameter Index) • Índice enviado em cada pacote

IPsec - protocolo ESP • Encapsulated Security Payload • Cabeçalho ESP segue após o

IPsec - protocolo ESP • Encapsulated Security Payload • Cabeçalho ESP segue após o cabeçalho IP – Índice SPI – Número de seqüência (do ESP) – Valor de Inicialização (IV) para modo CBC • Dados cifrados (a serem protegidos) • Dados de autenticação (opcional, se AH é usado)

IPsec - protocolo AH • Authentication Header • Cabeçalho AH segue após o cabeçalho

IPsec - protocolo AH • Authentication Header • Cabeçalho AH segue após o cabeçalho IP, antes do ESP – Índice SPI – Número de seqüência (do AH) – Valor de Inicialização (IV) para modo CBC • Dados (hash) de autenticação (usa-se HMAC)

IPsec - protocolo AH • AH - HMAC • H: função de hash (MD

IPsec - protocolo AH • AH - HMAC • H: função de hash (MD 5, SHA) • K: chave da associação • M: dados a serem autenticados – HMAC(M, K) = H(K xor 5 C. . 5 C, H(K xor 36. . 36, M)) • Dados incluem a parte imutável do cabeçalho IP versão, comprimento, protocolo IP, números IP • Campos variáveis são zerados - TTL, fragmentação, flags, checksum

Associação Segura • Criação manual ou automática (via IKE) • Usa número de seqüência

Associação Segura • Criação manual ou automática (via IKE) • Usa número de seqüência (32 bits), inicializado em zero e incrementado a cada vez que a SA é usada • SA deve ser renegociada quando ocorre overflow no número de seqüência (ou antes) • SA tem também um “Tempo de Vida” (Lifetime)

IKE - troca de chaves IKE (Internet Key Exchange) - Cria SA dinamicamente -

IKE - troca de chaves IKE (Internet Key Exchange) - Cria SA dinamicamente - Baseado no ISAKMP (Internet Security Association and Key Manegement Protocol) - Vários tipos de dados (payload) - Hash - Signature (chave pública) - Dados da associação (SA) - Dados para a troca de chaves (DH, por exemplo) - Dados de Certificado e Requisição de Certificado - Dados do fabricante

Ipsec - vantagens • Proteção antes do nível de transporte (protege TCP e UDP)

Ipsec - vantagens • Proteção antes do nível de transporte (protege TCP e UDP) • Protege contra alterações (modo AH) • Prove privacidade (modo ESP) • Normalmente ESP e AH usados juntos: – IP[AH[ESP[TCP]]] • IPsec fornece a base para VPN (Virtual Private Networks - Redes Virtuais Privadas) • IPsec é um problema para firewalls (conteúdo do pacote não pode ser examinado) • IPsec é um problema para NAT e endereços dinâmicos

SSL - Secure Sockets Layer • Desenvolvido pela Netscape • Atualmente na versão 3.

SSL - Secure Sockets Layer • Desenvolvido pela Netscape • Atualmente na versão 3. 0 • Base para TLS (Transport Layer Security) - RFC 2246 • Fornece comunicação segura entre cliente e servidor • Gera chave de sessão randômica • Autenticação de cliente e servidor é opcional • Versão “doméstica” (128 bits) e “internacional” (40 bits)

TLS/SSL • Passos do TLS/SSL Handshake Protocol – Troca de mensagens (Hello) para acertar

TLS/SSL • Passos do TLS/SSL Handshake Protocol – Troca de mensagens (Hello) para acertar valores a serem utilizados na conexão – Troca de valores necessários para configurar a chave simétrica da sessão – Troca de mensagens para autenticação das partes – Geração da chave simétrica da sessão – Verificação da integridade das mensagens trocadas durante o estabelecimento da conexão

SSL - Passos 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3.

SSL - Passos 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3. Servidor envia seu certificado (opcional) 4. Servidor envia Server. Key. Exchange 5. Servidor envia Certificate. Request (opcional) 6. Cliente envia seu certificado (opcional) 7. Cliente envia Client. Key. Exchange 8. Cliente envia Certificate. Verify (opcional) 9. Cliente e Servidor enviam Change. Cipher. Spec 10. Cliente e Servidor enviam Finished

SSL - algoritmos • Os dois primeiros pacotes trocados entre cliente e servidor estabelecem:

SSL - algoritmos • Os dois primeiros pacotes trocados entre cliente e servidor estabelecem: • • O algoritmo de chave única a ser usado O algoritmo de chave pública a ser usado O algoritmo de assinatura a ser usado O algoritmo de compressão a ser usado • Os algoritmos são identificados por índices de 16 bits (compressão - 8 bits)

SSL - Client. Hello Campos da Mensagem: - Protocol Version - Random (Timestamp, 32

SSL - Client. Hello Campos da Mensagem: - Protocol Version - Random (Timestamp, 32 bits e Randômico, 28 bytes) - Session. ID (vazio - nova sessão; não vazio - continuação de sessão anterior; 0 - força nova sessão) - Cipher. Suite (lista de identificadores de algoritmos de criptografia que o cliente suporta) - Compression. Method (lista de identificadores de algoritmos de compressão que o cliente suporta) Após enviar Client. Hello, o cliente espera por Server. Hello

SSL - Server Certificatre Se o Servidor tem um Certificado, ele é enviado após

SSL - Server Certificatre Se o Servidor tem um Certificado, ele é enviado após o Server. Hello Servidor não tem Certificado, ele somente envia um Server. Key. Exchange: - Servidor usa Diffie-Hellmann (envia Ys) - Servidor usa RSA (só de assinatura) (envia randômico assinado) - Servidor usa Fortezza (idem RSA)

SSL - Tipos de assinaturas - RSA - DSA - Anonymous signatures (sem assinatura)

SSL - Tipos de assinaturas - RSA - DSA - Anonymous signatures (sem assinatura) Diffie-Hellman - Anonymous (um valor para cada conexão) - Fixed (um valor único, contido no certificado) - Ephemeral (um valor para cada conexão, com assinatura)

SSL - Certificate Request Se o servidor deseja autenticar o cliente, o servidor envia

SSL - Certificate Request Se o servidor deseja autenticar o cliente, o servidor envia um Certificate. Request Se o cliente possui o certificado adequado, ele o envia Senão, o cliente envia uma mensagem de “No Certificate” O servidor decide se deseja prosseguir com o cliente anônimo ou se vai interromper a transação

SSL - Client. Key. Exchange O cliente envia uma de três mensagens: - Diffie-Hellman:

SSL - Client. Key. Exchange O cliente envia uma de três mensagens: - Diffie-Hellman: envia Yc (em resposta a um Ys recebido do servidor) - RSA: envia chave mestre cifrada com a chave pública do certificado - Fortezza: idem RSA

SSL - Certificate. Verify Se o cliente tem certificado, ele envia o hash de

SSL - Certificate. Verify Se o cliente tem certificado, ele envia o hash de todas as mensagens trocadas até o momento, tanto em MD 5 como em SHA O Cliente assina o hash com sua chave secreta (correspondente à chave pública do certificado) O Servidor pode verificar a validade do certificado através da assinatura

SSL - chaves • Cliente e servidor geram uma chave mestre • Chave-mestre usada

SSL - chaves • Cliente e servidor geram uma chave mestre • Chave-mestre usada para gerar 4 chaves secretas: – Cifragem de dados do cliente para o servidor – Cifragem de dados do servidor para o cliente – Autenticação de dados do cliente para o servidor – Autenticação de dados do servidor para o cliente • Autenticação é feita usando-se uma função de hash com chave (HMAC)

SSL - Change. Cipher. Spec Mensagem trocada entre servidor e cliente, para sinalizar que

SSL - Change. Cipher. Spec Mensagem trocada entre servidor e cliente, para sinalizar que a troca de certificados terminou, e que as próximas mensagens serão cifradas com o algoritmo escolhido (e comprimidas) Após, cliente e servidor trocam hashs autenticados, criados a partir de todas as mensagens trocadas até o momento Após, a sessão segura pode iniciar

SSL - Certificado Segue o padrão X 509: - Versão - Número de série

SSL - Certificado Segue o padrão X 509: - Versão - Número de série - Algoritmo da Assinatura (do Certificado) - Validade (data inicial, data final) - Identificação do dono do certificado - Algoritmo da Chave Pública - Assinatura (do emissor do Certificado)

SSL - Tipos de Certificado - RSA para assinatura e cifragem (da chave de

SSL - Tipos de Certificado - RSA para assinatura e cifragem (da chave de sessão) - DSA, somente assinatura - RSA, somente assinatura, e Diffie-Hellman fixo para cifragem - DSA, somente assinatura, e Diffie-Hellman fixo para cifragem - RSA, somente assinatura, e Diffie-Hellman efêmero para cifragem - DSA, somente assinatura, e Diffie-Hellman efêmero para cifragem - Fortezza/DMS para assinatura e cifragem

SSL - Comunicação Cifrada 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello

SSL - Comunicação Cifrada 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3. Servidor envia Server. Key. Exchange (chave pública) 4. Servidor envia Server. Hello. Done 5. Cliente envia Client. Key. Exchange (chave de sessão) 6. Cliente envia Change. Cipher. Spec 7. Cliente envia Finished 8. Servidor envia Change. Cipher. Spec 9. Servidor envia Finished

SSL - Autenticação do Servidor 1. Cliente envia Client. Hello 2. Servidor envia Server.

SSL - Autenticação do Servidor 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3. Servidor envia Certificate (chave pública assinada por uma Autoridade Certificadora) 4. Servidor envia Server. Hello. Done 5. Cliente envia Client. Key. Exchange (chave de sessão, cifrada com a chave pública do passo 3) 6. Cliente envia Change. Cipher. Spec 7. Cliente envia Finished 8. Servidor envia Change. Cipher. Spec 9. Servidor envia Finished

SSL - Autenticação e Cifragem 1. Cliente envia Client. Hello 2. Servidor envia Server.

SSL - Autenticação e Cifragem 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3. Servidor envia Certificate (chave pública - só de assinatura assinada por Autoridade Certificadora) 4. Servidor envia Server. Key. Exchange (chave pública, assinada pela chave do passo 3) 5. Servidor envia Server. Hello. Done 6. Cliente envia Client. Key. Exchange (chave de sessão, cifrada com a chave do passo 4) 7. Cliente envia Change. Cipher. Spec 8. Cliente envia Finished 9. Servidor envia Change. Cipher. Spec 10. Servidor envia Finished

SSL - Autenticação do Cliente 1. Cliente envia Client. Hello 2. Servidor envia Server.

SSL - Autenticação do Cliente 1. Cliente envia Client. Hello 2. Servidor envia Server. Hello 3. Servidor envia Certificate (chave pública assinada por Autoridade Certificadora) 4. Servidor envia Certificate. Request 5. Servidor envia Server. Hello. Done 6. Cliente envia Certificate (chave pública assinada por Autoridade Certificadora) 7. Cliente envia Client. Key. Exchange (chave de sessão, cifrada com a chave do passo 3) 8. Cliente envia Certificate. Verifiy (hash das mensagens, cifrada com a chave secreta do passo 6) 9. Cliente envia Change. Cipher. Spec 10. Cliente envia Finished 11. Servidor envia Change. Cipher. Spec 12. Servidor envia Finished

SSL - Continuação de sessão 1. Cliente envia Client. Hello (com ID de sessão

SSL - Continuação de sessão 1. Cliente envia Client. Hello (com ID de sessão anterior) 2. Servidor envia Server. Hello (aceitando ID) 3. Servidor envia Change. Cipher. Spec 4. Servidor envia Finished 5. Cliente envia Change. Cipher. Spec 6. Cliente envia Finished - Se o Servidor não aceita reiniciar, ele responde com ID = 0, forçando uma nova sessão

Criptografia no nível de aplicação • SSH (Secure Shell) – Programa para comunicação segura

Criptografia no nível de aplicação • SSH (Secure Shell) – Programa para comunicação segura entre computadores – arquitetura cliente/servidor – uso de algoritmos de criptografia seguros – comunicação codificada transparente ao usuário

SSH • Características do SSH – Privacidade dos dados através de criptografia – Integridade

SSH • Características do SSH – Privacidade dos dados através de criptografia – Integridade da comunicação – Autenticação de usuários – Autorização, controle de acesso – Tunelamento para codificar outras comunicações baseadas em TCP/IP

SSH • Privacidade – Visa proteger os dados transmitidos • Algoritmos simétricos suportados pelo

SSH • Privacidade – Visa proteger os dados transmitidos • Algoritmos simétricos suportados pelo SSH – RC 4, blowfish, DES, IDEA, triple-DES (3 DES), CAST-128 (SSH-2), Twofish (SSH-2) • Algoritmos de assimétricos suportados pelo SSH – SSH-1: RSA – SSH-2: DSA, DH

SSH • Integridade – Visa garantir que os dados transmitidos não sejam alterados durante

SSH • Integridade – Visa garantir que os dados transmitidos não sejam alterados durante o trajeto • Protocolos utilizados para garantir integridade – SSH-2 » MD 5 » SHA-1 – SSH-1 » CRC-32 para os dados não codificados do pacote

SSH • Autenticação – Visa verificar a identidade das partes envolvidas na comunicação »

SSH • Autenticação – Visa verificar a identidade das partes envolvidas na comunicação » servidor SSH » cliente SSH • A autenticação do servidor é feita através de chave pública • A autenticação do cliente pode ser feita através de: – Password, chave pública, trusted-host, kerberos, onetime password

SSH • Tunelamento – O protocolo SSH é capaz de interceptar requisições de outros

SSH • Tunelamento – O protocolo SSH é capaz de interceptar requisições de outros programas num lado de uma conexão SSH e enviá-las de modo codificado para o seu destino – Isso permite encapsular outros serviços baseados em TCP/IP em uma sessão SSH – Permite garantir as propriedades de privacidade, integridade, autenticação e autorização a outros serviços TCP – Criação de VPNs limitadas

SSH • Estabelecimento de conexão segura 1 - Cliente contata o servidor 2 -

SSH • Estabelecimento de conexão segura 1 - Cliente contata o servidor 2 - Cliente e servidor informam versão do protocolo SSH suportado 3 - Cliente e servidor iniciam protocolo baseado na troca de pacotes 4 - Servidor identifica-se para o cliente e informa os parâmetros da sessão 5 - Cliente envia ao servidor a chave secreta da sessão 6 - Ambos iniciam troca de mensagens codificadas e completam a autenticação do servidor 7 - A conexão segura está estabelecida

SSH Cliente solicita conexão TCP para o servidor, por convenção porta 22 Servidor Host

SSH Cliente solicita conexão TCP para o servidor, por convenção porta 22 Servidor Host A “SSH-1, 99 -Open. SSH_2. 2. 0” “SSH-1, 5 -1. 2. 3 -0” Codificação aceita: 3 DES Chave da sessão: E(H, K) Chave pública máquina: H Chave pública servidor: S Codificações: 3 DES, Blowfish Autenticações: RSA, password Ambos iniciam a conexão segura utilizando 3 DES com a chave K OK! (3 DES + K) Autenticação Smith? ! Login: Smith Autenticação password: Autenticação OK! <senha> A conexão foi estabelecida com sucesso. O cliente solicita os serviços que necessita. . .

PGP - Pretty Good Privacy • Autor: Phillip Zimmerman • Projeto para correio eletrônico

PGP - Pretty Good Privacy • Autor: Phillip Zimmerman • Projeto para correio eletrônico • Cifragem por chave única – DES Triplo, CAST, IDEA, AES, Blowfish • Cifragem por chave pública – RSA, Diffie-Hellman (DH/DSS) • Função de Hash – MD 5, SHA • Gratuito • Versão internacional (www. pgpi. com)

PGP - Pretty Good Privacy • Chave pública – Disponibilizada em servidores (e no

PGP - Pretty Good Privacy • Chave pública – Disponibilizada em servidores (e no disco local) – Sem certificado, mas com assinatura de “avalista” – Verificação por “fingerprint” (hash) • Chave secreta – Protegida por algoritmo de chave única – Utiliza uma “passphrase” – Usuário deve fornecer “passphrase” toda vez que a chave secreta for necessária – Somente hash da “passphrase” é armazenado em disco – Chave secreta pode ser mantida temporariamente em memória para operações repetitivas e/ou freqüentes

PGP - Pretty Good Privacy • Operações – Cifragem para destinatário: cifra com algoritmo

PGP - Pretty Good Privacy • Operações – Cifragem para destinatário: cifra com algoritmo de chave única, sendo a chave um número randômico; chave é cifrada com chave pública do destinatário – Assinatura: calcula hash da mensagem e cifra hash com chave secreta do remetente – Cifragem com assinatura – Cifragem convencional: somente com algoritmo de chave única, usuário escolhe “passphrase” • Distribuição de chaves públicas – Por “cadeias de confiança”: Alice valida a chave pública de Bob assinando-a com sua chave secreta; todos que confiam em Alice passam a confiar em Bob

SET - Secure Electronic Transaction • • Baseado no SSL Exige autenticação de cliente

SET - Secure Electronic Transaction • • Baseado no SSL Exige autenticação de cliente e servidor Autenticação via Certificados Digitais Define procedimentos para iterações – Banco x Usuário – Usuário x Loja Eletrônica » Comunicação secura » Dados do cartão cifrados para Operadora do Cartão » Loja não tem acesso aos dados do cartão do usuário – Loja x Operadora de Cartão de Crédito