Predstavte si situáciu, v ktorej by vám banka pridelila jeden jediný reťazec znakov a oznámila vám, že odteraz slúži ako vaše prihlasovacie meno aj ako heslo. K tomu by dodala, že tento údaj si už do konca života nikdy nezmeníte. Presne takto na Slovensku pristupujeme k rodným číslam.
Používame ich súčasne v dvoch úlohách, ktoré sa ale navzájom tak trochu vylučujú. Fungujú ako verejný identifikátor, teda obdoba používateľského mena, ktorú vidia aj ostatní, no zároveň slúžia ako autentifikátor. Teda ako tajné heslo, ktorým na mnohých miestach dokazujete, že ste to naozaj vy. Háčik je v tom, že keď takéto heslo spoznajú všetci, v podstate prestáva byť heslom, ale verejnou informáciou.
Prečo hovoríme o rodnom čísle? Pre odpoveď sa treba vrátiť do augusta. Nový obchodný register vtedy začal oficiálne sprístupňovať zbierku listín spôsobom, že si z nej ktokoľvek na planéte dokáže stiahnuť rodné číslo, trvalý pobyt, číslo občianskeho preukazu a úradne overený podpis každého konateľa či spoločníka. Nejde o hackerský útok ani o chybu v kóde. Tieto informácie zverejnil priamo štát, v súlade so zákonom a po riadnom legislatívnom procese.
Systém nevyžaduje žiadne prihlásenie, nepýta elektronický občiansky preukaz ani preukázanie právneho záujmu. Prístup je bezplatný a aby toho nebolo málo, server si nevedie žiadne záznamy o tom, kto si prezeral aké dokumenty. Jedinou prekážkou, ktorá delí kohokoľvek od stiahnutia citlivých údajov celej podnikateľskej sféry, je obyčajný štvormiestny obrázkový kód, presnejšie CAPTCHA.
Ako sa na to prišlo
Na túto obrovskú bezpečnostnú medzeru upozornili experti z Nethemba, ktorí vytvorili jednoduchú aplikáciu s názvom ORSR agregátor.
V zásade funguje celkom jednoducho. Zadáte doň názov firmy alebo jej IČO a systém vám v priebehu niekoľkých sekúnd “vypľuje” kompletný profil majiteľa či konateľa. Nájdete v ňom presný dátum narodenia, rodné číslo, úplnú adresu trvalého pobytu, číslo dokladu totožnosti a podpisový vzor, ktorý algoritmus automaticky vyreže z naskenovanej listiny do formátu JPG.
To však nie je všetko. Agregátor dokáže zistiť aj to, v ktorej zdravotnej poisťovni je daný človek poistený. Využíva na to verejný overovač Úradu pre dohľad nad zdravotnou starostlivosťou (ÚDZS), kde stačí zadať rodné číslo. Tento formulár síce chráni robustnejšia technológia Google reCAPTCHA, no pre automatizovaný skript to nie je ktovieaká prekážka. Vybaví ju úplne sám, rovnako ako jednoduchý obrázkový kód v registri.
Práve triviálnosť je jedným z hlavných faktorov, ktoré budia obavy. Nejde tu o žiadny prelomový výskum ani o hľadanie skrytých zraniteľností. Autori projektu v podstate len pospájali voľne dostupné prvky. Skript spojí verejné záznamy, cez vyriešenú ochranu stiahne dokumenty, pomocou optického rozpoznávania znakov (OCR) prečíta text a podľa dátumu narodenia spáruje údaje s konkrétnou osobou. A čo navyše, tento nástroj vznikol za jeden večer.
Zdrojový kód autori pre istotu nezverejnili. No keďže práca na jeden večer priniesla takéto výsledky, je isté, že bezpečnostná bariéra je v tomto smere alarmujúco nízka. S pomocou moderných jazykových modelov si podobného asistenta postaví prakticky ktokoľvek za jedno popoludnie.

