Проверка на APK подписи: Как да се уверите, че вашето приложение е безопасно

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

Страничното зареждане на приложения на Android предлага свобода и гъвкавост, но идва с голям риск: подправени приложения. Злонамерените участници често модифицират популярни приложения, за да включват шпионски или рекламен софтуер, преди да ги разпространяват повторно на неофициални сайтове. Как можете да сте сигурни, че APK, който току-що сте изтеглили, е същият, който разработчикът е качил в Google Play?

Отговорът се свежда до APK цифрови подписи. По-долу ще разгледаме как всъщност работи подписването на приложения и ще преминем през нашия Онлайн APK верификатор, за да проверим хеша и сертификата на APK, преди да решите да му се доверите.

60-секундна версия:

Android подписва всеки APK с ключ на издател. Телефонът отказва "актуализация", чийто подпис не съответства на съществуващата инсталация; това е основната защита на ОС срещу имитация. За да проверите странично зареден APK, изчислете неговия SHA-256 хеш и пръстовия отпечатък на сертификата за подписване, след което сравнете и двете със стойностите, на които имате доверие (съществуващата инсталация в Play Store, публикуваният пръстов отпечатък на разработчика или известно добро по-ранно копие). Съвпадение означава, че файлът е идентичен в байтове и е подписан от същия издател; несъответствие означава не инсталирайте.

Какво е APK подпис?

Цифровият подпис е криптографско доказателство за самоличност. Когато програмист завърши приложение, той го „подписва“ с помощта на частен ключ (keystore). След това Android използва съответния публичен ключ, вграден в APK, за да гарантира:

  1. Почтеност: Файлът не е променян, откакто е подписан.
  2. Автентичност: Разработчикът е този, за когото се представя.
  3. Актуализации: Само APK файлове, подписани със същия ключ, могат да актуализират съществуващо приложение на вашия телефон.

Развитие на подписването: V1, V2, V3 и V4

Google непрекъснато подобрява сигурността на APK през годините:

Как да проверите APK подписите онлайн

Нашият Инструмент за проверка на APK не просто изчислява хешове; той извършва пълен криптографски одит на веригата от сертификати. Ето как да го използвате:

Стъпки за проверка:

  1. Отидете до страницата APK верификатор.
  2. Изберете своя APK или XAPK файл.
  3. Нашият инструмент анализира директорията META-INF/ и извлича данните от сертификата (.RSA, .DSA или .EC).
  4. Изчакайте анализът да приключи (отнема само секунди).
  5. Прегледайте Информация за сертификата: Име на разработчика, организация и страна на произход.
  6. Проверете Хешове: Сравнете SHA-256, показан на нашия сайт, със стойността, публикувана от издателя на техния собствен официален сайт, страница за публикуване на проекта или манифест за подписване.

Предупреждение за сигурност

Ако верификаторът показва „Сертификат за отстраняване на грешки“ или неизвестен „самоподписан“ обект за основно приложение като Facebook или WhatsApp, НЕ ГО ИНСТАЛИРАЙТЕ. Почти сигурно е компрометирано.

Разбиране на контролните суми (MD5, SHA-1, SHA-256)

Контролните суми са низове с фиксирана дължина, представляващи целия файл. Ако промените един пиксел в иконата на приложение, хешът SHA-256 ще се промени напълно.

Тип хеш Ниво на сигурност Бележки
MD5 Наследство Уязвими към сблъсъци. Не за сигурност.
SHA-1 Умерен Все още се използва широко за бързо търсене.
SHA-256 Отлично Модерният стандарт за проверка на приложения.

Какво всъщност ви казва сертификатът за подпис

Когато верификаторът върне сертификат, частите, които имат значение за безопасността на страничното зареждане, не са цветните битове на метаданните X.509, а малка шепа полета. На практика:

Хеш срещу подпис: Разликата Повечето уроци пропускат

Хората често смесват "хеш" и "подпис". Те служат за много различни цели и безопасната проверка се нуждае и от двете:

За странично зареден APK най-силната гаранция съчетава двете: отпечатъкът на сертификата съвпада с известния отпечатък на издателя и, SHA-256 на файла съвпада със стойността, публикувана от издателя за тази точна компилация.

Къде да получите надежден референтен пръстов отпечатък

Най-трудната част от проверката е да знаете правилната стойност, с която да сравните. Няколко надеждни подхода, в груб ред на увереност:

  1. Собствен уебсайт или страница за издание на издателя. Много проекти с отворен код и доставчици, загрижени за сигурността, публикуват пръстовия отпечатък SHA-256 на техния сертификат за подписване заедно със своите изтегляния. Това е златният стандарт.
  2. Съществуваща инсталация на Play Store. Ако приложението вече е инсталирано на устройство, управлявано от Play, пръстовият му отпечатък на сертификата е пръстовият отпечатък на издателя по дефиниция. Сравнете пръстовия отпечатък на странично заредения APK с този. Инструменти като Apk Analyzer (в Android Studio) или apksigner verify --print-certs го четат директно от инсталиран APK.
  3. Първият APK, който сте инсталирали на това приложение. Ако сте използвали приложението от известно време и никога не сте получавали подкана за „несъответствие на подписа“, можете да използвате всяко от по-старите си копия като референция. Последващите актуализации от същия издател трябва да използват същия ключ (или да се редуват чрез v3, в който случай веригата все още се проверява).
  4. Архивирана публична моментна снимка. Интернет архивът и подобни услуги понякога запазват стари страници за издаване на APK заедно с техните декларирани хешове. Полезно за много стари компилации, където оригиналната страница на издателя е изчезнала.

Често срещани грешки при проверката

Вашето приложение безопасно ли е?

Не гадайте. Проверете заредените отстрани APK файлове спрямо официални сертификати на разработчици за секунди.

Стартирайте проверката на APK

Често задавани въпроси (FAQ)

Защо Android ме блокира да инсталирам модифициран APK?

Тъй като подписът на новия APK не съвпада с вече инсталирания. Това не позволява на хакерите да „пренапишат“ истинското ви банково приложение с фалшиво.

Мога ли да подпиша отново APK, след като го модифицирам?

Да, но ще използвате различен ключ. Приложението пак ще се инсталира на „чист“ телефон, но вече няма да получава актуализации от оригиналния разработчик.

Какво е фиксиране на сертификат?

Това е усъвършенствана функция за сигурност, при която дадено приложение изрично проверява за конкретен сертификат, преди да комуникира със своите сървъри, което прави подправените приложения безполезни, дори ако се инсталират правилно.

Направете проверката на подписа част от всяко странично зареждане

Подписите вършат голяма част от тежката работа в съвременната сигурност на Android. Прекарването на допълнителните няколко секунди за стартиране на файл през APK верификатор е евтин начин да предпазите подправено приложение от устройството си, преди да бъде инсталирано.

Проектиран и документиран от Mst Shaefale Водещ разработчик и архитект на пакети за Android • Проверен на Android 12–15

Mst Shaefale поддържа инструментите за подписване на XAPK/APKS от страна на клиента, парсер на бинарен манифест и APK v1+v2 в xapktoapk.com. Забележите остаряла команда или промяна на операционната система? Изпратете редакционна бележка.