Wow ! Moi je voulais juste faire un test rapide pour avoir une estimation experimentale d’une brute force. C’etait juste une question que je me posais comme ça en passant ^^
Et en effet la generation de tout les cas possible ne me genait pas, le seul problème que j’avais pour lancer ce test c’était de rentrer le login et le mot de passe via le shell. Donc je me demandais juste comment faire
Pour information quant au démarche qui m’ont amené à vouloir faire ça. Avant j’ai codé en Caml (un langage assez proche du C je trouve) un programme simple qui répond “false” si on ne lui donne pas le bon mot de passe, et “true” si on lui donne le bon et j’ai lancé mon programme.
Et j’ai quelque chose d’assez rapide … Et je me demandais juste si c’était aussi rapide pour un protocole simple, genre une connection par http ou si le fait qu’on passe par la carte réseau ne limitait pas grandement la vitesse et si oui d’environ combien ?
Si jamais ca peut intéresser quelqu’un voici mon code CaML (je ne crois pas que ca aidera quiconque pour hacker quelque chose…)
[code](Le mot de passe est un entier pour faciliter le code, on aurait pu tout aussi bien mettre un alphabet mais cela aurait compliqué les chose pour, au final, pas grand chose (j’ai conscience qu’il y a bcp plus de choix avec les lettres qu’avec des chiffres))
let login a = (a=9999);; (ici le programme qui repond vrai ssi on donne le bon mdp)
let crack prgm =
let a1= ref 0 in
while (not prgm !a1) do incr a1 done; (tant que le test rend faux, on incremente de chiffre)
!a1;;
(la boucle peut être infini si le mot de passe est un entier négatif … mais on peut mettre un condition d’arrêt après un certain nombre de test)
#open “sys”;;
let t = ref(time()) in
let mdp = crack login in
print_float (time()-. !t); mdp;;[/code]
Pour un mot de passe à 4 chiffres j’ai 0.0sec
Pour un mot de passe à 6 chiffres j’ai 0.1sec
Pour un mot de passe à 7 chiffres j’ai 1.5sec
Pour un mot de passe à 9 chiffres j’ai 151.5sec
Donc la je vois bien que la complexité théorique et expérimental se rejoigne (et heureusement) car quand on augmente un chiffre on multiplie la complexité temporelle par 10.
J’ai aussi testé avec des conditions du style : si on sait que le mot est un mot du dictionnaire, etc…
Quant au réel test de hacking et de sécurité je pense m’y intéresser ces grandes vacances (vu que je compte m’intéresse au serveur et co pour que mon serveur personnel chez moi me soit accessible quand je serais loin) … donc c’est pas pour tout de suite. La c’est plus une question de complexité plus qu’autre chose