CLIENTcertkeySERVERcertkeyclient certserver certboth sides authenticated cryptographically

Vzájomné TLS (mTLS)

11 min prečítanéKryptografia

Štandardné HTTPS overuje server voči klientovi — prehliadač overí certifikát servera. Vzájomné TLS pridáva opak: klient predloží aj certifikát, ktorý server overí. Výsledkom je kryptograficky overená identita pre obe strany spojenia. mTLS je čoraz viac štandardom pre overovanie medzi službami v moderných architektúrach.

Celé telo článku je uvedené v angličtine nižšie.

Vzájomné TLS (mTLS) rozširuje štandardné TLS tým, že vyžaduje, aby klient predložil certifikát, ktorý overí server. Podanie ruky sa dokončí tak, že sa obe strany navzájom kryptograficky overia. V porovnaní s autentifikáciou založenou na hesle alebo tokenoch ponúka mTLS silnejšie záruky identity, automatickú rotáciu poverení prostredníctvom životných cyklov certifikátov a elimináciu problémov s zdieľanou tajnou distribúciou. Server neoveruje klienta kryptograficky — spolieha sa na mechanizmy aplikačnej vrstvy (cookies, tokeny nosiča, základné overenie).

V mTLS server pridá požiadavku na certifikát počas nadviazania spojenia TLS. The client must respond with its own certificate plus a signature proving possession of the private key. Server overí klientsky certifikát oproti svojmu vlastnému úložisku dôveryhodnosti. Ak overenie zlyhá, pripojenie sa preruší.

Kde je nasadené mTLS

  • Microservices. Rámce so sieťou služieb, ako sú Istio, Linkerd a Consul Connect, používajú mTLS na autentifikáciu medzi službami. Každá mikroslužba má certifikát identifikujúci jej identitu; sieť si vynucuje, kto komu môže volať.
  • API brány. Interné API čoraz častejšie vyžadujú klientske certifikáty namiesto API kľúčov. Silnejšia identita, automatická rotácia prostredníctvom certifikátov s krátkou životnosťou.
  • VPN a produkty Zero Trust. Cloudflare Access, Tailscale, BeyondCorp používajú na autentifikáciu certifikáty zariadení.
  • Vládne a finančné rozhrania API, často vojenské systémy FPLZ27X Bankové rozhranie API mTLS.
  • IoT. Certifikáty jednotlivých zariadení vytvárajú identitu pre správu vozového parku. AWS IoT, Azure IoT Hub, Google Cloud IoT všetky používajú mTLS.
  • WebHooks a B2B integrácie. Webhooky s vyššou bezpečnosťou overujú obe strany prostredníctvom certifikátov.

Prečo mTLS tokeny

  • Žiadne zdieľané tajomstvá. Každá strana má iba svoj vlastný súkromný kľúč. Kompromis úložiska jednej strany neprezrádza druhú.
  • Silná identita. Certifikát overuje, že držiteľ ovláda zodpovedajúci súkromný kľúč, ktorý dôveryhodná CA naviazala na overenú identitu.
  • Automatická rotácia.Skrátený počet dní certifikátu na ľubovoľnú hodinuX kompromis.
  • Žiadne opätovné použitie hesla. Každá služba má svoj vlastný certifikát; žiadna koncepcia opätovného použitia hesla naprieč službami.
  • Žiadne opakované prehrávanie. Samotný certifikát nie je užitočný bez súkromného kľúča, ktorý sa nikdy nepohybuje.
  • Vstavaná kryptografická vzájomná autentifikácia. Obe strany sa navzájom overia počas jedinej spiatočnej cesty handshake.

Ako sa vydávajú certifikáty

Príbeh nasadenia mTLS sa točí okolo vydávania certifikátov:

  • Interné PKI. Organizácia prevádzkuje svoju vlastnú certifikačnú autoritu. Každá služba alebo klient získa certifikát vydaný touto CA. Dôvera je interná.
  • SPIFFE / SPIRE. Rámec identity natívnej cloudu. Vydáva krátkodobé certifikáty pre pracovné zaťaženia identifikované identifikátormi v štýle URI. Sieť služieb používa tento vzor.
  • HashiCorp Vault. Vault môže fungovať ako CA pre interné mTLS a na požiadanie vydávať certifikáty s krátkou životnosťou overeným pracovným zaťaženiam.
  • Step CAZ85ME-použitie s otvoreným zdrojom.X Znižuje prevádzkovú zložitosť.
  • Verejné CAs. Pre B2B mTLS, kde obe strany potrebujú globálne dôveryhodnú identitu, komerčné CA vydávajú mTLS certifikáty.

Prevádzkové výzvy

