VPN sertifikat markazini almashtirganingizda nima bo'ladi
VPN CA ni almashtirish ishonch va shaxsiyatni alohida o'zgartiradi. Tekshiruvchilar nimani ko'radi, eski tunnellar nima uchun omon qoladi va ikkala yo'nalish ishlashini qanday isbotlash mumkin.
VPN sertifikat markazini almashtirish faylni almashtirish emas. Yangi CA o'zining birinchi sertifikatiga imzo chekkan paytda faqat eskisiga ishonadigan har bir tekshiruvchi qaror qabul qilishi kerak, yangi langarni hech qachon olmaydigan xostlar esa yaxshi hamkorlarni rad etishda davom etadi. Bu ikkala yo'nalishda ham buzilganini ko'rdim: shlyuz yangi CA ni o'rgandi, mijozlar esa o'rganmadi, shu sababli yangi ulanishlar muvaffaqiyatsiz bo'ldi, allaqachon ko'tarilgan tunnellar esa joyida qolib, uzilishni marshrutlash muammosidek ko'rsatdi. Nima o'zgarishini nosozliklar paydo bo'lish tartibida keltiraman.
Bitta almashtirish, ikkita alohida o'zgarish
Sertifikat markazi — bu nom, ochiq kalit va imzo chekuvchi maxfiy kalit. Tekshiruvchilar hech qachon «CA» ga mavhum ishonmaydi. Ular ishonch omborida allaqachon turgan ma'lum bir sertifikatga ishonadi va imzolar zanjiri o'sha saqlangan nusxaga yetgandagina beruvchini qabul qiladi. Shuning uchun CA ni almashtirish bir-biridan mustaqil ravishda ishdan chiqadigan ikkita narsani o'zgartiradi: qaysi langarlar qabul qilinadi va ular ostida qaysi hamkor shaxsiyatlari berilgan.
Aksariyat VPN joylashtirishlari ikkala yo'nalishda ham tekshiradi. Mijoz shlyuz sertifikatini, shlyuz esa mijoz sertifikatini autentifikatsiya qiladi. Faqat mijoz to'plamini yangilaydigan o'zgarish serverni eski CA shaxsiyatini hali ham taqdim etayotgan har bir mijozni rad etishga majbur qiladi, buning aksi ham shunchalik odatiy. Avval ta'sir nuqtalarini sanang: mijozlarning ishonch omborlari, shlyuzning ca fayli, uning oldida TLS ni tugatuvchi har qanday proksi va tashqaridan so'nggi nuqtani tekshiruvchi zond.
Tekshiruvchi nimani ko'radi, tartib bilan
Yo'l tekshiruvi hamkor sertifikatidan oraliq sertifikatlar orqali ishonchli langargacha ko'tariladi. Har bir qadamda imzoni tekshiradi, har bir sertifikat o'z amal qilish oynasida ekanini ko'radi va asosiy cheklovlar hamda kalitdan foydalanish beruvchiga imzo chekishga ruxsat berishini tasdiqlaydi. Shundan keyingina dastur barg sertifikatiga qaraydi: subyektning muqobil nomlari terilgan nomni qamrab olishi, kengaytirilgan kalit ishlatilishi esa server yoki mijoz autentifikatsiyasiga ruxsat berishi kerak.
O'sha yo'lni oflayn takrorlash uchun -CAfile ni siz joylashtirmoqchi bo'lgan aniq to'plamga qarating, tizim omboriga emas. Aks holda o'zgarishni emas, xostni sinovdan o'tkazasiz:
openssl verify -CAfile new-ca.crt gateway.crt
openssl verify -CAfile new-ca.crt -untrusted intermediate.crt client.crt
openssl x509 -in gateway.crt -noout -subject -issuer -dates
openssl s_client -connect gw.example.net:443 -CAfile new-ca.crt
Bu buyruq faqat shlyuzning HTTPS boshqaruv sahifasi kabi oddiy TLS tinglovchisiga qarshi ishlaydi; OpenVPN nazorat kanali TLS dan oldin keladi, shuning uchun s_client tunnel qo'l berishini ko'ra olmaydi.
O'sha xatolar orqasidagi yo'l qurish qoidalari RFC 5280 6-bo'lim da. Ular aks holda o'zboshimcha ko'rinadigan nosozliklarni tushuntiradi: hech kim eslab qolmagan muddati o'tgan oraliq sertifikat, kalit ishlatilishi imzoni taqiqlaydigan sertifikat yoki siz sinovdan o'tkazayotgan xostni chiqarib tashlaydigan nom cheklovi.
Eski tunnel nima uchun ishlashda davom etadi
TLS va OpenVPN ikkalasi ham qo'l berish tugagach o'rnatilgan sessiyani tirik saqlaydi. Hech narsa har bir paketda hamkor sertifikatini qayta tekshirmaydi, shu sababli o'zgarishdan oldin ulangan mijoz qayta muzokara, qayta ulanish yoki tunnel qulashigacha trafik o'tkazishda davom etadi. Aynan shu bo'shliq CA almashtirishning bir soat yaxshi ko'rinib, keyin eng yomon paytda ishdan chiqishiga sabab: noutbuk uyqudan uyg'onadi, NAT xaritalashi tugaydi, shlyuz qayta ishga tushadi.
Sessiyani davom ettirish bu xayolni yana cho'zadi. TLS sessiya bileti mijozga sertifikatlarni qayta yubormasdan qaytishga imkon beradi, davom ettirish esa yo'l tekshiruvini o'tkazib yuboradi, chunki birinchi qo'l berish buni allaqachon qilgan. Shuning uchun halol sinov yangi jarayonda to'liq qo'l berishdir. Tunnelni qayta ulash o'rniga mijozni qayta ishga tushiring, sinov profilida biletlarni o'chirishni o'ylab ko'ring, shunda davom ettirish yo'li uzilgan zanjirni yashira olmaydi.
Statik kalit qatlamini bundan alohida saqlang. tls-auth nazorat kanaliga HMAC qo'shadi, tls-crypt uni shifrlaydi va autentifikatsiya qiladi, ikkalasi ham sertifikat materialini olib yurmaydi, shuning uchun har qaysisini aylantirish o'z nosozlik rejimiga ega alohida o'zgarish. Ikkalasini aralashtirgan joylashtirishlar statik kaliti joyida, sertifikati eskirgan va xato xabari ikkalasini ham eslatmaydigan mijoz bilan yakunlanadi.
Subyekt nomini qayta ishlatish tuzog'i
Pastda hech narsa o'zgarmasligi uchun oldingining ajratuvchi nomini qayta ishlatish vasvasasi bor. Bu interfeysda beruvchi satrini barqaror saqlaydi va sizga kerak bo'lgan yagona signalni yo'q qiladi. Bir xil subyektlar va turli kalitlarga ega ikkita sertifikatni nom bilan ajratib bo'lmaydi, shuning uchun ikkala langarni saqlagan to'plam tekshiruvchiga ikkita nomzod beradi, tanlash qoidasisiz.
Keyin yo'l qurish noto'g'risini tanlashi, to'g'ri langar joyida bo'lsa ham «mahalliy beruvchi sertifikatini olib bo'lmadi» deb xabar berishi yoki nomzodlar tartibi boshqacha bo'lgani uchun xuddi shu to'plam bilan boshqa xostda muvaffaqiyatli bo'lib, bu yerda muvaffaqiyatsiz bo'lishi mumkin. Agar nomni qayta ishlatish shart bo'lsa, o'tish davrida ikkala langarni alohida fayllarda saqlang va aniq yuklang, hamda har bir hamkor yangi beruvchini taqdim etgandan keyingina ularni birlashtiring. Aks holda o'rinbosarga alohida umumiy nom bering — avlod yoki sana qo'shimchasi yetarli — shunda jurnallar va xato matnlari muvaffaqiyatsiz hamkor qaysi organ ostida berilganini aytadi.
Tarmoqni yiqitmaydigan aylanish
Rejalashtirilgan almashtirish uchun bir qadamda almashtirish o'rniga cheklangan vaqt davomida ikkala langarni qabul qiling. Yangi CA va uning oraliq sertifikatlarini chiqaring, yangi langarni eski yoniga har bir tekshiruvchining to'plamiga qo'ying va shundan keyingina undan hamkor sertifikatlarini chiqarishni boshlang. Eski shaxsiyatli hamkorlar eski langarga qarshi tekshiriladi; yangilari yangisiga qarshi ishlaydi.
Shu tartibda bajarilsa, har bir qadam qaytariladi. Siz qochayotgan nosozlik bir vaqtli almashtirish: to'plam yangilanishini o'tkazib yuborgan mijoz eski langarni allaqachon iste'foga chiqargan shlyuzga duch keladi, qo'l berish o'ladi va hech bir jurnal qaysi tomon eskirganini aytmaydi.
Qarama-qarshi yo'nalishda iste'foga chiqaring. Omon qolishi kerak bo'lgan har bir shaxsiyatni qayta chiqaring, har biri yangi zanjirni taqdim etishini tasdiqlang, keyin to'plamlardan eski langarni olib tashlang. Eski CA ning maxfiy kalitini xizmatdan chiqaring, chunki hali imzo cheka oladigan beruvchi aylanish tugamaganini bildiradi. Audit uchun sertifikatlar va chiqarish yozuvlarini saqlang. Yo'qolgan beruvchi o'sha ishonchga tiklanadi; oshkor bo'lish yangi shaxsiyatlarni talab qiladi va eski langarga qaytish yo'q.
Natijani tekshiring, fayllar ro'yxatini emas
Kutilgan katalogdagi ishonch fayli oz narsani isbotlaydi. Dastur boshqa yo'lni, boshqa formatni yoki yangilanish almashtiradigan paket ichidagi nusxani o'qishi mumkin. Fayl bor-yo'qligini emas, ikkala uchdagi xatti-harakatni tekshiring.
Yangi shaxsiyat bilan yangi ulanish muvaffaqiyatli bo'lishini tasdiqlang, keyin iste'foga chiqarilgan CA bergan shaxsiyat rad etilishini tasdiqlang. Odamlar aynan ikkinchi sinovni tashlab ketadi va eski organ endi ruxsat bermasligini ko'rsatadigan yagona sinov ham shu. Joylashtirish CRL yoki OCSP ga tayansa, yangi sertifikatlardagi tarqatish nuqtalari hal qilinishini va so'rovchi hamkorlar javob beruvchiga yetib borishini tekshiring.
Hech qachon ulanmagan mijoz bilan yakunlang: uning profil holatini o'chiring, ulaning va kelishilgan zanjirni o'qing. Keshlangan sessiyani davom ettirayotgan hamkor hech narsani tekshirmagan bo'lsa-da, migratsiya muvaffaqiyatli bo'lganini xursandchilik bilan aytadi.