Atak czasowy

Z Wikipedii, wolnej encyklopedii

Atak czasowy (ang. timing attack) – atak kryptograficzny, w którym intruz usiłuje skompromitować kryptosystem poprzez analizę czasu, wymaganego do wykonania algorytmów kryptograficznych.

Dzięki pomiarom czasu wymaganego do odpowiedzi na poszczególne zapytania możliwy jest przeciek informacji z systemu.

Taki atak może być użyty w celu poznania haseł użytkowników stron, korzystających z logowania po protokołach OpenID oraz OAuth[1].

Koncepcja[edytuj | edytuj kod]

Atak czasowy jest przykładem analizowania charakterystycznych zachowań implementacji algorytmu, zależnych od danych, niż jego matematycznych właściwości.

Wiele algorytmów może być zaimplementowanych (lub maskowanych za pomocą proxy) w taki sposób, aby zredukować bądź wyeliminować relację między danymi a czasem, w którym otrzymano komunikat od systemu. Rozważmy implementację, w której każde wywołanie podprogramu jest zawsze zwracane w czasie, wynoszącym x sekund, gdzie x to maksymalny czas, jaki będzie potrzebny na wykonanie wspomnianego podprogramu przy każdym możliwym (i dopuszczalnym) zestawie danych wejściowych. W takiej implementacji czas wykonania algorytmu nie powoduje przecieku żadnych informacji o danych wprowadzanych w celu tego wywołania. Wadą tego podejścia jest fakt, iż czas potrzebny do wykonania wielu wywołań wzrasta z wartości, przy której funkcja ma przeciętną (normalną) wydajność, do wartości będącą pesymistycznym wariantem wydajności tej funkcji.

Ataki czasowe są praktyczne w następujących przypadkach:

  • Można je zastosować dla dowolnego algorytmu, w którym występuje zależność pomiędzy czasem odpowiedzi systemu a wprowadzonymi danymi. Operacje takie jak np. mnożenie mogą zostać wykonane w różnym czasie, w zależności od wprowadzonych danych. W niektórych algorytmach, korzystających z operacji niskopoziomowych usunięcie takich zależności jest trudne.
  • Wyszukiwanie tajnych danych poprzez „informacje czasowe” może być znacznie łatwiejsze niż wykonywanie kryptoanalizy znanych par tekstów jawnych i szyfrogramów. Czasami dane na temat informacji, zależnych od czasu wykorzystuje się wraz z kryptoanalizą w celu zwiększenia szybkości przecieku informacji.

Przypisy[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]