Cryptology Academy · Lekcja

OpenVPN: architektura VPN oparta na TLS

Proszę poznać sposób, w jaki OpenVPN wykorzystuje TLS dla kanału sterowania oraz konfigurowalne szyfry dla kanału danych.

Lekcja 3 z 413 kroki

OpenVPN: architektura VPN oparta na TLS to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Architektura OpenVPN z dwoma kanałami

OpenVPN korzysta z dwóch oddzielnych kanałów: kanału sterującego i kanału danych. Kanał sterujący obsługuje uwierzytelnianie, ustanawianie sesji oraz wymianę konfiguracji za pomocą TLS. Kanał danych przenosi właściwy ruch VPN szyfrowany szyfrem symetrycznym wynegocjowanym za pośrednictwem kanału sterującego. Taki podział pozwala OpenVPN korzystać z pełnego ekosystemu TLS do zarządzania kluczami.

Kanał sterujący: TLS do negocjacji kluczy

Kanał sterujący OpenVPN uruchamia pełną sesję TLS. Obie strony uwierzytelniają się za pomocą certyfikatów X.509 podpisanych przez wspólny urząd certyfikacji (CA). TLS zapewnia wymianę kluczy, weryfikację certyfikatów oraz negocjację parametrów szyfru kanału danych. Ponieważ TLS obsługuje ECDHE, kanał sterujący zapewnia perfect forward secrecy: kluczy kanału danych nie można odzyskać z przechwyconej sesji nawet przy znajomości klucza CA.

Szyfrowanie kanału danych

Szyfrowanie kanału danych jest negocjowane za pośrednictwem kanału sterującego TLS. Wersja OpenVPN 2.4 i nowsze domyślnie używają AES-256-GCM — szyfru AEAD, który zapewnia poufność i integralność w ramach jednej operacji. Wcześniejsze wersje używały AES-256-CBC oraz oddzielnie HMAC-SHA256. Tryby AEAD są preferowane, ponieważ eliminują potrzebę osobnej weryfikacji MAC i są odporne na ataki typu padding oracle.

tls-crypt: opakowanie za pomocą klucza wstępnie współdzielonego

Opcja tls-crypt opakowuje całą sesję TLS, w tym client hello, w symetryczny uwierzytelniony za pomocą HMAC kontener wykorzystujący klucz wstępnie współdzielony. Oznacza to, że nieuwierzytelnieni klienci nie mogą nawet rozpocząć uzgadniania TLS — ich początkowe pakiety są po cichu odrzucane. Chroni to serwer OpenVPN przed atakami DDoS z amplifikacją opartymi na TLS oraz ukrywa fakt działania serwera VPN.

tls-auth a tls-crypt

Starsza opcja tls-auth dodaje znacznik HMAC do pakietów kanału sterującego TLS, ale ich nie szyfruje. Zapobiega to wstrzykiwaniu pakietów, ale nadal ujawnia obserwatorom uzgadnianie TLS. tls-crypt szyfruje i uwierzytelnia opakowanie kanału sterującego, zapewniając zarówno ochronę przed DoS, jak i odporność na analizę ruchu. tls-crypt to zalecana współcześnie opcja; tls-auth jest wycofywana na rzecz tls-crypt-v2.

Uwierzytelnianie klientów na podstawie certyfikatów

OpenVPN uwierzytelnia klientów za pomocą certyfikatów X.509 podpisanych przez urząd certyfikacji VPN. Każdy klient otrzymuje unikalny certyfikat i klucz prywatny. Serwer weryfikuje łańcuch certyfikatów i opcjonalnie sprawdza listę unieważnionych certyfikatów (CRL), aby odrzucać unieważnione certyfikaty. Unieważnienie certyfikatu natychmiast odbiera klientowi dostęp, inaczej niż w systemach opartych na PSK, w których zmiana klucza wpływa na wszystkich klientów.

Transport UDP a TCP

