Tu je príklad, ako medzera funguje pri nákupoch v aplikácii
Takto funguje medzera v nákupoch v aplikácii (c) IDG/Apple

Ruský hacker našiel pred pár týždňami dieru v App Store a platené funkcie v aplikácii si mohli stiahnuť zadarmo.
Ruský hacker Alexey Borodin uviedol do prevádzky svoj vlastný server so službou nákupu v aplikácii. Používateľom stačilo stiahnuť poskytnuté certifikáty a nainštalovať ich na iPhone a cesta do bezplatného obchodu bola otvorená. Apple na zraniteľnosť zareagoval prekvapivo rýchlo a po niekoľkých dňoch vydal nástroj pre vývojárov a aktualizáciu pre iOS 6. Výrobca iPhone tvrdí, že medzera sa od iOS 6 natrvalo uzavrie.
Hacker sa pred pár dňami opäť ozval a zverejnil podrobné pokyny pre hacker vrátane kódu pre server. Informácie sú teraz neškodné, pretože hack už nefunguje, ponúka však zaujímavé informácie o komunikácii medzi servermi Apple, servermi vývojárov a iPhone.
Pri nákupe v aplikácii komunikuje iPhone niekoľkokrát so servermi spoločnosti Apple. Na základe žiadosti na extra server iTunes (buy.itunes.apple.com) preposiela iPhone z aplikácie informácie, ako napríklad ID aplikácie, číslo verzie, výrobcu a identifikátor GUID/UUID iPhone (globálne jedinečný identifikátor alebo univerzálny jedinečný identifikátor) . Odpoveďou je známe potvrdenie nákupu „Chcete si kúpiť aplikáciu X za Y eur?“ To, čo vyzerá ako otázka s dvoma tlačidlami na obrazovke iPhone, má v podrobnejšej podobe podstatne viac parametrov. Napríklad jedinečné ID iTunes Adam - osem alebo deväťmiestne identifikačné číslo pre všetky aplikácie v iTunes - ako aj cena, číslo verzie, výrobca a podobne. Borodin uvádza, že pri jeho testoch dokázala väčšina aplikácií ignorovať ID iTunes. Inými slovami, žiadosť o potvrdenie nákupu od iTunes obsahuje takmer rovnaké informácie, aké už iPhone poslal na server. Nové informácie ako Adam ID sú jednoducho ignorované.
Ďalší krok v nákupe: používateľ pošle potvrdenie do iTunes klepnutím na tlačidlo „Kúpiť“. App Store žiada autorizáciu pri každom stiahnutí aplikácie. Vďaka tejto autorizácii boli podľa spoločnosti Borodin z iPhone odoslané dôverné údaje, ako napríklad Apple ID a heslo, v nezašifrovanom súbore plist. Teoreticky sa tu otvára ďalšia bezpečnostná medzera: Pretože prenos dát medzi iPhone a App Store funguje väčšinou bezdrôtovo, je pre zločincov pomerne ľahké kedykoľvek získať citlivé prístupové údaje.
informácie o účte
appleId apleid
účet dieťa 0
adresa
krstné meno Krstné meno
priezvisko Priezvisko
hesloToken Token hesla (platný 15 minút)
clearToken token (platný 15 min
dsPersonId Vaše identifikačné číslo
creditDisplay
creditBalance 1311811 (kredit iTunes)
freeSongBalance 1311811 (pravdepodobne počet skladieb pre iTunes Match)
Osvedčenie o overení zraniteľnosti
V nasledujúcich niekoľkých krokoch App Store skontroluje nákup a to, či aplikácia dorazila na iPhone. Za týmto účelom pošle digitálne potvrdenie o nákupe so všeobecnými informáciami o aplikácii a ďalšími informáciami o dátume nákupu, čísle transakcie a overovacom certifikáte nákupu. V overovacom certifikáte Borodin našiel kritickú zraniteľnosť, ktorú použil pri hackovaní. V staršej verzii App Store doručil celý zväzok súborov, teda certifikát spolu s kľúčom. Rozloženie certifikátu vyzerá takto:
VERZIA PRIJMU PODPIS VEĽKOSŤ CERTIFIKÁTU OSVEDČENIE
1 bajt 128 4 bajty ...
Pri obvyklých metódach šifrovania, napríklad e-mailov, odosielateľ odosiela elektronické listy s vydaným certifikátom. Príjemca má na dešifrovanie súkromný kľúč. Ak sa certifikát a kľúč zhodujú, príjemca dostane údaje v čitateľnej podobe. Zločinci len ťažko majú možnosť dekódovať údaje bez platného kľúča, aj keď sa im podarilo získať prístup k nespracovaným údajom.
Borodin využil túto logickú chybu od spoločnosti Apple: Nastavenia DNS pre iPhone, ktorý sprístupnil, neboli presmerované do App Store, ale na iný server. Server proxy vydal falošné certifikáty pre App Store s rovnakou štruktúrou ako pôvodný certifikát. Keďže kľúče na iPhone pochádzali aj od hackera, certifikát a kľúč sa prirodzene zhodovali a App Store považoval nákup za platný.
Hacker tiež poskytuje odporúčania, ako sa môžu vývojári aplikácií v budúcnosti vyhnúť takýmto prienikom. Na jednej strane dodáva Apple takzvaný Verification Controller - ďalší riadok v potvrdzovacom kóde nákupu. Borodin okrem toho odporúča overiť všetky informácie v potvrdení nákupu vrátane ID iTunes. Aplikácie, ktorých nákup bol tiež skontrolovaný na externom serveri vývojárov pomocou ich vlastných certifikátov a kľúčov, neboli hackom ovplyvnené. Toto je tiež účinná ochrana proti takýmto vlámaniu.