Cryptology Academy · Lektion

OpenVPN: TLS-baseret VPN-arkitektur

Studér, hvordan OpenVPN bruger TLS til kontrolkanalen og konfigurerbare cipher-algoritmer til datakanalen.

Lektion 3 af 413 trin

OpenVPN: TLS-baseret VPN-arkitektur er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

OpenVPN-arkitektur med to kanaler

OpenVPN bruger to separate kanaler: kontrolkanalen og datakanalen. Kontrolkanalen håndterer autentificering, sessionsetablering og udveksling af konfiguration ved hjælp af TLS. Datakanalen transporterer den faktiske VPN-trafik, som er krypteret med en symmetrisk krypteringsalgoritme, der forhandles via kontrolkanalen. Denne adskillelse gør det muligt for OpenVPN at udnytte hele TLS-økosystemet til nøglehåndtering.

Kontrolkanal: TLS til nøgleforhandling

OpenVPNs kontrolkanal kører en komplet TLS-session. Begge sider autentificerer sig ved hjælp af X.509-certifikater, der er underskrevet af en fælles CA. TLS leverer nøgleudveksling, certifikatvalidering og forhandling af parametre for datakanalens krypteringsalgoritme. Fordi TLS understøtter ECDHE, giver kontrolkanalen perfekt fremadrettet hemmeligholdelse: Datakanalens nøgler kan ikke gendannes fra en optaget session, selv ikke med CA-nøglen.

Datakanalkryptering

Datakanalkryptering forhandles via TLS-kontrolkanalen. OpenVPN 2.4 og nyere bruger som standard AES-256-GCM, en AEAD-krypteringsalgoritme, der giver både fortrolighed og integritet i én operation. Tidligere versioner brugte AES-256-CBC sammen med HMAC-SHA256 separat. AEAD-tilstande foretrækkes, fordi de eliminerer behovet for separat MAC-verifikation og modstår polstringsorakelangreb.

tls-crypt: Indpakning med en forhåndsdelt nøgle

Indstillingen tls-crypt indpakker hele TLS-sessionen, herunder ClientHello-meddelelsen, i en symmetrisk, HMAC-autentificeret indpakning ved hjælp af en forhåndsdelt nøgle. Det betyder, at uautentificerede klienter ikke engang kan begynde et TLS-håndtryk; deres første pakker kasseres lydløst. Det beskytter OpenVPN-serveren mod TLS-baserede DDoS-forstærkningsangreb og skjuler, at der kører en VPN-server.

tls-auth kontra tls-crypt

Den ældre indstilling tls-auth føjer et HMAC-tag til TLS-kontrolkanalens pakker, men krypterer dem ikke. Det forhindrer indsættelse af pakker, men afslører stadig TLS-håndtrykket for iagttagere. tls-crypt krypterer og autentificerer indpakningen omkring kontrolkanalen og giver dermed både DoS-beskyttelse og modstandsdygtighed over for trafikanalyse. tls-crypt er den anbefalede moderne indstilling; tls-auth er udfaset til fordel for tls-crypt-v2.

Certifikatbaseret klientautentificering

OpenVPN autentificerer klienter ved hjælp af X.509-certifikater, der er underskrevet af VPN'ets certifikatmyndighed. Hver klient modtager et unikt certifikat og en privat nøgle. Serveren kontrollerer certifikatkæden og kan valgfrit kontrollere en certifikattilbagekaldelsesliste (CRL) for at afvise tilbagekaldte certifikater. Når et certifikat tilbagekaldes, fjernes klientens adgang med det samme, i modsætning til PSK-baserede systemer, hvor en ændring af en nøgle påvirker alle klienter.

UDP kontra TCP-transport

OpenVPN kan køre over UDP (standard og anbefalet) eller TCP. UDP undgår problemet med TCP-over-TCP, hvor pakketab udløser dobbelt genudsendelse både på TCP-laget og på VPN-applikationslaget, hvilket forringer ydeevnen betydeligt. Nogle netværk blokerer dog UDP. Hvis OpenVPN køres på TCP-port 443, kan det omgå firewalls, der kun tillader HTTPS-trafik, men det koster ydeevne ved pakketab.

