OAuth vnútri VPN: ktoré úseky stále vyžadujú TLS
VPN mení, kto sa dostane na server, nie ako cestujú správy OAuth. Rozhodujte podľa úseku: odpoveď autorizácie, požiadavka na token a bearer volanie.
Súkromné smerovanie rozhoduje, kto sa dostane na server; pravidlá prenosu OAuth rozhodujú, ako cestuje každá správa. Prehliadač, autorizačný server, koncový bod tokenu a server zdrojov môžu všetci sedieť za tou istou VPN a napriek tomu si vymieňať správy cez rôzne úseky. Každý úsek má svoju vlastnú požiadavku na prenos a VPN žiadnu z nich nezmierňuje. Hranica VPN a hranica protokolu sú dve rôzne línie.
Rozhodnutie je ľahšie, keď prestanete klásť otázku, či je sieť dôveryhodná, a začnete sa pýtať, ktorá výmena prechádza ktorú hranicu.
Rozhodujte podľa úseku, nie podľa siete
Zapíšte koncové body oddelene: autorizačný koncový bod, koncový bod tokenu, URI presmerovania, URL servera zdrojov, bod ukončenia TLS a bránu VPN. Potom označte, ktorá strana začína každú požiadavku a kam ide odpoveď.
VPN, ktorá končí na bráne, šifruje segment k tejto bráne. Požiadavka môže za ňou pokračovať ako obyčajný HTTP a tento zostávajúci úsek sa nestal HTTPS len preto, že bol skorší segment zašifrovaný. Práve toto pokračovanie je úsek, na ktorom protokolu záleží. Zašifrovanie prvého skoku nerobí druhý skok bezpečným.
Prenos nesie aj kontrolu identity služby. Prehliadač overuje certifikát pre URL aplikácie; VPN nevykonáva toto overenie za prehliadač a nerobí neoverený koncový bod prijateľným. Certifikát pomenúva koncový bod, o ktorom sa klient domnieva, že ho volá. Tunel k bráne tento koncový bod nepremenúva ani neoveruje.
Odpoveď autorizácie a URI presmerovania
Najlepšia súčasná bezpečnostná prax OAuth zakazuje prenášať odpovede autorizácie cez nešifrované spojenia. Zahŕňa to presmerovanie, ktoré nesie autorizačný kód alebo tokeny späť klientovi, nielen počiatočnú požiadavku.
Rovnaké usmernenie nepovoľuje URI presmerovania HTTP, okrem uvedeného prípadu loopbacku pre natívneho klienta. Interný názov hostiteľa nevytvára novú výnimku a názov DNS, ktorý sa prekladá iba vnútri VPN, je stále URL HTTP, ak to schéma hovorí. Kontrolujte schému v registrovanom URI, nielen názov hostiteľa.
Zaregistrujte presné URI presmerovania HTTPS u autorizačného servera a ponechajte overovanie certifikátov v klientovi zapnuté. Vývojová skratka, ktorá potláča požiadavku HTTPS, vytvára tok, ktorý sa správa inak než produkčná konfigurácia, ktorú má modelovať.
Koncový bod tokenu a požiadavky s bearer tokenom
Požiadavka na token nesie prihlasovacie údaje alebo kód, ktorý možno vymeniť za prístup. Jej odoslanie cez nechránený úsek vystavuje materiál, ktorému bude server zdrojov neskôr dôverovať, aj keď je okolitá sieť súkromná. Proxy, ktorá dokáže požiadavku prečítať, dokáže prečítať aj údaj, ktorý nesie.
Pri požiadavkách na zdroje s bearer tokenom považuje RFC 6750 TLS za povinné implementovať a používať podľa tejto špecifikácie. Označiť kancelársku podsiete za dôveryhodnú nie je všeobecná výnimka protokolu, ktorú nasadenie s bearer tokenmi v otvorenom texte potrebuje.
Použite dokumentované bezpečné URL koncových bodov pre oba úseky. Ak knižnica odmieta volať koncový bod tokenu cez HTTP, toto odmietnutie je špecifikácia, ktorá funguje, nie konfiguračná chyba na obídenie. Zapíšte toto URL do konfigurácie klienta namiesto toho, aby ste ho odvodzovali za behu.
Kde TLS končí a čo to zanecháva
Ak TLS končí na autorizovanom frontende, pomenujte tento frontend a prejdite cestu od neho k aplikácii. Frontend sa stáva zodpovedným za preposielanie, dôveru a dôvernosť na zostávajúcom segmente a podporovaná architektúra služby by toto usporiadanie mala opisovať.
VPN inde na ceste tieto zodpovednosti nerieši. Takisto vám nepovie, či URL aplikácie, ktoré vidí prehliadač, zodpovedá certifikátu, ktorý frontend predkladá.
Pri internom nasadení zaznamenajte bod ukončenia a identitu, ktorú predkladá. Frontend, ktorý ukončuje TLS certifikátom pre iné meno, vytvára varovanie prehliadača, ktoré operátori často potláčajú namiesto toho, aby ho opravili.
Výnimka pre natívny loopback je úzka
Výnimka presmerovania loopback sa týka spätného volania na vlastnom zariadení používateľa, kde klient a prehliadač toto zariadenie zdieľajú. Toto usporiadanie patrí spätnému volaniu na jednom zariadení a neoprávňuje obsluhovať bežný autorizačný server alebo API s tokenmi cez HTTP do kancelárskej podsiete.
Držte výnimku obmedzenú na typ klienta a spätné volanie, ktoré opisuje. Jej použitie na webovú aplikáciu, zdieľanú internú službu alebo URI presmerovania na inom hostiteľovi mení nasadenie, nie výnimku.
Otestujte skutočný tok na každej hranici a porovnajte ho s typom klienta. Fungujúce presmerovanie nič nehovorí o tom, či každý úsek, ktorý niesol token, použil požadovanú ochranu, a zelená ikona VPN nič nehovorí o schéme ďalšej požiadavky.