Weryfikacja podpisów APK: jak upewnić się, że Twoja aplikacja jest bezpieczna

A magnifying glass over a phone showing a certificate and fingerprint, illustrating verifying APK signatures

Ładowanie aplikacji na Androida zapewnia swobodę i elastyczność, ale wiąże się z poważnym ryzykiem: zmanipulowane aplikacje. Złośliwi przestępcy często modyfikują popularne aplikacje tak, aby zawierały oprogramowanie szpiegowskie lub reklamowe, a następnie rozpowszechniają je w nieoficjalnych witrynach. Jak możesz mieć pewność, że właśnie pobrany plik APK jest dokładnie tym samym, który programista przesłał do Google Play?

Odpowiedź sprowadza się do Podpisy cyfrowe APK. Poniżej omówimy, jak faktycznie działa podpisywanie aplikacji, i omówimy proces korzystania z naszego Weryfikator pakietu APK online w celu sprawdzenia skrótu i ​​certyfikatu pliku APK, zanim zdecydujesz się mu zaufać.

Wersja 60-sekundowa:

Android podpisuje każdy plik APK kluczem wydawcy. Telefon odmawia „aktualizacji”, której sygnatura nie pasuje do istniejącej instalacji; jest to główna obrona systemu operacyjnego przed podszywaniem się pod inne osoby. Aby zweryfikować plik APK pobrany z boku, oblicz jego skrót SHA-256 i odcisk palca certyfikatu podpisu, a następnie porównaj oba z wartościami, którym ufasz (istniejąca instalacja ze Sklepu Play, opublikowany odcisk palca programisty lub znana, dobra wcześniejsza kopia). Dopasowanie oznacza, że ​​plik jest identyczny pod względem bajtów i podpisany przez tego samego wydawcę; niedopasowanie oznacza nie instaluj.

Co to jest podpis APK?

Podpis cyfrowy jest kryptograficznym dowodem tożsamości. Kiedy programista kończy pracę nad aplikacją, „podpisuje” ją przy użyciu klucza prywatnego (magazynu kluczy). Następnie Android używa odpowiedniego klucza publicznego osadzonego w pliku APK, aby zapewnić:

  1. Uczciwość: Plik nie był zmieniany od czasu podpisania.
  2. Autentyczność: Deweloper jest tym, za kogo się podaje.
  3. Aktualizacje: Tylko pliki APK podpisane tym samym kluczem mogą aktualizować istniejącą aplikację w telefonie.

Ewolucja podpisu: V1, V2, V3 i V4

Przez lata Google stale ulepszało bezpieczeństwo plików APK:

Jak zweryfikować podpisy APK online

Nasz Narzędzie weryfikatora APK nie tylko oblicza skróty; dokonuje pełnego audytu kryptograficznego łańcucha certyfikatów. Oto jak z niego korzystać:

Kroki weryfikacji:

  1. Przejdź do strony Weryfikator APK.
  2. Wybierz plik APK lub XAPK.
  3. Nasze narzędzie analizuje katalog META-INF/ i wyodrębnia dane certyfikatu (.RSA, .DSA lub .EC).
  4. Poczekaj na zakończenie analizy (zajmuje to tylko sekundy).
  5. Przejrzyj Informacje o certyfikacie: nazwa programisty, organizacja i kraj pochodzenia.
  6. Sprawdź Hasze: Porównaj SHA-256 wyświetlany na naszej stronie z wartością opublikowaną przez wydawcę na jego własnej oficjalnej stronie, stronie wydania projektu lub manifeście podpisu.

Ostrzeżenie dotyczące bezpieczeństwa

Jeśli weryfikator pokazuje „Certyfikat debugowania” lub nieznaną jednostkę „z podpisem własnym” dla głównej aplikacji, takiej jak Facebook lub WhatsApp, NIE INSTALUJ GO. Prawie na pewno jest to zagrożone.

Zrozumienie sum kontrolnych (MD5, SHA-1, SHA-256)

Sumy kontrolne to ciągi o stałej długości reprezentujące cały plik. Jeśli zmienisz pojedynczy piksel w ikonie aplikacji, skrót SHA-256 ulegnie całkowitej zmianie.

Typ skrótu Poziom bezpieczeństwa Notatki
MD5 Dziedzictwo Podatny na kolizje. Nie dla bezpieczeństwa.
SHA-1 Umiarkowany Nadal powszechnie używany do szybkiego wyszukiwania.
SHA-256 Doskonały Nowoczesny standard weryfikacji aplikacji.

Co właściwie mówi certyfikat podpisu

