Jūs pievienojat client-connect skriptu, kas noraida jebkuru savienojumu, kurā common_name atšķiras no username, un tas izskatās kā sertifikāta un konta saistīšana. Serverī, kurā darbojas username-as-common-name, šis salīdzinājums jau ir zaudējis jēgu līdz skripta palaišanai. Abas vērtības ir viena un tā pati virkne, tāpēc tests iztur arī sertifikātam, kas izsniegts pavisam citam cilvēkam.

Pārbaude nav nepareiza tāpēc, ka skripts ir slikti uzrakstīts. Tā ir nepareiza tāpēc, ka tā lasītā vērtība tajā pašā savienojumā tika aizstāta agrāk.

Ko salīdzinājums it kā pierāda

Sertifikāta autentifikācija un paroles autentifikācija ir atsevišķi pierādījumi, un serveris var pieprasīt abus, nepieprasot, lai tie piederētu vienai personai. Plaisa ir reāla: derīgs ierīces sertifikāts kopā ar jebkuru derīgu kontu ir cits apgalvojums nekā tas pats sertifikāts kopā ar vienu nosauktu kontu. Skripts, kas salīdzina common_name ar username, lasās kā trūkstošais posms starp abiem. Tas tā arī būtu, ja common_name joprojām nozīmētu to, ko teica sertifikāts.

Vai tā ir, ir atkarīgs no vienas servera opcijas, un šī opcija parasti tiek ieslēgta nesaistīta iemesla dēļ, piemēram, lai katram lietotājam paredzētos konfigurācijas failus būtu vieglāk nosaukt.

Ko username-as-common-name dara ar vārdu

Kad username-as-common-name ir iespējots, OpenVPN pēc lietotājvārda un paroles pārbaudes aizstāj sertifikāta kopējo vārdu ar autentificēto lietotājvārdu. Pārbaudes laikā darbojošais pārbaudes āķis joprojām saņem sertifikāta kopējo vārdu, jo aizstāšana vēl nav notikusi. Viss pēc tam, tostarp client-connect, redz lietotājvārdu. Tāpēc vēlākais atzvanīšanas izsaukums saņem vienu identitāti divreiz un nevar to salīdzināt ar uzrādīto sertifikātu.

StageWhat common_name holds
Username and password verification hookThe certificate common name, for example bob-device
After the replacementThe authenticated account, alice
client-connect callbackThe account again, alice

Izpētiet vienu ilustratīvu savienojumu: sertifikāts, kas izsniegts bob-device, veiksmīga kataloga pieteikšanās kā alice, un opcija iespējota. Pārbaudes posms joprojām var redzēt divas dažādas virknes. Savienojuma posms redz alice un alice.

Šis piemērs parāda, kāpēc salīdzinājums ir tukšs. Tas neparāda, ka savienojums citādi tiktu pieņemts, jo sertifikāta validācija un paroles pārbaude joprojām darbojas patstāvīgi.

Novietojiet saistību tur, kur abas identitātes vēl pastāv

Noteikums ir jāīsteno posmā, kas vienlaikus redz sertifikāta identitāti un kontu, kas praksē nozīmē lietotājvārda un paroles pārbaudes āķi vai tur ielādētu spraudni. Atbalstīts spraudnis, kas jau veic paroles pārbaudi, parasti ir īstā vieta, kur pievienot pārošanas noteikumu, jo tā aizstāšana ar vārdu salīdzinājumu pilnībā likvidētu paroles pārbaudi.

Definējiet kartējumu pirms koda rakstīšanas, jo vienlīdzība reti ir īstā politika. Sertifikāts bieži identificē ierīci, bet pieteikšanās – cilvēku, un viena ierīce var likumīgi apkalpot vairākus cilvēkus. Glabājiet attiecības tādā formā, kuras izsniegšanu jūs kontrolējat, un izlemiet, kas notiek, pārdēvējot, atkārtoti izsniedzot un ar domēna kvalificētiem vārdiem. Mazo burtu lietošana vai domēna prefiksa noņemšana, nesaprotot katalogu, var apvienot divus kontus, kuriem bija jāpaliek atsevišķiem.

Atcerieties, ka opcija maina arī to, kura konfigurācija katram klientam tiek piemērota, jo client-config-dir ir piesaistīts kopējam vārdam.

Pārbaudiet pārošanu ar diviem derīgiem pieteikšanās datiem

Sāciet ar pāri, ko atļauj jūsu politika, un apstipriniet, ka tas savienojas. Pēc tam uzrādiet to pašu derīgo sertifikātu ar citu, bet citādi derīgu kontu: šim mēģinājumam jāizgāžas, un tam jāizgāžas pārošanas noteikuma dēļ, nevis nepareizi ievadītas paroles dēļ. Nepareiza parole pierāda, ka paroles pārbaude darbojas, un neko nepasaka par noteikumu starp sertifikātu un kontu.

Pārbaudiet arī ceļus bez sertifikāta un ar nederīgu sertifikātu un apstipriniet, kuru identitāti serveris izmanto katram klientam paredzētajiem iestatījumiem. Ja vienīgais veids, kā panākt salīdzinājuma darbību, ir username-as-common-name izslēgšana, vispirms novērtējiet šīs izmaiņas izmaksas, jo tā visu klientu konfigurācijas meklēšanu atgriež pie sertifikāta vārda.

Saistītie raksti