Prečo CAPTCHA nefunguje na robotov
Celá bezpečnosť nového registra stojí na jednom dôležitom omyle, ak to tak možno nazvať. Identifikovať pár rozmazaných písmen z obrázka je disciplína, v ktorej stroje prekonali ľudí už veľa rokov dozadu. Dnes máme k dispozícii široký trh špecializovaných komerčných služieb, ktoré tieto kódy lúštia cez programové rozhranie. A nie, nie sú drahé ani priveľmi komplikované.
ORSR agregátor sa pripája na štyri takéto brány súčasne, menovite NoCaptchaAI, CapMonster, 2Captcha a DeathByCaptcha. Každý obrázok pošle všetkým štyrom naraz a použije odpoveď, ktorá príde najrýchlejšie a bez chyby. Pre lepšiu predstavu, tie najrýchlejšie vrátia správne riešenie do dvoch sekúnd.
Navyše, samotný obchodný register pri chybnom zadaní pôvodný kód nezruší. Na ten istý obrázok môžete poslať viacero rôznych tipov a stačí, keď trafí len jeden. Účinok tejto „ochrany“ je teda paradoxný. Ak štvormiestny kód niekomu komplikuje život, tak jedine bežnému človeku. Pre skript je to len drobný výmoľ.
Citlivé údaje úplne zadarmo
Ešte predtým, ako sa pozrieme na celkový rozpočet, ktorý bolo treba vynaložiť na stiahnutie rodných čísel, treba spomenúť ďalšiu nepríjemnú skutočnosť. Tou je cena. Nie je úplne vysoká. Práve naopak, tá dôležitá časť skladačky stojí doslova drobné.
Štatistický úrad Slovenskej republiky prevádzkuje Register právnických osôb, ktorý ponúka oficiálne verejné aplikačné rozhranie (REST API) pod otvorenou licenciou Creative Commons. Tento zdroj vám v dokonale štruktúrovanej podobe vydá meno, dátum vzniku funkcie a presnú adresu každého konateľa či spoločníka vrátane trvalého bydliska. K týmto údajom získate prístup bez vypĺňania kódov, bez obmedzení počtu požiadaviek a bez akejkoľvek registrácie.
Jednotlivé subjekty sú označené číselnými identifikátormi, čo znamená, že kompletný zoznam sa dá systematicky prejsť po jednotlivých záznamoch alebo cez dátumové filtre. Inak povedané, základ identity a domovskú adresu každého podnikateľa na Slovensku máte k dispozícii okamžite a zadarmo. CAPTCHA kód v obchodnom registri tak chráni už len rodné číslo a vlastnoručný podpis, ktorý je ukrytý v naskenovaných dokumentoch.
Koľko presne to stojí
Pre lepší kontext, na Slovensku pôsobí zhruba pol milióna firiem, ktoré majú v zbierke listín uložené svoje dokumenty. A v tých ešte figurujú státisíce štatutárov a spoločníkov. Ak by chcel niekto získať rodné číslo aj overený podpisový vzor každej jednej osoby, potrebuje z každej firmy stiahnuť približne dve kľúčové listiny, a to zakladateľský dokument a samotný podpisový vzor. To vychádza na približne 1,5 milióna úspešných stiahnutí.
Presné ceny komerčných lúštiacich brán testovali priamo na obrázkoch z obchodného registra. Nerozhoduje pritom iba základná sadzba za tisíc pokusov, ale cena prepočítaná na tisíc skutočne úspešných stiahnutí, kde sa zohľadňuje chybovosť danej služby.
Ak niekto preferuje maximálnu rýchlosť a posiela každý obrázok všetkým štyrom službám naraz, trafí takmer zakaždým hneď na prvý pokus. Kompletný register takto získa približne za 4 000 dolárov, čo po prepočte vychádza na asi 3 440 eur. Ak si vyberie ekonomickejšiu cestu a oprie sa o jednu stabilnú a lacnú bránu, balík stiahne za menej ako 1 300 dolárov (1 118 eur). A pokiaľ útočník stál výhradne o rodné čísla bez podpisov, vystačí si s pár stovkami.
K tomu si môže ktokoľvek vytiahnuť aj informáciu o zdravotnej poisťovni každého občana cez ÚDZS. Ide síce o drahšiu reCAPTCHA ochranu, no pri cene približne 600 dolárov (516 eur) na milión ľudí je to stále celkom zanedbateľný náklad.
| Brána | Cena za 1 000 pokusov (USD) | Úspešnosť | Cena za 1 000 úspešných (USD) | Len rodné čísla (celé SR, v USD) | Celý balík: RČ + podpis (celé SR, v USD) |
| NoCaptchaAI | 0,14 | 27 percent | 0,52 | cca 260 | cca 780 |
| CapMonster | 0,30 | 40 percent | 0,75 | cca 375 | cca 1 125 |
| 2Captcha | 0,67 | 80 percent | 0,84 | cca 420 | cca 1 260 |
| DeathByCaptcha | 1,39 | 40 percent | 3,47 | cca 1 740 | cca 5 210 |
Trvá to chvíľku
Okrem množstva peňazí je alarmujúce aj potrebné množstvo času. Aj v tomto prípade sa môžeme baviť o veľmi nízkych číslach.
Štátny server obmedzuje frekvenciu dopytov z jednej IP adresy, takže z jedného domáceho počítača by takéto sťahovanie niekoľko dní. Problém je v tom, že skúsený útočník nikdy nepracuje len s jednou adresou.
Dnes si viete za pár stoviek eur prenajať aj tisíce neustále rotujúcich adries. Pri nasadení stovky adries viete stiahnuť kompletný register približne za dva dni. Ak použijete tisíc adries, stačí si vyhradiť asi päť hodín. A ak nasadíte 5 000 adries databázu máte v rukých do hodiny.
Prečo je to dôležité
Ako sme spomenuli v úvode, rodné číslo slúži ako hlavný identifikátor v zdravotnom poistení, v Sociálnej poisťovni eviduje celú vašu pracovnú históriu, dôchodky aj nemocenské dávky a daňový úrad z neho priamo odvodzuje DIČ fyzických osôb. Rovnako na ňom stojí evidencia nehnuteľností v katastri, mzdová agenda zamestnávateľov, elektronické recepty v systéme eZdravie aj dokumentácia u lekárov.
Najväčšie riziko však spočíva v tom, že komerčný sektor používa rodné číslo a adresu na overenie totožnosti na diaľku. Banky, ale aj mnohé nebankové inštitúcie sa pri takomto kontakte bežne pýtajú práve na tieto dva údaje, aby si overili, s kým hovoria.
Slabá ochrana má teda veľmi konkrétne riziká. Treba si uvedomitˇ, že riadne overený podpisový vzor spolu s rodným číslom a číslom občianskeho preukazu sú presne tie údaje, ktoré treba na vytvorenie dokonalej falošnej listiny. Či už ide o zmluvu o prevode obchodného podielu, zápisnicu z valného zhromaždenia alebo plnú moc, pravosť dokumentu sa porovnáva práve s týmto vzorom.
Podpisové vzory pôvodne vznikli preto, aby notár vedel overiť totožnosť, no keďže sú dostupné de facto celému svetu, tento účel sa akosi vytráca.

