Segurança, Tor e Tails

Navegue com segurança: proteja seus metadados!

pad.sarava.org/p/ZBuT1kuHbl

% Segurança, Tor e Tails
% Ciclo de oficinas Diabolô 2012
% 10 de Novembro de 2012
- Pandoc – convertor de arquivos
- Próxima oficina: 24.novembro – 15h – GTNM

  • Verificar integridade da imagem ISO;
  • Criptografia Disco

O que é o Tor

  • Origem:
  • U.S. Naval Research Laboratory(www.onion-router.net/).
  • Proteção de comunicação governamental.
  • Visão geral:
  • Rede de túneis virtuais.
  • Melhoria da privacidade e segurança na internet para pessoas, grupos e
    outros aplicativos.
  • Tor faz com que todos na rede pareçam ser o mesmo.
  • Serviços ocultos.
    - se organiza em camadas de criptografia;
    - tem sua origem na proteção de informações da Marinha; mas o Tor que usamos hoje não eh mesmo do projeto inicial
    - rede de túneis digitais; com o objetivo de melhorar a privacidade e segurança na internet;
    - metadados possibilitam descobrir informações sem precisar necessariamente ter acesso ao conteúdo;
    - além de dar anonimidade, o tor permite fazer “serviços ocultos”; serviços só disponíveis para quem está na rede Tor;
    - importante usar, aliado ao Tor, uma criptografia ponto a ponto;

Quem usa Tor

  • Indivíduos para comunicação socialmente sensível.
  • Vazadores de informação.
  • Indymedia e EFF recomendam para manutenção das liberdades civis online.
  • Corporações que querem proteger segredos industriais.
  • Exército, marinha e aeronáutica (dos EUA).
  • Cidadãos de regimes anti-democrátios (Irã, Líbia, Síria, EUA), vídeo 27c3(youtu.be/GwMr8Xl7JMQ).

Por que precisamos do Tor

  • Proteções e dificuldades legais.
  • Endereços IP.
  • Análise de tráfego:
  • Objetivo: determinar quem está falando com quem.
  • Exemplo: e-commerce.
  • Exemplo: uso profissional da rede.
  • Metadados e cabeçalhos de pacotes.
  • Quem vê os metadados?
  • Ataques simples e sofisticados.
  • Criptografia do conteúdo não ajuda.

Rede anônima distribuída

A rede Tor depende de 2 tipos de nós:

  • Retransmissores (relays).
  • Nós de saída (exit nodes).

Retransmissores (relays)

  • São os nós intermediários do Tor.
  • A informação que passa por eles é criptografada.
  • Toda conexão usando a rede Tor passa por 3 relays. (no Tor é sempre 3. Pois 3 já é suficiente, mas 2 é brecha)
  • É fácil configurar seu computador para ser um relay.
  • Não incorre em problemas legais, enquanto o Tor não for ilegal.
  • E quanto aos problemas éticos? – outros comportamentos se aproveitam da anonimidade como pornografia infantil, etc.
    Com o vidalia você pode se tornar um relay;
    Há uma diferença entre ser um nó de saída e um relay – o nó de saída tem acesso às informações, caso não estejam criptografadas, ele não tem acesso à infomação de onde vem, mas sabe o que ela é;

Nós de saída (exit nodes)

  • São os nós de saída da rede.
  • A informação que sai por eles deve ser considerada pública:
  • Estão sujeitos a implicações legais.
  • Podem ver toda a comunicação se ela não estiver criptografada.
  • Deve-se sempre usar criptografia ponto a ponto.

Hidden services

Além de navegação anônima, é possível oferecer serviços dentro da rede Tor:

  • Ocultamento da localização de um serviço.
  • Novo top-level-domain: .onion
  • Endereços são hashes: kpvz7ki2v5agwt35.onion

Rede anônima distribuída

!Como Tor Funciona - 1(./img/htw1.jpg)

Rede anônima distribuída

!Como Tor Funciona - 2(./img/htw2.jpg)

Rede anônima distribuída

!Como Tor Funciona - 3(./img/htw3.jpg)

