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

Нэг солилт, хоёр тусдаа өөрчлөлт

Гэрчилгээ олгогч гэдэг нь нэр, нийтийн түлхүүр ба гарын үсэг зурдаг хувийн түлхүүр юм. Баталгаажуулагчид «CA»-д хийсвэр байдлаар хэзээ ч итгэдэггүй. Тэд итгэлийн санд аль хэдийн байгаа нэг тодорхой гэрчилгээнд итгэдэг бөгөөд гарын үсгийн гинжин хэлхээ тэр хадгалсан хувьд хүрсэн тохиолдолд л олгогчийг хүлээж авдаг. Тиймээс CA-г солих нь бие биеэс хамааралгүйгээр бүтэлгүйтдэг хоёр зүйлийг өөрчилдөг: аль зангууг хүлээж авах, тэдний дор аль түншийн ирээдүйн байдал олгогдсон.

Ихэнх VPN-ийн байршуулалт хоёр чиглэлд баталгаажуулдаг. Клиент гарцын гэрчилгээг, гарц клиентийн гэрчилгээг баталгаажуулна. Зөвхөн клиентийн багцыг шинэчилдэг солилт нь серверийг хуучин CA-ийн ирээдүйн байдлыг үргэлжлүүлэн үзүүлж буй клиент бүрийг татгалзахыг үлдээнэ, эсрэг нь ч мөн адил түгээмэл. Эхлээд хэрэгжүүлэх цэгүүдийг жагсаа: клиентүүдийн итгэлийн сан, гарцын ca файл, түүний өмнө TLS-ийг дуусгадаг аливаа прокси, гаднаас төгсгөлийн цэгийг шалгадаг зонд.

Баталгаажуулагч юуг шалгадаг, дарааллаар

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

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

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

Тэр команд нь гарцын HTTPS удирдлагын хуудас мэт энгийн TLS сонсогчийн эсрэг л ажиллана; OpenVPN-ийн удирдлагын суваг TLS-ээс өмнө ирдэг тул s_client туннелийн гар барилтыг шалгаж чадахгүй.

Тэдгээр алдааны ард байх зам бүтээх дүрмүүд RFC 5280 6-р хэсэг-т байна. Тэд өөрөөр дур зоргоороо мэт харагдах бүтэлгүйтлийг тайлбарлана: хэн ч санаанд оруулаагүй хугацаа дууссан завсрын гэрчилгээ, түлхүүрийн хэрэглээ нь гарын үсэг зурахыг хориглодог гэрчилгээ, эсвэл таны шалгаж буй хост-ыг хасаж буй нэрийн хязгаарлалт.

Хуучин туннель яагаад ажилласаар байдаг

TLS ба OpenVPN хоёулаа гар барилт дууссаны дараа тогтоосон сессийг амьд байлгадаг. Пакет бүрд түншийн гэрчилгээг дахин баталгаажуулдаг зүйл байхгүй тул өөрчлөлтөөс өмнө холбогдсон клиент дахин хэлэлцэх, дахин холбогдох эсвэл туннель унах хүртэл урсгалыг үргэлжлүүлэн дамжуулна. Яг энэ завсарлага CA-г солих нь нэг цаг сайн харагдаад хамгийн муу мөчид бүтэлгүйтэх шалтгаан: зөөврийн компьютер унталсаас сэрдэг, NAT-ийн буулгалт дуусдаг, гарц дахин ачаална.

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

Статик түлхүүрийн давхаргыг үүнээс тусад нь бариарай. tls-auth удирдлагын сувагт HMAC нэмдэг, tls-crypt түүнийг шифрлэж баталгаажуулна, аль нь ч гэрчилгээний материал зөөдөггүй тул аль нэгний нь эргэлт нь өөрийн гэсэн бүтэлгүйтлийн горимтой тусдаа өөрчлөлт юм. Хоёулыг хольдог байршуулалтууд статик түлхүүр нь хэвийн, гэрчилгээ нь хуучирсан, алдааны мэдээлэл нь аль нэгийг ч дурдаагүй клиентэд хүрдэг.

Субьектийн нэрийг дахин ашиглах урхи

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

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

Сүлжээг унагадаггүй эргэлт

Төлөвлөсөн солилтын хувьд нэг алхамаар солихын оронд хязгаарлагдмал хугацаанд хоёр зангууг хүлээж ав. Шинэ CA ба түүний завсрын гэрчилгээг олгож, шинэ зангууг хуучинтай зэрэгцүүлэн баталгаажуулагч бүрийн багцад хий, дараа нь л түүнээс түншийн гэрчилгээ олгож эхэл. Хуучин ирээдүйн байдалтай түншүүд хуучин зангуугаар баталгаажина; шинэ нь шинэ зангуугаар ажиллана.

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

Эсрэг чиглэлдээ хасаарай. Амьд үлдэх ёстой ирээдүйн байдал бүрийг дахин олгож, тус бүр шинэ гинжийг үзүүлж байгааг батал, дараа нь багцуудаас хуучин зангууг ав. Хуучин CA-ийн хувийн түлхүүрийг үйлчилгээнээс гарга, учир нь гарын үсэг зурж чаддаг олгогч үлдсэн бол эргэлт дуусаагүй гэсэн үг. Гэрчилгээ ба олголтын бүртгэлийг аудитад хадгал. Алдагдсан олгогч ижил итгэлд сэргээгдэнэ; ил болсон бол шинэ ирээдүйн байдал шаардагдана, хуучин зангуу руу буцах боломжгүй.

Файлын жагсаалт биш, үр дүнг шалга

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

Шинэ ирээдүйн байдалтай шинэ холболт амжилттай болохыг батал, дараа нь хасагдсан CA-ийн олгосон ирээдүйн байдал татгалзагдахыг батал. Хүмүүсийн алгасдаг нь тэр хоёр дахь шалгалт бөгөөд хуучин байгууллага цаашид нэвтрэх эрх өгөхгүй гэдгийг харуулах цорын ганц шалгалт. Байршуулалт CRL эсвэл OCSP-д тулгуурладаг бол шинэ гэрчилгээнүүд дэх түгээлтийн цэгүүд шийдэгдэж, асууж буй түншүүд хариулагч руу хүрч чадах эсэхийг шалга.

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

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