V médiích se to hemží zprávami o tom, jak dvě ostravské firmy "prolomily EET". Reálných informací o případu je minimum, ale ze zveřejněných fragmentů lze docela dobře usuzovat na to, o co šlo. O případu nevím víc, než kolik bylo zveřejněno, a tento článek je tedy čirou spekulací, ovšem založenou na odborných znalostech a zkušenostech.

V první řadě je nutné říct, že "prolomit" EET jako takovou, tedy přimět ji, aby vydala platné potvrzení a platbu přitom nezaevidovala, není téměř s jistotou možné. Ne že by její autoři byli tak geniální, ale úloha je z hlediska informatického natolik triviální. Samotný princip je jednoduchý a založený na osvědčených a důvěryhodných kryptografických postupech. Ostraváci systém EET jako takový nijak neprolomili. Podle všeho prostě jenom neevidovali veškeré tržby.

Tento článek patří do placené sekce.

Pro vás jej odemknul někdo, kdo má předplatné.


Pokud budete předplatitelem, budete moci stejným způsobem odemykat placené články i pro své přátele.
A získáte i řadu dalších výhod.

Jak bych to udělal já? Napadá mne několik možností, které jsou ve své podstatě velmi jednoduché. Zákazníků, kteří si budou ověřovat účtenky EET, je naprosté minimum. Fakticky jediným nebezpečím jsou možné kontrolní nákupy pracovníků finančních úřadů. Jde tedy o to, vydávat účtenky, které budou na první pohled vypadat běžně, ale nebudou evidovány nebo budou evidovány pouze částečně. A udělat vše pro to, abych je nevystavil kontrolorům. Jinými slovy: zasahuji pouze do vlastního pokladního systému, který mám pod svou úplnou kontrolou a s nímž si mohu dělat cokoliv, co uznám za vhodné.

Pro EET jsou na účtence podstatné dva údaje: BKP (bezpečnostní kód poplatníka) a FIK (fiskální identifikační kód). Z hlediska zákazníka jsou to dva náhodné řetězce číslic 0-9 a A-F, jejichž správnost si nemůže automaticky a jednoduše ověřit: leda by je zadal do formuláře na webu MF nebo se zaregistroval do Účtenkovky.

První jednoduché řešení je, že si obě hodnoty pro vytipované účtenky prostě vymyslím, vygeneruji je náhodně. V takovém případě spoléhám na to, že si je nikdo nebude ověřovat a případně pokud ověření proběhne neúspěšně, nebude s tím nic dělat. To je řešení velice primitivní a dle mého názoru příliš riskantní.

Mnohem elegantnější řešení je, že budu tentýž kód používat opakovaně. Pro možnost ověření účtenky v EET je nutné zachovat pouze částku, datum a čas, včetně sekund. Kdybych tedy byl majitelem obchodního řetězce, skladoval bych digitálně všechny vydané účtenky na všech pobočkách (což musím dělat stejně) a jednou vydaný FIK a BKP bych používal opakovaně, pro více účtenek se stejnou částkou, vydaných přibližně ve stejné době.

Částka musí sedět přesně, protože lze předpokládat, že uživatel ví, kolik zaplatil. Je nicméně možné uživateli u většího nákupu cenu o nějakou korunu upravit (dát mu slevu), abych se trefil do správné výsledné částky. Čas nemusí sedět přesně. Realisticky, pokud bude uživatel účtenku ověřovat nebo zadávat do loterie, nebude si pamatovat na minutu přesně, kdy nákup učinil, a i kdyby, bude to pokládat za chybu své paměti nebo si řekne, že měli posunutý čas na pokladně nebo cokoliv.

Tento postup "přežije" ověření na webu MF ČR a jednu registraci do Účtenkovky. Ta je velkolepým neúspěchem a podle dostupných informací ji hraje malé množství "profesionálních" hráčů za okázalé ignorance většiny populace. Běžným zákazníkem je tedy tento postup prakticky neodhalitelný.

Používání stejného kódu pro větší počet transakcí je ale odhalitelné kontrolou finančního úřadu, a to velice snadno – pokud kontroloři na účtenku s podvodnými údaji narazí, protože sami přesně vědí, za kolik a v kolik hodin nakoupili.

Podvodníci proto musí celý systém pečlivě nastavit tak, aby se snažil kontrolu detekovat a pokud možno se při ní neprojevil. Nejsa obchodníkem, nemám s kontrolami EET zkušenosti, ale předpokládám, že ačkoliv není spolehlivý algoritmus, jak kontrolu detekovat, lze se značnou mírou přesnosti odhadnout, který nákup kontrolní není. Podle počtu položek a utracené částky, případně skladby položek. V síti, která má několik desítek prodejen, je snazší takový podvod provést, než v jednom konkrétním obchodě.

Výše uvedené postupy jsou z hlediska programátorského v podstatě triviální, nejedná se o žádný high-tech zločin. Bylo by jistě zajímavé vědět, jak došlo k odhalení citovaného případu, zda to bylo následkem kontroly, nebo zda to bylo na udání. V každém případě je ale dost nesmyslné mluvit o "prolomení EET".

Související

Líbil se vám článek? Chcete víc takových článků?

Kupte si předplatné a můžete si je číst všechny. Navíc bez reklam a s možností sdílet přátelům.

Vyzkoušejte předplatné HN+

Komentáře ke článku

Rudolf Rosa 11.10.2019 17:22
Předpokládám, že s tim časem nákupu se to myslí tak, že vydám jednu doopravdy zaregistrovanou účtenku, a pak třeba následujících 5 minut každou účtenku která je na stejnou částku jako ta zaregistrovaná vydám s kódy a s časem té zaregistrované účtenky. To že čas vydání na účtence je o pár minut špatně si asi zákazník nevšimne, akorát když dvě z těch účtenek se stejnými kódy budou zadány do účtenkovky, tak u té druhé to neprojde, účtenkovka nahlásí že ta účtenka už je zaregistrovaná.
Lubomír Kapaňa 11.10.2019 07:53
Autor clanku by si mel nejdrive Uctenkovku sam vyzkouset, aby nepsal blbosti napr. o tom, ze si zakaznik vymysli cad nakupu, tento udaj na sekundu presny musi opsat primo z uctenky na ktere je tento udaj povinne uvedeny
Newsletter

Týden s technologiemi Otakara Schöna

Události posledního týdne ve světě technologií podle Otakara Schöna

Editor rubriky Tech Otakar Schön pro Vás vybírá nejzajímavější nebo nejzásadnější události ze světa technologií, které se odehrály v uplynulém týdnu. Každý pátek v podvečer najdete ve své mailové schránce.

Přihlášením se k odběru newsletteru souhlasíte se zpracováním osobních údajů a zasíláním obchodních sdělení, více informací ZDE. Z odběru se můžete kdykoli odhlásit.

Přihlásit se k odběru