Rede anônima distribuída

!Camadas de criptografia(./img/layers.jpg)

Criptografia de chave pública

Um sistema criptográfico é uma quíntupla $(M, C, K, E, D)$, na qual:

  • $M$ é o conjunto das mensagens.
  • $C$ é o conjunto das cifras.
  • $K$ é o conjunto das chaves.
  • $E: M \times K \rightarrow C$ é um algoritmo de encriptação.
  • $D: C \times K \rightarrow M$ é um algoritmo de decriptação.

Criptografia de chave pública

Restrições sobre os conjuntos e funções do sistema:

  • $E$ e $D$ devem ser:
  • Bijetoras.
  • “Difíceis de computar” sem a posse das chaves.
  • Se $k_{pub}, k_{priv} \in K$ é um par de chaves do sistema, então:
  • $D(E(m,k_{pub}),k_{priv}) = m$.

Criptografia de chave pública

A rede mantém uma lista de nós com suas chaves públicas:
-—————————-+
| Nó | Chave Pública |
-——————————
| A | EFEB007F |
| B | 49594E83 |
| C | 054C4E4A |
| | |
. … . … .
| | |
| X | F6C1FC60 |
| Y | 77F6D1F8 |
| Z | AF069E80 |
-—————————-+

Descrição formal do protocolo

Cenário: $A$ quer enviar a mensagem $m$ para $B$ e possui sua chave pública
$k_B$.

  • Passos iniciais:
  • $A$ obtém a lista de nós da rede e suas chaves públicas.
  • $A$ escolhe 3 nós aleatoriamente (o último deve ser um nó de saída).

Descrição formal do protocolo

Suponha que $A$ tenha escolhido os nós $X$, $Y$ e $Z$ como retransmissores,
nessa ordem. Ela possui as chaves públicas $k_X$, $k_Y$ e $k_Z$.
Cada nó no meio do caminho não precisa saber:

  • O conteúdo da mensagem.
  • Quem são os outros nós envolvidos no processo, além dos que estão
    imediatamente antes e depois dele mesmo.
    Cada relay só precisa saber o quê deve entregar e para quem.

Descrição formal do protocolo

A mensagem fará o caminho $A \rightarrow X \rightarrow Y \rightarrow Z
\rightarrow B$.
Então, $A$ faz o seguinte:
1. $m_B \leftarrow E(m,k_B)$.
1. $m_Z \leftarrow E((m_B,B),k_Z)$.
1. $m_Y \leftarrow E((m_Z,Z),k_Y)$.
1. $m_X \leftarrow E((m_Y,Y),k_X)$.
1. Envia $m_X$ para $X$.

Descrição formal do protocolo

A mensagem que $A$ envia para a rede é, na verdade:

  • $m_X = E((E((E((E(m,k_B),B),k_Z),Z),k_Y),Y),k_X)$.

Descrição formal do protocolo

A mensagem faz o caminho $A \rightarrow X \rightarrow Y \rightarrow Z
\rightarrow B$:
1. $A$ envia $m_X$ para $X$.
1. $X$ recebe $m_X$, abre com $k_X$, vê $(m_Y,Y)$ e envia $m_Y$ para $Y$.
1. $Y$ recebe $m_Y$, abre com $k_Y$, vê $(m_Z,Z)$ e envia $m_Z$ para $Z$.
1. $Z$ recebe $m_Z$, abre com $k_Z$, vê $(m_B,B)$ e envia $m_B$ para $B$.
1. $B$ recebe $m_B$, abre e vê $m$.

Descrição formal do protocolo

As mensagens que transitam na rede, são:

  • $A \rightarrow X$: $m_X = E((E((E((E(m,k_B),B),k_Z),Z),k_Y),Y),k_X)$.
  • $X \rightarrow Y$: $m_Y = E((E((E(m,k_B),B),k_Z),Z),k_Y)$.
  • $Y \rightarrow Z$: $m_Z = E((E(m,k_B),B),k_Z)$.
  • $Z \rightarrow B$: $m_B = E(m,k_B)$.

