DH-triem of tls-auth-kaai? Twa OpenVPN-triemmen útinoar hâlde
Ien triem hâldt iepenbiere groepparameters, de oare is dield geheim materiaal. Trije betingsten bepale by hokker direktive elk heart.
Twa triemmen, twa direktiven en de gewoante om beide te neamen nei it ding dat se konfigurearje. Sa bedarret dh.pem op in tls-auth-rigel en mislearret de klient mei in berjocht oer in ûnferwachte kaaiformaet. De beslissing foar jo is net hokker triem sterker is. It is hokker rol de útrulling echt nedich hat, en trije betingsten beslisje dat: hokker kaai-útwikseling jo TLS-stapel únderhannelje sil, oft jo hielendal kontrolkanaalferifikaasje wolle, en oft it materiaal geheim bliuwe moat.
Beäntwurdzje dy op folchoarder en de triemfraach beäntwurdet himsels. Sla se oer en de direktivenammen begjinne útwikselber te lykjen, wat krekt de tastân is dêr't de flater út komt.
Lês it label foar de triemnamme
De earste rigel fan de triem is ynformativer as syn namme, want in namme is in minsklike konvinsje en it label wurdt troch it ark makke. Diffie-Hellman-parameters drage in PEM-label BEGIN DH PARAMETERS. In statyske OpenVPN-kaai is in folslein oare struktuer, mei syn eigen kop en hekslading.
Omneamen konvertearret neat. In parameterbestân mei de namme ta.key is noch altyd parameters, en in statyske kaai mei de namme dh.pem is noch altyd in statyske kaai; de parser lêst de ynhâld en wiist de misferhâlding ôf. Kontrolearje foardat jo it profyl bewurkje:
head -n 1 dh.pem
head -n 1 ta.keyTrije betingsten dy't beslisje hokker triem jo nedich hawwe
De earste betingst is de útwikseling. In Diffie-Hellman-hânskodding yn in einich fjild hat in groep nedich, en de direktive dh is dêr't de tsjinner de parameters dêrfoar neamt. In hânskodding op in elliptyske kromme hat dy triem hielendal net nedich, want de kromme is de parameterset. As jo tsjinner allinne ECDHE-sets únderhannelt, is in DH-triem dea gewicht yn stee fan ekstra krêft.
De twadde betingst is ferifikaasje fan it kontrolkanaal, in aparte funksje mei eigen materiaal. In tls-auth-triem is in dielde statyske kaai dy't beide pearen hâlde, brûkt om pakketten fan it kontrolkanaal te ûndertekenjen, sadat in net-ferifisearre pear de hânskodding sels net foltôgje kin. Hy bestiet oft jo no DH yn in einich fjild brûke of net, en hy hat neat mei de groepparameters te meitsjen.
De tredde betingst is geheimhâlding en fersprieding. DH-parameters meie publisearre wurde sûnder de sesje te ferswakjen, want de geheime wearden wurde per hânskodding makke en ferlitte de pearen nea. In statyske kaai mei net publisearre wurde: it binne deselde bytes oan beide kanten, hy draait net fansels, en elkenien dy't him hat kin jildige ûndertekeningen fan it kontrolkanaal meitsje. Dy twa antwurden wize nei folslein ferskillende behannelingsregels, en dêrom kin de iene triem yn in bewarplak stean en de oare net.
Meitsje it goede materiaal foar elke rol
Brûk it ark dat it formaat makket dat de direktive ferwachtet, yn stee fan tusken harren te konvertearjen. Foar de dielde kaai op OpenVPN 2.6 neamt de typearre foarm fan de generator it doel eksplisyt.
openvpn --genkey tls-auth ta.keyDat kommando makket nij geheim materiaal; it reparearret of ynspektearret gjin besteande kaai, en nochris draaie jout jo in oare kaai dy't de oare pearen net hawwe. Kopiearje de resultearjende triem nei de pearen dy't him nedich hawwe fia in kanaal dat jo foar elke dielde geheim brûke soene, en hâld de rjochtingskonvinsje konsekwint: mei tls-auth brûkt ien kant key-direction 0 en de oare key-direction 1.
DH-parameters, as jo se nedich hawwe, komme út parametergeneraasje en net út in kaai-generator, en har komôf is wichtich ek al is de útfier iepenbier. In groep helle út in ûnbekende boarne wurdt net betrouber trochdat er iepenbier is; hy moat noch altiten in groep wêze dêr't jo pearen it oer iens binne en ien dy't net ferswakke wurdt troch syn grutte of konstruksje.
Wat dh none docht en wat net
dh none is in echte direktive mei in smelle betsjutting: gjin parameterbestân foar in einich fjild sil laden wurde, want de hânskodding brûkt Diffie-Hellman op in elliptyske kromme. It is gjin koarte foarm foar «sla de DH-stap oer» yn 'e sin fan eat ferswakje, en it seit wis net tsjin OpenVPN om in oare triem as ferfanging te akseptearjen.
Twa flaters folgje út it ferkeard lêzen. De earste is oan te nimmen dat dh none de need oan tls-auth fuorthellet, wylst de beide ferskillende dingen behearskje. De twadde is in ferâldere dh-rigel njonken in kromme-mar-konfiguraasje te hâlden en dan te freegjen hokker triem de tsjinner eins brûkt; as de direktive oanwêzich is, wurdt de triem lêzen, en in stikken paad dêr lit it opstarten mislearje om in reden dy't neat te meitsjen hat mei de útwikseling dy't únderhannele wurde sil.
As de ferkearde triem al útrôle is
Stel it bedoelde geheim fan 'e profyleigner werom en lit sertifikaatferifikaasje gewurde wylst jo dat dogge. De flater is in formaatmisferhâlding, gjin fertrouwensflater, en ferifikaasje útskeakelje om de flater foarby te kommen ferfangt in opstartprobleem troch in stil probleem.
Skied dan de twa foarfallen dy't minsken oaninoar fiede. It publisearjen fan in DH-parameterbestân is hast ûnskeeflik, want de parameters wiene fan 'e ûntwerpfaze ôf iepenbier. It bleatstellen fan 'e tls-auth-kaai is in oar barren: de kaai ferifiearret pakketten fan it kontrolkanaal foar elk pear dat him hâldt, dus ferfanging moat oer de hiele útrulling koördinearje wurde yn stee fan op ien host tapast.
In kontrôle fan fiif minuten beslist yn hokker gefal jo binne: lês de earste rigel fan elke triem, befêstigje de direktive dy't dernei ferwiist, en befêstigje dat de fersprieding fan 'e triem oerienkomt mei wat it materiaal easket. Dat is lytser wurk as it opnij meitsjen fan in wurkjende PKI, en dat is wêr't de trije betingsten de hiele tiid op wiisden.