Verificarea semnăturilor APK: Cum să vă asigurați că aplicația dvs. este sigură
Încărcarea laterală a aplicațiilor pe Android oferă libertate și flexibilitate, dar vine cu un risc major: aplicații manipulate. Actorii rău intenționați modifică adesea aplicațiile populare pentru a include programe spyware sau adware înainte de a le redistribui pe site-uri neoficiale. Cum poți fi sigur că APK-ul pe care tocmai l-ai descărcat este exact același pe care l-a încărcat dezvoltatorul pe Google Play?
Răspunsul se reduce la Semnături digitale APK. Mai jos, vom acoperi cum funcționează de fapt semnarea aplicațiilor și vom folosi Verificator APK online pentru a verifica hash-ul și certificatul unui APK înainte de a decide să aveți încredere în el.
Versiunea de 60 de secunde:
Android semnează fiecare APK cu o cheie de editor. Telefonul refuză o „actualizare” a cărei semnătură nu se potrivește cu instalarea existentă; aceasta este principala apărare împotriva falsificării identității din sistemul de operare. Pentru a verifica un APK încărcat lateral, calculați hash-ul SHA-256 și amprenta digitală a certificatului de semnare, apoi comparați-le cu valorile în care aveți încredere (instalarea existentă în Magazin Play, amprenta publicată a dezvoltatorului sau o copie anterioară cunoscută). O potrivire înseamnă că fișierul este identic la nivel de octeți și semnat de același editor; o nepotrivire înseamnă nu instalați.
Ce este o semnătură APK?
O semnătură digitală este o dovadă criptografică a identității. Când un dezvoltator termină o aplicație, o „semnează” folosind o cheie privată (magazin de chei). Android utilizează apoi cheia publică corespunzătoare încorporată în APK pentru a se asigura:
- Integritate: Fișierul nu a fost modificat de când a fost semnat.
- Autenticitate: Dezvoltatorul este cine spun ei că sunt.
- Actualizări: Numai APK-urile semnate cu aceeași cheie pot actualiza o aplicație existentă pe telefon.
Evoluția semnării: V1, V2, V3 și V4
Google a îmbunătățit continuu securitatea APK-ului de-a lungul anilor:
- V1 (semnare borcan): Semnează intrări individuale în ZIP. Lent și vulnerabil la anumite atacuri.
- V2 (Schema de semnătură APK): Semnează întregul bloc de fișiere. Mult mai rapid de verificat și mai sigur. (Android 7.0+)
- V3 (Rotatie taste): Permite dezvoltatorilor să-și schimbe cheia de semnare menținând în același timp actualizările aplicației. (Android 9.0+)
- V4 (Streaming): Optimizat pentru instalări incrementale prin ADB. (Android 11+)
Cum se verifică online semnăturile APK
Instrument de verificare APK nostru nu calculează doar hashe-uri; acesta efectuează un audit criptografic complet al lanțului de certificate. Iată cum să-l folosești:
Pași pentru verificare:
- Navigați la pagina Verificator APK.
- Selectați fișierul APK sau XAPK.
- Instrumentul nostru analizează directorul META-INF/ și extrage datele certificatului (.RSA, .DSA sau .EC).
- Așteptați finalizarea analizei (durează doar câteva secunde).
- Examinați Informații despre certificat: numele dezvoltatorului, organizația și țara de origine.
- Verificați Hashes: comparați SHA-256 afișat pe site-ul nostru cu valoarea publicată de editor pe propriul site oficial, pe pagina de lansare a proiectului sau pe manifestul de semnare.
Avertisment de securitate
Dacă verificatorul arată un „Certificat de depanare” sau o entitate necunoscută „autosemnată” pentru o aplicație majoră precum Facebook sau WhatsApp, NU-L INSTALATI. Este aproape sigur compromis.
Înțelegerea sumelor de control (MD5, SHA-1, SHA-256)
Sumele de control sunt șiruri de lungime fixă care reprezintă întregul fișier. Dacă modificați un singur pixel în pictograma unei aplicații, hash-ul SHA-256 se va schimba complet.
| Tip hash | Nivel de securitate | Note |
|---|---|---|
| MD5 | Moştenire | Vulnerabil la coliziuni. Nu pentru securitate. |
| SHA-1 | Moderat | Încă folosit pe scară largă pentru căutări rapide. |
| SHA-256 | Excelent | Standardul modern pentru verificarea aplicațiilor. |
Ce vă spune de fapt un certificat de semnare
Când verificatorul returnează un certificat, părțile care contează pentru siguranța încărcării laterale nu sunt biții colorați ai metadatelor X.509, ci o mică mână de câmpuri. În termeni practici:
- Amprenta digitală SHA-256 a certificatului. Aceasta este cea mai importantă valoare: un hash de 64 de caractere hexadecimale care identifică în mod unic cheia de semnare. Două APK-uri cu aceeași amprentă SHA-256 au fost semnate de aceeași cheie privată. Asta înseamnă „continuitatea semnăturii” în logica de actualizare a sistemului de operare.
- Nume distinctiv al subiectului. Adesea ceva de genul CN=Some App, O=Example Inc., C=US. Util ca aluzie, nu ca dovadă a identității, deoarece un atacator poate pune orice șir de caractere dorește în DN-ul propriului certificat autosemnat. Verificați întotdeauna amprenta digitală, nu numele.
- Perioada de valabilitate. Cele mai multe chei de publicare legitime sunt generate cu o valabilitate de ~25 de ani (recomandarea istorică este de 10000 de zile). Un certificat care expiră luna viitoare sau unul a cărui valabilitate se suprapune deja cu trecutul, este un steag roșu.
- Algoritm de semnătură. Aplicațiile moderne folosesc SHA256withRSA sau SHA256withECDSA. MD5 este rupt; SHA1withRSA este depreciat. Un APK semnat numai cu v1 / SHA-1 este suspect în 2026.
Hash vs Signature: diferența Majoritatea tutorialelor omit
Oamenii confundă adesea „haș” și „semnătură”. Ele servesc unor scopuri foarte diferite, iar o verificare sigură are nevoie de ambele:
- Un hash (SHA-256 al întregului APK) vă spune dacă octeții fișierului sunt identici cu o copie de referință. Dacă hash-ul dvs. se potrivește cu hash-ul publicat de editor, fișierul nu a fost modificat de când a calculat acel hash. Numai o verificare hash nu spune nimic despre cine a creat octeții.
- Un semnătură demonstrează cine a creat octeții, în special, că deținătorul cheii private asociate cu certificatul de semnare a produs acest fișier. Numai o verificare a semnăturii nu spune nimic despre dacă fișierul a fost modificat după semnare (OS va detecta acest lucru și îl va respinge, dar certificatul în sine nu „știe” despre conținutul fișierului).
Pentru un APK cu încărcare laterală, cea mai puternică asigurare combină cele două: amprenta certificatului se potrivește cu amprenta cunoscută a editorului şi, SHA-256 al fișierului se potrivește cu valoarea publicată de editor pentru acea versiune exactă.
De unde să obțineți o amprentă de referință de încredere
Cea mai grea parte a verificării este să cunoașteți valoarea corectă cu care să o comparați. Câteva abordări de încredere, în ordinea aproximativă a încrederii:
- Site-ul propriu al editorului sau pagina de lansare. Multe proiecte open-source și furnizori conștienți de securitate publică amprenta digitală SHA-256 a certificatului lor de semnare împreună cu descărcările lor. Acesta este standardul de aur.
- O instalare existentă în Play Store. Dacă aplicația este deja instalată pe un dispozitiv gestionat de Play, amprenta certificatului său este, prin definiție, amprenta editorului. Comparați amprenta APK-ului cu încărcare laterală cu aceasta. Instrumente precum Apk Analyzer (în Android Studio) sau apksigner verify --print-certs îl citesc direct dintr-un APK instalat.
- Primul APK pe care l-ați instalat vreodată din această aplicație. Dacă utilizați aplicația de ceva timp și nu ați avut niciodată o solicitare „nepotrivire semnături”, puteți utiliza oricare dintre copiile mai vechi ca referință. Actualizările ulterioare de la același editor trebuie să utilizeze aceeași cheie (sau să se rotească prin v3, caz în care lanțul încă verifică).
- Un instantaneu public arhivat. Internet Archive și servicii similare păstrează ocazional paginile vechi de lansare APK împreună cu hashurile lor declarate. Util pentru versiuni foarte vechi în care pagina originală a editorului a dispărut.
Greșeli frecvente de verificare
- Compararea câmpului greșit. „MD5 al fișierului APK” nu este același cu „MD5 al certificatului”. Folosiți același câmp pentru dosarul de candidat și referință.
- Încredere în metadatele proprii ale fișierului. Un APK poate include orice șir de versiune, orice etichetă de pachet, orice etichetă de autor în manifestul său. Niciuna dintre acestea nu este criptografică. Blocul de semnătură este singurul lucru pe care sistemul de operare îl verifică de fapt.
- S-a omis verificarea deoarece fișierul a fost trimis de un prieten. Un prieten care spune „acesta este APK-ul oficial” nu l-a verificat mai mult decât ați verificat dumneavoastră. Insistați asupra unei surse care publică o amprentă pe care o puteți verifica.
- Tratarea unui câmp de potrivire ca fiind suficientă. Potriviți atât amprenta SHA-256 a fișierului, cât și amprenta digitală SHA-256 a certificatului; potrivirea unuia, dar nu a celuilalt este un semn că octeții sunt modificați sau că sursa se uită la editor.
- Dezactivează Play Protect pentru „confort”. Play Protect este un scaner de a doua opinie, nu un substitut pentru verificarea semnăturii, dar prinde malware real pe care verificarea semnăturii nu nu poate, deoarece Protect știe despre pachetele cunoscute proaste după conținut, nu prin cheia de semnare. Lasă-l pe.
Aplicația dvs. este sigură?
Nu ghici. Verificați în câteva secunde fișierele APK instalate manual în raport cu certificatele oficiale ale dezvoltatorilor.
Porniți verificarea APKÎntrebări frecvente (FAQ)
De ce mă blochează Android să instalez un APK modificat?
Pentru că semnătura noului APK nu se potrivește cu cea deja instalată. Acest lucru îi împiedică pe hackeri să „suprascrie” aplicația dvs. bancară reală cu una falsă.
Pot resemna un APK după ce îl modific?
Da, dar veți folosi un cheie diferită. Aplicația se va instala în continuare pe un telefon „curat”, dar nu va mai primi actualizări de la dezvoltatorul original.
Ce este fixarea certificatului?
Este o caracteristică avansată de securitate în care o aplicație verifică în mod explicit un anumit certificat înainte de a comunica cu serverele sale, făcând aplicațiile manipulate inutile chiar dacă se instalează corect.
Faceți verificarea semnăturii parte a fiecărei încărcări laterale
Semnăturile fac o mare parte din munca grea în securitatea Android modernă. Petrecerea celor câteva secunde suplimentare pentru a rula un fișier printr-un Verificator APK este o modalitate ieftină de a păstra o aplicație manipulată de pe dispozitiv înainte de a fi instalată vreodată.