Az API-t azzal a feltételezéssel terveztük, hogy minden hívásnak közvetlen pénzügyi következménye van és érzékeny szerverhozzáférési adatokhoz férhet hozzá. A biztonsági követelmények ezért jelentősen meghaladják a REST alapelvárásait.
Bevezetett védelmi mechanizmusok
- HMAC-SHA256: Minden kérés HMAC-SHA256 aláírást kap a metódus, útvonal, időbélyeg, nonce és törzs hash felett. Állandó idejű ellenőrzés (hash_equals).
- AES-256-GCM: A titkok kizárólag AES-256-GCM rejtjelszövegként tárolódnak (libsodium). A mesterkulcs az adatbázison kívül található: /etc/kh-reseller-api/master.key.v{N}.
- Replay protection: Időbélyeg-ablak +-300 másodperc, nonce-gyorsítótár 600 másodperc. Egy sikeresen aláírt kérést nem lehet visszajátszani.
- Scope-based authorization: Kulcsonként kifejezett jogosultsági lista. Az íráshoz és érzékeny adatokhoz tartozó jogosultságokat kifejezetten engedélyezni kell.
- IP whitelist (optional): Opcionális IP fehérlista kulcsonként (CIDR jelölés, IPv4 és IPv6).
- Rate limit: Többrétegű: kulcsonként (perc plusz nap) és IP-címenként (perc). Token-bucket burst tűréssel.
- Idempotency: A megrendelések és a destruktív szolgáltatási műveletek Idempotency-Key fejlécet igényelnek. 24 órás visszajátszás-védelem a hálózati újrapróbálkozások ellen.
- Tenant isolation: Minden adatbázis-lekérdezés szigorúan az Ön fiókazonosítójára szűr. Bérlők közötti hozzáférés konstrukciójánál fogva lehetetlen.
- Tamper-evident audit log: Minden kérés bekerül az audit-naplóba láncolt hash értékkel (chain_hash[n] = sha256(chain_hash[n-1] || row_n)). Az utólagos manipulációt a hash-törés azonnal felfedi.
- Credentials.read alerting: Minden credentials.read hívás dedikált audit-bejegyzést hoz létre, valamint opcionális megerősítő e-mailt küld a fióktulajdonosnak.
- SSRF-guarded webhooks: A webhook URL-eket tárolás előtt ellenőrizzük: kizárólag HTTPS, a DNS-feloldásnak kizárólag nyilvános IP-ket kell visszaadnia (sem RFC1918, sem link-local).
Bevált gyakorlatok az Ön oldalán
- A titkot titokkezelőben tárolja (HashiCorp Vault, AWS Secrets Manager, Doppler, 1Password), soha ne a kódban, soha ne git-tárolóban.
- A titkot rendszeresen forgassa el (legalább évente vagy személyzeti változás után). Egykattintásos rotáció a portálon, a régi titok azonnal érvénytelenné válik.
- Használati esetenként egy dedikált kulcs minimális jogosultsággal (lehetőleg csak olvasás). Semmilyen "isteni" kulcsot.
- Ha integrációja fix IP-címekről fut (felhő, bástya): állítson be IP fehérlistát.
- Az Idempotency-Key értéket szerveroldalon generálja és tárolja, ne hozzon létre újat minden újrapróbálkozásra. Ajánlás: UUIDv4 logikai megrendelésenként.
- Állítson be webhookot saját URL-jére; legalább az order.created és credentials.read eseményeket figyelje eseményfolyamként.
Biztonsági közzététel
A biztonsági problémákat bizalmasan jelentse a security@kernelhost.com címre. PGP kulcs kérésre. Válasz 24 órán belül garantáltan. Bug-bounty program előkészítés alatt.

