Overiteľné tvrdenia.
Toto nie je marketingová stránka v štýle „sme bezpeční“, ale súbor overiteľných tvrdení (SR-N), z ktorých každé môžete spochybniť v našom bug bounty programe za odmenu.
Prístup k vášmu serveru
SR-1Root heslo sa použije raz a na našej strane sa neukladá.overené+
Heslo je potrebné len na otvorenie prvého SSH pripojenia a inštaláciu servisného používateľa. Odovzdáva sa ako SSH autentifikácia nášho pripojenia — nie ako argument skriptu či premenná prostredia. Naša databáza preň nemá žiadne pole; nedostáva sa do prostredí, v ktorých bežia skripty, a nezapisuje sa do logov (chyby pripojenia obsahujú len adresu a port, nikdy nie heslo). V pamäti sa po použití vymaže (best-effort) — to je obrana do hĺbky, nie záruka: Go môže ponechať kópie hodnoty na halde až do garbage collection.
Čestná výhrada: zostáva to root heslom na vašom serveri. Po inštalácii zakážeme prihlásenie heslom aj prihlásenie ako root cez SSH, no samotné heslo nemeníme — zmeňte si ho sami, ak chcete. „Neukladáme ho“ je pravda; „prestalo byť tajomstvom“ nie.
SR-2Po inštalácii je prihlásenie heslom a ako root cez SSH zakázané.overené+
PasswordAuthentication no, PermitRootLogin no, SSH presunuté na neštandardný port (predvolene 12011), zapnutý fail2ban (hodinový zákaz po 5 neúspešných pokusoch), prihlásenie len kľúčom. Verejný kľúč sa pred použitím prísne overuje: znaky nového riadku (ochrana proti prepašovaniu ďalších kľúčov do authorized_keys) aj syntakticky neplatné kľúče sú odmietnuté.
Ochrana proti uzamknutiu: port 22 sa nezatvorí, kým jadro (cez ss) nepotvrdí, že nový SSH port skutočne počúva; konfigurácia sa kontroluje príkazom sshd -t a pravidlo sudo príkazom visudo -cf, oboje sa pri chybe vráti späť.
SR-3Správcovský kľúč je uložený len v zašifrovanej podobe.overené+
Panel nepracuje s vaším heslom, ale so samostatným kľúčom (ed25519), ktorý si sám vygeneruje. Súkromná časť leží v databáze zašifrovaná pomocou AES-256-GCM. Šifrovací kľúč (KEK) je uložený oddelene od databázy — v premennej prostredia servera — a v produkcii je povinný (neexistuje nebezpečné predvolené nastavenie: bez KEK sa kryptografický subsystém jednoducho nespustí). Rovnaké šifrovanie chráni ťažké tajomstvá v databáze — administrátorské heslo/token/JWT Marzban, kľúče Reality, kľúče platobného poskytovateľa, cache poverení proxy, konfiguráciu záloh.
Šifrovanie údaje nielen skrýva, ale ich aj autentifikuje (autentifikačná značka GCM): manipulácia so zašifrovaným poľom sa pri dešifrovaní odhalí a odmietne. Každé pole je zašifrované novým náhodným nonce; hodnota KEK sa nikdy nedostane do logov — len jej krátke id.
O tokenoch schopností: predplatiteľský token /sub je bearer tajomstvo. Na vyhľadávanie ukladáme len jeho SHA-256, zatiaľ čo kópia potrebná na opätovné zobrazenie už vydaného odkazu sa uchováva ako šifrovaný text AES-GCM. Staršie záznamy v čitateľnej podobe sa pred spustením HTTP servera migrujú do nového formátu, fail-closed. Identifikátor URL platobného webhooku je uložený v čitateľnej podobe, no sám o sebe udalosť neautentifikuje: pravosť sa overuje samostatne podpisom HMAC.
SR-4Súkromný kľúč sa nikdy nedostane do prehliadača.overené+
Kľúč sa dešifruje len na serveri, v pamäti; bežné API ho nikdy nevracajú. Jediný spôsob, ako ho získať, je zámerná exportná funkcia („vezmite si svoj kľúč“), chránená prihlásením a jednorazovým e-mailovým kódom (kód sa ukladá len ako HMAC hash, porovnáva sa v konštantnom čase, TTL 10 minút, 5 pokusov). Kľúč tak možno získať zámerne, no nie „uniknúť“ cez bežnú požiadavku.
SR-5Pri odstránení servera sa kľúč synchrónne vymaže z jeho záznamu.overené+
Pred zmenou stavu servera a pred akýmikoľvek sieťovými operáciami na pozadí sa polia so správcovským kľúčom synchrónne vynulujú. Ak databáza vymazanie nepotvrdí, operácia vráti chybu a možno ju zopakovať. Odstránenie zostáva „mäkké“: riadok a neutajené servisné údaje sa zachovajú. Neznamená to fyzické vymazanie už vytvorených záloh — ich životný cyklus riadi zásada uchovávania záloh.
SR-16Auditované partnerské API obmedzujú prístup na vlastníka zdroja.overené+
Auditované partnerské cesty autorizujú podľa partner_id, ktoré server odvodzuje z podpísaného prihlasovacieho tokenu — nie z toho, čo klient poslal v ceste alebo tele požiadavky. Pred vrátením alebo zmenou čohokoľvek systém znovu overí, že požadovaný server, klaster, inbound, trasa, VPN používateľ alebo platba patria vášmu účtu; príslušné databázové dotazy sú obmedzené vaším partner_id a schéma (zložené unikátne kľúče spolu so zloženými cudzími kľúčmi) odmieta neplatné prepojenia medzi partnermi. Izolácia je vrstvená: aplikácia, opätovná kontrola v use-case, filter partner_id a schéma.
Čestná výhrada: toto je overené auditom kódu naprieč cestou požiadavky, nie verejným penetračným testom — takže SR-16, ako aj ostatné, je otvorené na vyvrátenie v bug bounty.
Úprimne o prístupe panela — je to plný admin, nie „obmedzený“.čestná poznámka+
Aby mohol všetko nastaviť automaticky (nainštalovať Xray+Reality, aplikovať konfiguráciu, čítať metriky), panel má na serveri plný administrátorský prístup (ekvivalent root, cez servisného používateľa s bezheslovým sudo). To je pre správu nevyhnutné a NEnazývame to „obmedzeným“.
Čo znižuje riziko: tajomstvá sa serveru odovzdávajú len cez stdin procesu (nie ako argumenty príkazu — nie sú viditeľné v zozname procesov); po prvotnej inštalácii každé správcovské pripojenie overuje pripnutý hostiteľský kľúč servera — výmena servera „uprostred“ je odmietnutá. Čo máte pod kontrolou: prístup stojí na kľúči, ktorý môžete kedykoľvek zrušiť — odstránením servera (kľúč sa vynuluje) alebo jednoducho zmazaním VPS u vášho poskytovateľa (potom všetko zmizne).
Vaše údaje a súkromie
SR-6VPN používatelia žijú na vašom serveri; my držíme minimum servisných metadát.overené+
Samotné VPN účty (VLESS/Reality) sa vytvárajú a žijú v Marzban na vašom master serveri. Centrálne ukladáme len to, čo je potrebné na vydanie predplatiteľského odkazu: náhodný predplatiteľský token a zašifrovaný snímok poverení proxy (cache; zdrojom pravdy je váš Marzban). Nemáme žiadnu históriu prevádzky, IP ani návštev používateľov.
Tu je poctivý zoznam miest, kadiaľ e-mail koncového používateľa skutočne prechádza našou centrálnou databázou: e-mail s prihlasovacím kódom odosielame my, takže adresa prechádza našou odosielacou frontou (pri akomkoľvek prihlásení do obchodu vrátane bezplatného); pri platbe prichádza e-mail kupujúceho v platobnom webhooku a dostáva sa do protokolu platieb; pri prepojení Telegramu sa e-mail ukladá do profilu. Toto sú jediné dotykové body — servisné a z nutnosti; netýkajú sa prevádzky ani správania používateľov.
Tieto servisné údaje uchovávame len na potrebný čas a mažeme ich automaticky: e-mail sa z odosielacej fronty odstráni hneď po odoslaní, telo platobnej udalosti po spracovaní a udalosti čakajúce na opakovanie do 90-dňového okna. Svoj účet spolu so súvisiacimi údajmi môžete vymazať kontaktovaním podpory (podrobnosti nájdete v riziku 7). Zverejňujeme to otvorene, namiesto toho, aby sme to skrývali za vágne formulácie.
SR-7Nezbierame logy vašej prevádzky ani návštev a servery si nevedú žiadny denník návštev.overené+
Platforma CreateYourVPN neprijíma ani neukladá informácie o tom, ktoré stránky navštevujete vy alebo vaši používatelia. Schéma príjmu metrík je uzavretá: fyzicky nemá polia pre IP adresy, domény ani návštevy — len agregáty (počet unikátnych online, celkové bajty, CPU/RAM/záťaž). Každý uzol sa autentifikuje HMAC tokenom viazaným na svoje vlastné id a môže zapisovať metriky len za seba. Vyvažovač na uzle (HAProxy) funguje ako TCP smerovač podľa SNI a prevádzku nedešifruje. Na samotnom serveri sa systémové žurnály uchovávajú najviac asi hodinu a neposielajú sa do syslog.
Nad rámec úrovne platformy si ani servery nevedú denník návštev: logovanie prístupov Xray sa pri každom nasadení konfigurácie nasilu vypína (platforma nastavuje log.access na none), takže hraničná proxy nezaznamenáva, na aké adresy sa používatelia pripájajú. Je to vynútené v kóde a rozšírené na celý flot.
SR-8Webová analytika je Google Analytics; žiadne iné trackery nie sú.overené+
Aby sme pochopili, ako sa web a panel používajú, používame Google Analytics (cookie banner upozorňuje na zbieranie cookies a štatistík; podrobnosti sú v Zásadách ochrany osobných údajov). Žiadne iné trackery tretích strán nie sú: žiadny Sentry, PostHog, Mixpanel ani reklamné pixely (overené prehľadaním oboch frontendov). Backend nemá žiadnu telemetriu tretích strán. Výklad pre koncového používateľa nie je pokrytý analytikou vôbec — žiadny GA, žiadne trackery (overiteľné z jeho zdrojov).
Výhrada: GA dostáva vašu IP (na strane Google) a adresy zobrazených stránok panela; URL panela obsahujú len identifikátor klastra, nie e-mail.
SR-9Platby sú externé — nedostávame celé číslo karty.overené+
Platba a všetky údaje o karte sa spracúvajú na strane poskytovateľa (Tribute / Lemon Squeezy). My dostávame len podpísaný webhook (HMAC-SHA256, porovnanie v konštantnom čase, overený skôr, než sa telo spracuje a skôr, než dôjde k akémukoľvek zápisu do databázy: bez znalosti tajomstva udalosť neprejde overením). Nedostávame celé číslo karty (PAN) ani CVV. Opätovné doručenie toho istého webhooku (opakovania poskytovateľa) nespôsobí dvojité pripísanie — udalosti sú deduplikované.
Výhrada: poskytovateľ môže do tela webhooku zahrnúť metadáta karty (značku a posledné 4 číslice) a meno a e-mail platiteľa. Pôvodné telo potrebuje worker, kým sa spracovanie nedokončí; po úspešnom spracovaní sa vymaže spolu s náznakom e-mailu. Udalosti čakajúce na opakovanie alebo ručnú kontrolu si pôvodné telo ponechávajú len do konca obdobia uchovávania (90 dní bez aktivity), po ktorom sa metadáta karty a e-mail platiteľa automaticky vymažú. „Celé číslo karty tam nie je“ je pravda, no to je vlastnosť poskytovateľov (telo si sami nefiltrujeme); „o karte nevidíme vôbec nič“ nie je.
Čo o vás (partnerovi) uchovávame, úprimne.čestná poznámka+
E-mail (potrebný na prihlásenie), čas posledného prihlásenia, režim rozhrania; pri fakturácii — zostatok a Telegram (na dobíjanie). IP partnera sa v databáze neukladá a v paneli neuchovávame žiadnu históriu kliknutí ani akcií (okrem krátkeho prístupového logu pri chybách).
Spevnenie servera
SR-10Firewall odmieta všetko okrem toho, čo je potrebné.overené+
Firewall predvolene odmieta prichádzajúce spojenia. Otvorené smerom von: 443 (VPN, Xray+Reality), SSH na neštandardnom porte (predvolene 12011) a — na master serveri — port administrátorského panela Marzban, len pre IP riadiacej roviny. Port 80 sa otvára samostatne len v režime Let's Encrypt pre HTTP-01. Port 22 sa po presune SSH zatvorí.
Správcovské porty uzla sú otvorené len pre IP master servera, nie smerom von (zlyhanie tejto väzby preruší inštaláciu). Ak sa firewall neaktivuje, inštalácia zlyhá. ICMP echo je obmedzené len pre IPv4; nesľubujeme, že server je „neviditeľný“, a IPv6 ICMP je zachované, aby IPv6 fungovalo správne.
SR-11Automatické bezpečnostné aktualizácie.overené+
Bezobslužné aktualizácie inštalujú aktualizácie bezpečnostných balíkov automaticky. Výhrada: automatický reštart je zámerne vypnutý (aby sa neoverené jadro samo nereštartovalo) — čo znamená, že opravy vyžadujúce reštart (jadro, niekedy OpenSSH) sa uplatnia až po ručnom alebo naplánovanom reštarte. „Automatické záplatovanie“ platí pre userland, nie pre to, čo vyžaduje reštart.
Úprimne o „neviditeľnosti“ — netvrdíme ju.čestná poznámka+
NEtvrdíme, že server je „neviditeľný“ alebo „nedá sa naskenovať“. Port 443 je otvorený a odpovedá na TCP spojenie ako každý webový server. Vlastnosť „pri nesprávnom spojení vyzerá ako obyčajný nesúvisiaci web“ zabezpečuje protokol Reality vnútri Xray — samostatný komponent, ktorý nerobíme absolútnym.
Platforma (ovládací panel)
SR-12Prihlásenie do účtu CreateYourVPN bez hesla.overené+
Partner sa prihlasuje jednorazovým 6-miestnym kódom zaslaným na e-mail. Účet nemá heslo. Netýka sa to interných poverení spravovaných komponentov, ako je vygenerované administrátorské heslo Marzban. Kódy generuje kryptografický generátor; ukladá sa len ich HMAC hash a porovnanie prebieha v konštantnom čase. Kód je na jedno použitie: pri úspechu sa okamžite vymaže (bez opätovného prehratia); po 5 nesprávnych pokusoch sa predčasne zruší. Limit vydávania sa počíta na e-mail, nie na IP — nedá sa obísť striedaním adries.
SR-13Relácia je chránená.overené+
Token relácie sedí v cookie HttpOnly a Secure (JS ho nedokáže prečítať), overuje sa na backende (nielen na okraji). Časový limit nečinnosti a automatické odhlásenie pri nečinnosti sú implementované na klientovi, nie na serveri. Token je podpísaný pomocou HS256; pri overovaní prísne odmietame akýkoľvek iný algoritmus (vrátane „none“) — klasický útok výmenou algoritmu neprejde. Token výkladu a token partnerského panela sú oddelené podľa publika: token koncového používateľa sa technicky nedostane do partnerského API (a naopak). Odstránený partner je odmietnutý aj so živým tokenom.
Výhrada: zrušenie je implementované kontrolou existencie partnera pri každej požiadavke, nie zneplatnením samotného tokenu; odhlásenie vymaže cookie, no vydaný token zostáva kryptograficky platný až do expirácie (najviac hodinu). Zatiaľ neexistuje centralizovaný zoznam zrušení (vedomé zjednodušenie v rámci MVP).
SR-14Tokeny a tajomstvá neunikajú do prehliadača.overené+
V lokálnom úložisku prehliadača nie sú žiadne tokeny (len nastavenia UI); do klientskeho balíka sa nedostanú žiadne tajomstvá ani adresa API. Token do cookie HttpOnly umiestňuje len server (Next.js). Prehliadač komunikuje s jadrom len cez server (Server Actions): frontend nevolá API priamo z prehliadača a CORS neumožňuje čítanie odpovedí API z iných pôvodov v prehliadači.
Spresnenie namiesto niekdajšieho absolútneho tvrdenia: samotná doména API je verejný hostiteľ — technicky ju môžete otvoriť z prehliadača, no bez relácie nevráti žiadne autorizované údaje.
SR-15Verejné domény platformy používajú HTTPS s prísnymi bezpečnostnými hlavičkami.overené+
Verejné domény CreateYourVPN sa poskytujú cez HTTPS s HSTS (max-age dva roky, includeSubDomains). Webový frontend aj doména API posielajú prísnu sadu bezpečnostných hlavičiek: reštriktívnu Content-Security-Policy, X-Content-Type-Options: nosniff, X-Frame-Options a uzamknutú Referrer-Policy (no-referrer na API; strict-origin-when-cross-origin na frontende, ktorý navyše posiela reštriktívnu Permissions-Policy).
Toto beží v produkcii na oboch doménach a dá sa nezávisle overiť — ľubovoľným inšpektorom HTTP hlavičiek alebo službou ako SSL Labs.
Úprimne o rizikách (čo NEsľubujeme)
Správa bez tejto časti je marketing. Tu sú skutočné hranice:
Ovládací panel uchováva zašifrované prístupové kľúče k celému parku serverov. Je to prirodzene najcitlivejší komponent systému — a podľa toho ho aj chránime.
Čo ho chráni: ťažké tajomstvá sú v databáze uložené výhradne ako šifrovaný text; šifrovací kľúč (KEK) sa uchováva oddelene od databázy; kľúče sa nikdy nedostanú do prehliadača; a pri odstránení servera sa vynulujú. Predplatné tokeny majú navyše ďalšiu vrstvu — vyhľadávanie podľa hashu (hash lookup) spolu s AES-GCM — takže ani výpis (dump) databázy bez KEK neobsahuje žiadne funkčné odkazy /sub.
Úprimný strop: šifrovanie spoľahlivo chráni pred krádežou samotnej databázy — zálohy, repliky alebo dumpu. Neodstraňuje riziko úplnej kompromitácie samotného hostiteľa (host) panela, kde sú KEK aj databáza dostupné jedinému procesu. Preto je hlavným zameraním našej obrany zabrániť práve prevzatiu hostiteľa: izolácia, automatické bezpečnostné aktualizácie a minimum otvorených plôch.
Vyhradený KMS/HSM príde v jednom z nadchádzajúcich bezpečnostných vydaní.
Keď pridáte server, pripojíme sa naň presne raz — pomocou dočasného hesla, ktoré zadáte. Práve pri tomto prvom pripojení je útok Man-in-the-Middle (MITM) teoreticky možný. Neutralizujeme ho niekoľkými nezávislými opatreniami, takže praktické riziko je znížené na nulu.
Heslo je jednorazové: slúži presne na jedno pripojenie, nikde na našej strane sa neukladá a nikdy sa opätovne nepoužíva. Súkromný kľúč sa cez sieť nikdy neposiela — následné overovanie sa opiera o pár kľúčov (overenie verejným kľúčom, pubkey), nie o heslo.
Ihneď po nastavení sa na serveri vypne overovanie heslom aj prihlásenie pod účtom root, zmení sa SSH port a prístup sa prepne výhradne na kľúče. Od tejto chvíle ani zachytené heslo neotvorí vôbec nič.
Každé ďalšie správcovské pripojenie overuje pripnutý odtlačok servera (host-key pinning) — server podstrčený „v strede“ je odmietnutý.
V dôsledku toho by odpočúvanie bolo možné len pre útočníka fyzicky prítomného na sieťovej ceste medzi nami a serverom počas tých niekoľkých sekúnd prvotnej inštalácie — a aj v tomto krajnom prípade sa zachytené údaje okamžite stávajú neúčinnými.
Toto je vlastnosť každého prenajatého servera, nielen toho nášho: snímky (snapshots), záchranný (rescue) režim a podobne sú poskytovateľovi dostupné a žiadny softvér pred tým nechráni. Naopak, výber dôveryhodného poskytovateľa je vo vašich rukách a server je celý váš — poskytovateľa môžete kedykoľvek zmeniť a stroj vymazať.
Nikto nemôže sľúbiť absolútnu ochranu — nové zraniteľnosti sa objavujú v každom softvéri. Čo robíme: bezpečnostné aktualizácie sa inštalujú automaticky a opravy vyžadujúce reštart (jadro, občas OpenSSH) sa uplatnia po reštarte — ručnom alebo plánovanom (pozri SR-11).
Váš e-mail na prihlásenie a e-mail koncových používateľov v niekoľkých servisných prípadoch (pozri SR-6). Uchováva sa len na potrebný čas a maže sa automaticky (pozri riziko 9).
Keďže prihlásenie sa opiera o jednorazový kód z e-mailu, vaša e-mailová schránka je v podstate kľúčom k účtu — oplatí sa ju dobre chrániť. Druhý faktor zatiaľ nie je: pre túto fázu rozumné, ale je dobré o tom vedieť.
Osobné údaje uchovávame len tak dlho, ako ich operácia potrebuje, a potom ich automaticky vymažeme. E-mail sa z frontu odstráni hneď po odoslaní správy a surové telo úspešnej platobnej udalosti hneď po jeho spracovaní.
Dlhšie pretrváva len jedna vec: platobné udalosti čakajúce na opakovaný pokus alebo ručnú kontrolu. Ich pôvodné telo sa neuchováva donekonečna, ale do konca 90-dňového okna bez aktivity, po ktorom sa osobné údaje automaticky vynulujú.
Samoobslužné tlačidlo «vymazať moje údaje» v rozhraní zatiaľ nie je — je v pláne. Medzitým môžete svoj účet spolu so súvisiacimi údajmi vymazať tak, že sa obrátite na podporu.
Odkaz /sub je trvalý bearer token až do ručného zrušenia alebo vymazania používateľa; neexistuje automatická expirácia ani rotácia (uniknutý odkaz zostáva živý).
Ak zapnete export záloh na Google Drive alebo S3, používateľské dáta opustia váš server a ich ochrana potom závisí od vášho cloudu — táto správa ju samostatne nepokrýva. Je to váš vedomý výber: túto funkciu si zapínate sami.
Ako si to overiť.
Každé tvrdenie vyššie je verejná stávka. Pozývame vás nájsť, kde sme sa mýlili alebo prikrášľovali:
Trať A — klasické zraniteľnosti (RCE, obídenie autorizácie, IDOR, úniky a podobne).
Trať B — vyvrátenie tejto správy: dokážte, že ktorékoľvek SR-N je nepravdivé, získajte odmenu a my zverejníme opravu verejne.
Našli ste niečo?
Napíšte nám s reprodukovateľným proof of concept. Odpovedáme do 72 hodín a triáž riešime interne.