Cryptology Academy · Pelajaran

OpenVPN: Seni Bina VPN Berasaskan TLS

Kaji cara OpenVPN menggunakan TLS untuk saluran kawalan dan sifir boleh dikonfigurasikan untuk saluran data.

Pelajaran 3 daripada 413 langkah

OpenVPN: Seni Bina VPN Berasaskan TLS ialah pelajaran Cryptology Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cryptology Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Seni Bina Dua Saluran OpenVPN

OpenVPN menggunakan dua saluran berasingan: saluran kawalan dan saluran data. Saluran kawalan mengendalikan pengesahan, penubuhan sesi dan pertukaran konfigurasi menggunakan TLS. Saluran data membawa trafik VPN sebenar yang disulitkan dengan sifir simetri yang dirundingkan melalui saluran kawalan. Pengasingan ini membolehkan OpenVPN memanfaatkan keseluruhan ekosistem TLS untuk pengurusan kunci.

Saluran Kawalan: TLS untuk Rundingan Kunci

Saluran kawalan OpenVPN menjalankan sesi TLS penuh. Kedua-dua pihak mengesahkan identiti menggunakan sijil X.509 yang ditandatangani oleh CA bersama. TLS menyediakan pertukaran kunci, pengesahan sijil dan rundingan parameter sifir saluran data. Oleh sebab TLS menyokong ECDHE, saluran kawalan menyediakan kerahsiaan hadapan sempurna: kunci saluran data tidak boleh dipulihkan daripada sesi yang dirakam walaupun dengan kunci CA.

Penyulitan Saluran Data

Penyulitan saluran data dirundingkan melalui saluran kawalan TLS. OpenVPN 2.4 dan versi lebih baharu menggunakan AES-256-GCM secara lalai, iaitu sifir AEAD yang menyediakan kerahsiaan dan integriti dalam satu operasi. Versi terdahulu menggunakan AES-256-CBC dengan HMAC-SHA256 secara berasingan. Mod AEAD lebih disukai kerana menghapuskan keperluan pengesahan MAC berasingan dan menentang serangan oracle pelapik.

tls-crypt: Pembungkusan Kunci yang Dikongsi Terlebih Dahulu

Pilihan tls-crypt membungkus seluruh sesi TLS, termasuk sapaan klien, di dalam sampul simetri yang disahkan HMAC menggunakan kunci yang dikongsi terlebih dahulu. Ini bermakna klien yang tidak disahkan pun tidak boleh memulakan jabat tangan TLS; paket awal mereka digugurkan secara senyap. Langkah ini melindungi pelayan OpenVPN daripada serangan penguatan DDoS berasaskan TLS dan menyembunyikan hakikat bahawa pelayan VPN sedang berjalan.

tls-auth berbanding tls-crypt

Pilihan tls-auth yang lebih lama menambah teg HMAC pada paket saluran kawalan TLS tetapi tidak menyulitkannya. Ini menghalang suntikan paket tetapi masih mendedahkan jabat tangan TLS kepada pemerhati. tls-crypt menyulitkan dan mengesahkan pembungkus saluran kawalan, lalu menyediakan perlindungan DoS dan ketahanan terhadap analisis trafik. tls-crypt ialah pilihan moden yang disyorkan; tls-auth sudah tidak digunakan lagi dan digantikan dengan tls-crypt-v2.

Pengesahan Klien Berasaskan Sijil

OpenVPN mengesahkan klien menggunakan sijil X.509 yang ditandatangani oleh Pihak Berkuasa Sijil VPN. Setiap klien menerima sijil dan kunci peribadi yang unik. Pelayan mengesahkan rantaian sijil dan secara pilihan menyemak Senarai Pembatalan Sijil (CRL) untuk menolak sijil yang dibatalkan. Pembatalan sijil serta-merta mengalih keluar akses klien, tidak seperti sistem berasaskan PSK yang perubahan kuncinya menjejaskan semua klien.

Pengangkutan UDP berbanding TCP

OpenVPN boleh berjalan melalui UDP (lalai dan disyorkan) atau TCP. UDP mengelakkan masalah TCP melalui TCP, apabila kehilangan paket menyebabkan penghantaran semula berganda pada lapisan TCP dan lapisan aplikasi VPN, lalu merosotkan prestasi dengan ketara. Walau bagaimanapun, sesetengah rangkaian menyekat UDP. Menjalankan OpenVPN pada port TCP 443 boleh melepasi tembok api yang hanya membenarkan trafik HTTPS, dengan mengorbankan prestasi apabila berlaku kehilangan paket.

