Foi lançada uma nova versão do passwdqc, um conjunto de ferramentas para controle de complexidade de senhas e frases de senha, que inclui o módulo pam_passwdqc, os programas pwqcheck, pwqfilter (adicionado nesta versão) e pwqgen para uso manual ou em scripts, além da biblioteca libpasswdqc. São suportados tanto sistemas com PAM (a maioria dos Linux, FreeBSD, DragonFly BSD, Solaris, HP-UX), quanto sem PAM (suportado no interface passwordcheck do OpenBSD, vem com uma ligação para usar o pwqcheck a partir do PHP, existe uma versão paga para Windows, e os programas e a biblioteca também podem ser usados em outros sistemas).
Comparado com versões anteriores, foi adicionada a suportabilidade a arquivos externos de filtragem de senhas, incluindo binários, que atualmente são implementações de um filtro de cuco aprimorado. Esse filtro garantidamente não deixará passar nenhuma das senhas proibidas, mas pode ocasionalmente levar a falsos positivos, cuja probabilidade nas configurações e algoritmos utilizados no passwdqc é desprezivelmente baixa. A verificação de uma senha no filtro requer no máximo duas leituras aleatórias do disco, o que é muito rápido e, geralmente, não causa carga excessiva. servidor.
Para criar e trabalhar com filtros binários no passwdqc, foi adicionado o programa pwqfilter. Ele pode criar um filtro tanto a partir de uma lista de senhas quanto de seus hashes MD4 ou NTLM. A suportabilidade de hashes NTLM permite a importação de senhas da lista HIBP (Pwned Passwords), distribuída dessa forma. Foi investido muito esforço na otimização do pwqfilter em termos de desempenho, compactação dos filtros gerados e nível de falsos positivos. Por exemplo, criar um filtro de cuco com uma taxa de preenchimento de 98% a partir do arquivo pwned-passwords-ntlm-ordered-by-hash-v7.txt com tamanho de 21 GiB (22 GB) e contendo mais de 613 milhões de linhas leva cerca de 8 minutos em um processador Core i7-4770K. O filtro resultante ocupa 2,3 GiB (2,5 GB) e tem uma taxa de falsos positivos de cerca de 1 em 1,15 bilhões. Com uma taxa de preenchimento alvo menor, o filtro pode ser criado muito mais rápido e terá uma taxa de falsos positivos ainda mais baixa, mas seu tamanho será maior.
O passwdqc trabalha muito bem na prevenção do uso de senhas fracas, mesmo sem o uso de arquivos externos. A implementação deles pode aumentar ainda mais a eficácia do passwdqc, causando praticamente nenhum inconveniente adicional aos usuários, ou pode permitir a flexibilização de outras restrições. A verificação de senhas escolhidas pelos usuários por meio de vazamentos conhecidos é recomendada pelo NIST. Para o projeto Openwall, esta é uma oportunidade potencial de financiar o desenvolvimento do passwdqc (e não apenas isso) através da venda de filtros prontos, sem restringir os usuários de criar seus próprios filtros usando o programa pwqfilter disponibilizado sob uma licença livre.
O pwqfilter trabalha com strings arbitrárias e pode ser utilizado como uma alternativa ao grep para diversos fins, mesmo aqueles não relacionados a senhas e segurança. Considerando isso, o pwqfilter tem várias opções semelhantes às disponíveis no grep, evita usar nomes de opções que contradigam os do grep e utiliza os mesmos códigos de retorno do grep.
Para tarefas em que falsos positivos são extremamente indesejáveis, seu nível pode ser reduzido, por exemplo, para um por quintilhão (um bilhão de bilhões) com um fator de carga de até 44%. (Um filtro de Cuckoo clássico não proporciona uma redução tão significativa na taxa de falsos positivos com a diminuição do fator de carga. No passwdqc, isso é alcançado por melhorias no algoritmo).
Fonte: opennet.ru
