WTW - Szyfrowanie

Z WTW :: Wiki

Uprzedzając...

...dziwne pytania: Tak, włączenie tej opcji WYMAGA PODANIA HASŁA przy każdym starcie programu.

Stare "zabezpieczenia" i rozwiązania konkurencyjne

Do tej pory było tak, i w zasadzie nadal jest, bo może komuś taka atrapa wystarczy, że hasło do komunikatora było zapisane w ustawieniach, zaszyfrowane oczywiście, ale klucz do odczytu ustawień jest zapisany w kodzie programu. A generalnie zasada jest taka, że cokolwiek zapisane w kodzie programu - daje się odczytać jeśli ktoś chce. Plus, usunięcie ustawień komunikatora daje "atakującemu" możliwość załadowania profilu i dobrania się do czegokolwiek co w nim jest. (Tak dalej jest w AQQ i zdaje się Tlenie.)
Teraz, w związku z tym jak działają nowe opcje WTW, hasło nie jest nigdzie zapisane, a bez niego nie da się odczytać ustawień, kontaktów, etc, etc... teraz mogę to w końcu nazwać zabezpieczeniem.

Przy okazji, dla tych co twierdzą, że za zabezpieczenia powinien robić system - powinien. Ale nie zawsze może. Co jeśli komunikator masz na jakiejś formie pamięci przenośnej, i go zgubisz albo po prostu ktoś wykorzysta okazję?

PS.: Swoją droga, napisałem to w jakieś 2 dni i w przeciwieństwie do ludzi z GG nie wydałem 2k USD na licencję jak plotka głosi (http://forum.4programmers.net/Hardware_Software/154051-Szyfrowanie_archiwum_gg_810_zlamane) ;P

Techniczne

Mało technicznie, to używamy do szyfrowania algorytmu AES, pracującego w trybie CBC, z 256 bitowym kluczem. Klucz zaszyfrowany jest także AESem, także CBC z także 256 bitowym kluczem, wygenerowanym z ustawionego przez użytkownika hasła. Zabezpieczone są:

  • Pliki ustawień (także wtyczek, o ile trzymają ustawienia w plikach obsługiwanych przez API komunikatora, standardowe trzymają);
  • Pliki danych dodatkowych (jak metakontakty, numery telefonów, adresy);
  • Archiwum (patrz poniżej, bo tu może występować wyjątek);
  • Wszystko co dotyczy awatarów, o ile nie jest to grafika;
  • Kopie zapasowe w/w.

Przy okazji, jeśli masz duże archiwum to operacje dostepu do szyfrowanego archiwum są oczywiście wolniejsze niż normalnie. No chyba, że masz CPU który potrafi sprzętowo AES wspomagać, wtedy jest dużo lepiej (gdyż WTW sprzętowe wspomaganie zabaw AESem wykorzystuje).

Archiwum

Archiwum komunikatora jest lub nie jest szyfrowane. :D Dokładniej, jeśli profil został utworzony z opcją szyfrowania danych przez WTW, to archiwum jest szyfrowane, jeśli szyfrowanie zostało włączone później, to nie.
Prawdopodobnie kiedyś będzie takie fajne narzędzie "pozakomunikatorowe" pozwalające na rozszyfrowanie całego profilu, albo zaszyfrowanie archiwum które zostało utworzone bez szyfrowania;

Konsekwencje

Kiedy szyfrowanie zostanie uruchomione, nie może być wyłączone. Jeśli po włączeniu szyfrowania zapomnisz hasła, albo zgubisz (lub uszkodzisz) klucz szyfrujący ('wtwMaster.key') - nie będziesz mógł odczytać konfiguracji (i prawdopodobnie archiwum). Twoje hasło nie jest nigdzie zapisane. Dodatkowo, nawet jeśli inny profil ma takie same hasło jak Twój, nie da się odczytać danych jednego profilu po podmianie plików w innym. Jedyny sposób na odczytanie danych to wejście w posiadanie w/w klucza oraz hasła do niego, to tez pliki danego profilu działają zaszyfrowane poprawnie tylko w nim.
Ah i z uwagi na to kiedy pliki są szyfrowane, tj przy stworzeniu, nadpisaniu tychże, dla bezpieczeństwa silnie zalecane jest aby szyfrowanie profilu na hasło uaktywnić przy tworzeniu profilu.