Atak na kanał boczny
ponieważ ataki na kanał boczny opierają się na relacji między informacją emitowaną (wyciekającą) przez kanał boczny a tajnymi danymi, środki zaradcze dzielą się na dwie główne kategorie: (1) wyeliminować lub ograniczyć ujawnianie takich informacji i (2) wyeliminować związek między wyciekającą informacją a tajnymi danymi, to znaczy sprawić, aby wyciekająca informacja nie była powiązana, lub raczej nieskorelowana, z tajnymi danymi, zazwyczaj poprzez jakąś formę randomizacji zaszyfrowanego tekstu, który przekształca dane w sposób, który może zostać cofnięty po zakończeniu operacji kryptograficznej (np. deszyfrowania).
w pierwszej kategorii wyświetlacze ze specjalnym ekranowaniem zmniejszającym emisję elektromagnetyczną, zmniejszającym podatność na ataki burzy, są obecnie dostępne na rynku. Kondycjonowanie i filtrowanie linii energetycznych może pomóc w powstrzymaniu ataków związanych z monitorowaniem zasilania, chociaż takie środki muszą być stosowane ostrożnie, ponieważ nawet bardzo małe korelacje mogą pozostać i zagrozić bezpieczeństwu. Obudowy fizyczne mogą zmniejszyć ryzyko potajemnej instalacji mikrofonów (w celu przeciwdziałania atakom akustycznym) i innych urządzeń do mikro monitorowania (przed atakami poboru mocy procesora lub atakami termowizyjnymi).
kolejnym środkiem zaradczym (wciąż w pierwszej kategorii) jest zablokowanie emitowanego kanału szumem. Na przykład, losowe opóźnienie może być dodane, aby powstrzymać ataki czasowe, chociaż przeciwnicy mogą zrekompensować te opóźnienia, uśredniając wiele pomiarów (lub, bardziej ogólnie, wykorzystując więcej pomiarów w analizie). Wraz ze wzrostem ilości szumów w kanale bocznym, przeciwnik musi zebrać więcej pomiarów.
kolejnym środkiem zaradczym w pierwszej kategorii jest użycie oprogramowania do analizy bezpieczeństwa w celu zidentyfikowania pewnych klas ataków bocznokanałowych, które można znaleźć na etapach projektowania samego sprzętu. Ataki czasowe i ataki cache są rozpoznawalne za pomocą niektórych dostępnych na rynku platform oprogramowania do analizy bezpieczeństwa, które pozwalają na testowanie w celu zidentyfikowania samej podatności na ataki, a także skuteczności zmiany architektonicznej w celu obejścia podatności na ataki. Najbardziej wszechstronną metodą zastosowania tego środka zaradczego jest stworzenie bezpiecznego cyklu życia oprogramowania sprzętowego, który obejmuje wykorzystanie wszystkich dostępnych platform analizy bezpieczeństwa na odpowiednich etapach cyklu życia oprogramowania sprzętowego.
w przypadku ataków czasowych na cele, których czasy obliczeniowe są skwantyzowane na dyskretne liczniki cykli zegara, skutecznym środkiem zaradczym jest zaprojektowanie oprogramowania tak, aby było izochroniczne, czyli działało w dokładnie stałej ilości czasu, niezależnie od wartości tajnych. To sprawia, że ataki czasowe niemożliwe. Takie środki zaradcze mogą być trudne do wdrożenia w praktyce, ponieważ nawet pojedyncze instrukcje mogą mieć zmienny czas na niektórych procesorach.
jednym z częściowych środków zaradczych przeciwko prostym atakom power attacks, ale nie różnicowym atakom power-analysis, jest zaprojektowanie oprogramowania tak, aby było „PC-secure” w „programie counter security model”. W programie PC-secure ścieżka wykonania nie zależy od tajnych wartości. Innymi słowy, wszystkie gałęzie warunkowe zależą wyłącznie od Informacji Publicznej.(Jest to warunek bardziej restrykcyjny niż kod izochroniczny, ale mniej restrykcyjny niż kod wolny od gałęzi.) Mimo że operacje multiply pobierają więcej mocy niż NOP na praktycznie wszystkich procesorach, użycie stałej ścieżki wykonania uniemożliwia takie zależne od operacji różnice mocy (różnice w mocy przy wyborze jednej gałęzi nad drugą) przed wyciekiem jakichkolwiek tajnych informacji.Na architekturach, w których czas wykonania instrukcji nie zależy od danych, program PC-secure jest również odporny na ataki czasowe.
innym sposobem, w jaki kod może być nieizochroniczny, jest to, że współczesne procesory mają pamięć podręczną: dostęp do rzadko używanych informacji wiąże się z dużą karą czasową, ujawniając pewne informacje o częstotliwości korzystania z bloków pamięci. Kod kryptograficzny zaprojektowany, aby oprzeć się atakom cache próby wykorzystania pamięci w sposób przewidywalny (np. dostęp tylko do danych wejściowych, wyjściowych i programowych, i robienie tego zgodnie z ustalonym wzorcem). Na przykład należy unikać przeszukiwania tabeli zależnego od danych, ponieważ pamięć podręczna może ujawnić, do której części tabeli uzyskano dostęp.
Inne częściowe środki zaradcze próbują zmniejszyć ilość informacji wyciekających z zależnych od danych różnic mocy.Niektóre operacje wykorzystują moc, która jest skorelowana z liczbą 1 bitów w tajnej wartości.Użycie kodu o stałej wadze (takiego jak użycie bramki Fredkina lub kodowania z podwójną szyną) może zmniejszyć wyciek informacji o wadze Hamminga tajnej wartości, chociaż możliwe do wykorzystania korelacje prawdopodobnie pozostaną, chyba że równoważenie jest doskonałe. Ten „zrównoważony projekt” może być przybliżony w oprogramowaniu poprzez manipulowanie zarówno danymi, jak i ich uzupełnieniem.
kilka „bezpiecznych procesorów” zostało zbudowanych jako Procesory asynchroniczne; nie mają globalnego odniesienia do taktowania. Chociaż procesory te miały na celu utrudnienie ataków czasowych i mocy, późniejsze badania wykazały, że różnice czasowe w układach asynchronicznych są trudniejsze do usunięcia.
typowym przykładem drugiej kategorii (dekorowanie) jest technika znana jako oślepianie. W przypadku odszyfrowywania RSA za pomocą tajnego wykładnika d {\displaystyle d}
I odpowiadającego mu wykładnika szyfrowania E {\displaystyle e}
I moduł M {\displaystyle m}
, technika ma zastosowanie w następujący sposób (dla uproszczenia, redukcja modułowa przez M jest pominięta we wzorach): przed odszyfrowaniem, czyli przed obliczeniem wyniku y d {\displaystyle y^{d}}
dla danego zaszyfrowanego tekstu y {\displaystyle y}
, system wybiera losową liczbę r {\displaystyle r}
i szyfruje go publicznym wykładnikiem E {\displaystyle e}
, aby uzyskać R E {\displaystyle r^{e}}
. Następnie deszyfrowanie wykonywane w ⋅ r e {\styl wyświetlania y\cdot r^{e}}
, aby uzyskać ( y ⋅ r e ) d = y d ⋅ r e ⋅ d = y d ⋅ r {\styl wyświetlania {(y\cdot r^{e})}^{d}=y^{d}\cdot r^{e\cdot d} =y^{d}\cdot r}
. Ponieważ system odszyfrowywania wybrał r {\displaystyle r}
, może obliczyć jego odwrotność modulo m {\displaystyle m}
, aby anulować współczynnik r {\displaystyle r}
w wyniku i uzyskać y d {\displaystyle y^{d}}
, rzeczywisty wynik odszyfrowania. W przypadku ataków, które wymagają zbierania informacji o kanale bocznym z operacji z danymi kontrolowanymi przez atakującego, zaślepienie jest skutecznym środkiem zaradczym, ponieważ rzeczywista operacja jest wykonywana na randomizowanej wersji danych, nad którą atakujący nie ma kontroli, a nawet wiedzy.
bardziej ogólnym środkiem zaradczym (w tym, że jest skuteczny przeciwko wszystkim atakom bocznym) jest środek zaradczy maskujący . Zasada maskowania polega na uniknięciu bezpośredniego manipulowania jakąkolwiek wrażliwą wartością y {\displaystyle y}
, ale raczej manipulowanie jej współdzieleniem: zbiór zmiennych (zwanych „akcjami”) y 1 , . . . , y d {\displaystyle y_{1},…, y_{d}}
takie, że y = y 1 ⊕ . . . ⊕ y d {\displaystyle y = y_{1} \ oplus …\oplus y_{d}}
(gdzie ⊕ {\displaystyle \oplus}
jest operacją XOR). Atakujący musi odzyskać wszystkie wartości udziałów, aby uzyskać jakiekolwiek istotne informacje.
Ostatnio modelowanie white-box zostało wykorzystane do opracowania niskopoziomowego ogólnego środka zaradczego na poziomie obwodów zarówno przeciwko atakom EM, jak i siłowym. Aby zminimalizować skutki wyższych warstw metalu w układzie scalonym działającym jako bardziej wydajne anteny, chodzi o osadzić Crypto core z obwodem tłumienia podpisu, kierowanym lokalnie w dolnych warstwach metalu, prowadząc do odporności na atak zarówno na zasilanie, jak i na kanał boczny em.