Convergence e Monkeysphere: chaves para gestão SSL distribuída - Co0l - Ed. 2

Duas alternativas viáveis para substituir ou complementar o atual cartel das Autoridades Certificadoras utilizadas na pilha SSL/TLS.

Propósito

De 2008 até o momento, foram reveladas falhas fundamentais em vários protocolos básicos da internet:

Estamos falando principalmente de falhas de especificação e não de implementação ou DoS, o que é muito mais difícil de mitigar.

SSL: Breve histórico

Pontos principais de um protocolo seguro:

  1. Sigilo: a informação não será lida por terceiros.
  2. Integridade: a informação não será adulterada.
  3. Autenticidade: os pontos da comunicação serão verificados.
  4. Disponibilidade: proteção a DoS, etc.
  5. Anonimato.

SSL: Breve histórico (cont)

No caso do SSL/TLS:

  1. Sigilo:
    • Criptografia usando chaves assimétricas.
    • Troca de chaves: RSA or Diffie-Hellman (usem DHE!)
  2. Integridade: MAC Digest (hash)
  3. Autenticidade: Certificados

SSL

Autoridades certificadoras

Netcraft (2009)

Netcraft - Linha do Tempo Netcraft - Fatias do Bolo

Como me torno uma autoridade certificadora?

Depende dos processos de inclusão

Quanto mais upstream for a inclusão, maior a ubiquidade. Certificados não-instalados são considerados como autoassinados.

CA: Procedimentos

CA: Em geral

Obtenção de um certificado assinado

           ________ 
          |        |
       ___|   CA   |--.
      /   |________|   \ 2
     ^        |         : 
   1 |        | 3       v   
 ____|____    v     __________
|         |   |    |          |
|  Admin  |__/     | Servidor |
|_________|        |__________|

Situação atual

The authenticity of host 'foo.example.org (192.0.2.3)' can't be established.
RSA key fingerprint is 17:f4:2b:22:90:d4:98:9a:a2:c5:95:4e:4a:89:be:90.
Are you sure you want to continue connecting (yes/no)?

Evidências de cooperação

Casos reais

O que é preciso para interceptar conexão SSL?

  1. Certificado falso.

  2. Meios efetivos de um MITM:

    • DNS poisoning apontando requisições para servidores maliciosos.
    • Redirecionamento de tráfego via BGP.
    • Acesso físico à rede.

Conexão SSL

 _______________ 
|               |
|   CA (local)  |
|_______________|
     |
     ^ 3
 ____|____       2        __________
|         |------<-------|          |
| Cliente |              | Servidor |
|_________|------>-------|__________|
                 1  

MITM

           ________ 
          |        |
       .->|  MITM  |-<.
      /   |________|   \
     |                  |
     v                  v 
 ____|____          ____|_____
|         |        |          |
| Cliente |---X----| Servidor |
|_________|        |__________|

Mas o quanto disso é factível?

Pequenos provedores até grandes porções da internet podem ser afetados. O ataque é o mesmo, variando apenas a capacidade do atacante.

Mitigação

Recentemente foram propostas várias formas de mitigação:

Alternativas?

http://convergence.io

Funcionamento

 _______________     5 cert
|               |----<----.
| Notary server |          \
|_______________|---->---.  \
  |  |               4    \  \
6 v  ^ 3 h+fp              \  \
 _|__|____        2 cert  __\__\____
|         |------<-------|          |
| Cliente |              | Servidor |
|_________|------>-------|__________|
                 1  

Constelação

                     ____      
            .-----<-|    | 
            |  .-->-| N1 |<
 ___________|_|_    |____| \
|               |    ____   \
| Notary bounce |->-|    |   \
|_______________|-<-| N2 |<.  \
      |  |          |____|  \  \
      v  ^            .      \  \
      |  |            .       \  \
      |  |            .        \  \
      v  ^           ____       \  \
      |  |          |    |       \  \
      |  |          | Nn |        \  .
      v  ^          |____|-<-->.   . |
   ___|__|__                   _\__v_v___
  |         |------<----------|          |
  | Cliente |                 | Servidor |
  |_________|------>----------|__________|

Convergence: Problemas

http://web.monkeysphere.info

I - Estabelecimento de confiança entre pessoas

Usuários e/ou admins trocam seus fingerprints OpenPGP.

 ________       ________
|        |-->--|        |
| Admin  |     |  User  |
|________|--<--|________|

II - Assinatura de chave do servidor

 ___________
|           |
| Keyserver | 
|___________|
     |
     ^ 3
 ____|____       2        __________
|         |------<-------|          |
|  Admin  |              | Servidor |
|_________|------>-------|__________|
                 1  

III - Conexão SSL

 ___________
|           |
| Keyserver | 
|___________|
     |
     ^ 3
 ____|____       2        __________
|         |------<-------|          |
|   User  |              | Servidor |
|_________|------>-------|__________|
                 1  

Web of Trust

Integração

Perspectivas

Demonstrações

Perguntas?

:)