Klucze YubiKey da się złamać, ale czy jest się czego bać? (film, 18m)
Mateusz Chrobok w swoim najnowszym materiale porusza temat kluczy sprzętowych takich jak YubiKey oraz protokołu Fido2, które są uważane za jedne z najbezpieczniejszych metod uwierzytelniania. Jednak w ostatnim czasie na jaw wyszła informacja, że te klucze da się podrobić, co wywołało niemałe zamieszanie. W nagłówkach mediów można było przeczytać o tym, że bezpieczeństwo użytkowników jest zagrożone, a świat staje na głowie. Mateusz stara się rozwiać te obawy, tłumacząc, że mimo istniejącego ryzyka, klucze sprzętowe wciąż są jednymi z najbardziej wiarygodnych narzędzi do potwierdzania tożsamości.
W swoim filmie Mateusz zwraca uwagę, że klucze sprzętowe, takie jak YubiKey, działają na zasadzie potwierdzania zarówno tożsamości użytkownika, jak i jego obecności przed komputerem. To bardzo praktyczne rozwiązanie, które eliminuje konieczność pamiętania wielu haseł czy generowania kodów jednorazowych. Bezpieczeństwo tych kluczy w dużej mierze opiera się na tym, że nie można ich pożyczyć ani skopiować, co sprawia, że są one mniej podatne na ataki. Dodatkowo, klucze te wykorzystują tzw. secure element, który w teorii zapewnia, że klucze prywatne są bezpiecznie przechowywane i nie mogą być wyjęte z urządzenia.
Tematem wideo jest atak Euclid, w którym Thomas Roche z Ninja Lab zdołał sklonować Ubiquilla. Przy pomocy analizy widma elektromagnetycznego, odkrył, jak oprogramowanie chipu SLE78 od Infineona wykorzystuje klucze prywatne, exposing cryptographic weaknesses. To nie jest łatwy proces i wymaga fizycznego dostępu do urządzenia, co czyni go trudnym do zrealizowania dla przeciętnego użytkownika. Mateusz podkreśla, że choć możliwe jest przeprowadzenie takiego ataku, nie należy panikować. Ryzyko jest realne, ale zrozumienie mechanizacji i oraz bezpieczeństwa procesów jest kluczowe.
Mateusz przedstawia również różne zabezpieczenia oraz rozwiązania, które mogą pomóc w uniknięciu ataków tego typu. Jednym z najważniejszych kroków jest dostęp do nowoczesnych kluczy, które nie posiadają podatności, czyli wersji 5.7 i nowszych. Subskrybenci są zachęcani do zakupu aktualnych modeli bezpośrednio od producenta, ponieważ wiele starszych urządzeń może już być narażonych na wspomniane ataki. To przestrzega przed zbytnim zaufaniem do zabezpieczeń oraz zachęca do dokonywania regularnych audytów sprzętu.
Na koniec, warto zwrócić uwagę na statystyki filmu. W chwili pisania tego artykułu, materiał Mateusza Chroboka ma 58,022 wyświetleń oraz 2,814 polubień. To pokazuje, że temat jest na czasie i wzbudza zainteresowanie nie tylko wśród entuzjastów technologii, ale także wśród zwykłych użytkowników, którzy powinni zabezpieczać swoje dane. Klucze sprzętowe, mimo swoich słabości, pozostają jednym z najskuteczniejszych narzędzi do uwierzytelniania, a ich poprawne użycie zminimalizuje ryzyko wycieku danych.
Toggle timeline summary
-
Wprowadzenie do metod uwierzytelniania, takich jak YubiKey i protokół Fido2.
-
Dyskusja o niedawnych wiadomościach dotyczących klonowania YubiKey.
-
Kontekstowe wyjaśnienie kluczy sprzętowych i protokołu Fido2.
-
Klucze sprzętowe funkcjonują w bezpiecznym procesie uwierzytelniania.
-
Podkreślenie niemożności pożyczania lub kopiowania tych kluczy.
-
Wprowadzenie do ataku Euclid, który może sklonować klucz Ubiquity.
-
Wyjaśnienie punktów odniesienia bezpieczeństwa w systemach.
-
Bezpieczne elementy są kluczowe dla mechanizmów kryptograficznych.
-
Przykłady bezpiecznych elementów w urządzeniach, takich jak chipy TPM.
-
Dyskusja na temat wcześniejszych badań nad bezpiecznymi elementami.
-
Wprowadzenie do ataków bocznych celujących w implementacje.
-
Szczegółowe omówienie procesu analizy komponentów elektronicznych poprzez emisje elektromagnetyczne.
-
Wzmianka o potrzebie bibliotek do ochrony przed atakami bocznymi.
-
Przedstawienie wyników badacza Thomasa Roche'a na temat luk w zabezpieczeniach.
-
Podsumowanie złożoności i umiejętności wymaganych do przeprowadzania ataku.
-
Dyskusja na temat praktycznych ryzyk i rozważań dotyczących używania kluczy sprzętowych.
-
Wgląd w zmieniający się krajobraz bezpieczeństwa sprzętowego z aktualizacjami.
-
Ostrzeżenia przed zagrożeniami przy jednoczesnym podkreśleniu roli zabezpieczeń kluczy sprzętowych.
-
Ostateczne przemyślenia na temat implikacji bezpieczeństwa kluczy i odpowiedzialności użytkownika.
Transcription
Cześć. Klucze sprzętowe takie jak YubiKey i protokół Fido2 są jednymi z najbezpieczniejszych sposobów uwierzytelniania. To autentyczny fakt, a z faktami się nie dyskutuje. Dlatego właśnie kiedy świat obiegła ostatnio łamiąca wiadomość, że klucze YubiKey da się podrobić, to podniósł się potężny raban, że to dramat, awaria i w ogóle koniec świata, jaki znamy. Już nikt nigdy nie będzie bezpieczny. Nikt. Ale czy to prawda? No niby tak, ale jednak nie do końca. Zapraszam. O bezpiecznym uwierzytelnianiu z wykorzystaniem protokołu Fido2, a tym samym też o kluczach sprzętowych, zrobiłem już kiedyś materiał, więc jeżeli chcecie wiedzieć czym są i jak właściwie działają, to zachęcam do nadrobienia. Dziś nie o tym, ale jednym zdaniem dla kontekstu. Klucze sprzętowe wkładane do portu USB mogą służyć jako jeden ze składników procesu uwierzytelniania, potwierdzając nie tylko to, że jesteśmy tym, za kogo się podajemy, ale również gwarantując naszą obecność przed komputerem. To nie tylko bardzo bezpieczne, ale też wygodne, bo nie musimy zaśmiecać sobie głowy kolejnymi hasłami czy generować kodów jednorazowych. Jednak, co bardzo istotne, całe bezpieczeństwo tego procesu opiera się na tym, że klucza takiego nie można od nas pożyczyć i następnie skopiować. No ale właśnie to udało się niedawno zrobić. Thomas Roche z francuskiego Ninja Lab dał radę sklonować Ubiquilla w ataku zwanym Euclid. Nazwa bierze się od lic, czyli wyciek, i euc, czyli dzielenie euclidesowskie. Zresztą, po informatycznemu powiemy modulo, a jest ono podstawą kryptografii, w której główną rolę odgrywają ogromne liczby pierwsze. To zdradza nam nieco więcej w kwestii tego, w którym miejscu odkryto podatność. W każdym systemie musi być tzw. kotwica bezpieczeństwa. Jest to coś, czemu po prostu można zaufać. W przypadku mechanizmów kryptograficznych rolę taką pełni najczęściej tzw. secure element. To bardzo prosty mikrochip wlutowany w płyty główne komputerów, telefonów czy jakichś pomniejszych urządzeń, gwarantujący w teorii, że przechowywane w nim sekrety nie będą możliwe do odczytania przez kogoś niepowołanego. Sekrety te zapisane są w postaci kluczy prywatnych, za pomocą których jesteśmy w stanie odszyfrować jakieś dane, żeby potwierdzić swoją tożsamość. Klucze te nigdy nie opuszczają fizycznie takiego secure elementu, bo to po prostu technicznie niemożliwe. Wszystkie obliczenia wykonywane są bezpośrednio w mikrochipie, wewnętrznie, co ma gwarantować bezpieczeństwo całego procesu. Tak właśnie działa choćby moduł TPM w komputerach, czy swego czasu Apple'owy chip T2. W telefonach w takim właśnie secure elemencie zapisane są Wasze karty płatnicze do wykorzystania w Apple Pay'u czy portfelu Google, aby jakaś złośliwa aplikacja nie mogła ich sobie ot tak skopiować i wykorzystać. I dawno, dawno temu w pewnej małej firmie na ESO właśnie zagadnieniami związanymi z secure elementem się zajmowałem. Ale dość prywaty, do brzegu. O ile, owszem, na przestrzeni lat pokazały się na te bezpieczne czipy różne ataki, to nadal uznawane są one za w miarę bezpieczne. Szczególnie w porównaniu z całkowitym brakiem takich zabezpieczeń. Po prostu lepiej jak są, niż jakby ich nie było. Rachunek zysków i strat w tej kwestii jest naprawdę oczywisty. Nic dziwnego więc, że występują prawie wszędzie. W telefonach, smartkartach, ale też sprzętowych tokenach w rodzaju Yubikijów czy takich przeznaczonych stricte do zabezpieczania portfeli krypto. Dobrym przykładem będzie tu Trezor. Ich bezpieczeństwo bierze się w dużej mierze z prostoty. To nieskomplikowanie tych układów czyni je naprawdę trudnymi do zaatakowania. No bo niewiele dostępnych funkcji to niewiele miejsc na potencjalne błędy. No ale trudne nie znaczy niemożliwe. Szczególnie kiedy ma się w swoim arsenale ataki kategorii side-channel. Co to takiego? Atakuje się implementacje, a nie algorytmy. To takie bardzo ciekawe, nieszablonowe podejście do rozwiązania problemu, gdzie tak na dobrą sprawę nie wykorzystuje się podatności samego urządzenia, ale jego normalne zachowanie w konkretnym środowisku. Na przykład to, że kiedy w czymś płynie prąd, pojawia się też emisja fal elektromagnetycznych. Thomas zabrał się więc do analizowania widma elektromagnetycznego generowanego przez taki czip. Po co? Pewne operacje potrzebują tego prądu więcej, inne mniej. Pomiędzy nimi mogą też pojawiać się przerwy. To wszystko może wydawać się totalnie nieistotne, bo trwa prawie niemierzalne ułamki sekund, ale dysponując specjalistycznym sprzętem i oprogramowaniem, można w ten sposób pozyskać bardzo wiele informacji. Na przykład ustalić, w którym dokładnie momencie urządzenie wykonuje pewne konkretne matematyczne obliczenia. To dość znany w literaturze i wśród specjalistów wektor ataku, przed którym rzadko bronią się producenci różnych rozwiązań, bo wydaje się on totalnie abstrakcyjny. Aby zobrazować to we w miarę prosty sposób, wyobraźcie sobie problem sprawdzania poprawności hasła gothic. Niezbyt ogarnięty algorytm zrealizuje to sprawdzając kolejno znak po znaku, czy pasują one do zapisanego wzorca. No i teraz testując różne dwuliterowe kombinacje AA albo BA zostaną odrzucone już na etapie sprawdzania pierwszej litery. Kiedy jednak sprawdzimy GA, to odrzucenie nastąpi chwilę później, po sprawdzeniu dopiero drugiej litery. Ta różnica w czasie wykonywania działań zdradza nam, czy potrafiliśmy, czy nie. To oznaczać będzie, że pierwszy znak, który podaliśmy jest prawidłowy, bo przeszliśmy w sprawdzaniu o krok dalej. Powtarzając więc ten schemat wystarczającą liczbę razy jesteśmy w stanie odkryć sekretne hasło. W realnym świecie jednak nie jest tak prosto. Biblioteki powinny zawierać sobie metody chroniące przed takimi atakami. Np. wykonywać wszystkie operacje niezależnie od stopnia skomplikowania i wyniku w tym samym czasie. Thomas postanowił sprawdzić, czy w czipach wykorzystywanych przez Ubiquie takie zabezpieczenia były stosowane. Nie było to jednak proste. Mikrokontrolery te o symbolu kodowym SLE78 produkowała niemiecka firma Infineon, bardzo poważny gracz na rynku półprzewodników. Zawierały one w sobie bardzo, bardzo tajną bibliotekę odpowiedzialną za operacje kryptograficzne. Nawet uzyskanie dostępu do jej API obarczone było podpisaniem niesamowicie restrykcyjnej umowy NDA. Tylko Infineon, przynajmniej w teorii, wie jak ona właściwie działa. To bardzo zły model bezpieczeństwa. Bo powinno się ono zawsze opierać na jakości algorytmów i ich audycie, a nie nadziei na to, że coś na zawsze pozostanie tajne. Thomas analizował problem przez jakieś dwa lata, oczywiście z drobnymi przerwami, sięgając nawet do jakichś archiwalnych patentów i z czasem sukcesywnie dochodził do kolejnych wniosków. W obserwowanym widmie elektromagnetycznym odnalazł struktury, które przypominały działania algorytmów wykonywanych wielokrotnie w pętli. No a popularne algorytmy wykorzystywane w kryptografii są naprawdę dobrze opisane, więc można próbować to do siebie dopasować i na przykład ustalić, w którym momencie czip wykorzystuje klucz prywatny, dokonując różnych matematycznych obliczeń. Analizując te procesy czułym oscyloskopem Thomas zauważył też bardzo drobne odchylenia w czasie przy wykonywaniu obliczeń, z których potem mozolnie, krok po kroku udało mu się wyciągnąć z urządzenia zapisany w nim sekret. Mimo, że nie jest to teoretycznie możliwe. Podobnie jak w przytoczonym przed chwilą przykładzie z dopasowywaniem hasła. Okej, to spore uproszczenie, więc zainteresowanych odsyłam do publikacji, która ma prawie 90 stron i składa się w dużej mierze ze strogiej kryptomatmy. Link jak zawsze znajdziecie w opisie. Ale skoro technikalia już ogarnęliśmy, to przejdźmy do tego, jak w praktyce może wyglądać taki atak. Po pierwsze i najważniejsze, miejmy to już za sobą, atak ten jest naprawdę skomplikowany i nie mówię tu tylko o samej matematyce, bo po prostu składa się z wielu etapów. Potrzebny jest fizyczny dostęp atakującego do urządzenia, które chce skopiować. Musi on więc jakoś je od nas pożyczyć. Atakujący musi wiedzieć też, do jakich kąt chce wykraść dostęp, ponieważ informacji tej nie wyciągnie z urządzenia. Po wykonaniu kopii, drzwi stają co prawda przed nim w miarę otworem, ale nie ma mapy, gdzie są one zlokalizowane. Aby przejąć kontrolę nad naszym kątem, potrzebne będą mu też inne składniki procesu uwierzytelniania, klinu, pinu czy hasła. No i, o czym już mówiłem, potrzebuje specjalistycznego sprzętu. Nie taniego, dodajmy. Do tego niezbędna jest naprawdę mega fachowa i specjalistyczna wiedza nie tylko z zakresu kryptografii, ale też elektroniki i elektryki. Schemat więc jest następujący i składa się z dwóch etapów. W trakcie pierwszego atakujący zostaje z naszym kluczem sam na sam na jakąś godzinę, choć jest tutaj spory potencjał na optymalizację. Najlepiej tak, abyśmy tego nie zauważyli. Na przykład jak jesteśmy pod prysznicem, więc, jak widać, bezpiecznie jest nie siedzieć pod nim zbyt długo. Atakujący przygląda się zachowaniu klucza, podejmując wielokrotnie próby logowania z wykorzystaniem tego dodatkowego składnika i zapisuje swoje obserwacje. Potem może nam go zwrócić, ale dostanie się do zapisanego sekretu trwa jeszcze około doby mozolnych obliczeń oraz analizowania zebranych danych. To drugi etap. Proces ten da się usprawnić, bo jest w dużej mierze manualny i Thomas szacuje, że po odpowiednich automatyzacjach czas ten da się skrócić do mniej niż godziny. Co istotne, cały ten atak musi być osobno przeprowadzony dla każdego jednego sekretu przechowywanego w czipie. Jeżeli chcemy zdobyć klucze do kilku usług, to potrwa on odpowiednio kilka razy dłużej i to na obu etapach. Czy podatne są tylko Yubikie? Niestety nie. Rzeczona biblioteka Infiniona jest już prawie pełnoletnia i występuje w bardzo wielu produktach. Wszystkie one są więc potencjalnie podatne, bo działają dokładnie w ten sam sposób. Ba, co ciekawe, wiele z tych sprzętów przeszło nawet różne certyfikacje najwyższej klasy, w trakcie których nie odnaleziono podatności i uznano je za bezpieczne. Warto więc pamiętać, że certyfikacje certyfikacjami, ale nie są one gwarancją, że nic nigdy złamane nie zostanie. Yubiko opublikowało w koordynacji z badaczami raport oraz wydało rekomendacje bezpieczeństwa. Podatne na zagrożenia są klucze Yubikie i SecurityKey w wersji firmware przed 5.7 oraz kluczyki HSM w wersji do 2.4. Firma oceniła zagrożenie na 4.9 w skali CVSS, bo o ile potencjalne skutki są dość katastrofalne, o tyle koniecznych do spełnienia jest szereg warunków. Po pierwsze, wymagany jest fizyczny dostęp do Yubikea. Po drugie, ponad drugiego sprzętu. No i wiedza. Nie zapominajmy o wiedzy. A koordynacja ataku na takim poziomie możliwa do wykonania jest w zasadzie tylko przez Narodowe Agencje Wywiadowcze z najwyższej półki. Mimo tego, Yubiko nie zbagatelizowało problemu i zmieniło też sprzętowo klucze, odchodząc od Biblioteki Infineona, na rzecz swojej własnej w urządzeniach z wewnętrznym oprogramowaniem w wersji 5.7 i nowszych. Od poinformowania Yubiko przez badaczy z Ninja Lab o Luce do premiery niepodatnej wersji minął miesiąc. To chyba jakiś rekord. Czapki z głów. Wersje niepodatne dostępne są w sprzedaży od maja tego roku. Dlatego jeżeli kupowaliście Yubikea niedawno i bezpośrednio od producenta, to sprawa Was raczej nie dotyczy. Niestety w kluczach nie da się wykonać aktualizacji, dlatego, zależnie od poziomu paranoi, jedyna rada to po prostu je wymienić. To niestety ma spory wpływ na zaufanie. Bo ogólnie Fajdo, a klucze sprzętowe w szczególności, opierają się na założeniu, że ich zawartość nie może być odczytana, a tym samym ich skopiowanie jest fizycznie niemożliwe. No i jak się okazuje, to nieprawda. Owszem, nie jest to może dziura w samych założeniach urządzenia, ale możliwe jest przeprowadzenie ataku side-channel, który kładzie je na łopatki z zupełnie niespodziewanej strony. A używa się ich w bardzo wrażliwych miejscach, co tylko potęguje problem. Warto też podkreślić raz jeszcze, że Ninja Lab i Thomas zgodnie ze wszystkimi prawidłami działania w takich sytuacjach, skoordynowali publikację dotyczącą podatności tak z Infineonem, jak i choćby Ubico, czy agencjami certyfikującymi. Cały proces trwał prawie pół roku, więc tym bardziej chwała Thomasowi za cierpliwość. Chociaż po dwóch latach oglądania oscyloskopu nic pewnie nie jest w stanie go już wzruszyć. To zresztą nie pierwszy raz, jak badacze z Ninja Lab ogarnęli taki temat. Parę lat temu rozłożyli w sumie w prawie identyczny sposób klucze sprzętowe Google Titan. Tam akurat głównej roli nie grał czip Infineona, tylko firmy NXP, ale zasada była bardzo podobna. Też trzeba było wziąć skalpel, opalarkę, a potem masę drogiego sprzętu. Pokazuje to, że bardzo finezyjne ataki kategorii side-channel mogą być drogą do łamania nawet najlepszych zabezpieczeń. Przynajmniej w teorii, bo nikt w ten sposób nie będzie próbował kopiować Yubikija pana Tomka z księgowości. Co innego w przypadku grup APT i ich celów w postaci dyplomatów czy prezesów wielkich międzynarodowych spółek? Co robić i jak żyć? Po pierwsze, nie panikuj. Kiedy przeczytasz taki łamiący nagłówek, zerknij w źródła albo poszukaj większej ilości informacji na dany temat. Bardzo często okazuje się, że po sprawdzeniu szczegółów rzeczywistość okazuje się zdecydowanie bardziej zwyczajna niż sensacyjne filmy. Bo to nie jest tak, że atakujący pozostanie niezauważony. Taki Yubiki po przeprowadzeniu opisywanego ataku wygląda jak po bliskim spotkaniu z czołgiem, bo trzeba go rozebrać do rosołu przed użyciem oscyloskopu. Poznasz więc raczej, że ktoś pokleił go taśmą klejącą albo kropelką. I tu, owszem, znowu można skomplikować atak dalej i nie zwracać Ci skradzionego klucza, a wykonać po prostu dwie kopie i oddać Ci jedną z nich. Ale to komplikuje jeszcze bardziej już wystarczająco skomplikowany atak. Przeanalizuj swój profil ryzyka i przeciwdziałaj zagrożeniom, którym naprawdę powinieneś się przejmować. Na przykład phishingiem. A w tym przypadku klucze sprzętowe są niezastąpionym wsparciem i nadal pozostają jedną z najbezpieczniejszych form uwierzytelniania. Tak, nawet te podatne na opisany atak. Sam fakt, ile trzeba się napocić, aby coś z nimi nabroić, powinien już dawać do myślenia. Wystarczy po prostu świadomość, że absolutnie zawsze muszą pozostawać pod naszą kontrolą i nie mogą nigdy trafiać nawet na moment w niepowołane ręce. Wtedy szansa przeprowadzenia podobnego ataku maleje do zera. Bo większym zagrożeniem jest po prostu fakt, że ktoś nam taki klucz ukradnie, niż weźmie, skopiuje i odda. Dlatego jeżeli nie umiesz znaleźć swojego klucza, to go niezwłocznie dezaktywuj. Czy są inne klucze? Oczywiście, choćby Nitro Key. Ale nowsze YubiKey też są już poprawione. Jak sprawdzić, który masz? Możesz to zrobić appką, nazywa się Yubico Authenticator i jest dostępna na wszystkie popularne systemy operacyjne. Jest ona w stanie zidentyfikować, jaki firmware posiada Twój klucz. Przypominam, wersje od 5.7 w górę nie są podatne na ten atak. Problem rozwiązuje się też sam, jeżeli nasz klucz jest nieco bardziej skomplikowany i wymaga do uruchomienia biometrii czy pinu. Thomas podkreśla to wielokrotnie w swojej pracy, więc też chcę, aby wybrzmiało to wprost. Ten materiał nie ma na celu mówić YubiKey zły, tylko pokazać Wam, jak nawet najbezpieczniejsze rozwiązania padają, kiedy ktoś jest wystarczająco zdeterminowany. Czy istnieje w ogóle techniczny sposób, aby takie ataki nie były możliwe? Tak. Na poziomie projektowania chipa powinno się zadbać o to, aby w trakcie krytycznych operacji kryptograficznych czasy wykonywania operacji matematycznych na danych były albo przypadkowe, albo jednakowe. Są na to sposoby. Często oznacza to spadek wydajności, ale uniemożliwia przeprowadzenie ataku kategorii side-channel tego typu. Stosuje się też rozwiązania anti-tampering, czyli różne fizyczne blokady, które sprawiają, że próba dostania się do wnętrza urządzenia kończy się jego nieodwracalnym uszkodzeniem. Prawie tak jak w filmach. I to już wszystko na dziś. Tymczasem dziękuję za Waszą uwagę i do zobaczenia!