Specjalistom od zabezpieczeń udało się złamać algorytm szyfrujący ECDSA (Elliptic Curve Digital Signature Algorithm) wykorzystywany powszechnie, ze względu na swoją dużą szybkość, w urządzeniach mobilnych. Złamanie zabezpieczenia nie wynika przy tym ze słabości samego algorytmu, czy z błędów w jego implementacji, jak miało to miejsce w przypadku odkrytego niedawno zagrożenia DROWN dla “bezpiecznej” komunikacji TLS. W tym przypadku badacze wykorzystali niedoskonałość… sprzętu.

Do rozszyfrowania danych zabezpieczonych algorytmem ECDSA użyto ataku typu side-channel, czyli takiego, którego powodzenie zależy od fizycznej implementacji algorytmu. Metoda polega po prostu na obserwacji sprzętu na którym uruchomiony jest program i na podstawie zmian fizycznych parametrów odczytanie danych na jakich pracuje. Można to porównać do czytania z ruchu ust – kiedy nie jesteśmy w stanie usłyszeć informacji przesyłanej akustycznie, możemy próbować obserwować obraz “urządzenia” które ją emituje.

W przypadku danych szyfrowanych przez ECDSA, do ich odczytania użyto zmian pola elektromagnetycznego emitowanego przez pracujący procesor. Te w przypadku wspomnianego algorytmu okazują się być na tyle charakterystyczne, że można za pomocą ich analizy zrekonstruować klucz szyfrujący. Do przechwycenia zmian w polu elektromagnetycznym generowanym przez procesor telefonu można użyć sondy umieszczonej w pobliżu urządzenia albo wpiętej w port ładowarki.

Na atak wrażliwe są zarówno telefony z systemem Android jak i iOS (na pewno do wersji 8.3). Co ważne, chociaż metoda opiera się na obserwacji zachowania sprzętu, to niektóre nowsze implementacje ECDSA czy nawet systemy operacyjne mogą czynić zachowanie procesora mniej czytelnym dla złodzieja. Pośród aplikacji podatnych na atak znajdują się również takie, których rozszyfrowanie naraża nas na wymierne straty finansowe, jak na przykład CoreBitcoin, czyli program zabezpieczający portfele z popularną kryptowalutą.

[źródło i grafika: arstechnica.com]