Análise comparativa de implementações padrão de algoritmos de hashing disponibilizadas pelo framework Spring Security
Palavras-chave:
Ataques Cibernéticos, Cibersegurança, HashingResumo
Senhas são comumente alvo de atacantes maliciosos, e, portanto, quando armazenadas, passam por técnicas e processos para aumentar o grau de segurança e diminuir o risco de um ataque bem sucedido. O framework Spring Security notoriamente fornece implementações dos algoritmos de hashing Bcrypt, Scrypt, PBKDF2 e Argon2. Este artigo visa comparar métricas de performance das implementações padrão desses algoritmos de hashing e auxiliar na escolha de um algoritmo de hashing dado um contexto de utilização de recursos computacionais. Através da ferramenta de benchmarking Java Microbenchmark Harness (JMH), foi examinado o consumo de memória e o tempo médio de execução do hashing das senhas mais comumente usadas, e, pelo software Hashcat, a resistência a ataques de dicionário. Observa-se que o algoritmo Bcrypt tem o menor consumo de memória e tempo de execução, enquanto o Scrypt tem o maior consumo de memória e a maior resistência a ataques de dicionário, e o algoritmo Argon2 tem consumo de memória significativamente maior do que Bcrypt, porém, com resistência a ataques de dicionário similar. O algoritmo PBKDF2 apresentou o maior tempo de execução e a menor resistência a ataques de dicionário.