mikroHUB

Drošības arhitektūra

Kā mikroHUB aizsargā jūsu tīkla infrastruktūru

Dokumenta versija: 2026-03-22 · Jautājumi: [email protected]

Tīkla arhitektūra

                              INTERNET
         ┌────────────────────┬──────────────────────┐
         │ HTTPS/443          │ WSS/443              │ WG/UDP 51820
         │ (TLS 1.2+)        │ (WebSocket)          │ (WireGuard)
         ▼                    ▼                      ▼
┌─────────────────────────────────────────────────────────────────┐
│  NGINX REVERSE PROXY  (mikrohub.io)                             │
│  ┌──────────────┐  ┌──────────────┐  ┌────────────────────────┐ │
│  │ Let's Encrypt │  │ HSTS Preload │  │ CSP + Security Headers │ │
│  │ ECDSA cert    │  │ max-age=2yr  │  │ X-Frame, X-Content     │ │
│  └──────────────┘  └──────────────┘  └────────────────────────┘ │
│  Ports open : 80 (→301), 443, 51820/UDP                         │
│  Ports BLOCKED: 3001 (API), 6379 (Redis)                         │
└──────────┬──────────────────────┬───────────────────┬───────────┘
           │ :3001               │ :3001/ws          │ :51820
           ▼                     ▼                    ▼
┌──────────────────┐  ┌──────────────┐  ┌──────────────────────────┐
│ EXPRESS API      │  │ WebSocket    │  │ WireGuard (wg0)          │
│ (Node.js)        │  │ Server       │  │ 10.99.0.1/16             │
│                  │  │ One-time     │  │ Per-device /32 peer      │
│ JWT validation   │  │ ticket auth  │  │ No split tunnel          │
│ 60s session cache│  │ (no JWT      │  │                          │
│ 1h max token age │  │  in URL)     │  │ Devices: 10.99.x.y      │
└────────┬─────────┘  └──────────────┘  └──────────────────────────┘
         │
   ┌─────┴──────┐
   ▼            ▼
┌────────┐  ┌────────┐
│Supabase│  │ Redis  │
│Postgres│  │ TLS    │
│(cloud) │  │(local) │
│RLS on  │  │ Auth   │
│all tbl │  │ reqd   │
└────────┘  └────────┘

Visa ārējā trafika beidzas vietnē Nginx ar TLS 1.2+. Iekšējie pakalpojumi (API ports 3001, Redis ports 6379) ir bloķēti ugunsmūra līmenī un nekad nav pakļauti internetam.

Autentifikācija un autorizācija

SlānisMehānisms
Lietotāja autentifikācijaPKCE
Supabase Auth ar PKCE plūsmu (nav netieša)
Žetonu krātuveCOOKIE
Secure + SameSite=Lax sīkfaili (nevis localStorage)
Token LifetimeTTL
Maksimāli 1 stunda, 60 s kešatmiņa, piespiedu atsvaidzināšana
Sesijas atsaukšanaREVOKE
Atmiņas nederīgums + marķiera melnais saraksts
WebSocket AuthTICKET
Vienreizēja biļešu maiņa (JWT nekad nav norādīts URL)
API atslēgas autentifikācijaSHA-256
SHA-256 jaukts, tvērums katram resursam, derīguma termiņš ir izpildīts
Ierīces aģenta autentifikācijaAGENT
SHA-256 jauktais marķieris, ierobežots ātrums (2 piepras./30 s)
MFAMFA
TOTP (autentifikatora lietotne) + WebAuthn/FIDO2 (paroles, YubiKey)

Datu izolācija (vairāki nomnieki)

Org A — "ISP Gdaņska"
devices (org_id=1)
metrics (org_id=1)
backups (org_id=1)
logs (org_id=1)
RLS BLOĶĒTS
Org B — "Firma Warszawa"
devices (org_id=2)
metrics (org_id=2)
backups (org_id=2)
logs (org_id=2)
  • Rindas līmeņa drošība (RLS) VISĀS datu tabulās
  • Ieviests PostgreSQL līmenī — pat SQL injekcija nevar pārkāpt nomnieka robežas
  • API starpprogrammatūra atkārtoti pārbauda dalību organizācijā pēc katra pieprasījuma
  • WebSocket abonementi, kas pārbaudīti pret org_members

