A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas criptográficos

Apresentações semelhantes


Apresentação em tema: "Sistemas criptográficos"— Transcrição da apresentação:

1 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

2 IP x IPsec IPv4: falta de privacidade e autenticação fraca
IPv6: dados cifrados e integridade de dados (“autenticação”) Problema do IPv6: incompatibilidade com IPv4 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

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

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

5 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

6 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)

7 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 Dados (hash) de autenticação (usa-se HMAC)

8 IPsec - protocolo AH AH - HMAC H: função de hash (MD5, SHA)
K: chave da associação M: dados a serem autenticados HMAC(M,K) = H(K xor 5C..5C, H(K xor ,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

9 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)

10 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

11 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

12 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)

13 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

14 SSL - Passos 1. Cliente envia ClientHello
2. Servidor envia ServerHello 3. Servidor envia seu certificado (opcional) 4. Servidor envia ServerKeyExchange 5. Servidor envia CertificateRequest (opcional) 6. Cliente envia seu certificado (opcional) 7. Cliente envia ClientKeyExchange 8. Cliente envia CertificateVerify (opcional) 9. Cliente e Servidor enviam ChangeCipherSpec 10. Cliente e Servidor enviam Finished

15 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)

16 SSL - ClientHello Campos da Mensagem: - Protocol Version
- Random (Timestamp, 32 bits e Randômico, 28 bytes) - SessionID (vazio - nova sessão; não vazio - continuação de sessão anterior; 0 - força nova sessão) - CipherSuite (lista de identificadores de algoritmos de criptografia que o cliente suporta) - CompressionMethod (lista de identificadores de algoritmos de compressão que o cliente suporta) Após enviar ClientHello, o cliente espera por ServerHello

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

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

19 SSL - Certificate Request
Se o servidor deseja autenticar o cliente, o servidor envia um CertificateRequest 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

20 SSL - ClientKeyExchange
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

21 SSL - CertificateVerify
Se o cliente tem certificado, ele envia o hash de todas as mensagens trocadas até o momento, tanto em MD5 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

22 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)

23 SSL - ChangeCipherSpec
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

24 SSL - Certificado Segue o padrão X509: - 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 - Chave Pública - Assinatura (do emissor do Certificado)

25 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

26 SSL - Comunicação Cifrada
1. Cliente envia ClientHello 2. Servidor envia ServerHello 3. Servidor envia ServerKeyExchange (chave pública) 4. Servidor envia ServerHelloDone 5. Cliente envia ClientKeyExchange (chave de sessão) 6. Cliente envia ChangeCipherSpec 7. Cliente envia Finished 8. Servidor envia ChangeCipherSpec 9. Servidor envia Finished

27 SSL - Autenticação do Servidor
1. Cliente envia ClientHello 2. Servidor envia ServerHello 3. Servidor envia Certificate (chave pública assinada por uma Autoridade Certificadora) 4. Servidor envia ServerHelloDone 5. Cliente envia ClientKeyExchange (chave de sessão, cifrada com a chave pública do passo 3) 6. Cliente envia ChangeCipherSpec 7. Cliente envia Finished 8. Servidor envia ChangeCipherSpec 9. Servidor envia Finished

28 SSL - Autenticação e Cifragem
1. Cliente envia ClientHello 2. Servidor envia ServerHello 3. Servidor envia Certificate (chave pública - só de assinatura - assinada por Autoridade Certificadora) 4.Servidor envia ServerKeyExchange (chave pública, assinada pela chave do passo 3) 5. Servidor envia ServerHelloDone 6. Cliente envia ClientKeyExchange (chave de sessão, cifrada com a chave do passo 4) 7. Cliente envia ChangeCipherSpec 8. Cliente envia Finished 9. Servidor envia ChangeCipherSpec 10. Servidor envia Finished

29 SSL - Autenticação do Cliente
1. Cliente envia ClientHello 2. Servidor envia ServerHello 3. Servidor envia Certificate (chave pública assinada por Autoridade Certificadora) 4. Servidor envia CertificateRequest 5. Servidor envia ServerHelloDone 6. Cliente envia Certificate (chave pública assinada por Autoridade Certificadora) 7. Cliente envia ClientKeyExchange (chave de sessão, cifrada com a chave do passo 3) 8. Cliente envia CertificateVerifiy (hash das mensagens, cifrada com a chave secreta do passo 6) 9. Cliente envia ChangeCipherSpec 10. Cliente envia Finished 11. Servidor envia ChangeCipherSpec 12. Servidor envia Finished

30 SSL - Continuação de sessão
1. Cliente envia ClientHello (com ID de sessão anterior) 2. Servidor envia ServerHello (aceitando ID) 3. Servidor envia ChangeCipherSpec 4. Servidor envia Finished 5. Cliente envia ChangeCipherSpec 6. Cliente envia Finished - Se o Servidor não aceita reiniciar, ele responde com ID = 0, forçando uma nova sessão

31 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

32 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

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

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

35 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, one-time password

36 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

37 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

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

39 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 MD5, SHA Gratuito Versão internacional (

40 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

41 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

42 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


Carregar ppt "Sistemas criptográficos"

Apresentações semelhantes


Anúncios Google