É um mantra: criptografe. Vejo gente dizendo que faz. Também vejo uns dizendo que não fazem. Não se trata de quem está certo ou errado. O que quero discutir aqui é algo muito mais profundo: existe algum benefício real em sair criptografando tudo indiscriminadamente?

Já ouço vozes gritando, ferozes: "Lógico, seu animal! Tem que criptografar a porra toda em qualquer lugar!", elas vociferam.

Pois bem, vejamos se é assim mesmo. Vou analisar as restrições e fatos do mundo real acerca de ambientes computacionais estritamente controlados (o seu computador pessoal, por exemplo) e os que rodam em ambiente compartilhados e sem o seu controle direto.

Caso 1: debaixo do seu nariz

Seu computador pessoal. Seu. Só seu. Se é desktop ou portátil pouco importa. O fato é que ele é seu e só você põe a mão. A premissa aqui é: só você encosta no seu computador pessoal.

Neste computador ou dispositivo, você tem o disco inteiramente criptografado. Não é uma partição ou duas. É tudo. Para fazer isso você teve que criar uma chave, uma frase de segurança (senha) forte e está no comando de todos os detalhes de como isso foi feito.

Enquanto essa máquina está ligada (na tomada e na internet), os dados em memória estão trafegando felizes de um lado para outro (do disco para a CPU, da CPU para a rede). Neste universo que separa o dado criptografado guardado em seu disco para até a ponta do cabo de rede (ou antena do wifi), os dados em memória estão desprotegidos.

Suas senhas estão sem qualquer proteção criptográfica. Os dados mais sensíveis existem nesse universo da caixa do seu computador sem qualquer proteção desde o momento em que você o liga e digita ou carrega a senha para descriptografar o conteúdo do disco. Assim que o dado sair do disco, ele estará indefeso.

Mas tudo bem. Você controla a máquina. Não vai espetar aquele pendrive maroto cheio de rootkits, não vai conectar a máquina em uma rede pública, não vai escancarar nada e nem deixá-la sozinha com o seu prompt em #. Nesta circunstância, você está relativamente protegido.

Caso 2: debaixo da aba do seu chapéu

Seu servidor local. Na sua casa ou empresa, ele fica ali numa salinha ou canto, alegremente conectado à rede elétrica e, dependendo do caso, à internet.

Aqui também você controla o acesso à máquina. Você não dá a chave de casa ou do escritório a qualquer um, certo? Só você e (poucas) pessoas de sua integral confiança possuem acesso a ela.

Quase as mesmas premissas do caso 1 valem aqui, exceto uma: se não é só você que tem acesso a esse servidor, ele é tão confiável quanto a sua própria confiança nos outros que você autoriza a tocarem nela. Não confie cegamente em ninguém além de você mesmo.

Caso 3: no datacenter, só a sua chave do rack

Esse servidor fica em um ambiente de acesso controlado, mas você não é o porteiro. Outras pessoas acessam esse datacenter. O rack é seu e só você tem a chave dele.

Essa máquina é tão segura quanto o nível de confiança no fornecedor do datacenter e instrumentos legais que você tem para utilizar.

Caso 4: no datacenter, a chave do rack é fornecida

Em ambientes onde o datacenter é compartilhado, é muito comum que você contrate um espaço que pode ser um cage dedicado com vários racks, um rack inteiro privado dentro de um cage compartilhado, um rack fora de um cage, um rack compartilhado etc.

Em todos esses cenários, você não controla o acesso ao datacenter e nem o acesso ao rack onde o seu servidor está. Neste caso, não há a menor garantia de segurança e integridade física do equipamento enquanto você não está lá vendo o que acontece.

O nível de segurança desta máquina é igual ao caso 3.

Caso 5: nuvem, e nem você entra no datacenter

Por fim, chegamos ao caso da nuvem. Muitas vezes você não sabe sequer onde ele está geograficamente instalado. Em todos os casos o seu acesso ao ambiente é proibido.

Só quem tem acesso físico às máquinas é o pessoal que trabalha para o serviço na nuvem. Se por um acaso você descobrir onde fica o datacenter e, num caso raríssimo, conseguir acesso ao ambiente, não conseguirá apontar para quais máquinas exatamente estarão rodando suas aplicações ou armazenando os seus dados. E nem o staff conseguirá fazer isso de bate-pronto.

O nível de confiança desse ambiente é o...

Compliance

Gringo adora dar nome bonito pra coisa feia. O mundo é do marketing afinal. Compliance é justamente isso: nome bonito.

Compliance é um conceito jurídico e de mercado para dizer isso: agências reguladoras cagam as regras de acordo com múltiplos interesses (de governos e do mercado somente), o fornecedor do datacenter implementa as regras, auditores fiscalizam se as regras foram seguidas, que por sua vez informam às agências que está tudo ok com o fornecedor, que por fim emite um certificado.

Este certificado diz apenas uma coisa: a titular cumpre regras. Se as regras são boas ou não, não há certificado que dê conta disso, até porque se fosse bom não era regra.

