Colher agora, decifrar depois
Alguém está gravando o seu tráfego HTTPS. Essa pessoa não consegue ler nada. Ela guarda mesmo assim.
Essa é a ameaça inteira, e repare no que ela não exige: um computador quântico funcionando. Ela exige disco barato e paciência. Capture o texto cifrado hoje, guarde e decifre no dia em que existir uma máquina capaz. O ataque leva o nome desse formato: colher agora, decifrar depois.
É por isso que o problema é do presente. A máquina não chegou. A gravação já está acontecendo.
O único parágrafo de física
A criptografia de chave pública se apoia em problemas baratos num sentido e brutais no outro. Multiplicar dois primos grandes é instantâneo; fatorar o produto de volta não é. Multiplicar um ponto de uma curva elíptica por um escalar é instantâneo; recuperar o escalar não é. Um computador clássico atacando uma chave RSA de 2048 bits fica sem universo antes de ficar sem candidatos. Uma máquina quântica grande o bastante, rodando um algoritmo que Peter Shor publicou em 1994, transforma os dois problemas em trabalho que termina. É toda a física de que este curso precisa. Como a máquina chega lá é um assunto fascinante, e não é seu. Quais dos seus dados ela lê quando chegar é bem seu.
Três números
A pergunta útil não é "quando a máquina chega?" É uma soma e uma comparação, e você consegue fazê-las hoje com números que já conhece. Isso costuma ser chamado de desigualdade de Mosca, por causa do pesquisador que a formulou.
Pegue por quanto tempo um dado precisa continuar secreto. Pegue quanto tempo a sua migração vai levar. Some. Se a soma cair depois do dia em que existir uma máquina capaz, aquele dado já está exposto, porque a gravação acontece agora e ninguém desgrava nada.
O primeiro número é o que os times nunca anotam.
| Dado | Por quanto tempo precisa ficar secreto |
|---|---|
| Um cookie de sessão | Minutos |
| Um link de redefinição de senha | Uma hora |
| Um token de acesso de API | Dias |
| Um registro de pagamento de cliente | Anos, por regulação |
| Um prontuário ou documento de identidade | Uma vida de trabalho |
| Qualquer coisa sob retenção legal | Décadas |
Leia essa tabela como ranking de risco e o pânico sai do assunto. Um cookie de sessão capturado hoje não vale nada para um atacante em 2040, porque a sessão acabou antes do almoço. Um documento de identidade guardado com exigência de sigilo por trinta anos é outra história. Se ele foi cifrado com uma chave trocada por um canal que alguém gravou, ele está exposto.
Quase tudo o que uma aplicação web transmite tem vida curta. Uma parte não tem. A migração é sobre essa segunda pilha.
O reflexo que este curso vem corrigir
Pergunte a um time Rails se ele está exposto e você recebe uma de duas respostas, ambas erradas do mesmo jeito.
"Usamos criptografia, então estamos quebrados" é amplo demais. "Fazemos hash de senha com BCrypt, então estamos bem" é estreito demais. Essa resposta responde a uma pergunta que ninguém fez, porque o hash de senha não é o que está sob ameaça.
A verdade fica no meio, e é específica o bastante para você agir. A lição 2 traça a linha: a chave pública é a vítima, enquanto a cifragem simétrica e o hash sobrevivem com parâmetros maiores. A lição 4 percorre esta aplicação e diz qual parte dela cai de que lado. A resposta para este código é mais estreita do que a maioria espera, e entender o porquê vale mais que qualquer nome de algoritmo.
Um aviso sobre o que isto é
Isto é orientação de engenharia. Não é consultoria de segurança para o seu sistema específico, e não é orientação jurídica nem de conformidade. Dados regulados, obrigações contratuais e exigências nacionais variam. Eles mudam mais rápido que um curso, e quem decide são pessoas com mandato para isso. Tire daqui o formato do raciocínio; tire os prazos do seu jurídico e do seu regulador.
O que este curso cobre
A lição 2 separa o que quebra do que sobrevive. É a distinção que mais sustenta o assunto, e a que mais se erra.
A lição 3 cobre os padrões. Ela nomeia os algoritmos escolhidos e os números sob os quais foram publicados, diz o que ainda é rascunho e mostra como conferir o estado dessa lista em vez de confiar num curso escrito meses atrás.
A lição 4 percorre uma aplicação Rails e marca a exposição com honestidade: a parte do seu proxy, a parte da sua plataforma e a parte pequena do seu próprio código.
A lição 5 é a entrega principal: agilidade criptográfica. Você vai migrar mais de uma vez, então o sistema precisa trocar de algoritmo sem reescrita.
A lição 6 é prazo e postura, incluindo como é a inação deliberada e onde ela deixa de ser deliberada.
A lição 7 junta tudo num plano que você levaria a uma revisão sem prometer demais.
Comece pela linha entre quebrado e apenas machucado, porque toda decisão depois dela depende de onde essa linha cai.
Continue com a aula 2
O que quebra e o que sobrevive
Separa a criptografia de chave pública, que cai, da cifragem simétrica e do hash, que sobrevivem com parâmetros maiores.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.