constant-time-testing
Wykryj luki czasowe w kodzie kryptograficznym przed atakami na implementacje
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Constant-Time Testing to narzędzie do audytu bezpieczeństwa kodu kryptograficznego, które identyfikuje podatności na ataki czasowe (timing side channels). Ataki czasowe wykorzystują różnice w czasie wykonania operacji, aby wydobyć tajne informacje z implementacji algorytmów szyfrowania — niezależnie od teoretycznej siły samego algorytmu. Narzędzie pomaga wykryć cztery główne wzorce naruszenia constant-time: warunkowe gałęzie zależne od danych tajnych, operacje pamięci korelujące z sekretami, operacje arytmetyczne o zmiennym czasie oraz instrukcje procesora wrażliwe na mikroarchitekturę. Przydatne przy audytach RSA, ECDH, AES i nowoczesnych algorytmów post-kwantowych.
Jak używać
- Zainstaluj umiejętność constant-time-testing z repozytorium Trail of Bits jako część zestawu narzędzi do audytu kryptografii. 2. Przygotuj kod kryptograficzny, który chcesz przeanalizować — narzędzie pracuje z implementacjami w C i podobnych językach niskiego poziomu. 3. Uruchom analizę na wybranym kodzie, aby narzędzie przeskanowało cztery główne kategorie podatności: warunkowe instrukcje zależne od tajnych danych, dostępy do pamięci korelujące z sekretami, operacje arytmetyczne o zmiennym czasie wykonania oraz instrukcje CPU podatne na różnice w mikroarchitekturze. 4. Przejrzyj raport, który wskaże konkretne linie kodu, gdzie ścieżka wykonania lub czas działania zależy od danych tajnych. 5. Napraw zidentyfikowane miejsca, implementując warianty constant-time — operacje niezależne od wartości tajnych danych. 6. Ponownie uruchom narzędzie na poprawionym kodzie, aby potwierdzić eliminację luk czasowych.