RSA-ын тайлбар дахь үсгүүд нь PKI хэрэгсэл олгодог файлуудыг биш, нэг объектын доторх талбаруудыг нэрлэдэг. Хувийн түлхүүрийн файл нь эхний талбарууд нь нээлттэй, дараагийн талбарууд нь туннелийг дуусгадаг машинаас хэзээ ч гарах ёсгүй бүтцийг агуулна. Эдгээр хоёр баримтын хооронд аль файл аль асуултад хариулах тухай практик асуултуудын ихэнх нь оршдог. Энэхүү гарын авлага эхлээд бүтцийг, дараа нь түүнийг асгахгүйгээр шалгадаг командуудыг уншдаг.

Анхны тоо хайхаасаа өмнө түлхүүр RSA эсэхийг баталгаажуулна уу

Сертификат нь ямар нэг түлхүүр байгаа, гарын үсэг зурсан гэдгийг баталдаг; түлхүүр RSA гэдгийг баталдаггүй. Системийг эллипс муруй эсвэл Ed25519 дээр барьж болох бөгөөд ижил хавтасны зохион байгуулалт бүгдэд үйлчилдэг. Хэзээ ч байгаагүй анхны хүчин зүйлсийг хайж эхлэхээс өмнө алгоритмыг шалгана уу.

Эдгээр гурван зөвхөн унших команд асуултад хариулж, хэрэгслийн хувилбарыг тэмдэглэнэ.

openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text

Хувилбар чухал, учир нь сонголтын нэрс үндсэн хувилбаруудын хооронд шилжсэн. Сертификатын гаралтаас нээлттэй түлхүүрийн алгоритмын мөрийг, түлхүүрийн хэмжээг ол; түлхүүрийн гаралтад RSA түлхүүр модуль, нээлттэй зэрэглэлийг хэвлэнэ. Эллипс муруйн түлхүүр оронд нь нэрлэсэн муруйг хэвлэх бөгөөд ямар ч хайлт түүнээс n эсвэл q гаргахгүй.

base64 биш бүтцийг уншина уу

PEM нь толгойн мөрөнд ороосон base64 бөгөөд түүнийг тайлахад DER гарна, өөрөөр хэлбэл асар том бүхэл тоо биш, цуваа болгосон бүтэц. RSA хувийн түлхүүрүүд PKCS#1, PKCS#8 гэсэн хоёр нийтлэг контейнерт аялж, хоёулаа ижил тооны олонлогт хүрдэг.

Хоёр анхны тооны тохиолдолд хувийн бүтэц есөн талбар агуулна: хувилбар, n модуль, e нээлттэй зэрэглэл, d хувийн зэрэглэл, p ба q анхны тоо, хоёр CRT зэрэглэл, нэг CRT коэффициент. RFC 8017-ийн A.1 хэсэг эдгээр бүрэлдэхүүн хэсэг болон ASN.1 зохион байгуулалтыг тодорхойлдог бөгөөд хоёроос олон анхны тоог ч зөвшөөрдөг тул ерөнхий задлагч нэмэлт анхны тооны бичлэг хэвлэж болно. Дарааллыг анхаар, учир нь энэ нь түгээмэл алдааг тайлбарладаг: нээлттэй хагас нь хувийн файлын дотор хадгалагддаг тул нээлттэй талбар байх нь тэр файлыг хуваалцахад аюулгүй болгодоггүй. Үүний дараах бүхэн нь хост дээр үлдэх ёстой материал юм.

Кодчлол нь агуулгатай андуурахад хялбар давхарга нэмдэг. openssl asn1parse бүтцийг мод хэлбэрээр зурж талбаруудын дарааллыг харагдуулдаг бөгөөд энэ нь юуг ч тайлахгүй, түлхүүр ашиглах боломжтой эсэхийг ч хэлэхгүй.

Түлхүүрийг хэвлэхгүйгээр сертификатыг түлхүүртэй харьцуулна уу

Дараагийн асуулт нь ихэвчлэн сертификат, түлхүүр хамт хамаарах эсэх. Модулиудыг харьцуулах нь түүнд хариулна, гэхдээ хувийнхтай ойр материал терминалын бичлэгт хуулагдаж, тэр нь тасалбарт орж болно. Нээлттэй хагасуудыг харьцуулах нь ижил асуултад дэлгэц дээр мэдрэмтгий зүйл үлдээхгүйгээр хариулна.

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

