Dauguma ginčų dėl OpenVPN santraukų prasideda nuo netinkamo paketo. Skaityti auth SHA256 kaip „priimk tik tuos partnerius, kurie siūlo SHA256“ yra pirmas dalykas, kurio reikia atprasti. Parinktis įvardija santrauką tam tikriems paketams, o kurie tai paketai, priklauso nuo kanalo ir nuo to, ar tas kanalas yra AEAD. Peržiūrėkite keturis žemiau pateiktus klausimus iš eilės; kiekvienas susiaurina, ką nustatymas gali reikšti jūsų diegime.

Įvardykite kanalą, kurį nustatymas turi saugoti

OpenVPN turi valdymo kanalą, kuriuo keliauja TLS rankos paspaudimo srautas, ir duomenų kanalą, kuriuo keliauja tunelio naudingoji apkrova. auth santrauka vaidina vaidmenį abiejuose, bet ne tą patį, ir profilis retai padaro skirtumą matomą. Užsirašykite, kurį iš dviejų bandote apriboti, prieš liesdami konfigūracijos failą.

Žemiau esanti lentelė yra trumpa versija, kaip ta pati parinktis atsiduria kiekviename kontekste.

ContextWhat the auth digest does
Data channel without AEADSelects the HMAC digest that authenticates each data packet
Data channel with AEAD, such as GCMUnused for the data channel; the cipher authenticates its own packets
Control channel protected by tls-authSelects the HMAC digest for that protection, even when data is AEAD

Prieš pasikliaudami patikrinkite, ar duomenų kanalas yra AEAD

Jei suderintas duomenų šifras yra AES-GCM arba CHACHA20-POLY1305, duomenų kanalas autentifikuoja pats save, o atskira santrauka neatlieka darbo, kurį galbūt įsivaizduojate. Abi yra AEAD konstrukcijos, todėl vientisumą sukuria ta pati operacija, kuri šifruoja apkrovą. Tai nėra lygio sumažinimas, bet reiškia, kad politika, grindžiama „kiekvienas duomenų paketas yra HMAC-SHA256“, tame tunelyje faktiškai neteisinga. Prieš perrašydami politiką patvirtinkite suderintą reikšmę serverio žurnale arba kliento būsenos išvestyje.

Tikrinkite šifrą, kuris iš tikrųjų buvo suderintas, o ne sąrašą profilyje, nes derybos gali atsidurti kitame rinkinio naryje. data-ciphers AES-256-GCM:AES-128-GCM yra derybų sąrašas, ir abu įrašai yra AEAD, todėl nė vienas jų nenaudoja auth santraukos apkrovos apsaugai.

Valdymo kanalo apsaugą traktuokite kaip atskirą sprendimą

tls-auth prideda HMAC prie valdymo kanalo paketų ir ima savo santrauką iš auth nustatymo, todėl AEAD tunelyje vis tiek gali būti prasminga suderinta santrauka. tls-crypt yra kitokia tvarka su sava fiksuota apsauga, todėl ne manykite, kad ji paveldi kiekvieną tls-auth savybę. Skaitykite pasirinkto mechanizmo dokumentaciją, o ne perkelkite prielaidas tarp jų.

Abu partneriai taip pat turi sutarti dėl tvarkos ir dėl rakto krypties. Sutampanti santrauka, bet netinkama kryptimi naudotas rakto failas sukuria rankos paspaudimą, kuris nepavyksta dėl priežasčių, kurių santraukos nustatymas negali paaiškinti.

Laikykite auth atskirai nuo šifrų derybų ir sertifikatų

Trys nustatymai nuolat painiojami: auth santrauka, duomenų šifrų sąrašas ir sertifikato parašo algoritmas. Pakeitus pirmąjį, sertifikatas neišduodamas iš naujo, neparenkama jo parašo santrauka ir nesukuriamas vartotojo-slaptažodžio metodas. Protokolo parinkčių aprašai OpenVPN 2.6 šaltiniuose aprašo kiekvieną atskirame skyriuje, o tai naudinga priminti, kad tai nepriklausomi reguliatoriai.

Kai partneris atsisako prisijungti pakeitus santrauką, priežastis paprastai yra neatitikimas viename iš kitų dviejų nustatymų. Perskaitykite abu galus prieš keisdami bet kurį.

Užrašykite politiką ir palyginkite ją su veikiančiomis konfigūracijomis

Flotės lygio teiginys turėtų tame pačiame sakinyje aiškiai įvardyti leidžiamus duomenų kanalo režimus ir pasirinktą valdymo kanalo apsaugą. Tas sakinys yra patikrinamas; „mes naudojame SHA256“ – ne. Tada palyginkite jį su veiksmingais serverio ir kliento profiliais, o ne su šablonu saugykloje.

Užbaikite užrašydami, dėl ko kiekvienas tunelis iš tikrųjų susitarė ir kuris mechanizmas autentifikavo jo paketus. Matoma auth eilutė profilyje yra tik konfigūracijos ketinimo įrodymas, o ketinimas yra pigiausia patikros dalis.

Susiję straipsniai