YubiKey keys can be hacked, but is there anything to be afraid of? (film, 18m)
In his latest video, Mateusz Chrobok discusses hardware security keys like YubiKey and the Fido2 protocol, which are considered some of the safest authentication methods available. Recent news about the potential for YubiKeys to be cloned has caused quite a stir in the tech community, prompting concerns that user safety is at risk. Mateusz aims to alleviate these worries, explaining that while risks exist, hardware keys are still among the most reliable tools for identity verification currently available.
He points out that hardware keys, such as YubiKey, confirm both the user’s identity and their physical presence at the computer. This practical solution eliminates the need to remember multiple passwords or generate one-time codes, making accessibility easier for the user. The security of such keys heavily relies on the fact that they cannot be borrowed or cloned, which helps to mitigate certain attacks. In addition, these keys utilize a secure element that theoretically ensures the private keys are stored securely and cannot be extracted from the device.
The video discusses the Euclid attack, where Thomas Roche from Ninja Lab managed to clone a Ubiquilla by analyzing the electromagnetic spectrum generated during cryptographic operations. This complex process requires physical access to the device, which makes it challenging for the average user to execute. Mateusz emphasizes the importance of understanding the mechanics and security measures relevant to this process, suggesting that while the risk is real, knowledge and awareness can drastically reduce the likelihood of such attacks succeeding.
Mateusz also explores various safeguards and measures that can help prevent attacks of this nature. One of the most crucial steps includes ensuring the use of modern keys without vulnerabilities, specifically versions 5.7 and above. He encourages viewers to buy updated models directly from the manufacturer, as many older devices may already be at risk from described attacks. This underlines the importance of not placing undue trust in security measures and encourages regular audits of one's hardware.
Finally, it's worth noting the statistics of the video. As of the time of writing this article, Mateusz Chrobok's video has garnered 58,022 views and 2,814 likes. This suggests that the topic is timely and resonates with both technology enthusiasts and everyday users who need to secure their data. Despite their vulnerabilities, hardware security keys remain one of the most effective authentication tools, and using them correctly minimizes the risk of data breaches.
Toggle timeline summary
-
Introduction to authentication methods like YubiKey and Fido2 protocol.
-
Discussion about recent news on YubiKey cloning.
-
Contextual explanation of hardware keys and Fido2 protocol.
-
Hardware keys function in a secure authentication process.
-
Emphasis on the impossibility of loaning or copying these keys.
-
Introduction to Euclid attack that can clone the Ubiquity key.
-
Explanation of security anchors in systems.
-
Secure elements are critical for cryptographic mechanisms.
-
Examples of secure elements in devices like TPM chips.
-
Discussion of past research on secure elements.
-
Introduction of side-channel attacks targeting implementations.
-
Detailing the process of analyzing electronic components through electromagnetic emissions.
-
Mention of the need for libraries to protect against side-channel attacks.
-
Introduces findings from the researcher Thomas Roche on vulnerabilities.
-
Summary of the complexity and skills required for executing an attack.
-
Discussion on practical risks and considerations of using hardware keys.
-
Insight into the changing landscape of hardware security with updates.
-
Cautions against threats while affirming the security role of hardware keys.
-
Final thoughts on the implications of key security and user responsibility.
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!