Veľkou hrozbou je aj takzvaný SIM swap útok. Útočník, ktorý pozná vaše osobné údaje, vie u operátora požiadať o vydanie novej SIM karty vo vašom mene. Akonáhle získa kontrolu nad vaším telefónnym číslom, poľahky obíde dvojfaktorové SMS overenie, čím získa prístup k dôležitým službám a registrovaným kontám, vrátane internetového bankovníctva.
A je tu ešte jedna dôležitá vec. Ak by si niekto databázu naozaj stiahol a štát by sa rozhodol spustiť vyšetrovanie, asi by neuspel. Všetky zahraničné služby, ktoré automaticky lúštia bezpečnostné kódy, sa dajú objednať úplne anonymne. Navyše, útočníci často za takéto služby platia v kryptomenách, čo sú transakcie, ktoré sa v podstate nedajú vystopovať.
Rovnako anonymne sa platí aj virtuálna cloudová infraštruktúra a spomínané rotujúce adresy. Samotný register navyše neukladá záznamy o tom, z akej adresy sa dané listiny stiahli. Prevádzkovateľ systému teda netuší ani len to, že k nejakému masívnemu zberu dát práve dochádza.
Pre podnikateľov to nateraz znamená jednu vec, a to obavy. Jednoducho musia rátať s tým, že ich rodné číslo a adresa trvalého bydliska sú verejne známe údaje. Môžu však kontaktovať svoju banku, mobilného operátora aj poisťovňu a dôrazne žiadať, aby tieto informácie prestali akceptovať pri overovaní. Rozumné tiež bude pravidelne kontrolovať firemné dokumenty v registri a sledovať, či sa v ňom náhodou neobjavili listiny, ktoré nikdy nepodpísali.

