OpenVPN tls-crypt-v2: клиентийн түлхүүр ба ороосон blob юу хийдэг
tls-crypt-v2 профайл нь клиентийн хяналтын түлхүүр болон зөвхөн сервер нээж чадах ороосон хуулбарыг агуулдаг. Объект бүр болон буулгах алхам бүрийг тусдаа байлгаарай.
tls-crypt-v2 профайлыг тасалбарт наах нь файлд юу байгааг тоолох хүртэл хор хөнөөлгүй мэт харагдана. Клиентийн хяналтын сувгийн түлхүүр мөнөөх түлхүүрийн шифрлэсэн хуулбарын хажууд байрлаж, гурав дахь объект болох ороох түлхүүр нь хүлээн авагч серверээс хэзээ ч гарахгүй. Энэ гурав нь хадгалалт, хуваалцалт, буулгах тухай өөр өөр асуултад хариулна. Тэдгээрийг тусгаарлах нь ихэнх бодлогын маргааныг эхлэхээс өмнө шийддэг.
Профайл үнэндээ юу агуулдаг вэ
tls-crypt-v2-ын клиент тал нь түлхүүр ба түүний ороосон хуулбар юм. Клиент хяналтын сувгийг хамгаалахдаа энгийн түлхүүрийг ашиглаж, тохируулгын үед ороосон хуулбарыг серверт өгдөг тул сервер клиент бүрт тодорхойн хуулбар хадгалахгүйгээр мөнөөх түлхүүрийг сэргээдэг. Ороох түлхүүр нь тэр сэргээлтийг боломжтой болгож, зөвхөн хүлээн авагч талд хамаарна. Доорх бүхэн тэр гурван объект хаана амьдардаг вэ гэдгээс үүдэлтэй.
| 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 |
Хүснэгтийг нэрээр нь биш, хадгалалтаар нь унш, үр дагавар нь өөрөө ил болно. Ороох түлхүүрийг алдах нь үнэтэй үйл явдал, учир нь профайлд түүнийг дахин бүтээх юу ч байхгүй бөгөөд шударга сэргээлт нь бүлгийг дахин гаргах явдал. Алдагдсан профайл хямд боловч хамаагүй түгээмэл, учир нь ороосон хуулбар файлыг хуваалцахад аюулгүй болгодог гэж итгэсэн хүмүүс профайлыг тасалбарт наадаг. Хоёр бүтэлгүйтэл өөр хариу шаарддаг, иймээс объектуудыг тусдаа байлгадаг.
Яагаад ороосон хуулбар бүх түүх болохгүй вэ
Профайл нь хэрэглэгдэх клиентийн материалыг ороосон хосынхоо хамт зөөдөг тул серверт зориулсан хуулбарыг хамгаалах нь файлыг хамгаалах талаар юу ч хэлэхгүй. Blob дамжуулахад аюулгүй, нийтлэхэд аюулгүй бус. Доторх мета өгөгдөл нь blob хүлээн авсан хүн бүрт харагдана, түүнийг наасан тасалбарыг дараа унших хүнд ч мөн.
Профайлыг тохиргооны жишээ биш, итгэмжлэл гэж үз. Алдагдсан файл эзэмшигчид нь сервер тэр танихыг хүлээж авахаа болих хүртэл ажиллах клиентийн танихыг өгдөг, ороолт нь тэр цонхны талаар юу ч хийдэггүй. Клиент бүрд нэг профайл гаргаж, буулгах нь нэг файлын шийдвэр хэвээр байг, мөн ороох түлхүүрийн нөөц хуулбарыг түүнийг боломжтой болгож буй серверийн тохиргооноос тусдаа ав. Аль ч дадал эвдэрсэн профайлыг засахгүй, гэхдээ хоёулаа дараагийнхыг хэр хурдан хязгаарлахаас шийднэ.
Гар барилцаанд баталгаажуулах дэгээ хаана суудаг вэ
Баталгаажуулах дэгээ TLS стек нээгдэхээс өмнө ажилладаг бөгөөд түүний ажил нь ороосон blob-д зөөгдөж буй мета өгөгдлийг шалгах явдал. Тэр эдгээр мета өгөгдөл болон бага, баримтжуулсан орчныг хүлээн авдаг, нэвтрүүлэлтийн дэгээнээс ажиллах материал багатай. Хэрэглэгчийн нэр, сессийн төлөв эсвэл залгаасын хувьсагчийг харж чадна гэж таамаглах нь энэ дэгээг муу бичих нийтлэг арга. Өөр дэгээнээс хүлээлт зээлэхийн оронд дэгээний өөрийн гарын авлагын хэсгийг унш.
Түүний гарах төлөв нь шийдвэр: тэгээс ялгаатай үр дүн клиентийг татгалзаж, тэг үр дүн гар барилцлыг үргэлжлүүлэх боломж өгнө. Иймээс бодлого нь мета өгөгдөл дутуу, задлан шинжлэх боломжгүй эсвэл санамсаргүй үед юу болохыг хэлэх ёстой. Эхлээд татгалзах замыг бич, дараа нь аль утгууд хүлээн зөвшөөрөгдөхийг шийд.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shТэр хоёр мөр нь сервер дээрх бодлогын гадаргуу: нэг нь ороох түлхүүрийг нэрлэж, нөгөө нь клиент бүрийг үнэлдэг програмыг нэрлэнэ. Сонирхолтой бүхэн скрипт дотор амьдардаг бөгөөд бусад аливаа хандалтын дүрэм шиг хувилбарын хяналт, хяналт шалгалтад үнэ цэнэтэй.
Бүртгэл, гэрчилгээ, хяналтын түлхүүр тусдаа буулгагдана
Хяналтын сувгийг эрт хүлээн авах нь нэвтрүүлэлт биш, учир нь энэ нь TLS танихын шалгалтаас өмнө болон бүртгэлийн аливаа зөвшөөрлөөс өмнө болдог. Бүртгэлийг идэвхгүй болгох, гэрчилгээг цуцлах, клиентийн хяналтын түлхүүрээс татгалзах нь гурван механизмтай гурван үйлдэл юм. Зөвхөн нэгийг нь хийдэг байршуулалт бодлого биш, цоорхойтой. Гурвыг санаатайгаар уялдуулж, аль алхам аль эрх мэдлийг хэрэгжүүлж буйг бүртгэ.
Цаг хугацаа бол хоёр дахь ялгаа. Өөрчлөгдсөн хүлээн авах жагсаалт шинэ гар барилцаанд хамаарна, харин аль хэдийн тогтсон сессүүд ямар нэгэн зүйл тэднийг дуусгах хүртэл үргэлжилнэ. Шинэ жагсаалтын бичлэгүүдийг хуучин сессүүд дууссан гэдгийн нотолгоо болгон тоолох нь хасагдсан клиент хэдэн цагийн турш холбогдсон хэвээр байх арга юм.
Уялдуулаагүй эрх мэдэл практикт амархан олдох хоёр цоорхой үлдээдэг. Бүртгэл идэвхгүй байхад түүний хяналтын түлхүүр гар барилцлыг нээсээр байж болно, гэрчилгээ цуцлагдсан байхад мета өгөгдлийн бодлого мөнөөх клиентийг хүлээж авасар байж болно. Хоёулаа өөр газрын ижил алдаа, учир нь оператор нэг жагсаалтыг бүх эрх мэдэл гэж үзсэн. Хасах үед гурван жагсаалтыг хажуу хажууд тавь, алдаа ил болно.
Профайл гаргах ба буулгах
Гаргах нь хялбар хагас: хүлээн авагч талд клиентийн түлхүүр үүсгэ, профайлыг яг нэг эзэмшигчид өг, ороох материалыг хязгаартай байлга, хүлээн авагч сервер бүр дээр ижил баталгаажуулах програмыг ажиллуул. Хямд элсэлт нь бүх бүлгийн шинж, хамгийн шинэ хостынх биш. Хуучин эсвэл сул скрипттэй хоёр дахь сервер чимээгүйгээр байршуулалтын хамгийн сул зам болдог.
Буулгах нь гурван алхмыг санаатай дарааллаар шаарддаг. Шинэ гар барилцаа бүтэлгүй болохын тулд баталгаажуулах дэгээнд клиентийг татгалз, PKI ашиглаж байгаа бол гэрчилгээг нь цуцал, бүртгэлийг идэвхгүй болгож дараагийн зөвшөөрөлд зөвшөөрөх юу ч үлдэхгүй болго. Дараа нь хуучин хүлээн авалтын зөвшөөрсөн сессүүдийг дуусга, учир нь тэд гурвын алийг ч анзаарахгүй. Эвдэж болох клиент дээр дарааллыг давт.
Профайл дахь мета өгөгдөл нь тэр бодлогын оролт, хандалтын хяналт аль хэдийн байгаа гэдгийн нотолгоо биш. OpenVPN 2.6-ын дизайны баримт бичиг объектууд болон тэдний татсан хил хязгаарыг тайлбарладаг бол хэрэгжүүлэх нь операторт үлддэг.