Dou como exemplo um único ponto do marco civil da internet no Brasil, um primor de regra mal feita: o 'puliça' pode pedir a retenção de dados a qualquer tempo, por tempo indeterminado, sem juiz algum no meio.

E é chegado o momento de definir de qual lado eu estou: eu estou do meu lado. Os meus dados são meus e não concedo acesso a eles a ninguém. Caguei quatro baldes e meio pra governo, lei, 'puliça' e bandido, até porquê todos são da mesma laia, mas com nomes diferentes para organizar o puteiro.

Se você me contrata para prestar um serviço relativo aos seus dados, os seus dados continuarão sendo seus e eu os trato como meus no que tange a privacidade e indisponibilidade dos dados a qualquer um que não seja você ou o terceiro que você autorize expressamente.

Mas, pelas circunstâncias já expostas anteriormente, eu só posso exercitar o meu lado em servidores que eu controlo. Nos demais, não há alternativa que não seja aderir ao regulamento, 'being compliant with that shit'.

Questão de custo

Em um ambiente que você não controla, criar uma metodologia mirabolante para criptografar é, na melhor das hipóteses, burrice.

Existem muitos métodos desses por aí que vão desde 'data in motion' até 'data at rest'. Tem gente gastando muita pestana com isso. O melhor e mais elaborado deles que eu vi até o momento é esse.

Agora me diga: por qual motivo eu vou ter esse trabalhão todo e arcar com o custo da infraestrutura e do overhead de processamento requeridos para a descriptografia, se a partir do momento que a chave é carregada em memória ela estará limpinha para quem quer que tenha acesso à máquina física?

Neste caso, eu sou 'compliant' desde criancinha. A adesão as regras criam uma cadeia que o mercado entende. O Gartner diz X é bom porque 'pode ter bons níveis de segurança e adere às normas Y, Z e P'. O CIO lê isso e pede o X. Eu entrego o X. Simples. No máximo eu pergunto ao CIO se ele pensou direitinho ou está apenas 'seguindo o Gartner', mas só.

Se a preciosa informação do CIO vaza, ele me culpa. Eu culpo o X. O X diz que adere as regras Y, Z e P.

Daí pra frente é limbo... se virar processo e alguém acusar o Gartner ou as agências que fizeram as regras de merda, provar que a culpa é desses dois é relativamente fácil, mas juiz nenhum no mundo vai acatar a acusação porque simplesmente não havia contrato com nenhuma dessas partes. O CIO perde o emprego e eu perco o contrato. Também é simples e tudo 'compliant'.

Todos os meus clientes, e não é exclusividade deles, adoram quando a fatura chega no final do mês e o preço do serviço é baratinho. Isso só é possível porque os recursos são usados com eficiência e a segurança está no nível máximo permitido pela cadeia de 'compliance'.

Já houveram clientes que queriam a garantia da segurança dos dados. Mas nunca houve um, unzinho sequer que topou pagar o custo disso. Estamos falando de aumentar o custo mensal em múltiplas dezenas de magnitude, ou mesmo centenas, para ter um serviço estritamente controlado.

Este é o tipo do serviço onde aquele relatório de caixa dois das campanhas de todos os partidos políticos, da extrema esquerda à extrema direta, pode ser armazenado em segurança junto com aquela certeza de que o dono não será a próxima atração da faixa policial do Fantástico ou capa de Veja.

Neste caso, sai muito mais barato guardar o relatório no cofre de casa. 100 entre 100 clientes concordam com isso. E como eu podeira discordar? Sai mesmo.

Fodeu?

Claro que não! O problema é resolvido com inteligência (relativamente fácil) e hábito (esculachadamente difícil).

A inteligência entra na arquitetura da informação. O engenheiro deve avaliar com profundidade as diversas categorias de conteúdo (ultra secreto, secreto, restrito e público, por exemplo).

A partir disso é necessário definir os processos de transito, armazenamento e recuperação da informação de cada categoria. Coisas simples como 'ultra secreto JAMAIS sai daqui ou passa perto de um scanner, deixar o celular na portaria, revista íntima completa com colonoscopia, só quem pode ver é o dono e quem esteja com o dono, autorizado por ele, por escrito, perante o guarda, a secretária e o CFO ao mesmo tempo'.

A partir daí entra o hábito. Num paisinho de merda, de gentinha de merda (salve Ed Motta) e que adora dar jeitinho em tudo, um procedimento claro é prato cheio pra ser quebrado. E por isso o hábito é a parte mais difícil em tudo que envolve tecnologia e segurança.

Para finalizar, deixo as sábias palavras de um cara chamado Henrik Gulbrandsen, desenvolvedor de um utilitário chamado encroot, cujo único propósito é criptograpfar partições root em instâncias EC2:

Of course, the hardware is still physically beyond your control, so it is up to you to decide whether encryption adds any real value.

Resumiu tudo.