A criptografia está se tornando uma solução rápida para o desenvolvedor, seja qual for a privacidade de dados ou a preocupação com a segurança. Com medo de colocar seu cartão de crédito em um formulário web? Não se preocupe. Estamos usando criptografia. Não tem certeza se um site é autêntico? A criptografia está de volta. A boa notícia é que os algoritmos de criptografia funcionam algumas vezes. A matemática oferece alguma proteção contra a espionagem e uma base sólida para a confiança.
Mas toda a magia tem seus limites e a coisa complicada com a criptografia é que pode ser impossível ter certeza de onde esses limites estão. A matemática pode ser tão inspiradora que só podemos nos sentar e olhar boaquiaberto. É fácil se perder e apenas se resignar a confiar que tudo dará certo quando os cálculos forem muito complexos.
No final, com criptografia, o melhor que podemos fazer é gerenciar nossas expectativas e nossa compreensão. Não podemos viver sem criptografia, mas não podemos presumir que funcionará com a mesma facilidade ou confiabilidade que um interruptor de luz.
Então, aqui estão uma dúzia de segredos obscuros da criptografia para se ter em mente ao procurar soluções para problemas intratáveis em sua arquitetura de informações.
Nós não entendemos isso
A maior parte do poder da criptografia depende do fato de não sabermos o suficiente sobre a matemática envolvida para revertê-la. Sabemos como calcular as funções, mas não como invertê-las. Podemos multiplicar e multiplicar números grandes, mas não podemos calcular o logaritmo. Em outras palavras, não sabemos a matemática de trás para frente, só a conhecemos somente pela frente. Quando um grupo de pessoas inteligentes não consegue descobrir como retroceder, ficamos por aqui, damos de ombros e abraçamos os algoritmos. É o melhor que podemos fazer. O algoritmo mais comumente implementado depende do fato de que ninguém descobriu publicamente qualquer maneira de atacá-los.
Nossas estimativas são apenas estimativas
Alguns matemáticos encontraram algoritmos básicos para atacar as funções de criptografia conhecidas, mas eles são lentos demais para quebrar a criptografia com chaves reais. Os algoritmos funcionam apenas com números pequenos e sua velocidade aumenta exponencialmente com o tamanho do problema. Esses algoritmos geram todas essas estimativas surpreendentes sobre como seriam necessários bilhões de quatrilhões de quintilhões de bilhões de anos para serem quebrados. Isso soa tranquilizador, mas é como um golfista iniciante dizendo que pode levar bilhões de anos no golfe para acertar um buraco na primeira. Isso pode ser verdade para o iniciante, mas não para os profissionais que os atingem regularmente. No mundo da criptografia, somos todos iniciantes lançando estimativas.
As provas são parciais
Alguns dos cientistas e matemáticos mais dedicados trabalham duro para fornecer uma "prova” de seu algoritmo. Essas cadeias de etapas lógicas bem avaliadas nos ajudam a entender a força do algoritmo de criptografia, mas isso não é a mesma coisa que garantir que seus dados estarão seguros. As provas apenas iluminam algum trabalho, e sempre há monstros escondidos na escuridão. Na maioria dos casos (exceto códigos de uso único), as provas não cobrem tudo e dependem de suposições sobre como alguns problemas são realmente difíceis. Isso pode ser verdade no passado, mas isso não é garantia para o futuro.
Nós não podemos medir a força
As equipes de vendas de tecnologia de segurança gostam de usar termos como "grau bancário” ou misturar números como 1024 bits, mas a realidade é que não temos uma boa maneira de fazer mais do que adivinhar a força dos algoritmos. O dobro de 2048 bits é igual a 1024 bits? Ou a diferença é astronômica?
A pesquisa só começa a arranhar a superfície. Alguns dos ataques funcionam apenas em uma faixa estreita de mensagens e apenas quando um milhão de estrelas se alinham. Outros ataques tornam tudo acessível. Podemos ver como esses ataques funcionam no laboratório, mas é difícil estender a ação até quanto eles podem ameaçar nossos dados.
O futuro da computação é um mistério
Ninguém sabe se computadores quânticos serão construídos com energia suficiente para lidar com problemas significativos, mas sabemos que as pessoas estão tentando e divulgando comunicados à imprensa sobre como fazer progressos. Sabemos também que, se as máquinas quânticas aparecerem, alguns algoritmos de criptografia serão quebrados.
Muitos cientistas de criptografia estão trabalhando duro na construção de novos algoritmos capazes de resistir a computadores quânticos, mas ninguém sabe realmente a extensão dos poderes de um computador quântico. Será limitado aos algoritmos conhecidos? Ou alguém encontrará outra maneira de usar o computador quântico para quebrar todos os novos algoritmos.
Dados criptografados não são dados seguros
Às vezes, a criptografia funciona muito bem. Ele bloqueia os dados dentro de um cofre matemático e, de alguma forma, a chave desaparece. É fácil fazer backup de dados criptografados, mas é um desafio fazer backup de chaves e senhas. Se você for muito cuidadoso, poderá acabar bloqueando-se dos próprios dados. Se você morrer inesperadamente, ninguém poderá descobrir a senha ou a chave que falta. Dados criptografados não são os mesmos que dados seguros. Dados criptografados são frágeis.
A criptografia é fácil. O gerenciamento de chaves é difícil
Alguns padrões de criptografia são bem confiáveis porque foram desenvolvidos por meio de um processo árduo de vários anos. É fácil conseguir um de uma biblioteca de código aberto e ter certeza de que a criptografia será segura. A parte difícil, no entanto, é distribuir as chaves entre todos que precisam delas. Sistemas simétricos como o AES exigem que a chave viaje separadamente por meio de um canal seguro, mas se tivéssemos um canal seguro, não precisaríamos de criptografia. Se planejarmos com antecedência, geralmente podemos obter as chaves certas para as pessoas certas.
Os sistemas de chave pública tornaram mais fácil para as pessoas configurar um caminho seguro sem se reunir antecipadamente, mas elas têm seus próprios problemas. Como você sabe que está usando a chave pública certa para uma pessoa? A autoridade de certificação é confiável? Ainda há necessidade de voto de confiança no sistema.
O código de suporte é frágil
A distribuição de chaves não é a única faceta que cria pesadelos para os desenvolvedores de criptografia. Muitas partes do algoritmo podem vazar informações, às vezes deliberadamente. É comum, por exemplo, misturar números aleatórios com uma mensagem, mas encontrar esses números aleatórios pode ser complicado. Alguns dos chamados geradores de números aleatórios têm falhas, que os tornam longe de serem aleatórios, e sua previsibilidade pode ser usada para adivinhar a chave e quebrar a mensagem. O algoritmo de criptografia é apenas parte do jogo.
Hardware compartilhado é perigoso
Ultimamente mais e mais códigos estão sendo executados na nuvem devido ao custo e flexibilidade. O problema é que ninguém sabe o que os vizinhos que estão compartilhando sua máquina estão fazendo. Existem inúmeras vulnerabilidades que permitem que um software espie a memória de outra peça no mesmo computador. Os desenvolvedores do sistema operacional tentam pará-lo, mas novas falhas como o RowHammer aparecem com frequência. Parece que há dezenas de possíveis ataques a computadores na nuvem e estamos apenas começando a perceber o quanto precisamos nos preocupar com isso.
É impossível detectar um hardware invadido
Você já viu os transistores em seus chips? Você já se certificou de que eles são leais a você, o desenvolvedor de software? Alguns hackers perspicazes fizeram engenharia reversa de um chip e descobriram que ele tinha um modo de deus oculto e não documentado, o qual era acionado por uma sequência aleatória de bytes. Quem os colocou ali? Ninguém tem pressa para levar o crédito.
Assinaturas digitais apenas mudam a responsabilidade
A matemática por trás de alguns dos melhores algoritmos de assinatura digital é encantadora e hipnotizante. Somente o proprietário da chave privada pode executar os cálculos que produzem uma assinatura digital legítima. Isso soa muito, muito melhor do que uma assinatura manuscrita, que geralmente pode ser forjada por um aluno da quarta série que precisa de um pai para assinar um teste ruim.
Mas será mesmo? As chaves privadas não estão vinculadas à pessoas. Uma assinatura digital só pode ser produzida por alguém com acesso à chave privada. Esse pode ser o dono legítimo, ou pode ser alguém que invadiu o computador ou usou uma senha ou inseriu um registrador de chaves ou encontrou uma maneira de obter a chave. Se a sua chave está no seu computador e o seu computador está na rede, poderia ser qualquer pessoa no mundo que também estivesse conectada à rede.
Os cientistas estão se esforçando para construir hardware seguro e soluções fortes, mas eles apenas dificultam o trabalho dos invasores. A matemática maravilhosa é facilmente minada por fragilidades comuns.
Nem todos falam
Alguns matemáticos e especialistas em criptografia gostam de falar publicamente sobre a tecnologia. Outros não dizem nada. Nós nem sabemos quantos silenciosos estão por aí.
É realmente um milagre que a sociedade tenha desenvolvido tanto conhecimento em códigos e cifras quanto nós. Quanto mais usamos a tecnologia, no entanto, maior o incentivo para ficar inquieto sobre qualquer fraqueza. Quando dinheiro real e segredos reais estão fluindo através dos tubos blindados de criptografia da internet, bem, o conhecimento sobre qualquer rachadura na armadura se torna mais valioso. Em outras palavras, quanto mais usamos criptografia, mais profundos e obscuros se tornam os segredos.
Mas toda a magia tem seus limites e a coisa complicada com a criptografia é que pode ser impossível ter certeza de onde esses limites estão. A matemática pode ser tão inspiradora que só podemos nos sentar e olhar boaquiaberto. É fácil se perder e apenas se resignar a confiar que tudo dará certo quando os cálculos forem muito complexos.
No final, com criptografia, o melhor que podemos fazer é gerenciar nossas expectativas e nossa compreensão. Não podemos viver sem criptografia, mas não podemos presumir que funcionará com a mesma facilidade ou confiabilidade que um interruptor de luz.
Então, aqui estão uma dúzia de segredos obscuros da criptografia para se ter em mente ao procurar soluções para problemas intratáveis em sua arquitetura de informações.
Nós não entendemos isso
A maior parte do poder da criptografia depende do fato de não sabermos o suficiente sobre a matemática envolvida para revertê-la. Sabemos como calcular as funções, mas não como invertê-las. Podemos multiplicar e multiplicar números grandes, mas não podemos calcular o logaritmo. Em outras palavras, não sabemos a matemática de trás para frente, só a conhecemos somente pela frente. Quando um grupo de pessoas inteligentes não consegue descobrir como retroceder, ficamos por aqui, damos de ombros e abraçamos os algoritmos. É o melhor que podemos fazer. O algoritmo mais comumente implementado depende do fato de que ninguém descobriu publicamente qualquer maneira de atacá-los.
Nossas estimativas são apenas estimativas
Alguns matemáticos encontraram algoritmos básicos para atacar as funções de criptografia conhecidas, mas eles são lentos demais para quebrar a criptografia com chaves reais. Os algoritmos funcionam apenas com números pequenos e sua velocidade aumenta exponencialmente com o tamanho do problema. Esses algoritmos geram todas essas estimativas surpreendentes sobre como seriam necessários bilhões de quatrilhões de quintilhões de bilhões de anos para serem quebrados. Isso soa tranquilizador, mas é como um golfista iniciante dizendo que pode levar bilhões de anos no golfe para acertar um buraco na primeira. Isso pode ser verdade para o iniciante, mas não para os profissionais que os atingem regularmente. No mundo da criptografia, somos todos iniciantes lançando estimativas.
As provas são parciais
Alguns dos cientistas e matemáticos mais dedicados trabalham duro para fornecer uma "prova” de seu algoritmo. Essas cadeias de etapas lógicas bem avaliadas nos ajudam a entender a força do algoritmo de criptografia, mas isso não é a mesma coisa que garantir que seus dados estarão seguros. As provas apenas iluminam algum trabalho, e sempre há monstros escondidos na escuridão. Na maioria dos casos (exceto códigos de uso único), as provas não cobrem tudo e dependem de suposições sobre como alguns problemas são realmente difíceis. Isso pode ser verdade no passado, mas isso não é garantia para o futuro.
Nós não podemos medir a força
As equipes de vendas de tecnologia de segurança gostam de usar termos como "grau bancário” ou misturar números como 1024 bits, mas a realidade é que não temos uma boa maneira de fazer mais do que adivinhar a força dos algoritmos. O dobro de 2048 bits é igual a 1024 bits? Ou a diferença é astronômica?
A pesquisa só começa a arranhar a superfície. Alguns dos ataques funcionam apenas em uma faixa estreita de mensagens e apenas quando um milhão de estrelas se alinham. Outros ataques tornam tudo acessível. Podemos ver como esses ataques funcionam no laboratório, mas é difícil estender a ação até quanto eles podem ameaçar nossos dados.
O futuro da computação é um mistério
Ninguém sabe se computadores quânticos serão construídos com energia suficiente para lidar com problemas significativos, mas sabemos que as pessoas estão tentando e divulgando comunicados à imprensa sobre como fazer progressos. Sabemos também que, se as máquinas quânticas aparecerem, alguns algoritmos de criptografia serão quebrados.
Muitos cientistas de criptografia estão trabalhando duro na construção de novos algoritmos capazes de resistir a computadores quânticos, mas ninguém sabe realmente a extensão dos poderes de um computador quântico. Será limitado aos algoritmos conhecidos? Ou alguém encontrará outra maneira de usar o computador quântico para quebrar todos os novos algoritmos.
Dados criptografados não são dados seguros
Às vezes, a criptografia funciona muito bem. Ele bloqueia os dados dentro de um cofre matemático e, de alguma forma, a chave desaparece. É fácil fazer backup de dados criptografados, mas é um desafio fazer backup de chaves e senhas. Se você for muito cuidadoso, poderá acabar bloqueando-se dos próprios dados. Se você morrer inesperadamente, ninguém poderá descobrir a senha ou a chave que falta. Dados criptografados não são os mesmos que dados seguros. Dados criptografados são frágeis.
A criptografia é fácil. O gerenciamento de chaves é difícil
Alguns padrões de criptografia são bem confiáveis porque foram desenvolvidos por meio de um processo árduo de vários anos. É fácil conseguir um de uma biblioteca de código aberto e ter certeza de que a criptografia será segura. A parte difícil, no entanto, é distribuir as chaves entre todos que precisam delas. Sistemas simétricos como o AES exigem que a chave viaje separadamente por meio de um canal seguro, mas se tivéssemos um canal seguro, não precisaríamos de criptografia. Se planejarmos com antecedência, geralmente podemos obter as chaves certas para as pessoas certas.
Os sistemas de chave pública tornaram mais fácil para as pessoas configurar um caminho seguro sem se reunir antecipadamente, mas elas têm seus próprios problemas. Como você sabe que está usando a chave pública certa para uma pessoa? A autoridade de certificação é confiável? Ainda há necessidade de voto de confiança no sistema.
O código de suporte é frágil
A distribuição de chaves não é a única faceta que cria pesadelos para os desenvolvedores de criptografia. Muitas partes do algoritmo podem vazar informações, às vezes deliberadamente. É comum, por exemplo, misturar números aleatórios com uma mensagem, mas encontrar esses números aleatórios pode ser complicado. Alguns dos chamados geradores de números aleatórios têm falhas, que os tornam longe de serem aleatórios, e sua previsibilidade pode ser usada para adivinhar a chave e quebrar a mensagem. O algoritmo de criptografia é apenas parte do jogo.
Hardware compartilhado é perigoso
Ultimamente mais e mais códigos estão sendo executados na nuvem devido ao custo e flexibilidade. O problema é que ninguém sabe o que os vizinhos que estão compartilhando sua máquina estão fazendo. Existem inúmeras vulnerabilidades que permitem que um software espie a memória de outra peça no mesmo computador. Os desenvolvedores do sistema operacional tentam pará-lo, mas novas falhas como o RowHammer aparecem com frequência. Parece que há dezenas de possíveis ataques a computadores na nuvem e estamos apenas começando a perceber o quanto precisamos nos preocupar com isso.
É impossível detectar um hardware invadido
Você já viu os transistores em seus chips? Você já se certificou de que eles são leais a você, o desenvolvedor de software? Alguns hackers perspicazes fizeram engenharia reversa de um chip e descobriram que ele tinha um modo de deus oculto e não documentado, o qual era acionado por uma sequência aleatória de bytes. Quem os colocou ali? Ninguém tem pressa para levar o crédito.
Assinaturas digitais apenas mudam a responsabilidade
A matemática por trás de alguns dos melhores algoritmos de assinatura digital é encantadora e hipnotizante. Somente o proprietário da chave privada pode executar os cálculos que produzem uma assinatura digital legítima. Isso soa muito, muito melhor do que uma assinatura manuscrita, que geralmente pode ser forjada por um aluno da quarta série que precisa de um pai para assinar um teste ruim.
Mas será mesmo? As chaves privadas não estão vinculadas à pessoas. Uma assinatura digital só pode ser produzida por alguém com acesso à chave privada. Esse pode ser o dono legítimo, ou pode ser alguém que invadiu o computador ou usou uma senha ou inseriu um registrador de chaves ou encontrou uma maneira de obter a chave. Se a sua chave está no seu computador e o seu computador está na rede, poderia ser qualquer pessoa no mundo que também estivesse conectada à rede.
Os cientistas estão se esforçando para construir hardware seguro e soluções fortes, mas eles apenas dificultam o trabalho dos invasores. A matemática maravilhosa é facilmente minada por fragilidades comuns.
Nem todos falam
Alguns matemáticos e especialistas em criptografia gostam de falar publicamente sobre a tecnologia. Outros não dizem nada. Nós nem sabemos quantos silenciosos estão por aí.
É realmente um milagre que a sociedade tenha desenvolvido tanto conhecimento em códigos e cifras quanto nós. Quanto mais usamos a tecnologia, no entanto, maior o incentivo para ficar inquieto sobre qualquer fraqueza. Quando dinheiro real e segredos reais estão fluindo através dos tubos blindados de criptografia da internet, bem, o conhecimento sobre qualquer rachadura na armadura se torna mais valioso. Em outras palavras, quanto mais usamos criptografia, mais profundos e obscuros se tornam os segredos.