"Se você quiser, posso criptografar senhas."
Alguns desenvolvedores que foram explicitamente instruídos a usar criptografia usaram a criptografia de senha Base64Quando as informações sobre outro vazamento de dados aparecem na mídia, é sempre intrigante o motivo pelo qual a empresa manteve as senhas dos usuários em texto não criptografado, não protegeu a API ou cometeu algum outro erro básico. Essa violação das regras de segurança é possível em nosso tempo?
Um novo estudo da Universidade de Bonn (Alemanha) mostra que os desenvolvedores freelancers, por padrão, aderem a práticas extremamente inseguras, a menos que o cliente precise de mais.
Pesquisadores convidaram 260 desenvolvedores de Java no Freelancer.com para desenvolver um sistema de registro para uma rede social imaginária, que os clientes supostamente começaram a fazer. Desses, apenas 43 concordaram com um pedido que incluía o uso das tecnologias Java, JSF, Hibernate e PostgreSQL.
Metade dos desenvolvedores recebeu 100 euros pelo trabalho e metade - 200 euros. Metade de cada um dos dois grupos foi instruída a usar um armazenamento seguro de senhas, enquanto o outro não.
Embora a amostra seja claramente pequena, a diferença é tão significativa que sugere algumas tendências gerais. Aqui estão alguns dos resultados do estudo:
- Entre aqueles que não receberam instruções, 15 de 18 mantinham as senhas em texto não criptografado
- Três das pessoas que foram instruídas a usar o armazenamento seguro também armazenaram suas senhas em texto não criptografado.
- Programadores que criptografaram senhas usavam métodos não seguros: 31 programadores usavam métodos como Base64, MD5, SHA-1 etc. para criptografia.
- Apenas 12 freelancers usaram métodos seguros , como bcrypt e PBKDF2.
8 pessoas usaram o Base64 para criptografia
10 - MD5
1 - SHA-1
3 - 3DES
3 - AES
5 - SHA-256
1 - HMAC / SHA1
5 - PBKDF2
7 - Bcrypt
A tabela abaixo (aumenta por clique) mostra os resultados completos para cada participante: quantos dias ele precisou para concluir a tarefa, quanto tempo gastou na implementação da segurança e qual algoritmo de criptografia ele aplicou. Na metade superior da tabela, aqueles que receberam instruções diretas para criptografar as informações. Os participantes ousados são aqueles que primeiro enviaram uma solução não segura, mas receberam instruções adicionais para implementar um armazenamento seguro de senhas.

A grande maioria dos programadores não conseguiu implementar métodos básicos de segurança e 17 dos 43 copiaram códigos de sites aleatórios.
Apenas 15 desenvolvedores usaram salt - uma sequência de dados que é passada para a função hash junto com a senha, o que complica bastante a força bruta.
A tabela (clicável) mostra os dados demográficos dos participantes do estudo. Como você pode ver, são principalmente homens, com idade média de 30 anos, de 11 países (em dois casos, o país não está indicado)Grupos com baixos e altos salários trabalhavam com o mesmo nível de qualidade.
Em geral, o estudo é bastante deprimente. Pode-se supor que a conscientização básica de segurança entre os freelancers é incrivelmente baixa. Dos 18 participantes que receberam instruções especiais para usar a criptografia, três decidiram usar o Base64 e afirmaram, por exemplo: "[I] criptografou tudo para que a senha não fique visível" e "É muito difícil descriptografá-la".
Talvez esse comportamento seja específico apenas para freelancers, e membros da equipe sem instruções imediatamente tentem tomar uma decisão segura? O estudo não fornece uma resposta para esta pergunta.

