Du kompiuteriai, kurie kalba tik vienas su kitu, gali išlaikyti šią topologiją ir vis tiek gauti suderintus srauto raktus. Tinklo forma ir apsaugos režimas yra nepriklausomi pasirinkimai, o būtent jų painiojimas skatina žmones bandyti keisti statinę paslaptį pakeičiant failą, kol abu tarnybiniai procesai tebeveikia. Rakto failo pakeitimas veikiančios poros aplinkoje nieko nekeičia. Statinio rakto režimas, kurį OpenVPN 2.6 žymi kaip pasenusį, laiko vieną raktą visą tunelio gyvavimo laiką, todėl failas diske ir raktas atmintyje vėl sutampa tik po to, kai abu galai persikrauna. Jei reikalavimas yra automatinis atnaujinimas, apsaugos režimas turi pasikeisti.

Ko statinio rakto režimas negali

Slaptuoju režimu abu partneriai dalijasi iš anksto bendru raktu, kuris tiesiogiai šifruoja ir autentifikuoja tunelį. Nėra rankos paspaudimo, todėl nėra mechanizmo, kuriuo kuri nors pusė galėtų pasiūlyti naują raktų medžiagą, įrodyti tapatybę ar atsistatyti po neatitikimo be operatoriaus įsikišimo. Abi savybės kyla iš valdymo kanalo nebuvimo, o ne iš trūkstamos parinkties, ir jokia konfigūracijos vėliavėlė jo neprideda šiam režimui.

OpenVPN 2.6 vadove aiškiai sakoma, kad raktas išlieka tol, kol nesugeneruojamas naujas. Tai priimtina laboratoriniam ryšiui arba fiksuotai įrenginių porai su dokumentuota keitimo procedūra, ir nepriimtina ten, kur ilgalaikė paslaptis yra tikra rizika. Failo pakeitimas nesukuria naujo rakto veikiančiai porai; jis sukuria du nesutariančius partnerius. Todėl failo pakeitimas prideda pertrauką, bet neprideda keitimo.

Taip pat nėra partnerio tapatybės sąvokos, išskyrus failo turėjimą. Kas turi raktą, tas yra partneris, ir niekas tunelyje neužrašo, kuri pusė yra kuri, todėl atšaukimas yra viskas arba nieko.

Perėjimas prie TLS neprojektuojant ryšio iš naujo

TLS režimas prideda valdymo kanalą ir kartu galimybę derėtis dėl duomenų kanalo raktų. Taškas-taškas diegime viena pusė imasi serverio vaidmens, kita – kliento, tačiau topologija lieka dviejų partnerių ryšiu: kiekviena pusė žino kitos galinį tašką, ir neatsiranda jokio telkinio ar kelių naudotojų paslaugos. Vaidmenys yra rankos paspaudimo detalė, o ne nauja architektūra.

Suteikite kiekvienam kompiuteriui jo paties tapatybę. Kiekvienai pusei reikia sertifikato ir privataus rakto, kitą pusę validuojančio pasitikėjimo inkaro ir partnerio tikrinimo taisyklės, nurodančios, ko tikimasi. Nepakartokite vieno partnerio privataus rakto kitoje pusėje taupydami laiką; tai paverčia dvi tapatybes viena ir panaikina galimybę atšaukti bet kurią pusę atskirai. Registracija yra vieta, kur tai padaryti teisingai, nes vėlesnis taisymas reiškia sertifikatų perleidimą.

Išlaikykite tinklo sutartį nepakeistą, kol keičiasi apsauga. Tie patys tunelio adresai, maršrutai ir leidžiamos paslaugos turėtų galioti prieš ir po, kad migracijos metu įvykęs gedimas būtų apsaugos problema, o ne užmaskuota maršrutizavimo staigmena. Užsirašykite adresus ir maršrutus prieš pakeitimą; palyginti juos vėliau greičiau nei atkurti iš atminties.