Dificuldades para o anonimato

  • Tor foca somente na proteção dos metadados transportados.
    Coisas que fodem o rolê:
  • Dados pessoais vazam de diversas formas:
  • Cookies.
  • JavaScript.
  • Flash.
  • Java.
  • Dados do navegador. – BrowserFingerPrint
  • Dados deliberadamente informados pelo(a) usuário(a).
  • Se o atacante puder ver toda a rede pode usar análise estatística para
    tentar identificar alguém.
    Formas mais seguras de usar o Tor: usar um sistema meio isolado para acessar o Tor, evitando usar o seu navegador; Tor Browser Bundle ou usar o Tails; Lembre-se: Padrões de uso não são protegidos – fuja da sua rotina – usar o Tor para ações pontuais ou usar sempre?

Repetidores “ponte” (bridge relays)

- É um nó normal, não publicado na lista geral – se a lista for censura, os bridges se mantém
Se a obtenção da lista de relays é difícil, pode-se utilizar um “bridge”
relay:

  • São relays comuns, mas não são publicados no diretório.
  • Para obter uma lista com algumas bridges:
  • Acesse: bridges.torproject.org
  • Envie um email para `bridges@torproject.org` com a linha `get bridges`
    no corpo, a partir de um email yahoo ou gmail.
  • Existe um botão especial para
    - usar com o Vidalia – você pega os dois bridges e se comunica com o Vidalia

Como usar o Tor

Usuários finais:

Vidalia

!Tela principal do Vidalia(./img/vidalia.jpg)

Tor Browser Bundle

