LancĂ©e une nouvelle version du programme de rĂ©cupĂ©ration de mots de passe John the Ripper 1.9.0-jumbo-1, le plus ancien encore maintenu. (Le projet est en dĂ©veloppement depuis 1996.) Les page du projet sources sont disponibles au tĂ©lĂ©chargement ainsi que des builds prĂȘts Ă l'emploi pour Windows.
Il est à noter que depuis la sortie de la version 1.8.0-jumbo-1, 4,5 ans se sont écoulés pendant lesquels plus de 6000 changements (commits git) ont été effectués par plus de 80 développeurs. Pendant cette période, les développeurs ont recommandé d'utiliser la version actuelle sur GitHub, dont l'état a été maintenu stable malgré les modifications grùce à l'intégration continue, qui implique une vérification préalable de chaque modification (pull request) sur de nombreuses plateformes. Une des nouvelles fonctionnalités est l'ajout du support des FPGA en plus des CPU, GPU et Xeon Phi.
Pour les cartes ZTEX 1.15y, qui comprennent 4 puces FPGA et qui Ă©taient principalement utilisĂ©es pour le minage de Bitcoin, 7 types de hachages de mots de passe sont maintenant mis en Ćuvre : bcrypt, le descrypt classique (y compris bigcrypt), sha512crypt, sha256crypt, md5crypt (y compris Apache apr1 et AIX smd5), Drupal7 et phpass (utilisĂ© notamment dans WordPress). Certains d'entre eux sont implĂ©mentĂ©s sur FPGA pour la premiĂšre fois. Pour bcrypt, la performance atteinte est d'environ 119k c/s avec 2^5 itĂ©rations («$2b$05») avec une consommation d'environ 27 watts, ce qui surpasse de maniĂšre significative les rĂ©sultats des GPU les plus rĂ©cents par carte, en tenant compte du coĂ»t du matĂ©riel et de la consommation watt. Des clusters de ce type de cartes sont Ă©galement pris en charge, cela a Ă©tĂ© vĂ©rifiĂ© jusqu'Ă 16 cartes (64 FPGA) contrĂŽlĂ©es par un seul Raspberry Pi 2. La fonctionnalitĂ© normale de John the Ripper est maintenue, y compris tous les modes de rĂ©cupĂ©ration de mots de passe et le chargement simultanĂ© d'un grand nombre de hachages. Pour accĂ©lĂ©rer le travail, l'application de masques (mode "âmask", y compris en combinaison avec d'autres modes) et la comparaison des hachages calculĂ©s avec ceux chargĂ©s sur FPGA ont Ă©tĂ© mises en Ćuvre. Du point de vue de l'implĂ©mentation, dans de nombreux designs (par exemple, pour sha512crypt et Drupal7), des blocs composĂ©s de cĆurs de processeurs multithread (cĆurs CPU soft) interagissant avec des cĆurs cryptographiques ont Ă©tĂ© utilisĂ©s. Le dĂ©veloppement de cette fonctionnalitĂ© a Ă©tĂ© dirigĂ© par Denis Burykin en coordination avec d'autres dĂ©veloppeurs de jumbo.
D'autres changements majeurs :
- Prise en charge d'un grand nombre de types de hachages, chiffrements, etc., y compris des hachages de mots de passe classiques (comme ceux des nouvelles versions de QNX), ainsi que des portefeuilles de cryptomonnaie, des archives chiffrées et des systÚmes de fichiers chiffrés (comme Bitlocker et FreeBSD geli), ainsi que la prise en charge de nouvelles variantes de formats précédemment pris en charge (par exemple, ajout du support bcrypt-pbkdf pour OpenBSD softraid) et bien d'autres. Au total, 80 formats ont été ajoutés pour CPU et 47 pour OpenCL (et un petit nombre d'anciens supprimés comme intégrés dans les nouveaux et obsolÚtes). Le nombre total de formats est désormais de 407 pour le CPU (ou 262 sans inclure les « formats dynamiques », configurables via des fichiers de configuration) et 88 pour OpenCL.
- Abandon du support du langage CUDA au profit d'OpenCL, ce qui n'entrave en rien l'utilisation complĂšte des GPU NVIDIA (et mĂȘme amĂ©liore les performances, grĂące Ă la concentration du dĂ©veloppement et des optimisations sur une seule mise en Ćuvre de chaque format pour le GPU au lieu de deux mises en Ćuvre prĂ©cĂ©demment).
- Prise en charge de nouveaux ensembles d'instructions SIMD â AVX2, AVX-512 (y compris pour la deuxiĂšme gĂ©nĂ©ration de Xeon Phi) et MIC (pour la premiĂšre gĂ©nĂ©ration) â ainsi qu'une utilisation plus universelle et complĂšte du SIMD dans les implĂ©mentations de nombreux formats, y compris l'utilisation d'ensembles d'instructions prĂ©cĂ©demment pris en charge jusqu'Ă AVX et XOP sur x86(-64) et
NEON, ASIMD et AltiVec sur ARM, Aarch64 et POWER, respectivement. (Partiellement dans le cadre de GSoC 2015.) - De nombreuses optimisations pour CPU et OpenCL, tant pour un traitement plus efficace d'un grand nombre de hachages simultanément (par exemple, vérification de 320 millions de hachages SHA-1 sur GPU), que pour améliorer la vitesse de calcul des hachages. Certaines de ces optimisations sont universelles, d'autres couvrent différents sous-ensembles de formats, et beaucoup sont spécifiques à des formats individuels.
- (Auto-)configuration de la mise en mĂ©moire tampon optimale des mots de passe vĂ©rifiĂ©s sur CPU ("âtune=auto âverbosity=5") et des dimensions optimales des tĂąches sur OpenCL (activĂ©e par dĂ©faut), y compris pour tenir compte du dĂ©marrage lent Ă pleine frĂ©quence des GPU de la sĂ©rie NVIDIA GTX 10xx et plus. Utilisation de hachages rĂ©ellement chargĂ©s et de la longueur rĂ©elle des mots de passe vĂ©rifiĂ©s (lorsqu'elle est connue Ă l'avance) pour une telle auto-configuration.
- Ajout d'un compilateur d'expressions « dynamiques » spĂ©cifiĂ©es directement dans la ligne de commande, et implĂ©mentant de nouveaux types de hachages hybrides, par exemple "âformat=dynamic=âsha1(md5($p).$s)â", calculĂ©s sur CPU en utilisant SIMD. Comme composants de telles expressions, des dizaines de hachages rapides sont pris en charge (des plus courants comme MD5 aux plus exotiques comme Whirlpool), la concatĂ©nation de sous-chaĂźnes, l'encodage et le dĂ©codage, la transformation de la casse des caractĂšres, ainsi que des rĂ©fĂ©rences au mot de passe, au sel, au nom d'utilisateur et aux constantes de chaĂźne.
- Ălimination des diffĂ©rences indĂ©sirables par rapport Ă hashcat, y compris le support des rĂšgles spĂ©cifiques Ă hashcat (commandes de rĂšgles de wordlist), le passage Ă la numĂ©rotation des appareils OpenCL Ă partir de 1, et l'application par dĂ©faut des mĂȘmes longueurs de mots de passe (gĂ©nĂ©ralement une longueur de 7) lors des tests de performance.
- Nouveaux modes de gĂ©nĂ©ration de mots de passe vĂ©rifiables (modes de cracking), y compris PRINCE de hashcat (forme des « phrases » en combinant plusieurs mots par ordre croissant de longueur totale), subsets (trouve des mots de passe avec un nombre insuffisant de caractĂšres diffĂ©rents, mĂȘme si ces caractĂšres proviennent d'un grand ensemble de possibilitĂ©s) et hybrid external (permet Ă des modes externes, dĂ©crits dans des fichiers de configuration en langage C-like, de gĂ©nĂ©rer plusieurs mots de passe vĂ©rifiables basĂ©s sur chaque « mot » de base en provenance d'un autre mode). Ăgalement, plusieurs nouveaux modes externes prĂ©dĂ©finis.
- FonctionnalitĂ©s supplĂ©mentaires pour l'utilisation simultanĂ©e de plusieurs modes (l'un superposĂ© Ă l'autre â empilement), ainsi que pour l'utilisation de tels ensembles de rĂšgles (empilement de rĂšgles de wordlist).
- Améliorations des modes mask (étirement progressif du masque dans une plage de longueurs spécifiée, application du masque cÎté dispositif OpenCL ou carte FPGA) et single crack (comportement raisonnable sur des dispositifs calculant un grand nombre de hachages en parallÚle, ce qui manquait précédemment de mots de passe vérifiables dans ce mode, ainsi que des limites sur la consommation de mémoire).
- De nombreuses améliorations du support Unicode et d'autres encodages dans divers sous-systÚmes.
- De nombreuses améliorations des programmes *2john (transformant des fichiers de différents formats pour
utilisation avec john), en particulier wpapcap2john (gĂšre le trafic WiFi). - De nombreuses nouvelles options de ligne de commande, de paramĂštres dans john.conf, d'options de script configure et les nouvelles fonctionnalitĂ©s qui y correspondent, dont toutes ne peuvent ĂȘtre mentionnĂ©es ici.
- Amélioration de la qualité du code grùce au support intégré des builds de débogage avec AddressSanitizer (déjà présent auparavant) et UndefinedBehaviorSanitizer (ajouté), avec l'ajout d'un fuzzer intégré pour les formats (dans le cadre de GSoC 2015), et l'utilisation de l'intégration continue (builds pour des dizaines de combinaisons de systÚmes d'exploitation et de compilateurs et tests de leur prise en charge correcte de tous les formats).
Source : linux.org.ru
