duplicate-cn dod divām ierīcēm vienu identitāti, nevis divas
duplicate-cn atļauj otru vienlaicīgu sesiju vienā kopīgā nosaukumā. Tas nekad neizveido otru ierīces identitāti, otru adresi vai atsevišķu atsaukšanu.
Nokopējiet profilu uz planšetdatoru, pieslēdzieties, un klēpjdators atkrīt. Pievienojiet duplicate-cn, abi paliek pieslēgti, un problēma šķiet atrisināta — līdz abas ierīces sāk strīdēties par vienu un to pašu tuneļa adresi vai pazaudēts planšetdators izslēdz visu kontu. Šī opcija maina vienu lietu un tikai vienu: vai serveris atļauj otru sesiju tādā nosaukumā, kādu tas jau ir redzējis. Viss, ko cilvēki cer no tās salabot — no ierīču neatkarības līdz adresācijai katrai ierīcei un selektīvai atsaukšanai — joprojām tiek darīts ar identitātes palīdzību, un identitāte šeit ir sertifikāts.
Mīts: otra sesija ir otra identitāte
Intuīcija saka, ka diviem savienojumiem jābūt diviem klientiem, un diviem klientiem jābūt divām ierīcēm ar savām tiesībām. Serveris to tā nemodelē. Tas redz kopīgu nosaukumu, un ar iespējotu duplicate-cn pieņem vairāk nekā vienu aktīvu sesiju ar šo nosaukumu, un katra iegūst savu sesijas stāvokli dēmonā.
Nekas šajā pieņemšanā neaizskar sertifikāta pārbaudi. Tas pats sertifikāts joprojām ir akreditācijas dati, tā pati atslēga joprojām ir privātā atslēga, un jebkura politika, kas balstīta uz sertifikāta subjektu, joprojām divreiz atrisinās uz to pašu vērtību. Otra sesija ir otrs ligzda, nevis otra identitāte.
Šī atšķirība ir neredzama, kamēr viss darbojas. Tā kļūst ļoti redzama tajā brīdī, kad jums ir jāatšķir abas ierīces, un tas parasti ir tā diena, kad viena no tām tiek pazaudēta.
Kas patiešām mainās, kad divas sesijas dala nosaukumu
Bez opcijas jauns savienojums ar kopīgu nosaukumu, kas jau ir pieslēgts, izspiež iepriekšējo sesiju. Tāpēc klēpjdators atkrīt, kad pieslēdzas planšetdators, un tā ir apzināta aizsardzība pret neskaidrību, nevis kļūda. Ar opciju abas sesijas paliek dzīvas, un serveris tās izseko atsevišķi pēc sesijas, nevis pēc ierīces.
Katra sesija joprojām iegūst savu ārējo savienojumu un savas saskaņotās atslēgas, tāpēc vienlaicīgā caurlaidspēja tiešām ir vienlaicīga. Kopīgs ir viss, kas atvasināts no akreditācijas datiem: politikas meklējumi, klientam raksturīgā konfigurācija, identitāte žurnālos un atsaukšana. Sesijas stāvoklis pieder savienojumam un mirst kopā ar to, kamēr akreditācijas datu līmeņa fakti saglabājas abiem. Tāpēc statusa izvade var uzskaitīt vienu un to pašu nosaukumu divreiz, kamēr skaitītāji paliek atsevišķi.
Pirms projektējat uz tā, pārbaudiet, ko jūsu būvējums patiešām dara, jo opcijas ietekmi nosaka pati opcija, nevis teikas:
grep -n 'duplicate-cn\|client-config-dir\|username-as-common-name' /etc/openvpn/server.conf
Statiskā adrese, kuru domājāt, ka esat piešķīris
Konfigurācija katram klientam tiek meklēta pēc nosaukuma, un tur ir slazds. Fails client-config-dir, nosaukts kopīgā nosaukuma vārdā attiecas uz katru ierīci, kas izmanto šo nosaukumu, tāpēc ifconfig-push tajā abām ierīcēm piešķir vienu un to pašu tuneļa adresi. Otrā sesija vai nu neizveidojas, vai saduras tā, ka tas izskatās pēc maršrutēšanas kļūdas.
Dinamiskais baseins uzvedas labāk nejauši, jo katrai sesijai adrese no baseina tiek piešķirta neatkarīgi. Tas joprojām nedod stabilu adresi katrai ierīcei, un noteikti nedod ar šo adresi saistītu politiku katrai ierīcei.
Ja izvietojums izmanto username-as-common-name, meklēšanas atslēga kļūst autentificētais lietotājvārds, nevis sertifikāta subjekts, un tā pati sadursme seko ikvienam, kas piesakās divreiz. Nosaukumam, kas vada konfigurāciju, jābūt unikālam katrai ierīcei, lai konfigurācijai katrai ierīcei būtu jēga.
Ko kopīga identitāte nevar izdarīt noņemšanas laikā
Atsaukšana darbojas ar sertifikātu, nevis ar parādīto nosaukumu un nevis ar sesiju. Atsauciet šo sertifikātu, un katra ierīce, kurai ir kopija, vienlaikus zaudē piekļuvi, tostarp tā, kas atrodas birojā un kuru neviens negrib traucēt. Saglabājiet to, un pazaudētā ierīce turpina darboties, jo protokolā nekas to neatšķir no apstiprinātās kopijas.
Žurnāli manto to pašu neskaidrību. Statusa izvade rāda kopīgu nosaukumu un reālu adresi, un abi var piederēt jebkurai no abām ierīcēm. Incidenta izpēte, kurai jāzina, kura mašīna ko darīja, nevar atbildēt uz šo jautājumu no paša VPN ierakstiem, lai cik daudz detaļu sniegtu žurnāla līmenis.
Tam nav kriptogrāfiskas apiešanas ceļa. Divas ierīces, kas uzrāda vienu un to pašu sertifikātu, serverim ir viens un tas pats dalībnieks divreiz, un jebkura shēma, kas apgalvo pretējo, ir nosaukumu konvencija, nevis kontrole.
Kad kopīgošana ir pareiza, un kā to ierobežot
Kopīgošanai ir likumīgi lietojumi: laboratorijas konts, ko izmanto vairākas testa mašīnas, vai mājsaimniecība, kur ierīces pārvalda kopā un atsaukšanas detalizācijai nav nozīmes. Tādos gadījumos ieslēdziet opciju apzināti, turiet kopīgos akreditācijas datus ārpus politikas katrai ierīcei un dodiet baseinam vietu, lai sesijas nevarētu sadurties uz adreses.
Visam, kam vajadzīgas atsevišķas adreses, atsevišķi žurnāli vai atsevišķa noņemšana, izsniedziet atsevišķus sertifikātus parastajā reģistrācijas ceļā. Tas dod katrai lejupējai sistēmai atsevišķu objektu, uz ko balstīties, un opcija pārstāj būt svarīga, jo nosaukumi jau ir unikāli.
Lai kuru ceļu izvēlētos, pārbaudiet pārvaldības modeli, nevis pieteikšanos. Pievienojiet abas ierīces, apstipriniet, ka tām ir atšķirīgas adreses, tad simulējiet zaudējumu un pārbaudiet, vai varat noņemt tieši vienu no tām. openvpn(8) rokasgrāmata nosaka opcijas tvērumu; jūsu noņemšanas procedūra nosaka, vai kopīgošana patiešām ir pieņemama.