Archiwum z marzec, 2009|Strona archiwum miesięcznego

Inżynier

W dniu wczorajszym zdałem egzamin dyplomowy tym samym uzyskałem tytuł Inżyniera. Kupe stresu nom ale w końcu mam już to samo sobą.

Nowe Gadu-Gadu

W ramach przerywnika od przygotowań do egzaminu dyplomowego zacząłem analizować zabezpieczenia w nowym gadu-gadu.
Utworzyłem listę plików, ich lokalizację oraz znaczenie, do pobrania tutaj : http://rafal.jelito.org/arty/lista.pdf

Z tego co podaje producent w momencie założenia profilu na hasło pliki konfiguracyjne takie jak :
- ContactList.xml
- Profile.xml
- Status.xml
są kodowane algorytmem Blowfish, natomiast plik archives.db jest kodowany AES256. Zakodowany klucz sprawdzający hasło znajduję się w pliku ProfileBasic.xml pod pozycją <ProfilePasswordHash> w postaci kodowanej bodajże w base64.

W momencie nieużywania hasła profilu mamy bezpośredni dostęp do archiwum, które jest zapisane w postaci bazy SQL (SQLite) do odczytania chociażby poprzez użycie SQLite Manager dla Firefoxa.
Hasło do serwera jest zapisane w pliku Profile.xml pod pozycją <ProfilePassword>. I tu GG się postarało bo użyło w końcu nowego algorytmu. Zakodowany ciąg ma w przypadku haseł o długości 7-9 znaków zawsze długość 352 znaków. Zmienia się on zawsze po każdym wylogowaniu. Jednak charakterystyczne jest również to iż podmieniając nowy ciąg na poprzednio wygenerowany, program nie wykryje błędu i zaloguje się do sieci. Klucz ten nie zależy od wartości zapisanych w <AuthToken>,  ale niech ktoś nie myśli że wystarczy podmienić plik ze swoim i jesteśmy zalogowani, gdyż w dekodowaniu hasła najwyraźniej bierze udział jakiś klucz sprzętowy.
Hasło już nie jest przetrzymywane w zdekodowanej formie w pamięci procesu, a więc koniec z łatwym przechwytywaniem :-)
Pewnie minie trochę czasu jak algorytm zostanie rozpracowany, więc najwyższy czas się przerzucić ze starego 7.7.