Kiedy weryfikator zwraca certyfikat, częściami istotnymi dla bezpieczeństwa sideloadingu nie są kolorowe fragmenty metadanych X.509, ale niewielka garść pól. W praktyce:

Hash a podpis: różnica Większość tutoriali jest pomijana

Ludzie często mylą „hasz” i „podpis”. Służą one bardzo różnym celom, a bezpieczna weryfikacja wymaga zarówno:

W przypadku pliku APK ładowanego z boku najsilniejsza pewność łączy oba: odcisk palca certyfikatu odpowiada znanemu odciskowi palca wydawcy I, SHA-256 pliku odpowiada wartości opublikowanej przez wydawcę dla tej dokładnej kompilacji.

Gdzie uzyskać godny zaufania odcisk palca referencyjnego

Najtrudniejszą częścią weryfikacji jest znajomość właściwej wartości do porównania. Kilka niezawodnych podejść, w przybliżeniu w kolejności pewności:

  1. Własna witryna internetowa lub strona wydania wydawcy. Wiele projektów open source i dostawców dbających o bezpieczeństwo publikuje odcisk palca SHA-256 swojego certyfikatu podpisującego wraz z pobieranymi plikami. To jest złoty standard.
  2. Istniejąca instalacja Sklepu Play. Jeśli aplikacja jest już zainstalowana na urządzeniu zarządzanym przez Play, jej odcisk palca certyfikatu jest z definicji odciskiem palca wydawcy. Porównaj z tym odcisk palca pobranego pliku APK. Narzędzia takie jak Apk Analyzer (w Android Studio) lub apksigner verify --print-certs odczytują je bezpośrednio z zainstalowanego pliku APK.
  3. Pierwszy pakiet APK tej aplikacji, jaki kiedykolwiek zainstalowałeś. Jeśli korzystasz z aplikacji już od jakiegoś czasu i nigdy nie wyświetlił się monit o „niezgodność podpisu”, możesz użyć dowolnej ze swoich starszych kopii jako punktu odniesienia. Kolejne aktualizacje od tego samego wydawcy muszą używać tego samego klucza (lub zmieniać się poprzez wersję 3, w takim przypadku łańcuch nadal weryfikuje).
  4. Zarchiwizowana migawka publiczna. Internet Archive i podobne usługi okazjonalnie przechowują strony starych wydań plików APK wraz z zadeklarowanymi skrótami. Przydatne w przypadku bardzo starych wersji, w których nie ma oryginalnej strony wydawcy.

Typowe błędy weryfikacyjne

Czy Twoja aplikacja jest bezpieczna?

Nie zgaduj. W ciągu kilku sekund zweryfikuj pobrane pliki APK z oficjalnymi certyfikatami programistów.

Rozpocznij weryfikację APK

Często zadawane pytania (FAQ)

Dlaczego Android blokuje mi instalację zmodyfikowanego pakietu APK?

Ponieważ podpis nowego pliku APK nie pasuje do już zainstalowanego. Uniemożliwia to hakerom „nadpisanie” Twojej prawdziwej aplikacji bankowej fałszywą.

Czy mogę ponownie podpisać plik APK po jego zmodyfikowaniu?

Tak, ale będziesz używać inny klucz. Aplikacja nadal będzie instalowana na „czystym” telefonie, ale nie będzie już otrzymywać aktualizacji od pierwotnego programisty.

Co to jest przypinanie certyfikatu?

Jest to zaawansowana funkcja zabezpieczeń, w ramach której aplikacja jawnie sprawdza konkretny certyfikat przed komunikacją z serwerami, przez co zmodyfikowane aplikacje stają się bezużyteczne, nawet jeśli zostaną poprawnie zainstalowane.

Spraw, aby weryfikacja podpisu była częścią każdego sideloadu

Podpisy odgrywają dużą rolę w nowoczesnych zabezpieczeniach Androida. Poświęcenie kilku dodatkowych sekund na uruchomienie pliku przez Weryfikator APK to tani sposób na zatrzymanie zmodyfikowanej aplikacji poza urządzeniem, zanim zostanie ona zainstalowana.

Zaprojektowane i udokumentowane przez Mst Shaefale Główny programista i architekt pakietów dla Androida • Zweryfikowano na Androidzie 12–15

Mst Shaefale obsługuje fuzję XAPK/APKS po stronie klienta, parser manifestu binarnego i narzędzia do podpisywania plików APK v1 + v2 w xapktoapk.com. Zauważyłeś nieaktualne polecenie lub zmianę systemu operacyjnego? Wyślij notatkę redakcyjną.