Skróty, podpisy, odtwarzalne kompilacje i audyty odpowiadają na różne pytania.
Otwarty kod umożliwia jego analizę, lecz sam w sobie nie dowodzi, że zainstalowana aplikacja odpowiada temu kodowi ani że nie ma podatności. Oceniając komunikator, warto rozdzielić kilka rodzajów dowodów: kod źródłowy, proces kompilacji, podpis pliku, testy protokołu i raporty z audytów.
Co dokładnie pokazuje każdy dowód?
| Dowód | Główna korzyść | Czego sam w sobie nie dowodzi |
|---|---|---|
| Dostępny do odczytu kod źródłowy | Możliwość analizy projektu i implementacji | Zgodności z plikiem instalacyjnym ani braku wszystkich błędów |
| Odtwarzalna kompilacja | Możliwość porównania wyników z określonego źródła i środowiska | Bezpieczeństwa samego kodu |
| Podpis APK | Sprawdzenie podpisu i powiązania pliku z zaufanym kluczem podpisującym | Nieszkodliwości zachowania aplikacji |
| Skrót SHA-256 | Wykrywanie różnic w bajtach względem zaufanej wartości skrótu | Autentyczności, gdy napastnik podmienił jednocześnie plik i skrót |
| Wektor testowy | Sprawdzenie określonego zachowania dla ustalonych danych wejściowych i wyjściowych | Pokrycia wszystkich stanów i ścieżek wykonania |
| Niezależny audyt | Ustalenia z analizy określonego zakresu i wersji | Trwałej gwarancji dla wszystkich przyszłych wersji |
Odtwarzalna kompilacja to nie to samo co pobranie pliku o zgodnym skrócie
Zgodnie z definicją Reproducible Builds odtwarzalność oznacza uzyskanie identycznego wyniku kompilacji z określonych źródeł, środowiska i instrukcji. Jeśli tylko porównujesz pobrany plik ze skrótem opublikowanym przez producenta, przeprowadzasz kontrolę integralności; nadal nie skompilowałeś samodzielnie pliku z kodu.
Oceniając deklarację odtwarzalności, poproś o wersję kodu, zależności, instrukcje kompilacji i raport innej osoby, która powtórzyła wynik. Stwierdzenie „źródła są na GitHubie” nie zastępuje tych dowodów.
Jak prawidłowo interpretować sprawdzanie APK?
- Pobierz plik oficjalną drogą i dla konkretnej wersji.
- Uzyskaj skrót i informacje o podpisującym ze źródła, którego autentyczności ufasz.
- Oblicz skrót pliku i porównaj go ze skrótem tej samej wersji.
- Podczas analizy technicznej zweryfikuj również podpis; obsługuje to oficjalne narzędzie apksigner.
- Jeśli zauważysz rozbieżność, przerwij instalację i wyjaśnij przyczynę; nie podpisuj pliku ponownie, aby ominąć błąd.
Przykładowe polecenie sprawdzające dla specjalisty dysponującego Android SDK Build Tools:
apksigner verify --verbose --print-certs app.apk
Nazwa app.apk jest tylko przykładem. Powodzenie polecenia nie eliminuje potrzeby znajomości prawidłowego klucza wydawcy.
Jaką rolę pełni Proof Lab?
Proof Lab Livara udostępnia narzędzia do konkretnych kontroli. Przeczytaj zakres każdego eksperymentu: skrót pliku, przykład uzgadniania klucza i odrzucenie zmodyfikowanych danych dotyczą różnych pytań. Udana demonstracja kryptograficzna nie jest audytem całej zainstalowanej aplikacji, serwera, aktualizacji ani zarządzania kontem.
Także model zagrożeń Livara wyraźnie wskazuje, że jeśli napastnik podmieni zarówno plik APK, jak i wyświetlany skrót, sama zgodność skrótów nie dowodzi autentyczności. To ogólne ograniczenie sprawdzania skrótów, a nie cecha konkretnego komunikatora.
O co pytać podczas lektury raportu z audytu?
- Jaka organizacja lub jakie osoby przeprowadziły analizę i gdzie jest publiczny raport?
- Jaką wersję i commit sprawdzono?
- Jakie części pozostawały poza zakresem?
- Jak naprawiono istotne problemy i ponownie je przetestowano?
- Czy zainstalowana u Ciebie wersja jest tą samą wersją lub zawiera jej poprawki?
Nie wyciągaj ostatecznych wniosków ze słów takich jak „zatwierdzony” bez odpowiedzi na te pytania. Użycie standardowego algorytmu również nie oznacza certyfikacji całego produktu według standardu.
Wniosek przy wyborze komunikatora
Otwarty kod i możliwość weryfikacji nie konkurują ze sobą; dostarczają uzupełniających się dowodów. Preferuj produkt, którego deklaracje są precyzyjne, możliwe do prześledzenia i mają jasno określony zakres. Następnie zastosuj tę samą analizę do swojego sposobu użycia, takiego jak grupy, wersja internetowa, kopie zapasowe i połączone urządzenia, zamiast wnioskować o absolutnym bezpieczeństwie na podstawie jednego udanego testu.



