Useimmat OpenVPN-tiivisteistä käydyt väittelyt alkavat väärästä paketista. Lukeminen auth SHA256 muodossa ”hyväksy vain SHA256:ta tarjoavat vertaiset” on ensimmäinen asia, josta pitää opetella pois. Vaihtoehto nimeää tiivisteen tietyille paketeille, ja se, mitkä paketit niitä ovat, riippuu kanavasta ja siitä, onko kanava AEAD. Käy alla olevat neljä kysymystä järjestyksessä läpi; jokainen kaventaa sitä, mitä asetus voi tarkoittaa käyttöönotossasi.

Nimeä kanava, jota asetuksen on määrä suojata

OpenVPN kanavalla on ohjauskanava, joka kuljettaa TLS-kättelyn liikennettä, ja datakanava, joka kuljettaa tunnelin hyötykuorman. auth-tiivisteellä on rooli molemmissa, mutta ei sama rooli, ja profiili tekee eron harvoin näkyväksi. Kirjoita muistiin, kumpaa kahdesta yrität rajoittaa, ennen kuin kosket asetustiedostoon.

Alla oleva taulukko on lyhyt versio siitä, miten sama vaihtoehto asettuu kussakin yhteydessä.

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

Varmista, onko datakanava AEAD, ennen kuin luotat siihen

Jos neuvoteltu datasalaus on AES-GCM tai CHACHA20-POLY1305, datakanava todentaa itse itsensä eikä erillinen tiiviste tee sitä työtä, jonka ehkä kuvittelet. Molemmat ovat AEAD-rakenteita, joten eheys syntyy samasta toiminnosta, joka salaa hyötykuorman. Se ei ole heikennys, mutta se tarkoittaa, että käytäntö, joka perustellaan muodossa ”jokainen datapaketti on HMAC-SHA256”, on tuossa tunnelissa asiallisesti väärä. Vahvista neuvoteltu arvo palvelimen lokista tai asiakkaan tilatulosteesta ennen kuin kirjoitat käytännön uudelleen.

Tarkastele salakirjoitusta, joka todella neuvoteltiin, älä profiilin luetteloa, koska neuvottelu voi päätyä joukon toiseen jäseneen. data-ciphers AES-256-GCM:AES-128-GCM on neuvotteluluettelo, ja molemmat merkinnät ovat AEAD, joten kumpikaan niistä ei kuluta auth-tiivistettä hyötykuorman suojaukseen.

Käsittele ohjauskanavan suojausta omana päätöksenään

tls-auth lisää HMAC:n ohjauskanavan paketteihin ja ottaa tiivisteensä auth-asetuksesta, minkä vuoksi AEAD-tunnelissa voi silti olla merkityksellinen tiiviste asetettuna. tls-crypt on erilainen järjestely, jolla on oma kiinteä suojauksensa, joten älä oleta, että se perii kaikki tls-authin ominaisuudet. Lue valitsemasi mekanismin dokumentaatio sen sijaan, että siirtäisit oletuksia niiden välillä.

Kahden vertaisen on myös sovittava järjestelystä ja avaimen suunnasta. Tiiviste, joka täsmää mutta avaintiedosto, jota käytetään väärään suuntaan, tuottaa kättelyn, joka epäonnistuu syistä, joita tiivisteasetus ei pysty selittämään.

Pidä auth erillään salauksen neuvottelusta ja varmenteista

Kolme asetusta sekoitetaan jatkuvasti: auth-tiiviste, datasalausluettelo ja varmenteen allekirjoitusalgoritmi. Ensimmäisen muuttaminen ei myönnä varmennetta uudelleen, ei valitse sen allekirjoitustiivistettä eikä luo käyttäjätunnus-salasanamenetelmää. Protokolla-asetusten määritelmät OpenVPN 2.6 -lähteissä kuvaavat kunkin omassa osiossaan, mikä on hyödyllinen muistutus siitä, että ne ovat itsenäisiä säätimiä.

Kun vertainen kieltäytyy yhdistämästä tiivisteen muutoksen jälkeen, syy on yleensä kahden muun asetuksen välisessä ristiriidassa. Lue molemmat päät ennen kuin muutat kumpaakaan.

Kirjoita käytäntö muistiin ja vertaa sitä käynnissä oleviin asetuksiin

Laivastotason lausuman tulisi nimetä sallitut datakanavan tilat ja valittu ohjauskanavan suojaus nimenomaisesti samassa lauseessa. Tuo lause on testattavissa; ”käytämme SHA256:ta” ei ole. Vertaa sitä sitten tehokkaisiin palvelin- ja asiakasprofiileihin sen sijaan, että vertaisit mallipohjaan tietovarastossa.

Päätä kirjaamalla, mitä kukin tunneli todella neuvotteli ja mikä mekanismi todensi sen paketit. Profiilissa näkyvä auth-rivi on todiste vain asetusaikeesta, ja aie on tarkistuksen halvin osa.

Aiheeseen liittyvät artikkelit