Din VPN-profil innehåller en privat nyckel, inte bara inställningar
Serveradresser står bredvid privata nycklar, inbäddade hemligheter och tokens. Innan du klistrar in en profil i en supporttråd bör du veta vilka rader som är identiteten.
Alla som klistrar in en VPN-profil i en forumtråd utgår från samma övertygelse. Filen innehåller bara en serveradress och några inställningar, så det känns som att dela ett telefonnummer. Sedan läser någon den och hittar en okrypterad privat nyckel på fjärde raden.
Profilen är inte dokumentation om tunneln. Den är tunnelns identitet, utskriven.
Objekten i filen har inte samma hemlighetsnivå
Ett offentligt CA-certifikat är avsett att resa. En klients privata nyckel är det inte. När båda visas i samma fil får den harmlösa hela bilagan att se säker ut. Det är fällan.
OpenVPN gör detta värre av design. Det tillåter certifikat, nycklar och autentiseringsmaterial att bäddas in direkt. Det är bekvämt för utrullning och katastrofalt för delning. Filen som börjar med ett läsbart certifikatblock fortsätter in i den privata halvan.
WireGuard är mer direkt. Gränssnittsavsnittet bär en privat nyckel, och varje peer kan dessutom bära en fördelad nyckel. Det finns ingen oklarhet om vilka rader som spelar roll. Nästan varje rad gör det.
En skärmbild är samma läcka i ett annat format
Att koda en konfiguration som en QR-kod gör den inte till en förhandsvisning. Koden bär samma byte, och vilken telefonkamera som helst i rummet kan avkoda den. Samma sak gäller en skärmbild av ett klients konfigurationsfönster, där nyckeln är läsbar i hörnet.
Autentiseringsfiler och refererade nyckelsökvägar hör till samma granskning. En profil som pekar på en extern fil är inte automatiskt säkrare, eftersom sökvägen kan leda någonstans där en läsare kan nå. En token i en autentiseringsfil är lika användbar som ett lösenord, och det ser sällan ut som ett.
Skicka feltexten, inte nyckeln
Diagnosen behöver feltexten, klientversionen och namnen på de inställningar som prövades. Den behöver inte nyckeln. Skriv frågan med dessa tre saker och ersätt varje hemlighet och varje onödig nätverksidentifierare innan filen lämnar din dator.
Avsnittet i OpenVPN-handboken om inbäddade filer är en användbar karta över var dessa objekt finns. Det påminner också om hur många en enda profil kan innehålla.
# which lines in this profile look like secrets?
grep -n -E 'PrivateKey|PresharedKey|password|auth-user-pass|BEGIN .*PRIVATE KEY' wg0.conf
# OpenVPN: show the structure without printing key material
awk '/BEGIN/{print NR": "$0} /^[a-z-]+ /{print NR": "$1}' office.ovpn
Läs sedan den slutliga bilagan i stället för att lita på ditt minne av redigeringen. Nycklar gömmer sig i senare block, i en oredigerad kommentar och på en rad som du bestämde var strukturell.
Efter exponering är rotation den enda reparationen
Att radera inlägget återkallar ingenting. Den som fick filen har fortfarande en fungerande inloggningsuppgift, därför måste utfärdaren återkalla eller ersätta den genom tjänstens egen process. Att ta bort en lokal kopia ändrar ingenting i andra ändan.
Förvara fungerande profiler med en skyddad metod, och ta bort inaktuella importerade poster med avsikt i stället för att lämna tre kopior i en nedladdningsmapp. En profil du inte längre använder är fortfarande en inloggningsuppgift tills den återkallas.
Vanan som är värd att bygga är liten. Innan någon profil lämnar datorn, fråga vad annat som finns i den förutom adressen, och svara genom att läsa filen i stället för att minnas den.