OpenVPN: EC va ED — nega bu nomlar kuch zinapoyasi emas
EC, ED, ECDHE va auth turli savollarga javob beradi. Har qanday taqqoslash yoki tahrirdan oldin OpenVPN profilini har bir nom bajaradigan ish bo'yicha tartiblang.
Bir profilda ec, ed, ecdh, ecdsa, auth va TLS shifrlar ro'yxatini yonma-yon qo'ying, va fayl olti pog'onali kuch dastasiga o'xshab qoladi. Unday emas. Har bir nom boshqa savolga javob beradi va faqat bittasida farq qiladigan ikki profil albatta bir-biridan kuchli yoki kuchsiz bo'lishi shart emas. Nomlarni bajaradigan ishiga qarab tartiblash taxminan besh daqiqa vaqt oladi va odamlar ishlayotgan konfiguratsiyaga qiladigan yomon tahrirlarning ko'pini oldini oladi.
Quyidagi tartiblash chalkashlikning o'zidan boshlanadi, so'ng profilingiz trafigini aslida nima himoya qilishini hal qiladigan qismlarga qarab tashqariga chiqadi. Har bir bo'lim navbat bilan bitta noto'g'ri o'qishni oladi va nom aslida nimaga bog'langanini ko'rsatadi.
Ikki harf, ikki xil savol
Eng ko'p bahsga sabab bo'ladigan juftlik — EC va ED, va bahs odatda ularni bitta savolga raqib javoblar deb hisoblaydi. Ular hatto bir o'qda ham emas. EC matematika oilasini tasvirlaydi: elliptik egri kriptografiyasi, bunda xavfsizlik katta chekli maydondagi emas, balki egri ustidagi diskret logarifmning qiyinligidan kelib chiqadi.
ED shu oila ichidagi egri shaklini tasvirlaydi. Buralgan Edwards egri chiziqlari tezlik va bir nechta amalga oshirish xatolariga qarshilik uchun tanlangan tasvirlash usuli bo'lib, Ed25519 — odamlar odatda nazarda tutadigan nom. Egri elliptik egri kriptografiyasining raqibi emas; u elliptik egri yozishning bir usuli. ED ni “yangiroq va kuchliroq EC” deb o'qish birinchi noto'g'ri burilishdir va undan keyingi hamma narsa odatda xuddi shu yo'nalishda noto'g'ri bo'ladi.
Imzolash va kalit almashish — alohida ishlar
Oila masalasi aniqlangach, qolgan nomlar hech qachon bir-birining o'rnini bosmaydigan ikki ustunga bo'linadi. Bir ustun imzolaydi, ikkinchisi umumiy sir bo'yicha kelishadi.
| Name in the profile | Job it does | What it is not |
|---|---|---|
ecdsa | Signature scheme using elliptic-curve keys | Not a key-exchange method |
eddsa, Ed25519 | Signature scheme for twisted Edwards curves | Not interchangeable with ECDSA |
ecdh, X25519 | Ephemeral key agreement | Not a signature and not a cipher |
auth | HMAC digest for packet authentication | Not the data cipher |
EdDSA ham, ECDSA ham imzolaydi, lekin ular turli kalit formatlariga ega turli sxemalar, shuning uchun biriga berilgan sertifikat ikkinchisi sifatida ishlatilmaydi. EdDSA kichik egri chiziqlar to'plami uchun aniqlangan; P-256 ulardan biri emas, shuning uchun P-256 sertifikati ECDSA bilan tekshiriladi va hech qachon Ed25519 bilan tekshirilmaydi.
Almashish ustunida EdDH deb ataladigan muqobil yo'q. Curve25519 kaliti ustidagi vaqtinchalik kelishuv — X25519, va bu xuddi P-256 dagi kabi muayyan egri chiziqli ECDH. Ed25519 qat'iy ma'noda imzo sxemasini bildiradi, garchi ikki egri chiziq bog'liq bo'lgani uchun bu nom almashish uchun ham erkin ishlatiladi: imzolashda ishlatiladigan Edwards shakli va X25519 uchun ishlatiladigan Montgomery shakli bir xil asosiy guruhni tasvirlaydi.
Nega EC profilida dh fayli yo'q
Bir dh fayli chekli maydon Diffie-Hellman uchun oldindan yaratilgan parametrlarni o'z ichiga oladi va bu parametrlar katta tub son va generator qayerdandir kelishi kerakligi sababli mavjud. Elliptik egri almashish ularga muhtoj emas: nomlangan egri chiziq parametrlar to'plamining o'zi va ikki tomon uni allaqachon biladi. EC profili bu direktivani tashlab ketishining butun sababi shu.
Ko'rinishidan zamonaviy bo'lgan profilda hali ham dh satrini keltirib chiqaradigan ikki holat bor. Birinchisi — haqiqatan chekli maydon guruhlari bo'yicha kelishadigan ikkinchi tinglovchi yoki eskiroq hamkor. Ikkinchisi — RSA davri shablonidan ko'chirilgan va hech qachon olib tashlanmagan qoldiq matn. Almashish uchun egri chiziqni nomlab, baribir 2048 bitlik dh faylini yuklaydigan profil shu ishni qilgani uchun xavfsizroq bo'lmaydi; u foydalanilmayotgan artefaktni olib yuribdi.
TLS 1.3 kalit almashishni nomdan olib tashladi
TLS_AES_256_GCM_SHA384 ni TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 bilan solishtiring — qisqaroq nom pasaytirishga o'xshab ko'rinadi. Bu qayta nomlash va sababi tizimli: TLS 1.3 statik RSA va chekli maydon Diffie-Hellman kalit almashishini olib tashladi, shuning uchun vaqtinchalik elliptik egri almashish PSK bo'lmagan yagona variant bo'lib qoldi. Uni har bir to'plamda nomlash bir xil faktni o'nlab marta takrorlash bo'lardi.
Sertifikat turi nomdan bog'liq sabab bilan yo'qoldi. 1.3 da sertifikat kalit kelishuvini emas, qo'l berib ko'rishish imzosini autentifikatsiya qiladi, shuning uchun u endi to'plamni tanlamaydi. Konfiguratsiyada 1.3 uchun alohida shifrlar ro'yxati mavjudligining sababi ham shu: to'plamlar qayta nomlandi va qayta tashkil etildi, kuchsizlantirilmadi.
Bitta oqibatni ochiq aytish kerak. ECDHE — kalit almashish algoritmi va hech qachon shifr emas. “Elliptik” deb ta'riflangan to'plam ikki tomon umumiy kalitga qanday kelgani haqida gapiradi va yukni keyin nima shifrlashi haqida umuman hech narsa demaydi.
auth paketlarni autentifikatsiya qiladi, yukni emas
auth direktivasi paketlarni autentifikatsiya qiladigan HMAC hazmini tanlaydi va uning tarixiy standart qiymati — SHA1. AEAD bo'lmagan ma'lumot shifri bilan OpenVPN hazmni shifrlangan matn ustida hisoblab, uning oxiriga qo'shadi; to'ldirish bilan manipulyatsiyani amaliy bo'lmagan holga keltiradigan aynan shu avval shifrla, keyin MAC qilish tartibi.
Bu yerda afsona shundaki, auth ni SHA512 ga ko'tarish tunnelni mustahkamlaydi. Bu shifrlash kuchini oshirmaydi va agar kelishilgan ma'lumot shifri AES-256-GCM kabi AEAD rejimi bo'lsa, hazm ma'lumot paketlariga umuman qo'llanilmaydi. GCM tegi ularni allaqachon autentifikatsiya qiladi va auth qiymati boshqaruv kanali HMAC iga hamda hali ishlatilayotgan har qanday AEAD bo'lmagan shifrga qoldiriladi.
Demak, direktiva muhim, lekin u fayldagi o'rnidan ko'ra torroq joyda muhim. Qaysi shifr haqiqatda kelishilganini tekshirish uning umuman qo'llanilishini aytadi.
Profilni daraja bo'yicha emas, ustun bo'yicha o'qing
Uch savol qatlamlarni toza ajratadi va har biriga kelishilgan sessiyaning boshqa qismi javob beradi. Yukni qaysi shifr himoya qiladi? Har bir paket uchun qaysi teg yoki hazm kafolat beradi va ishlatilayotgan shifr unga umuman muhtojmi? Qo'l berib ko'rishishni kimning sertifikati yopdi va boshqaruv kanali qo'shimcha ravishda tls-auth yoki tls-crypt bilan qo'riqlanadimi?
EC yoki ED yorlig'ida hech narsa bu uchtasidan birortasini hal qilmaydi va to'plam nomining o'zi ham birortasini hal qilmaydi. Kelishilgan natija yagona dalildir, shuning uchun kuchni lug'atdan chiqarish o'rniga o'shani o'qing:
openssl x509 -in client.crt -noout -text | grep -E 'Signature Algorithm|Public Key Algorithm'
grep -i 'control channel' /var/log/openvpn.log
Birinchi buyruq sertifikatingiz aslida qaysi imzo sxemasidan foydalanishini aytadi va ECDSA yoki Ed25519 ishlatayotganingizni bilishning yagona ishonchli yo'li shu. Ikkinchisi mijoz sessiya uchun jurnalga yozgan boshqaruv kanali satrini, TLS versiyasi va kelishilgan to'plam bilan birga ko'rsatadi. Agar profil tahriri shu ikki chiqishdan biri bilan asoslanmasa, ehtimol bu xususiyatga emas, nomga qilingan o'zgarishdir.