tun- kontra tap-grænsefladetilstande

OpenVPN fungerer i tun-tilstand (rutning) eller tap-tilstand (brokobling). tun-tilstand opretter en punkt-til-punkt-IP-netværksgrænseflade, der rutter IP-pakker mellem klienten og VPN-netværket. tap-tilstand opretter en Ethernet-brogrænseflade, der videresender Ethernet-rammer, herunder udsendelser og ikke-IP-protokoller. tun-tilstand er mere effektiv og egner sig til de fleste VPN-anvendelser; tap-tilstand er nødvendig til brokobling af netværkssegmenter eller ikke-IP-protokoller.

Push-direktiver til klientkonfiguration

OpenVPN-servere kan automatisk sende konfigurationsdirektiver til forbindende klienter. Almindelige push-direktiver omfatter push "route 10.0.0.0 255.0.0.0" (tilføjer en rute på klienten), push "dhcp-option DNS 10.0.0.1" (angiver DNS-serveren) og push "redirect-gateway def1" (ruter al klienttrafik gennem VPN'et). Det centraliserer styringen af klientkonfigurationen uden at ændre individuelle konfigurationsfiler hos klienterne.

Perfekt fremadrettet hemmeligholdelse i OpenVPN

OpenVPN opnår perfekt fremadrettet hemmeligholdelse gennem TLS ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) i kontrolkanalen. Et nyt efemer nøglepar bruges til hver TLS-session, så sessionsnøglen ikke kan udledes af serverens langsigtede private certifikatnøgle. Hvis krypteret trafik optages i dag, og servercertifikatet senere anskaffes, er det stadig ikke muligt at dekryptere tidligere sessioner.

Udfasning af svage krypteringsalgoritmer i OpenVPN 2.5+

OpenVPN 2.5 udfasede Blowfish-chifferet (BF-CBC), som historisk var standard. BF-CBC bruger en blokstørrelse på 64 bit, der er sårbar over for SWEET32-fødselsdagsangreb under lange sessioner. Moderne OpenVPN bruger som standard AES-256-GCM. OpenVPN 2.5 udfasede også ikke-AEAD-krypteringsalgoritmer i datakanalen og skærpede kravene til TLS-minimumsversionen, så understøttelsen af TLS 1.0 og 1.1 blev fjernet.

OpenVPN-kontrolkanal kontra datakanal

Hvad er den primære funktion af OpenVPNs kontrolkanal?

Opsummering af OpenVPN-arkitekturen

Opsummering af OpenVPN: kontrolkanalen bruger TLS til autentificering og forhandling af krypteringsalgoritme, datakanalen bruger den forhandlede AEAD-krypteringsalgoritme (som standard AES-256-GCM), tls-crypt indpakker TLS for at forhindre uautentificerede håndtryk, ECDHE giver fremadrettet hemmeligholdelse, certifikatbaseret klientautentificering med tilbagekaldelse via CRL, UDP foretrækkes frem for TCP af hensyn til ydeevnen, og tun-tilstand foretrækkes til anvendelser med IP-rutning.

Gratis at komme i gang

Lær Cryptology Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “OpenVPN: TLS-baseret VPN-arkitektur” gratis?

Ja — hele teksten til “OpenVPN: TLS-baseret VPN-arkitektur” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “OpenVPN: TLS-baseret VPN-arkitektur”?

Studér, hvordan OpenVPN bruger TLS til kontrolkanalen og konfigurerbare cipher-algoritmer til datakanalen. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “OpenVPN: TLS-baseret VPN-arkitektur”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?

Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. IPsec: IKEv2-, ESP- og AH-protokoller
  2. WireGuard: ChaCha20- og Curve25519-VPN
  3. OpenVPN: TLS-baseret VPN-arkitektur
  4. Sammenligning af VPN-protokoller: sikkerhed og ydeevne
← Tilbage til Cryptology Academy