VPN kalit faylida RSA ning n, e, d, p va q qiymatlari qayerda yashaydi
n, e, d, p va q fayl nomlarida emas, bitta tuzilma ichida turadi. RSA VPN kalitini OpenSSL bilan o‘qing va sirlarni chop etmasdan uni sertifikati bilan juftlang.
RSA izohidagi harflar PKI asbobi tarqatadigan fayllarni emas, bitta obyekt ichidagi maydonlarni nomlaydi. Shaxsiy kalit fayli birinchi maydonlari ochiq, keyingi maydonlari esa tunnelni tugatuvchi mashinadan hech qachon chiqmasligi kerak bo‘lgan tuzilmani saqlaydi. Bu ikki fakt orasida qaysi fayl qaysi savolga javob berishi haqidagi amaliy savollarning ko‘pchiligi yotadi. Ushbu qo‘llanma avval tuzilmani, so‘ng uni to‘kmasdan tekshiruvchi buyruqlarni o‘qiydi.
Tub sonlarni izlashdan oldin kalit RSA ekanini tasdiqlang
Sertifikat qandaydir kalit mavjudligini va imzolanganini isbotlaydi; kalit RSA ekanini isbotlamaydi. Tizimlarni elliptik egri chiziqlar yoki Ed25519 ustida qurish mumkin va xuddi shu katalog tuzilishi barchasiga xizmat qiladi. Hech qachon bo‘lmagan tub ko‘paytuvchilarni izlashdan oldin algoritmni tekshiring.
Ushbu uchta faqat-o‘qish buyrug‘i savolga javob beradi va asbob versiyasini yozib qo‘yadi.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Versiya muhim, chunki parametr nomlari asosiy nashrlar orasida ko‘chgan. Sertifikat chiqishida ochiq kalit algoritmi satrini va kalit o‘lchamini toping; kalit chiqishida RSA kaliti modul va ochiq darajani chop etadi. Elliptik egri chiziq kaliti buning o‘rniga nomlangan egri chiziqni chop etadi va hech qanday qidiruv undan n yoki q chiqarmaydi.
base64 o‘rniga tuzilmani o‘qing
PEM — sarlavha satrlariga o‘ralgan base64 va uni dekodlash DER beradi, ya’ni ulkan butun son emas, ketma-ketlashtirilgan tuzilma. RSA shaxsiy kalitlari ikkita oddiy konteynerda sayohat qiladi, PKCS#1 va PKCS#8, va ikkalasi ham bir xil sonlar to‘plamiga keladi.
Ikkita tub son bo‘lganda shaxsiy tuzilma to‘qqiz maydonni olib yuradi: versiya, n moduli, ochiq daraja e, shaxsiy daraja d, p va q tub sonlari, ikkita CRT darajasi va bitta CRT koeffitsienti. RFC 8017 A.1 bo‘limi o‘sha komponentlar va ASN.1 tartibini belgilaydi, shuningdek ikkitadan ortiq tub songa ham ruxsat beradi, shuning uchun umumiy tahlilchi qo‘shimcha tub yozuvlarni chop etishi mumkin. Tartibga e’tibor bering, chunki u keng tarqalgan xatoni tushuntiradi: ochiq yarmi shaxsiy fayl ichida saqlanadi, shuning uchun ochiq maydonning mavjudligi bu faylni ulashish uchun xavfsiz qilmaydi. Undan keyingi hamma narsa xostda qolishi kerak bo‘lgan materialdir.
Kodlash mazmun bilan aralashtirish oson bo‘lgan qatlam qo‘shadi. openssl asn1parse tuzilmani daraxt sifatida chizadi, shunda maydonlar tartibi ko‘rinadi, va u hech narsani dekriptlamaydi, kalit yaroqli ekanini ham aytmaydi.
Kalitni chop etmasdan sertifikatni kalit bilan juftlang
Keyingi savol odatda sertifikat va kalit bir-biriga tegishlimi degani bo‘ladi. Modullarni solishtirish bunga javob beradi, lekin shaxsiyga yaqin materialni terminal yozuviga ham ko‘chiradi, u chiptaga tushishi mumkin. Ochiq yarmlarni solishtirish xuddi shu savolga ekranda hech qanday nozik narsa qoldirmasdan javob beradi.
openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH
Bir xil fayllar sertifikat o‘sha kalitning ochiq yarmini olib yurishini bildiradi, farq esa siz noto‘g‘ri juftlikni ushlab turganingizni bildiradi. Aynan shu nomuvofiqlik xursandchilik bilan kelishib, keyin autentifikatsiyani rad etadigan tunnelning eng keng tarqalgan sababidir. Keyin ikkita vaqtinchalik faylni o‘chiring; ularda hech qanday sir yo‘q, lekin hodisaning o‘rtasida toza ish katalogi haqida o‘ylash osonroq.
Qo‘shni fayllar nima emasligini biling
Sertifikat — qarshi tomon CA sertifikati bilan ochadigan shifrlangan ochiq kalit emas; u ochiq kalit va identifikatsiya ma’lumotlari o‘rtasidagi imzolangan bog‘lanish. CA ning shaxsiy imzolash kaliti o‘z sertifikatidan va har bir mijoz kalitidan alohida qoladi. So‘rov ham sertifikat emas: u so‘ralgan axborotni va ochiq kalitni so‘rov ustidagi imzo bilan olib yuradi, bu uni ro‘yxatga olish kiritmasi qiladi, huquq isboti emas.
| File | Answers | Does not prove |
|---|---|---|
| vpn-client.key | Possession of the private key | That the identity is enrolled |
| vpn-client.crt | A signed binding of public key to identity | That the client holds the matching key |
| vpn-client.csr | The requested binding and public key | That access was granted |
| dh2048.pem | Group parameters for key exchange | Any RSA component |
| crl.pem | Revocation status for certificates | Anything about a private key |
O‘sha yozuvlardan ikkitasi RSA parametrlari bilan yetarlicha tez-tez aralashtiriladi, shuning uchun ularni ikki marta nomlash kerak. Diffie-Hellman parametr fayli kalit o‘rnatish uchun guruh parametrlarini saqlaydi va hech qanday RSA tub sonini saqlamaydi, garchi u ham katta tub son sifatida chop etilsa. Bekor qilish ro‘yxati sertifikatlar holatini e’lon qiladi va shaxsiy daraja yashirinishi mumkin bo‘lgan joy emas.
Shuning uchun har bir inventar satri to‘rtta narsani yozib olishi kerak: obyekt turi, egasi, maqsadi va shaxsiy material kiritilganmi. Oxirgi ustun faylni qayerga ko‘chirish mumkinligini hal qiladi va odamlar aynan shuni tashlab ketadi.
Juftlashni qayd eting, so‘ng qo‘l berishni tekshiring
Biror narsani o‘zgartirishdan oldin tekshiruv chiqishini sana va OpenSSL versiyasi bilan birga saqlang. Shunda keyingi aylanish xotira bilan emas, dalillar bilan solishtiriladi.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Ochiq kalitni solishtirgandan so‘ng juftlikni iste’mol qiladigan yo‘lni bosib o‘ting: tunnelni ko‘taring, sertifikat taqdim etilishi va qabul qilinishini tasdiqlang, va shlyuz qaysi identifikatsiyani yozganini tekshiring. Agar kalit va sertifikat mos kelsa-yu autentifikatsiya baribir muvaffaqiyatsiz bo‘lsa, nuqson juftlikda emas, ishonchda, identifikatsiya xaritalashida yoki kirish siyosatida.
Qaytarish uchun avvalgi kalit va sertifikatni sanali katalogda saqlang va ikkalasini birga tiklang, hech qachon faqat bittasini emas. Sertifikatsiz kalit va kalitsiz sertifikat tashqaridan bir xil muvaffaqiyatsiz bo‘ladi, bu esa yarim tiklangan juftliklarni tungi soat ikkida yechishni qimmat qiladi.