Kāpēc opt-verify pievienošana nelabos OpenVPN šifrēšanas kļūdu
Šī opcija pārbaudīja opciju virkņu konsekvenci un 2.7 versijā ir noņemta. Profils, kas joprojām tiek parsēts, neko nepierāda par šifrēšanas, TLS vai sertifikātu slāni.
Jūs atrodat ieteikumu pievienot opt-verify, pievienojat rindu, un šifrēšanas kļūda paliek tieši tur, kur tā bija. Šis iznākums ir paredzams, jo opcija nekad nav risinājusi šifrēšanas sarunas. Tā bija opciju konsekvences pārbaude, kas 2.6 versijā kļuva novecojusi un 2.7 versijā tika noņemta, un profils, kas ar to joprojām tiek parsēts, ar to neko nav noteicis.
Ir lietderīgi zināt, ko rinda agrāk darīja, pirms secināt, ka tā ir trūkstošā daļa. Vēsture arī izskaidro, kāpēc tagad tā nevar palīdzēt.
Ko opcija agrāk noteica
2.6 rokasgrāmata atzīmē opt-verify kā novecojušu un apraksta agrāko uzvedību: serveris atmet klientus, kuru deklarētās opcijas neatbilst tā paša opcijām, salīdzinot tādas lietas kā ierīces tips un MTU. Šī pārbaude arī ir atkarīga no tā, vai opciju konsekvences pārbaude paliek ieslēgta, tāpēc serverim, kas darbojas ar disable-occ, tā nekad nav bijusi. Pievērsiet uzmanību, no kā veidots salīdzinājums: no teksta, kas apraksta otras puses konfigurāciju. Tas neko nesaka par to, kādu šifrēšanu izmantos datu kanāls.
Šis ir pirmais iemesls, kāpēc karodziņš nevar salabot šifrēšanas kļūdu. Šifrēšanas izvēli nosaka data-ciphers politika un tas, ko atbalsta abas puses, un teksta konsekvences pārbaude ne paplašina šo sarakstu, ne veic sarunas. Otrais iemesls ir tvērums: pārbaude attiecas uz to, vai deklarētās opcijas izskatās savietojamas, nevis uz izveidotā ceļa kvalitāti.
Ko 2.7 dara, kad ierauga rindu
2.7 versijā opcijas vairs nav. Parsētājs joprojām atpazīst nosaukumu, tāpēc vecs profils ielādējas bez sintakses kļūdas, un tas ziņo, ka opcija tika noņemta, nevis klusām to apiet. Atpazīt nosaukumu un noteikt uzvedību ir dažādas lietas, un pagaidām notiek tikai pirmā. Noņemšanas piezīmes norāda iemeslu: tiklīdz par parametriem var risināt sarunas, abas puses var likumīgi turēt atšķirīgas opciju virknes, vienojoties par savienojumu.
Tāpēc profils, kas tiek parsēts, nav pierādījums, ka ir veikta jebkāda uzņemšanas pārbaude. Ja vienīgais signāls ir tas, ka klients ir savienojies, jūs esat uzzinājis, ka sintakse tika pieņemta.
Kur kļūme patiešām mīt
Saglabājiet pirmo konkrēto kļūdu, pirms kaut ko maināt, jo vēlākie ziņojumi parasti ir tās sekas. Datu kanāla sarunu kļūme pieder apstiprinātajai šifrēšanas politikai un iespējām, ko abas puses faktiski reklamē. TLS versijas vai komplekta kļūme pieder vadības kanālam. Sertifikāta noraidījumam vajadzīga identitāte un uzticēšanās ķēde, nevis savietojamības karodziņš.
Nosakiet arī dzinēju abos galos. Darbvirsmas lietojumprogramma var ietvert citu būvējumu nekā komandrindas binārais fails, ar kuru jūs testējāt, un opciju atbalsts starp tiem atšķiras. Apskatiet šī dzinēja dokumentāciju, nevis pieņemiet, ka katra programma, kas importē profilu, uzvedas vienādi.
Aizstājiet nodomu, ne tikai rindu
Ja vecāks pārvaldīts serveris patiešām paļāvās uz konsekvences pārbaudi, pierakstiet, kādu ierobežojumu tas noteica pirms jaunināšanas. Ignorētas opcijas paturēšana jaunākā profilā nevar saglabāt šo politiku, un arī rindu bezatbildīga dzēšana to nevar.
Neatbildiet uz vecu ieteikumu, ka visas šifrēšanas ir atslēgtas, ieslēdzot katru vēsturisko algoritmu.
Pēc apstiprināta labojuma pārbaudiet sarunoto rezultātu jaunā savienojumā un izmēģiniet lietojumprogrammu, kas lietotājam patiešām vajadzīga. Turiet servera versiju un faktisko politiku blakus šim rezultātam, lai nākamā persona redzētu, par ko vienojās, nevis tikai to, kas tika pieņemts.
Mērķis ir atbalstīts ierobežojums un strādājošs autentificēts ceļš, nevis vecs karodziņš, kas joprojām tiek parsēts.