Ижил файлууд нь сертификат тэр түлхүүрийн нээлттэй хагасыг агуулж байгааг илэрхийлнэ, харин ялгаа нь буруу хос барьж байгааг илтгэнэ. Яг энэ зөрүү нь хөгжилтэйгээр хэлэлцээд дараа нь баталгаажуулалтаас татгалздаг туннелийн хамгийн түгээмэл шалтгаан. Дараа нь хоёр түр файлыг устга; тэдгээрт нууц зүйл байхгүй, гэхдээ ослын дунд цэвэр ажлын хавтасны талаар бодох нь хялбар.

Хөрш файлууд юу биш болохыг мэдээрэй

Сертификат нь эсрэг тал CA сертификатаар онгойлгодог шифрлэсэн нээлттэй түлхүүр биш; энэ нь нээлттэй түлхүүр болон таних мэдээллийн хоорондын гарын үсэгтэй холбоо. CA-ын хувийн гарын үсгийн түлхүүр өөрийн сертификат болон клиент бүрийн түлхүүрээс тусдаа үлддэг. Хүсэлт ч сертификат биш: хүссэн мэдээлэл болон нээлттэй түлхүүрийг хүсэлт дээрх гарын үсэгтэй хамт агуулдаг нь түүнийг бүртгэлийн оролт болгодог, эрхийн баталгаа биш.

FileAnswersDoes not prove
vpn-client.keyPossession of the private keyThat the identity is enrolled
vpn-client.crtA signed binding of public key to identityThat the client holds the matching key
vpn-client.csrThe requested binding and public keyThat access was granted
dh2048.pemGroup parameters for key exchangeAny RSA component
crl.pemRevocation status for certificatesAnything about a private key

Тэдгээрийн хоёрыг RSA параметртэй хангалттай олон удаа андуурдаг тул хоёр удаа нэрлэх шаардлагатай. Diffie-Hellman параметрийн файл нь түлхүүр тогтооход зориулсан бүлгийн параметр агуулдаг бөгөөд нэг ч RSA анхны тоо агуулдаггүй, том анхны тоо хэлбэрээр хэвлэгддэг ч. Хүчингүй болгох жагсаалт сертификатын төлөвийг нийтэлдэг бөгөөд хувийн зэрэглэл нуугдаж болох газар биш.

Тиймээс бүртгэлийн мөр бүр дөрвөн зүйлийг тэмдэглэх ёстой: объектын төрөл, эзэмшигч, зорилго, хувийн материал орсон эсэх. Сүүлчийн багана файлыг хаана хуулж болохыг шийддэг бөгөөд хүмүүсийн алгасдаг нь яг тэр багана.

Хослолыг тэмдэглээд, дараа нь гар барилтыг шалгана уу

Ямар нэг зүйлийг өөрчлөхөөс өмнө шалгалтын гаралтыг огноо, OpenSSL хувилбартай хамт хадгал. Тэгвэл дараагийн эргэлтийг ой санамжтай биш, нотолгоотой харьцуулж болно.

openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates

Нээлттэй түлхүүрийг харьцуулсны дараа хосыг хэрэглэдэг замаар яв: туннелийг өргө, сертификат тавигдаж, хүлээн авагдаж байгааг батал, гарц ямар таних мэдээллийг тэмдэглэснийг шалга. Түлхүүр, сертификат таарч байтал баталгаажуулалт бүтэхгүй бол алдаа нь хосд биш, итгэл, таних мэдээллийн зураглал эсвэл хандалтын бодлогод байна.

Буцаахын тулд өмнөх түлхүүр, сертификатыг огноотой хавтаст хадгалж, хоёуланг нь хамт сэргээ, хэзээ ч зөвхөн нэгийг нь биш. Сертификатгүй түлхүүр, түлхүүргүй сертификат гаднаас ижилхэн бүтэлгүйтдэг нь хагас сэргээсэн хосуудыг шөнийн хоёр цагт задлахад үнэтэй болгодог.

Холбоотой нийтлэлүүд