quarta-feira, 18 de maio de 2011

Saiba como a Sony protegeu as senhas da PSN

Um dos principais assuntos de segurança recentes está sendo a invasão à Playstation Network. A coluna Segurança Digital e o G1 estão cobrindo o caso, mas ainda há algumas dúvidas. Um leitor, por exemplo, perguntou o que é o “hashing” que a Sony usou para proteger a senha. Confira também respostas sobre ações legais contra a PSN e antivírus para celular.
Se você tem alguma dúvida sobre segurança da informação (antivírus, invasões, cibercrime, roubo de dados, etc), vá até o fim da reportagem e utilize a seção de comentários. A coluna responde perguntas deixadas por leitores todas as quartas-feiras.
>>> Hash e salt
Seria possível uma explicação ou referência sobre as tecnologias hashing e salt?
Francisco

Qualquer dado de computador pode ser submetida a uma função de hash, gerando uma sequência a partir de fórmulas matemáticas. (Foto: Divulgação)Qualquer dado de computador pode ser
submetida a uma função de hash, gerando
uma sequência a partir de fórmulas
matemáticas. (Foto: Divulgação)
A coluna mencionou essas tecnologias quando falou do sistema de segurança da Sony. O especialista Wagner Elias comentou que a Sony deveria ter usado hashing e salt, e que a companhia confirmou ter usado hashing, mas não se sabe se foi usado salt. A coluna brevemente explicou essas tecnologias, mas agora vai explicar um pouco mais, a pedido do leitor Francisco.

“Hashing” é um algoritmo – entenda como uma sequência de fórmulas matemáticas – aplicada a uma informação qualquer, podendo ser um arquivo inteiro ou uma sequência de letras e números, como uma senha. Quando esses cálculos terminam, é gerada uma sequência de um tamanho fixo. Essa sequência é chamada de hash.
Existe mais de uma maneira de usar fórmulas matemáticas para esse fim e algumas tecnologias comuns existem, como por exemplo o SHA-1 e o MD5. Se você usar esse gerador de MD5 e digitar “senha2011”, você terá a sequência “43cd2045b30a29287fd598e4c32b6108”. Aí está o hash.
Isso não é criptografia. A sequência gerada não “contém” a senha original. Ela não pode ser revertida. De uma forma bem simplificada, é como um número; digamos, o sete: ele pode ter sido obtido de 6+1, 5+2 ou 21/3. Sabendo que o resultado é 7 não te permite saber de qual destas fórmulas ele veio. Hashs funcionam da mesma forma, mas são mais complexos: enquanto o 7 pode ter vindo de várias sequências que você consegue facilmente calcular de cabeça, o hash deve ser incalculável, exceto em uma aplicação positiva da fórmula, ou seja, você sabe que 5+2 é 7, mas você não pode saber que 7 é 5+2.
Voltando ao nosso exemplo, qualquer um pode saber que “senha2011” gera o hash “43cd2045b30a29287fd598e4c32b6108”, mas ninguém sabe, apenas olhando a sequência, que ela foi gerada a partir da "senha2011”. A única maneira de quebrar um hash é fazendo todos os hashes possíveis: “a”, gera tal hash, “b” gera tal hash, “z”, gera tal hash, “aa”, “ab” e assim por diante, até se ter todas as combinações (fazer o hash de “a” e juntá-lo com o de “b” não dá o mesmo que o hash de “ab”). Uma tabela de hashes para quebra de senhas pode ter facilmente centenas de gigabytes. Essas tabelas de valores pré-calculados são chamadas de “rainbow tables”.
Perceba que a sequência gerada pelo “senha2011” depois do MD5 tem 32 caracteres. Todos os MD5 têm 32 caracteres. Se a senha usada tiver 200 caracteres, o resultado ainda será uma sequência de 32. O resultado disso é que existe mais de uma possibilidade para a mesma sequência, da mesma forma que o 7 pode ter sido obtido por 6+1 ou 5+2. Quando dados diferentes geram a mesma sequência hash, tem-se um conflito. Conflitos ocorrem em qualquer técnica de hashing, mas eles devem ter uma frequência aleatória. Se forem menos do que aleatórios, o hash é considerado menos seguro. Esse é o problema do MD5, e por isso aplicações em que segurança é essencial já o substituíram por outras tecnologias.
PSN não é oferecida oficialmente no Brasil, deixando dúvidas a respeito de dados roubados de brasileiros (Foto: Reprodução)PSN não é oferecida oficialmente no Brasil,
deixando dúvidas a respeito de dados
roubados de brasileiros (Foto: Reprodução)
Agora, o salt. O salt é um “tempero” do hash – uma modificação da fórmula, normalmente obtida pelo acréscimo de outra fórmula ou informação. O resultado prático disso é que aquelas tabelas de valores pré-calculados de hash passam a não servir para nada. Já que a fórmula foi levemente modificada, os cálculos todos já feitos são inúteis e podem levar meses para recalcular tudo.
Por isso a importância de se usar hash com salt. O hash significa que a senha propriamente dita não está armazenada no servidor. O salt impede que o hacker tenha um valor pré-calculado do hash e saiba uma senha geradora do mesmo hash (mesmo que seja uma senha diferente, devido à existência dos conflitos).

Hashes também são usados para verificação de downloads. Por exemplo, para softwares que são baixados de muitos servidores, não é incomum a disponibilização de um hash (normalmente MD5) na página oficial. Isso permite que o usuário verifique se a cópia baixada é idêntica à original e não foi modificada maliciosamente ou mesmo corrompida durante a transferência. Caso existam mudanças nos bits do arquivo, o hash gerado será diferente, apontando a discrepância.
>>> Ação legal contra a Sony
Sou usuário da Sony Network e provavelmente tive meus dados roubados. Não fiz cadastro de cartão de credito nem outras coisas tão importantes, mas não gostei de ter meus dados roubados. Existe alguma providencia legal que eu possa realizar contra a empresa nesse caso?
Rafael
Como o estado da PSN no Brasil ainda é incerto, alguns advogados já disseram que não há recursos para os usuários brasileiros, exceto aguardar. A Sony disse estar verificando a possibilidade de colocar a América Latina em um serviço de proteção de identidade, mas ainda não há confirmação se isso vai mesmo acontecer.

Por G1

Seja o primeiro a comentar

Postar um comentário

Related Posts Plugin for WordPress, Blogger...

  ©Template Blogger Elegance by Dicas Blogger.

TOPO