Mod Antara Muka tun berbanding tap

OpenVPN beroperasi dalam mod tun (penghalaan) atau mod tap (penjambatan). Mod tun mencipta antara muka rangkaian IP titik ke titik yang menghalakan paket IP antara klien dan rangkaian VPN. Mod tap mencipta antara muka jambatan Ethernet yang menghantar bingkai Ethernet termasuk siaran dan protokol bukan IP. Mod tun lebih cekap dan sesuai untuk kebanyakan kegunaan VPN; mod tap diperlukan untuk menjambatani segmen rangkaian atau protokol bukan IP.

Arahan Penghantaran untuk Konfigurasi Klien

Pelayan OpenVPN boleh menghantar arahan konfigurasi kepada klien yang bersambung secara automatik. Arahan penghantaran yang lazim termasuk push "route 10.0.0.0 255.0.0.0" (menambah laluan pada klien), push "dhcp-option DNS 10.0.0.1" (menetapkan pelayan DNS) dan push "redirect-gateway def1" (menghalakan semua trafik klien melalui VPN). Ini memusatkan pengurusan konfigurasi klien tanpa mengubah suai fail konfigurasi klien secara individu.

Kerahsiaan Hadapan Sempurna dalam OpenVPN

OpenVPN mencapai kerahsiaan hadapan sempurna melalui TLS ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) dalam saluran kawalan. Pasangan kunci sementara yang baharu digunakan untuk setiap sesi TLS, maka kunci sesi tidak boleh diperoleh daripada kunci peribadi sijil jangka panjang pelayan. Merakam trafik yang disulitkan hari ini dan mendapatkan sijil pelayan kemudian masih tidak membolehkan penyahsulitan sesi terdahulu.

Menamatkan Sokongan Sifir Lemah dalam OpenVPN 2.5+

OpenVPN 2.5 menamatkan sokongan untuk sifir Blowfish (BF-CBC), yang secara sejarahnya merupakan sifir lalai. BF-CBC menggunakan saiz blok 64-bit yang terdedah kepada serangan hari lahir SWEET32 dalam sesi yang panjang. OpenVPN moden menggunakan AES-256-GCM secara lalai. OpenVPN 2.5 juga menamatkan sokongan untuk sifir bukan AEAD dalam saluran data dan mengetatkan keperluan versi TLS minimum dengan menggugurkan sokongan TLS 1.0 dan 1.1.

Saluran Kawalan berbanding Saluran Data OpenVPN

Apakah fungsi utama saluran kawalan OpenVPN?

Ringkasan Seni Bina OpenVPN

Ringkasan OpenVPN: saluran kawalan menggunakan TLS untuk pengesahan dan rundingan sifir, saluran data menggunakan sifir AEAD yang dirundingkan (lalai AES-256-GCM), tls-crypt membungkus TLS untuk menghalang jabat tangan yang tidak disahkan, ECDHE menyediakan kerahsiaan hadapan, pengesahan klien berasaskan sijil dengan pembatalan melalui CRL, UDP lebih disukai berbanding TCP untuk prestasi dan mod tun lebih disukai bagi kegunaan penghalaan IP.

Percuma untuk bermula

Pelajari Cryptology Academy dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
67
Pelajaran
261

Soalan Lazim

Adakah pelajaran “OpenVPN: Seni Bina VPN Berasaskan TLS” percuma?

Ya — teks penuh “OpenVPN: Seni Bina VPN Berasaskan TLS” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cryptology Academy, tingkat taraf kepada CoddyKit PRO. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “OpenVPN: Seni Bina VPN Berasaskan TLS”?

Kaji cara OpenVPN menggunakan TLS untuk saluran kawalan dan sifir boleh dikonfigurasikan untuk saluran data. Anda berlatih Cryptology Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cryptology Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cryptology Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “OpenVPN: Seni Bina VPN Berasaskan TLS” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. IPsec: Protokol IKEv2, ESP dan AH
  2. WireGuard: VPN ChaCha20 dan Curve25519
  3. OpenVPN: Seni Bina VPN Berasaskan TLS
  4. Membandingkan Protokol VPN: Keselamatan dan Prestasi
← Kembali ke Cryptology Academy