OpenVPN może działać przez UDP — domyślnie i zgodnie z zaleceniami — albo przez TCP. UDP pozwala uniknąć problemu TCP-over-TCP, w którym utrata pakietu powoduje podwójną retransmisję zarówno na poziomie TCP, jak i warstwy aplikacji VPN, znacznie obniżając wydajność. Niektóre sieci blokują jednak UDP. Uruchomienie OpenVPN na porcie TCP 443 może ominąć zapory sieciowe, które zezwalają wyłącznie na ruch HTTPS, kosztem wydajności w warunkach utraty pakietów.

Tryby interfejsu tun i tap

OpenVPN działa w trybie tun (routing) albo tap (bridging). Tryb tun tworzy interfejs sieciowy IP typu punkt-punkt i routuje pakiety IP między klientem a siecią VPN. Tryb tap tworzy interfejs mostu Ethernet i przekazuje ramki Ethernet, w tym transmisje rozgłoszeniowe oraz protokoły inne niż IP. Tryb tun jest wydajniejszy i odpowiedni dla większości zastosowań VPN; tryb tap jest potrzebny do łączenia segmentów sieci lub obsługi protokołów innych niż IP.

Dyrektywy push do konfiguracji klienta

Serwery OpenVPN mogą automatycznie przekazywać konfigurację łączącym się klientom za pomocą dyrektyw. Typowe dyrektywy push to push "route 10.0.0.0 255.0.0.0" (dodaje trasę na kliencie), push "dhcp-option DNS 10.0.0.1" (ustawia serwer DNS) oraz push "redirect-gateway def1" (kieruje cały ruch klienta przez VPN). Centralizuje to zarządzanie konfiguracją klientów bez modyfikowania poszczególnych plików konfiguracyjnych.

Perfect Forward Secrecy w OpenVPN

OpenVPN osiąga perfect forward secrecy dzięki TLS ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) w kanale sterującym. Dla każdej sesji TLS używana jest nowa efemeryczna para kluczy, dlatego klucza sesji nie można wyprowadzić z prywatnego klucza długoterminowego certyfikatu serwera. Przechwycenie zaszyfrowanego ruchu dziś i późniejsze uzyskanie certyfikatu serwera nadal nie umożliwia odszyfrowania wcześniejszych sesji.

Wycofywanie słabych szyfrów w OpenVPN 2.5+

OpenVPN 2.5 oznaczył szyfr Blowfish (BF-CBC), który historycznie był domyślny, jako przestarzały. BF-CBC używa 64-bitowego rozmiaru bloku, przez co w długich sesjach jest podatny na ataki urodzinowe SWEET32. Współczesny OpenVPN domyślnie używa AES-256-GCM. OpenVPN 2.5 wycofał również szyfry inne niż AEAD z kanału danych i zaostrzył wymagania dotyczące minimalnej wersji TLS, rezygnując ze wsparcia dla TLS 1.0 i 1.1.

Kanał sterujący a kanał danych OpenVPN

Jaka jest główna funkcja kanału sterującego OpenVPN?

Podsumowanie architektury OpenVPN

Podsumowanie OpenVPN: kanał sterujący używa TLS do uwierzytelniania i negocjacji szyfru, kanał danych korzysta z wynegocjowanego szyfru AEAD (domyślnie AES-256-GCM), tls-crypt opakowuje TLS, aby zapobiegać nieuwierzytelnionym uzgadnianiem, ECDHE zapewnia forward secrecy, uwierzytelnianie klientów opiera się na certyfikatach z możliwością unieważniania za pomocą CRL, UDP jest preferowane względem TCP ze względu na wydajność, a tryb tun jest preferowany w zastosowaniach routingu IP.

Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „OpenVPN: architektura VPN oparta na TLS” jest bezpłatna?

Tak — pełny tekst „OpenVPN: architektura VPN oparta na TLS” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „OpenVPN: architektura VPN oparta na TLS”?

Proszę poznać sposób, w jaki OpenVPN wykorzystuje TLS dla kanału sterowania oraz konfigurowalne szyfry dla kanału danych. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „OpenVPN: architektura VPN oparta na TLS”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. IPsec: protokoły IKEv2, ESP i AH
  2. WireGuard: VPN z ChaCha20 i Curve25519
  3. OpenVPN: architektura VPN oparta na TLS
  4. Porównanie protokołów VPN: bezpieczeństwo i wydajność
← Powrót do Cryptology Academy