OpenVPN tls-crypt-v2: mijoz kaliti va o'ralgan blob nima qiladi
tls-crypt-v2 profili mijozning boshqaruv kaliti va faqat server ocha oladigan o'ralgan nusxani saqlaydi. Har bir obyektni va har bir bekor qilish bosqichini alohida tuting.
tls-crypt-v2 profilini chiptaga yopishtirish, faylda nima borligini sanamaguncha zararsiz ko'rinadi. Mijozning boshqaruv kanali kaliti o'sha kalitning shifrlangan nusxasi yonida turadi, uchinchi obyekt esa, o'rash kaliti, qabul qiluvchi serverdan hech qachon chiqmaydi. Bu uchtasi saqlash, ulashish va bekor qilish haqidagi turli savollarga javob beradi. Ularni ajratish ko'p siyosat bahslarini boshlanishidan oldin hal qiladi.
Profil aslida nimadan iborat
tls-crypt-v2 ning mijoz yarmi — kalit va uning o'ralgan nusxasi. Mijoz boshqaruv kanalini himoya qilish uchun oddiy kalitdan foydalanadi va sozlash paytida o'ralgan nusxani serverga topshiradi, shuning uchun server har bir mijoz uchun ochiq matn nusxasini saqlamasdan o'sha kalitni tiklaydi. O'rash kaliti bu tiklashni mumkin qiladi va faqat qabul qiluvchi tomonga tegishli. Quyida hamma narsa o'sha uch obyekt qayerda yashashidan kelib chiqadi.
| Object | Where it lives | What can open it | What a leak costs |
|---|---|---|---|
| Server wrapping key | accepting servers only | the unwrap step inside the server | every wrapped copy issued to that group becomes readable |
| Wrapped client key | inside the client profile | the server wrapping key | it names a client and exposes its metadata, but not the key inside |
| Client control key | inside the client profile, usable as-is | the client that owns it | someone can open handshakes as that client until the server refuses the key |
Jadvalni nom bo'yicha emas, saqlash bo'yicha o'qing va oqibatlar o'z-o'zidan ko'rinadi. O'rash kalitini yo'qotish qimmat hodisa, chunki profilda hech narsa uni qayta qura olmaydi va halol tiklash — guruhni qayta chiqarish. Sizib chiqqan profil arzonroq, lekin ancha keng tarqalgan, chunki odamlar o'ralgan nusxa faylni ulashish uchun xavfsiz qiladi deb ishonib, profillarni chiptalarga yopishtiradi. Ikki nosozlik turli javoblarni talab qiladi, shuning uchun obyektlar alohida saqlanadi.
Nega o'ralgan nusxa butun hikoya emas
Profil foydali mijoz materialini o'zining o'ralgan jufti bilan birga olib yuradi, shuning uchun server uchun nusxani himoya qilish faylni himoya qilish haqida hech narsa demaydi. Blob uzatish uchun xavfsiz va e'lon qilish uchun xavfsiz emas. Uning ichidagi metama'lumotlar blobni olgan har kimga ko'rinadi, u yopishtirilgan chiptani keyin o'qiydiganlarga ham.
Profilga konfiguratsiya namunasi emas, hisob ma'lumotlari sifatida qarang. Sizib chiqqan fayl egasiga server bu identifikatsiyani qabul qilishni to'xtatguncha ishlaydigan mijoz identifikatsiyasini beradi va o'rash bu oyna haqida hech narsa qilmaydi. Har bir mijoz uchun bitta profil chiqaring, shunda bekor qilish bitta fayl qarori bo'lib qoladi, va o'rash kalitining zaxirasini u yoqadigan server konfiguratsiyasidan alohida saqlang. Ikkala odat ham buzilgan profilni tuzatmaydi, lekin ikkalasi keyingisi qanchalik tez cheklanishini belgilaydi.
Tasdiqlash ilgagi qo'l berishda qayerda turadi
Tasdiqlash ilgagi TLS qatlami ochilishidan oldin ishlaydi va uning vazifasi o'ralgan blobda olib o'tiladigan metama'lumotlarni tekshirish. U o'sha metama'lumotlarni va kichik, hujjatlashtirilgan muhitni oladi va autentifikatsiya ilgagiga qaraganda ishlash uchun kamroq materialga ega. U foydalanuvchi nomlarini, sessiya holatini yoki plagin o'zgaruvchilarini ko'radi deb o'ylash bu ilgakni yomon yozishning odatiy yo'lidir. Boshqa ilgakdan umid qarz olmasdan, ilgakning o'z qo'llanma bo'limini o'qing.
Uning chiqish holati — qaror: noldan farqli natija mijozni rad etadi, nol natija esa qo'l berishni davom etishiga ruxsat beradi. Shuning uchun siyosat metama'lumotlar yo'q bo'lganda, tahlil qilib bo'lmaganda yoki kutilmagan bo'lganda nima bo'lishini aytishi kerak. Avval rad etish yo'lini yozing, keyin qaysi qiymatlar maqbul ekanini hal qiling.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shO'sha ikki qator serverdagi siyosat yuzasi: biri o'rash kalitini nomlaydi, ikkinchisi har bir mijozni baholaydigan dasturni nomlaydi. Qiziqarli hamma narsa skriptda yashaydi, u versiya nazorati va har qanday boshqa kirish qoidasi kabi ko'rib chiqishga loyiq.
Hisob, sertifikat va boshqaruv kaliti alohida bekor qilinadi
Boshqaruv kanalining erta qabul qilinishi autentifikatsiya emas, chunki u TLS identifikatsiyasini tekshirishdan va har qanday hisob avtorizatsiyasidan oldin sodir bo'ladi. Hisobni o'chirish, sertifikatni bekor qilish va mijoz boshqaruv kalitini rad etish uchta mexanizmli uchta amaldir. Ulardan faqat bittasini bajaradigan joylashtirishda siyosat emas, bo'shliq bor. Uchtasini ataylab uyg'unlashtiring va qaysi qadam qaysi vakolatni ishlatishini yozib qo'ying.
Vaqt — ikkinchi farq. O'zgargan qabul ro'yxati yangi qo'l berishlarga taalluqli, allaqachon o'rnatilgan sessiyalar esa biror narsa ularni tugatmaguncha davom etadi. Yangi ro'yxatdagi yozuvlarni eski sessiyalar tugaganining isboti deb sanash — o'chirilgan mijozning soatlab ulangan holda qolish yo'li.
Uyg'unlashtirilmagan vakolatlar amalda oson topiladigan ikkita teshik qoldiradi. Hisob o'chirilgan bo'lishi mumkin, ammo uning boshqaruv kaliti hali ham qo'l berishni ochadi, va sertifikat bekor qilingan bo'lishi mumkin, ammo metama'lumot siyosati o'sha mijozni hali ham qabul qiladi. Ikkalasi ham turli joydagi bir xil xato, chunki operator bitta ro'yxatni butun vakolat deb bildi. O'chirish vaqtida uchta ro'yxatni yonma-yon qo'ying va xato ko'rinadi.
Profilni chiqarish va bekor qilish
Chiqarish — oson yarmi: qabul qiluvchi tomonda mijoz kalitini yarating, profilni aynan bitta egasiga bering, o'rash materialini cheklangan tuting va har bir qabul qiluvchi serverda o'sha tasdiqlash dasturini ishga tushiring. Arzon kirish butun guruhning xususiyati, eng yangi xostning emas. Eskiroq yoki bo'shroq skriptli ikkinchi server jimgina joylashtirishning eng zaif yo'liga aylanadi.
Bekor qilish uchta qadamni ataylab tartibda talab qiladi. Yangi qo'l berishlar muvaffaqiyatsiz bo'lishi uchun tasdiqlash ilgagida mijozni rad eting, agar PKI ishlatilsa sertifikatini bekor qiling va keyingi avtorizatsiyaga avtorizatsiya qiladigan hech narsa qolmasligi uchun hisobni o'chiring. Keyin eski qabul ruxsat bergan sessiyalarni tugating, chunki ular uchtadan hech birini sezmaydi. Tartibni buzishga qurbingiz yetadigan mijozda mashq qiling.
Profildagi metama'lumotlar o'sha siyosat uchun kirish, kirish nazorati allaqachon mavjudligining isboti emas. OpenVPN 2.6 dizayn hujjati obyektlarni va ular chizadigan chegarani tavsiflaydi, amalga oshirish esa operator zimmasida qoladi.