Błąd w implementacji podpisu cyfrowego w PS3

2010-12-30 00:00:00 +0000


Implementacja ochrony autentyczności oprogramowania w konsolach PS3 jest dziurawa z powodu trywialnego błędu w generowaniu podpisów cyfrowych - poinformował zespół badaczy na konferencji CCC 2010. Oprogramowanie ładowane przez konsolę Sony PlayStation 3 zawiera podpis cyfrowy weryfikowany przez system operacyjny - jest to jedna ze standardowych funkcji formatu SELF/SPRX.

Podpis na kodzie binarnym jest składany przy pomocy standardowego algorytmu ECDSA opartego o krzywe eliptyczne. Jednym z czynników używanych w obliczaniu podpisu jest liczba losowa:

A new secret random number k shall be generated prior to the generation of each digital signature for use during the signature generation process.

W implementacji PS3 ta sama liczba losowa była wykorzystywana wielokrotnie, co pozwoliło grupie fail0verflow odtworzyć drugi, stały czynnik klucza prywatnego. Według autorów klucz prywatny, który odtworzyli umożliwia tworzenie paczek z oprogramowaniem, aktualizacji, konfiguracji itd z podpisem cyfrowyn nieodróżnialnym od orygialnego podpisu Sony.

Cała prezentacja (o kluczach jest ok. 5 minuty):

http://www.youtube.com/watch?v=84WI-jSgNMQ