Czy muszę wykonać kopię zapasową kluczy Titanium Backup?

11

Właśnie kupiłem Titanium Backup i skonfigurowałem zaplanowaną zaszyfrowaną kopię zapasową aplikacji i danych użytkownika + systemu, a następnie synchronizację Dropbox. Zakładając, że pamiętam hasło, czy wszystkie dane wymagane do odtworzenia są zapisane? Czy też muszę ręcznie wykonać kopię zapasową klucza prywatnego i zaszyfrowanego klucza symetrycznego?

Häst
źródło

Odpowiedzi:

6

FAQ tytanu kopii zapasowych na temat stanów crypthography że wystarczy hasło dostępu do odzyskania żadnych kopii zapasowych. To musi oznaczać, że plik klucza prywatnego jest przechowywany wraz ze wszystkimi kopiami zapasowymi, ponieważ nigdy nie mógłby działać w żaden inny sposób. Dużym problemem związanym z tym FAQ jest to, że powinno to wyraźnie określać IMHO, aby ułatwić nam użytkownikom.

Zerknąłem na pierwsze bajty jakiegoś pliku kopii zapasowej (mówię tutaj o danych aplikacji, ponieważ Titanium Backup nie tworzy kopii zapasowej okresu APK), zgadnij, co widziałem?

Znalazłem tę samą sekwencję ASCII w pierwszych liniach plików kopii zapasowej: te pliki mają nazwę czegoś. gz, ale tak naprawdę nieto pliki gzip (z powodu umieszczonego przed nimi klucza. Pliki gzip zaczynają się od kodów szesnastkowych 1F 8B 08. Te pliki nie).

Jeśli używasz Linuksa i chcesz go wypróbować, pobierz dwie kopie zapasowe na komputer i wypróbuj to polecenie, które pokazuje pierwsze cztery wiersze pliku:

$ head -n 4 cgeo.geocaching-20130919-000250.tar.gz

Moje wyniki to:

TB_ARMOR_V1
0w5AkcCA9rGtSy3Ecrag19p/FYQ=
BNpyGZq/PQYmpDXkXwji2lQGIQY=
MIGfMA0GCSqGSIb3DQEBAQUAA5GNADCBiQKBgQDWLUH3i295TA9XwPgbzwXEk/0eqowW2xcoxbOQo7NYeqGvctC7dNM33CEh+az25Wj2iTo+kzdIpwM7Y6o5vjW+D/yBCv9nDV1+HLNyut3GDQon84yR6BlgbQJT5QoIra5f6FN+wtqF5/ifW88nzuia2fUOv/IqRVQhHxIY7LPkMQIDAQAB

Całkiem dziwne jak na plik binarny, prawda? Tak przy okazji, tak, mój klucz prywatny TB został zaszyfrowany moim hasłem. Nie mam nic wspólnego z udostępnianiem, ponieważ będziesz potrzebować moich plików kopii zapasowych i hasła, aby uzyskać cokolwiek przydatnego.

Teraz, jeśli uruchomisz, uruchom to samo polecenie dla innego pliku kopii zapasowej:

$ head -n 4 com.amazon.kindle-20130919-000004.tar.gz

Zgadnij co? Dostaniesz to samo * s!

TB_ARMOR_V1
0w5AkcCA9rGtSy3Ecrag19p/FYQ=
BNpyGZq/PQYmpDXkXwji2lQGIQY=
MIGfMA0GCSqGSIb3DQEBAQUAA5GNADCBiQKBgQDWLUH3i295TA9XwPgbzwXEk/0eqowW2xcoxbOQo7NYeqGvctC7dNM33CEh+az25Wj2iTo+kzdIpwM7Y6o5vjW+D/yBCv9nDV1+HLNyut3GDQon84yR6BlgbQJT5QoIra5f6FN+wtqF5/ifW88nzuia2fUOv/IqRVQhHxIY7LPkMQIDAQAB

To po prostu nie może być przypadek. :) Od pewnego momentu wszystko w plikach kopii zapasowych w końcu staje się binarne. Takie zachowanie ma sens, ponieważ oznaczałoby to, że możemy udostępniać tylko pliki kopii zapasowych i zapomnieć o wszystkim - za pomocą hasła możemy odzyskać kopie zapasowe.

Mimo to naprawdę uważam, że programista powinien udokumentować procedurę odzyskiwania własnych uzasadnionych danych (znamy hasło, więc to my!) Z dowolnego komputera z przyzwoitym zestawem narzędzi kryptograficznych (czytaj: OpenSSL ).

Dakatine
źródło
Przechowywanie kluczy w nagłówku plików nie jest szalone, ale zwykle nie te same klucze. zwykle masz klucz szyfrowania pliku (FEK, jest to jeden na plik), który jest przechowywany w nagłówku pliku i szyfrowany przez klucz główny. normalnie również klucz główny jest generowany przy użyciu hasła, więc przepuszczasz hasło przez jakiś SHA lub lepszy bcrypt lub scrypt lub PBKDEF2 i otrzymujesz z niego klucz prywatny. więc w rzeczywistości przechowujesz tylko pliki FEK i metadane, takie jak długość klucza, w plikach.
Schwertspize,
1
Oznacza to, że posiadanie klucza szyfrowania silniejszego niż hasło jest bezużyteczne.
Danilo Bargen,
4

Jak wskazuje @Dakatine, klucz główny jest wstępnie zawieszony w pliku, który jest następnie łączony przez zaszyfrowaną zawartość.

Nie zawracałem sobie głowy badaniem formatu pliku TB_ARMOR_V1, ponieważ ktoś już stworzył narzędzie wiersza polecenia Pythona https://github.com/phyber/TiBUdecrypter

Conrado
źródło
1

Musisz tylko pamiętać hasło. Zrobiłem to wcześniej.

Jeśli się martwisz, zawsze możesz utworzyć kopię zapasową nandroid całego systemu, a następnie wyczyścić i zainstalować niestandardowy ROM. Zainstaluj TB i spróbuj przywrócić aplikację za pomocą tylko hasła. Jeśli potrzebuje czegoś, czego ci brakuje, masz odpowiedź i możesz wrócić do odzyskiwania i przywrócić nandroid. Ale jak powiedziałem, już to zrobiłem i wiem, że hasło jest wszystkim, czego potrzeba.

Stephen Schrauger
źródło