Ierīces akreditācijas dati

1

Šifrēt

AES-256-GCM ar nejaušu IV katram ierakstam, autentifikācijas tags apstiprināts

2

Veikals

Saglabāts kā iv:tag:šifrēts teksts programmā Supabase (nekad nav vienkāršs teksts)

3

Atšifrēt vietnē Poll

Atšifrēts tikai aptaujas laikā, atmiņā, nekad nav reģistrēts

4

Savienot

RouterOS API-SSL ar TLS šifrētu savienojumu

  • Galvenā šifrēšanas atslēga vides mainīgajā (ne kodā, ne DB)
  • Akreditācijas dati tiek atšifrēti tikai tad, kad tie ir nepieciešami ierīces savienojuma izveidei
  • Kļūdu ziņojumi rediģē IP un akreditācijas datus, izmantojot regulāro izteiksmi
  • Akreditācijas dati nekad netiek rādīti žurnālos, atbildēs vai audita izsekojamībā

Savienojuma režīmi

API pārvaldība

Tiešs TLS savienojums, izmantojot API-SSL (ports 8729). Pilna pārvaldības piekļuve.

  • TLS šifrēts
  • IP ierobežots ar mikroHUB
  • Tikai ports 8729

WireGuard

Šifrēts tunelis — maršrutētājam nav nepieciešami atvērti porti.

  • Nav vajadzīgas publiskas ostas
  • Katrai ierīcei /32 vienādranga
  • Nav sadalīta tuneļa
  • Viena kopēšanas un ielīmēšanas iestatīšana

API uzraudzība

Tikai lasāms tiešs TLS savienojums. Nav rakstīšanas piekļuves maršrutētājam.

  • Tikai lasīšanas piekļuve
  • TLS šifrēts
  • IP ierobežots

Aģents

Ierīce izsūta datus, izmantojot HTTPS. Nekā ienākošā.

  • Tikai izejošs (HTTPS)
  • Nav nepieciešami atvērti porti
  • Tikai stumjams modelis
  • Ierobežots ātrums (2 piepras./30 s)

Infrastruktūras drošība

KomponentsAizsardzība
TLSTLSv1.2 + TLSv1.3, ECDHE šifri, HSTS priekšielāde
Ugunsmūris (UFW)Atklāti tikai 80, 443, 51820/UDP. API (3001) un Redis (6379) NEIEDZ
RedisTLS iespējots, nepieciešama parole, saistīšana tikai ar vietējo saimniekdatoru
Nginx galvenesHSTS, X-Frame-Options, X-Content-Type-Options, CSP, Permissions-Policy
Likmes ierobežojumsGlobālais 300/15 min, autentifikācija 5/min, administrators 30/15 min, aģents 2/30s
DH parametri2048 bitu dhparam pārsūtīšanas slepenībai

Ko mēs NEdarām

  • Mēs nekad neuzglabājam paroles vienkāršā tekstā
  • Mēs neizmantojam vietējo krātuvi marķieriem
  • Mēs nepakļaujam iekšējos pakalpojumus internetam
  • Mēs neatļaujam piekļuvi starpnomnieku datiem
  • Mēs nereģistrējam akreditācijas datus vai sensitīvus datus
  • Mums nav nepieciešami atvērti maršrutētāja porti (WireGuard režīms)
  • Mēs nesūtām vienkārša teksta API savienojumus (tiešajam režīmam ir nepieciešams SSL)

Atbilstība

StandartaStatuss
HTTPS visurPiespiedu kārtā
Šifrēšana miera stāvoklīAES-256-GCM akreditācijas datiem
Šifrēšana sūtīšanas laikāTLS + WireGuard
AutentifikācijaJWT + MFA + PKCE
AutorizācijaRBAC + RLS
Revīzijas pēdasPilns audita žurnāls ar IP izsekošanu
Datu dzēšana (VDAR)Konta dzēšanas galapunkts
Sesijas vadībaToken melnais saraksts + piespiedu atsvaidzināšana

Jautājumi par drošību?

Mēs labprāt atbildēsim uz visiem potenciālo klientu un auditoru jautājumiem.

[email protected]