Atak na koprocesor kryptograficzny IBM 4758

Transkrypt

Atak na koprocesor kryptograficzny IBM 4758
Atak na koprocesor
kryptograficzny IBM 4758
Piotr Pisarczyk
[email protected]
Na podstawie artykułu:
Extracting a 3DES key from an IBM 4758
autorstwa: Michael Bond i Richard Clayton
http://www.cl.cam.ac.uk/~rnc1/descrack/
Czym jest IBM 4758 ?
IBM 4758
koprocesor kryptograficzny, tworzący i
przechowujący tajne klucze do algorytmu
szyfrującego DES lub potrójny DES (3DES)
wykorzystywany przez banki do zabezpieczania
swoich systemów komputerowych oraz transakcji
zarówno tradycyjnych(np. kody PIN kart), jak i
internetowych(np. e-commerce)
uzyskał najwyższy atest wiarygodności (FIPS 140-1
level 4 ) władz federalnych USA w 1998 roku
Bezpieczeństwo
urządzenia
Jest ono odporne na wszelkie ataki
mechaniczne (otwarcie, rozwiercenie,
zamrożenie, prześwietlenie promieniami
Roentgena), czy też próby typu
”Tempest" czy "power analysis”, tak
więc jedyną szansą dla przestępców
komputerowych jest przełamanie blokad
software’owych i wydobycie tajnych
kluczy z maszyny.
Co będzie potrzebne do
ataku?
Około 20 minut dostępu do urządzenia
Układ FPGA
(Excalibur' kit firmy Altera za 995$)
Około dwóch dni na złamanie
zaszyfrowanych danych w/w układem
Czym jest Excalibur' kit
firmy Altera?
to rodzaj programowalnego układu
logicznego, który można w łatwy sposób
zaprogramować tak aby wydajnie i
szybko wykonywał zadane obliczenia
np. złamanie szyfru DES
Przebieg ataku
Pierwsza część ataku polega na
wygenerowaniu w urządzeniu klucza
DES-a i poznaniu jego wartości
(IBM 4758 i użytkownik tworzą po jednym kluczu
DES-a. Te dwa klucze są poddawane operacji XOR,
a rezultat zapisywany jest w urządzeniu jako
DES data key)
Krok 1
Wygenerowanie klucza DES nieznanej
wartości
Krok 2
Stworzenie klucza DES o wartości 0
Krok 3
XOR’owanie kluczy z kroku 1 i 2 w celu
otrzymania DES data key (nieznane nam
w tym momencie ale zależne od naszego
klucza)
Krok 4
Zaszyfrowanie „0” przy pomocy
DES data key
Krok 5
Powtórzone kroków 2-4 dla wartości
1-16383
Po ok. 10 minutach będziemy mieli 16384 różne
wersje zakodowanego „0”
Po zakończonej sesji wystarczy użyć układu FPGA aby ze
średnim szczęściem w ciągu 25 godzin odgadnąć klucz DES’a
wygenerowany w kroku 1.
Krok 6
Połączenie nieznanego klucza z kroku 1
z dowolna znaną wartością w celu
stworzenia DES data key
nie jest to jednak koniec ponieważ zwykły
DES data key nie ma uprawnień aby
wyeksportować tajne klucze które chcemy
ukraść
Druga część ataku
Krok 7
Wygenerowanie klucza 3DES
„replicate key part” o nieznanej
wartości
replicate key part ma obie połówki takie same aby
zapewnić kompatybilność z maszynami które potrafią obsłużyć
jedynie „pojedynczego” DES’a, ponieważ klucz 3DES z dwoma
połówkami identycznymi szyfruje tak samo jak „pojedynczy” DES
Krok 8
Stworzenie klucza 3DES replicate
key part z obiema połówkami równymi
0
Krok 9
XOR’owanie kluczy z kroku 7 i 8 w celu
wygenerowania klucza 3DES exporter
key
Krok 10
Zaszyfrowanie data key otrzymanego w
kroku 6 kluczem exporter key i wyświetlenie
zaszyfrowanej wartości
Ponieważ klucz który jest eksportowany jest kluczem „pojedynczego”
DES’a jesteśmy w stanie wyeksportować go kluczem replicate
key, który jako klucz 3DES z obiema połówkami identycznymi jest tej
samej mocy. Niemniej jednak, tajne klucze które chcemy wykraść są
kluczami 3DES z obiema połówkami różnymi i urządzenie nie pozwoli
nam ich wyeksportować dużo słabszym replicate key.
Krok 11
Powtórzone kroków 8-10 dla wartości
1-16383 umieszczonych w obu
połówkach replicate key part
Kroki od 7 do 11 zajmują kolejne 10 minut po których
będziemy mieli 16384 różne wersje zakodowanego
DES data key stworzonego w 6 kroku
Krok 11 c.d.
Ponieważ klucze stworzone w kroku 9
były kluczami eksportowymi, nie
mogliśmy nimi zaszyfrować dowolnej,
znanej nam wartości, tak jak działo się
to w pierwszej części ataku, gdy
szyfrowaliśmy „0”. To tłumaczy do
czego potrzebowaliśmy pierwszej
części, ataku.
Krok 12
Stworzenie klucza 3DES z obiema
częściami różnymi lecz o znanej
wartości
Krok 13
Połączenie klucza z poprzedniego kroku z
nieznanym replicate key part z kroku 7, w
celu wygenerowania 3DES exporter key z
obiema częściami różnymi
To jest miejsce w którym oprogramowanie
IBM’a zawodzi. Pozwala nam na przejście
(”bootstrap”) z replicate key part na 3DES
exporter key z obiema częściami różnymi
Krok 14
Wyeksportowanie wszystkich tajnych
kluczy z IBM’a przy użyciu 3DES
exporter key z kroku 13
Jak tylko skończy się ten krok możemy
zatrzeć ślady naszej obecności i zakończyć
sesję.
Krok 15
Po około dwóch dniach pracy układu
FPGA będziemy znali zarówno klucz
DES data key oraz replicate key
part, a dzięki nim obliczymy 3DES
exporter key z kroku 13 którym to
zaszyfrowaliśmy i wyeksportowaliśmy
wszystkie ściśle tajne klucze
Kim są autorzy tego
ataku ?
Michael Bond i Richard Clayton są
doktorantami Uniwersystetu w Cambrigde na
wydziale informatyki.
Jak zareagował na to
IBM ?
Jedna z pierwszych odpowiedzi:
"Ten akademicki przypadek opiera się o
specyficzne warunki laboratoryjne. W
świecie rzeczywistym jest zbyt dużo
zabezpieczeń fizycznych i autoryzacji
użytkownika, aby taki atak mógł być
skuteczny"
Jak zareagował na to
IBM c.d.?
Lecz po paru miesiącach IBM
wypuszcza znaczącą modyfikacje
mającą na celu uniemożliwienie
przeprowadzenia tu opisanego ataku
Skoro atak jest w praktyce niemożliwy
po co wypuszczać taką modyfikację ? ☺
Jak zareagował na to
IBM c.d.?
W Maju 2005 zaprezentowano następcę
IBM 4758: model 4764

Podobne dokumenty