XPLZ9 nie je zadarmoul>
  • Správa certifikátov. Každý klient potrebuje certifikát, vydaný, rotovaný, odvolaný v prípade potreby. PKI sa stáva kritickou infraštruktúrou.
  • Distribution. Bezpečné získanie certifikátov pre správnych klientov – bootstrapping je opakujúci sa problém.
  • Debugging. zlyhania mTLS sa ladia ťažšie ako zlyhania hesla. Nástroje a pozorovateľnosť sú dôležité.
  • Podpora knižnice. Väčšina moderných HTTP knižníc podporuje mTLS, ale konfigurácia je zložitejšia ako základná auth.
  • Obmedzenia prehliadača. Prehliadač podporuje mTLS awkward (klient) existuje mTLS vo webovom kontexte je bežnejší medzi servermi ako medzi prehliadačmi. Sieť služieb ako Istio:

    1. Každá služba získa identitu pracovného zaťaženia (SPIFFE ID).
    2. Riadiaca rovina siete vydáva certifikáty s krátkou životnosťou (zvyčajne platné niekoľko hodín).
    3. Postranné servery proxy (Envoy pre lokálneho hostiteľa); postranný vozík ho zabalí do mTLS pre výstup zo siete.
    4. Sajdkár prijímajúcej strany ukončí mTLS, overí identitu zdroja a pošle obyčajný HTTP do cieľovej aplikácie. autentifikáciu na základe identity bez akýchkoľvek zmien kódu. Sieť zvláda všetku operačnú zložitosť certifikátov a kryptomien.

      mTLS vs OAuth/OIDC pre APIs

      Dva rôzne modely autentifikácie:

      • OAuth/OIDCXer-46-based Token obsahuje nároky na identitu. Tokeny je možné exfiltrovať a prehrať, ak nie sú viazané na klienta.
      • mTLS — založené na certifikáte. Samotný certifikát je bez súkromného kľúča zbytočný. Silnejšie záruky identity.

      Pre internú autentifikáciu medzi službami sa čoraz viac uprednostňuje mTLS. Pre overenie používateľmi zostáva štandardom OAuth/OIDC. Hybridné prístupy (OAuth s viazaním tokenov, tokeny OAuth viazané na mTLS) kombinujú svoje silné stránky.

      Pre vývojárov

      Pridanie mTLS do zásobníka zahŕňa:

      • Nastavenie CA (najlepšia možnosť otvoreného zdroja) spustené)
      • Vydávanie certifikátov klientom a serverom
      • Konfigurácia serverov tak, aby vyžadovali klientske certifikáty
      • Konfigurácia klientov na predkladanie certifikátov
      • Ošetrenie rotácie certifikátov (automatizované cez ACME-ekvivalent pre interné bariéry CAXX0XZPL7199 CAXX0XX) za posledných 5 rokov výrazne klesla. mTLS je teraz prevádzkovo realizovateľný pre malé tímy; predtým to bolo prevažne doménou podnikov s vyhradenou bezpečnostnou infraštruktúrou.

  • Často kladené otázky

    Je mTLS pre moju aplikáciu prehnané?
    Závisí od scenára. For user-facing web apps, OAuth/OIDC is usually right. For internal APIs and service-to-service traffic in microservices, mTLS is becoming the standard. For high-security B2B integrations, mTLS is often the right answer.
    Aký je rozdiel medzi overením klienta mTLS a TLS?
    To isté, iné mená. TLS client authentication is the protocol feature; mTLS je bežný termín pre jeho používanie. Odvolávajú sa na rovnaký mechanizmus.
    Podporujú prehliadače mTLS?
    Yes — they prompt the user when a server requests a client certificate. UX je slabé; používatelia to považujú za mätúce. mTLS v prehliadačoch funguje, ale pre spotrebiteľské aplikácie je zriedkavé. Podnikové aplikácie s certifikátmi zariadení vydanými zamestnancami ho používajú častejšie.
    Aká krátka by mala byť životnosť certifikátu mTLS?
    Pre identitu pracovného zaťaženia v servisných sieťach sú typické hodiny až dni. Rotácia je automatizovaná; krátka životnosť obmedzuje dopad. Pre dlhotrvajúce B2B identity dni až týždne. Certifikáty vydané verejnými CA majú dlhšie cykly (v súčasnosti až 397 dní).
    Môžem odvolať certifikát mTLS?
    Áno, cez CRL (Certificate Revocation List) alebo OCSP (Online Certificate Status Protocol). Certifikáty s krátkou životnosťou túto potrebu čiastočne obchádzajú – zrušenie je menej dôležité, keď platnosť certifikátu aj tak vyprší o niekoľko hodín. Väčšina moderných nasadení mTLS sa spolieha skôr na krátku životnosť než na aktívne zrušenie.
    Vysvetlenie vzájomného TLS (mTLS): Keď má certifikát aj klient