Mnogi timovi imaju web prijavu koja radi i VPN koji odbija svaku lozinku iz iste tabele. Web aplikacija poredi heš koji je sama izračunala, dok tunel traži od klijenta da dokaže posjedovanje tajne na način koji server mora moći provjeriti. To su različiti zahtjevi na pohranjeni materijal. Upravo u jazu između njih većina ovakvih projekata stane.

Pročitajte metodu, pa šemu

Zapišite koji dokaz odabrana metoda zahtijeva prije nego pogledate bilo koju šemu. Metoda izazov-odgovor treba materijal iz kojeg server može izračunati očekivani odgovor, što u praksi znači lozinku ili kompatibilan izvedeni oblik. Metoda koja nosi lozinku unutar zaštićenog tunela treba samu lozinku kod provjeravaoca. Čitajte dokumentaciju metode zbog zahtjeva provjeravaoca, a ne zbog konfiguracije klijenta, jer su zahtjevi klijenta obično lakši dio.

Nasoljeni heš koji proizvede moderan web okvir ne daje ni jedno ni drugo. Provjerava jedno konkretno poređenje i ne može se vratiti u tajnu iz koje je nastao.

Izazov-odgovor ne može koristiti nasoljeni heš

MSCHAPv2 je razmjena izazov-odgovor, pa server nikada ne primi lozinku i ne može uporediti pohranjeni niz. Mora izvesti očekivani odgovor iz materijala koji već ima, i zato su kompatibilni pohranjeni oblici tako uski. Vrijednost bcrypt ili Argon2 sa solju po korisniku jednosmjerna je na način koji razmjenu potpuno isključuje. Tabela ispod polazi od oblika pohrane, a ne od naziva metode, jer oblik pohrane odlučuje o odgovoru.

What the store holdsWhat that material can verifyWhat has to change
A bcrypt or Argon2 value with a per-user saltnothing challenge-response can use, and not the password eitherre-enrol the users, or place a verifying service in front
An unsalted NT-hashMSCHAPv2, and inner PAP through a TLS tunnelnothing, as long as that store is the verifier
A client certificate with a revocation listEAP-TLS onlymove enrolment and revocation to the PKI owner

Dokumentacija SQL dodatka za strongSwan definiše vlastitu šemu za konfiguraciju i akreditive, a projekat taj dodatak još označava eksperimentalnim. Ništa se u njoj ne prilagođava tabeli korisnika neke aplikacije niti pogađa koja je shema heširanja proizvela pohranjenu vrijednost. Realne opcije su zato migracija na spremište koje mrežni prolaz može koristiti ili usluga autentifikacije ispred postojećeg spremišta koja može obaviti razmjenu. Sve drugo je konektor sa skrivenom pretpostavkom u sebi.

RADIUS premješta posao, ne zahtjev

Delegiranje EAP-a RADIUS serveru mijenja mjesto provjere i obično poboljšava revizorski trag. Ne vraća lozinku iz jednosmjernog heša, pa usluga autentifikacije i dalje treba materijal kompatibilan s metodom koju završava. Timovi to otkriju nakon što izgrade RADIUS put i na drugoj strani nalete na isti zid.

Tamo gdje RADIUS server može čitati direktorij s kompatibilnim akreditivima, dizajn radi, a VPN prolaz ostaje jednostavan. Tamo gdje ne može, iskren odgovor je promjena upisa, a ne još jedan konektor. Provisioniranje i opoziv pripadaju onome ko posjeduje identitet, pa je kopirana tabela bez podržanog procesa sinhronizacije drugi životni ciklus akreditiva, a ne jedinstvena prijava. Ona se prvi put razilazi kada neko resetuje lozinku samo na jednom mjestu, a razilaženje je tiho sve dok se račun koji postoji u oba sistema ne počne ponašati različito u svakom.

Ograničite račun koji čita direktorij na to čitanje i držite ga odvojenim od računa koji prolaz koristi za vlastitu konfiguraciju. Zajednički administrativni račun pretvara dizajn samo za čitanje u mnogo širi radijus štete.

Gdje račun treba živjeti

Kada je pitanje materijala riješeno, ostaju dvije arhitekture. Prolaz može imati malo spremište akreditiva koje samo on čita, ili može delegirati usluzi autentifikacije koja stoji ispred korporativnog direktorija.

Prva je lakša za promišljanje i gora za korisnika, koji na kraju ima drugu lozinku za održavanje. Druga čuva jedan identitet i dodaje zavisnost od usluge koja sada mora biti dostupna prije nego se iko može povezati. Nijedna nije pogrešna, ali izbor treba zapisati uz konfiguraciju prolaza, jer će sljedeći inženjer inače pretpostaviti da je odabrana druga. Šta god odabrali, dvije komande ispod pokazuju trenutno stanje prije nego ga promijenite.

mysql -N -e "SELECT id, username FROM vpn_users WHERE active = 1 LIMIT 5" vpn
swanctl --list-conns

Autentifikacija računa također ne rješava autorizaciju. Članstvo u grupi, stanje uređaja i mrežna dozvola i dalje trebaju eksplicitno mapiranje nakon što korisnik dokaže traženi identitet. Veza koja se besprijekorno autentifikuje i ništa ne autorizuje je rezultat politike, a ne greška u metodi.

Povezani članci