1. Baixe o TBB do site do Tor(www.torproject.org/download/download-ea....
1. Descomprima.
1. Execute.
1. Acesse:

Tails

  • Persistência.
    - gravar dados no próprio pen-drive em uma partição criptografada; para fazer isso o tails precisa ser gravado a partir de outro tails (?)
    - Se vc perder um pen drive só com o tails é uma coisa, outra coisa – bem problemática – é acharem um pendrive com dados pessoais sensíveis;
    - verificação de integridade da imagem do Tails (semana que vem) usando a rede de confiança do PGP (?)

% Criptografia, Tor e Tails II
% Grupo de estudos Diabolô
% 24/11/2012
pad.riseup.net/p/tor-tails-ii

Recapitulação

Tópicos abordados

  • Criptografia.
  • TOR.
  • Tails.o

Criptografia

  • Objetivos comuns:
  • Confidencialidade – idéia de armazenar um segredo que só pode ser visto por quem for permitido;
  • Integridade – verificar que um certo conjunto de dados não foi alterado;
  • Autenticação – assegurar a origem de alguma informação;

Chave criptográfica

  • Princípio de Kerckhoffs: um criptossistema deve ser seguro mesmo que tudo
    sobre o sistema seja de conhecimento público, com exceção da chave criptográfica – você exporta toda a segurança para a chave criptográfica;
    h2. Formas de criptografia
  • Simétrica.
  • Assimétrica (ou “de chave pública”).
  • Assinaturas digitais.
  • Funções de hash.
    h2. Criptografia simétrica

!Criptografia simétrica utiliza somente uma chave.(./img/simetrica.pdf) – ela é usada para abrir e fechar o sistema; problema: a cheve criptográfica tem que ser muiito grande;
h2. Criptografia assimétrica

!Criptografia assimétrica utiliza um par de chaves para cada usuário.(./img/assimetrica.pdf) – cada par de chaves está associada a um usuário; normalmente usada para troca de e-mails; garantir que só o detentor da chave privada vai conseguir ler a mensagem;
h2. Assinaturas criptográficas

!Pode-se utilizar a chave privada para assinar um documento.(./img/sig.pdf) – certificar que só quem tem a chave privada emitiu aquele e-mail; certificação
h2. Funções de Hash

!Funções de hash associam valores de tamanho fixo a entradas de qualquer
tamanho
(./img/hash.pdf)
h2. Utilização da criptografia de chave pública

  • Enigmail (plugin do Thunderbird)
  • Servidores de chaves
    h2. Criptografia de chave pública

Criptografia de chave pública provê:

  • Confidencialidade: cada chave pública possui apenas uma chave
    privada correspondente que abre os segredos fechados com ela.
  • Autenticação: utilização das chaves privadas para assinar
    documentos.
    Mas ainda falta uma peça:
  • Como garantir que um certo par de chaves pertence a uma pessoa?

Certificação e Infraestrutura de Chave Pública

Certificação

  • Certificação: Confirmação de certas características de um objeto, pessoa ou organização.
  • Certificado digital: documento eletrônico que utiliza assinaturas digitais para relacionar chaves públicas com identidade. – ex: sites de bancos;
  • Autoridades Certificadoras – empresas que garantem a autenticidade de um site (por exemplo)
  • Infraestrutura de chave pública: Um conjunto de hardware, software, pessoas, políticas e procedimentos necessário para criar, gerenciar, distribuir, usar, armazenar e revogar certificados digitais.
    Curiosidade do dia: Problema P vs NP

Usos de certificados digitais

  • Autenticação.
  • Integridade.
  • Não-repudiamento – idéia de que se uma pessoa assinou algo um dia, ela não pode vir dizer que não assinou depois;

Modelos de certificação

  • Autoridades certificadoras.
    - Burocratas: Autoridade Certificadora; Autoridade de Registro e Autoridade Verificadora e o “usuário” (aquele interessado em ter sua chave certificada)
    Usuário > (envia um pedido de certificado) Autoridade de Registro > verifica a identidade do usuário, fala um ok para a > Autoridade Certificadora > emite a certificação para o usuário > configura a assinatura certificada no site;
    > Autoridade Certificadora manda uma lista de certificados para a Autoridade Verificadora;
    Falhas: É um sistema centralizado – se as autoridades são corrompidas tudo que está abaixo fica comprometido;

Problemas do modelo de Autoridades Certificadoras

É um sistema centralizado: a subversão de uma CA compromete todo o sistema.

  • 2001: VeriSign gerou certificados para uma pessoa que dizia ser um
    representante da Microsoft.
  • 2011: Comodo Hacker obteve diversos certificados fraudulentos das
    empresas Comodo e DigiNotar. Existem evidências que os certificados tenham
    sido usados em ataques MiTM no Irã. – procurar manifesto
  • 2012: TrustWave gerou um certificado que permitia que a empresa
efetivamente monitorasse o conteúdo da comunicação com SSL.
  • Rede de confiança.

Autoridades Certificadoras

!Os atores de uma infraestrutura de chave pública com autoridades
certificadoras.
(./img/ca-0.pdf)
h2. Autoridades Certificadoras

!O primeiro passo do usuário é criar um par de chaves públicas.(./img/ca-1.pdf)
h2. Autoridades Certificadoras

!Usuário requisita a emissão de um certificado.(./img/ca-2.pdf)
h2. Autoridades Certificadoras

!A autoridade de registro confirma a identidade do usuário.(./img/ca-3.pdf)
h2. Autoridades Certificadoras

!A autoridade certificadora emite o certificado.(./img/ca-4.pdf)
h2. Autoridades Certificadoras

!O usuário assina um contrato com seu certificado.(./img/ca-5.pdf)
h2. Autoridades Certificadoras

!A autoridade certificadora publica os certificados emitidos.(./img/ca-6.pdf)
h2. Autoridades Certificadoras

!O contratante verifica a identidade do usuário com a autoridade verificadora.(./img/ca-7.pdf)
h2. Autoridades Certificadoras

!A autoridade verificadora confirma que o certificado é válido.(./img/ca-8.pdf)
h2. Programas para sistemas de Autoridades Certificadoras

  • OpenSSL.
  • xca.

CAcert

  • CAcert.org é uma Autoridade Certificadora operada pela comunidade que gera certificados para o público em geral de graça baseado em relações de comunidade;
  • Tem como objetivo promover consciência e educação sobre segurança de
    computadores através do uso da criptografia.
  • Links:
  • www.cacert.org
  • wiki.cacert.org
  • Certificados da CAcert não vem nos navegadores;

gpg e OpenPGP

  • PGP (Pretty Good Privacy):
  • Criação: 1991, Phil Zimmermann.
  • Criminalização: 1993, governo dos EUA.
  • Publicação do código fonte em livro: 1995. – ao ser sistematicamente perseguido pela polícia norte-americana e proíbido de passar seu programa na internet, Zimmermann publica um livro que podia ser comprado e as folhas scaneadas com reconhecimentos de caracteres;
  • OpenPGP: 1997, padrão aberto para criptografia PGP.
  • GPG (GNU Privacy Guard): 1999, implementação GPL do padrão OpenPGP.
  • O padrão OpenPGP permite a construção de um sistema de certificação baseado
    em uma rede de confiança.

Rede de confiança

  • Objetivo: estabelecer a autenticidade de uma associação entre uma chave
    pública e seu dono.
  • É um modelo descentralizado de confiança.
  • Existem diversas redes diferentes de confiança.

Ideia da Rede de confiança

“Conforme o tempo for passando, você vai acumular chaves de outras pessoas que você pode querer designar como introdutores confiáveis. Cada uma das outras pessoas vai escolher seus próprios introdutores confiáveis. E todo mundo vai gradualmente acumular e distribuir junto com sua chave a coleção de assinaturas certificantes de outras pessoas, com a esperança de que qualquer um que receba estas informações vá confiar em pelo menos uma ou duas das assinaturas. Isso vai causar a emergência de uma rede descentralizada e tolerante a falhas de confiança para todas as chaves públicas." (Confirmar a tradução!)

- Phil Zimmermann, 1992.

Festas de assinatura de chave

Festas de assinatura de chave são eventos nos quais as pessoas apresentam
suas chaves públicas OpenPGP para outras que, se estiverem confiantes de que a
chave realmente pertence à pessoa que a está apresentando, assinam
digitalmente um certificado contendo aquela chave pública.

Festas de assinatura de chave

!Flyer de festa de assinatura de chaves.(./img/cryptoparty1.jpg)
h2. Festas de assinatura de chave

!Flyer de festa de assinatura de chaves.(./img/cryptoparty2.jpg)

Problemas da Rede de Confiança

  • Depende dos usuários para atingir a confiança:
  • Quanta confiança é suficiente para assinar a chave de alguém?
  • Como novas pessoas podem entrar na rede de confiança?
  • O ``fenômeno do mundo pequeno" não é suficiente: deve-se confiar na
    honestidade e competência de alguém para assinar chaves.

Usando a rede de confiança

Secure APT

  • Debian utiliza criptografia para validar os pacotes baixados (desde 2005).
  • Todos os arquivos têm um hash associado.
  • A lista de hashes dos arquivos é assinada pelo desenvolvedor Debian.
  • O Debian possui um pacote chamado debian-keyring com as chaves de todos os
    desenvolvedores.
  • wiki.debian.org/SecureApt
    $ gpg —keyrin

Monkeysphere

``O objetivo do projeto Monkeysphere é extender a rede de confiança do
OpenPGP a novas áreas da internet para ajudar a identificar de forma segura os
servidores aos quais conectamos, bem como uns aos outros enquanto trabalhamos
online."

Monkeysphere

  • Na web: altera a verificação de autenticidade no navegador, trocando as
    autoridades certificadoras pela rede de confiança.
  • Para SSH: utiliza a rede de confiança para verificar a autenticidade de
    fingerprints de servidores.

Tor

Pontos fundamentais da rede Tor:

  • Anonimização da conexão.
  • Retransmissores e nós de saída.
  • Serviços ocultos.
  • Tem que ser usado de forma consciente para evitar vazamento de informações.

Tails

  • Tor + Debian Live.
  • É fundamental verificar a autenticidade de todo software baixado pela
    internet.
  • Existem diversas formas de verificar a autenticidade da imagem do Tails:
  • Calcular o hash localmente e verificar com o hash publicado.
  • Utilizar a rede de confiança.
    !Tails logo.(./img/tails.png)

Verificando a imagem do Tails usando a rede de confiança