Kai kurie diegimai valdymo kanalą taip pat apsaugo savo statiniu raktu, kuris nesikeičia kartu su duomenų kanalu. Tas raktas saugo rankos paspaudimą, o ne naudingąją apkrovą, todėl jo kompromitavimas atskleidžia derybas, o ne srautą. Laikykite jį atskirai nuo duomenų kanalo medžiagos ir suteikite pakeitimo datą, už kurią atsako įvardytas asmuo. Jį pakeisti reiškia iš naujo paleisti abu partnerius suderintame lange, todėl jis nusipelno kalendoriaus įrašo, o ne atminties.

Kas ką atnaujina ir kada

TLS režimu atnaujinimą valdo sukonfigūruotos ribos: laiko intervalas, baitų skaičius arba paketų skaičius. Dokumentuota laiko kontrolė yra tai, kuo remiasi dauguma diegimų, o mažesnė efektyvi reikšmė abiejuose partneriuose gali pradėti pakeitimą, todėl padidinus ją tik vienoje pusėje įvykis nebus sulaikytas. Apimtimi pagrįstos ribos egzistuoja todėl, kad užimtas ryšys gali išnaudoti raktą daug anksčiau nei laikrodis. Nė viena riba nėra būsenos patikra, ir nė viena nepasako, kad atnaujinimas pavyko.

Štai kodėl diagnozuoti pasikartojančias pakartotines derybas iš vieno konfigūracijos failo yra klaidinanti. Perskaitykite nustatymus abiejuose partneriuose, tada pažiūrėkite į žurnalo perėjimą, o ne darykite prielaidą apie gedimą. Švariai pasibaigiantis atnaujinimas atrodo kaip trumpas valdymo kanalo srauto pliūpsnis, o ne kaip atsijungimas.

Laikykite objektus atskirai savo galvoje. Sertifikatas įrodo ilgalaikę tapatybę ir pakeičiamas pagal jūsų kontroliuojamą grafiką. Duomenų kanalo raktas atnaujinamas automatiškai, o atskiras autentifikavimo mainas, jei diegimas jo reikalauja, vadovaujasi paskyros politika ir gali reikalauti savo susitarimų vėlesniems mainams.

Visiškas atnaujinimo išjungimas nustačius intervalą į nulį nėra triukšmingo žurnalo sprendimas. Tai paverčia sveiką gyvavimo ciklo įvykį nuolatiniu raktu, o tai grąžina jus prie savybės, kurios bandėte atsisakyti.

Pakeitimo priėmimas

Kurkite naują konfigūraciją iš įdiegtos laidos palaikomo pavyzdžio, o ne iš seno minimalaus fragmento, kurio algoritmai ir failų keliai paveldėti iš kitur. Suderinkite perjungimą taip, kad abu partneriai keistųsi kartu, ir turėkite patvirtintą atkūrimo kelią, jei viena pusė nepakyla. Sąmoningai išjunkite ryšį, o ne laukite sutrikimo, kad išbandytumėte atsukimą. Išbandytas atsukimas vertingesnis už aprašytą.

Išbandykite tris dalykus: pradinis tapatybės patikrinimas pavyksta, numatytas programos srautas veikia, o kontroliuojamas atnaujinimas įvyksta neprarandant srauto. Tada perskaitykite žurnalo perėjimą dėl to, ką jis iš tikrųjų įrodo: naujas rakto identifikatorius reiškia, kad partneriai užbaigė pakeitimą, o ne kad tunelis vėl prisijungė. Vertinkite tai kaip vieno žingsnio įrodymą ir patikrinkite srauto skaitiklius prieš skelbdami migraciją baigta.

Tai, ką nulinės pertraukos pažadas paslėptų, yra gedimas, kurio dar nematėte. Nepavykęs atnaujinimas, pasibaigiantis sertifikatas ar kelio defektas vis dar gali trikdyti ryšį, ir nė vieno jų nepaneigia švarus bandymas. Savybė, dėl kurios verta projektuoti, yra siauresnė ir naudingesnė: įprastas raktų keitimas nustoja būti rankiniu failo keitimu.

Susiję straipsniai