Зөв түлхүүрийг аль хэдийн агуулсан ухаалаг картанд ч дээр нь аль объектыг ашиглахыг хэлэх шаардлагатай. OpenConnect ийм нөхцөлд хуулсан .key файлыг хүсэхгүй; тэрээр гэрчилгээг нэрлэсэн PKCS#11 URI, автомат хайлт ажлыг дуусгаж чадахгүй үед хажууд байгаа хувийн түлхүүрийг хүсдэг. Хэцүү хэсэг нь синтаксийн хувьд хүчинтэй URI юуг ч батлахгүй. Энэ нь карт нээхэд бэлэн объектыг бус гарц аль хэдийн итгэдэг бүртгэлийг нэрлэх ёстой.

Клиент экспортолсон түлхүүрийн оронд юу хүсдэг вэ

-c сонголт ихэвчлэн файлын замыг авдаг боловч утгыг PKCS#11 URI гэж задлан шинжилбэл, OpenConnect үүнийг диск дээрх файл руу биш, токен доторх объект руу заасан лавлагаа гэж үзнэ. -k сонголт хувийн түлхүүрийн хувьд мөн адил ажиллана. Юу ч экспортлогдохгүй бөгөөд түлхүүр картын өгдөг хамгаалалтыг хэзээ ч орхихгүй. Клиент танаас токены модуль, гэрчилгээний агуулах, гарцын бүртгэл бүгд санал нийлэх нэрийг хүсдэг.

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

Хоёр URI, хоёр өөр ажил

Гэрчилгээний URI нь та ямар таних тэмдэг шаардаж байгаад хариулна. Энэ нь нийтийн түлхүүр, субьектийн мөр нь VPN администраторын олгосон бүртгэл эсвэл төхөөрөмжийн профайлтай тохирох гэрчилгээний объектыг заана. Мөн энэ гэрчилгээ ихэвчлэн хажууд хадгалагдсан хувийн түлхүүрийн объекттой хамт ирдэг бөгөөд TLS гар барилтад яг энэ хос хэрэгтэй.

Түлхүүрийн URI нь OpenConnect үүнийг дүгнэж чадахгүй үед харгалзах хувийн материал хаана байгаад хариулна. Зөвхөн -c тохируулсан үед клиент гэрчилгээний шинж чанараас түлхүүрийн хайлт байгуулна; -k өгөх нь таамаглалыг тодорхой объектын лавлагаагаар солино. Токены PIN нь гурав дахь, холбоогүй оролт юм: энэ нь үйлдлийн төлөө картыг онгойлгодог бөгөөд хэзээ ч объектыг тодорхойлохгүй.

openconnect --protocol=anyconnect \
  -c 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=1a2b3c4d;id=%01' \
  vpn.example.net

Тэр иш татсан мөрөнд байгаа бүхэн өгөгдөл юм. Цэг таслалууд URI-ийн шинж чанаруудыг тусгаарлаж, хувь хэмжээний escape-үүд нь задлан шинжилгээг эвдэх тэмдэгтүүдийг кодчилдог тул бүх аргумент бүрхүүлээс гэмтэлгүй гарах ёстой.

Таны бүртгэлд тохирох URI-г олох

GnuTLS-тэй хамт p11tool ирдэг бөгөөд одоогийн хэрэглэгч p11-kit-ээр дамжуулан юунд үнэхээр хүрч чадахыг жагсаадаг. p11tool --list-tokens-оор эхэлж, дараа нь танай сонирхолтой токен дээрх гэрчилгээний объектуудыг жагсаа. Объектууд PIN-ийн дараа л харагдвал --login нэмж, эхэнд харагдсаныг сонгохын оронд субьект болон олгогчийг бүртгэлийн бичтэй харьцуул.

Хэрэв токен огт харагдахгүй бол асуудал OpenConnect-оос доогуур байна: p11-kit-д тэр завсрын програм хангамжид бүртгэгдсэн модуль байхгүй, эсвэл модуль өөр бүртгэлд бүртгэгдсэн байна. Системийн түвшний бүртгэл /etc/pkcs11/modules-ийн дор байрладаг бөгөөд хэрэглэгч тутмын хавтас системийн хуулбарыг хөндөхгүйгээр мөн адил зүйлийг хадгалж болно. Модулийн файл дахь нийлүүлэгчийн зам нь уншигчийн програм хангамж үнэхээр суулгасан сан руу зааж байгаа эсэхийг шалга.

URI-г жагсаалтаас хуулахдаа түүнийг бүрхсэн хашилтыг хадгал. Хашилтгүй цэг таслалууд аргументыг эхний шинж чанар дээр тасалж, клиент олж чадахгүй объектын тухай мэдээлнэ.

Автомат түлхүүрийн хайлт бууж өгөх үед

OpenConnect гэрчилгээний URI-аас түлхүүрийн хайлт гаргаж чадна, гэхдээ түүний хийдэг нарийн тохирол нь хувилбараас хамаарах бөгөөд объектын төрөл болон шошгыг боловсруулах нь цаг хугацааны явцад өөрчлөгдсөн. Ажиллах хүртэл URI-г богиносго гэсэн зөвлөгөө нь хуучин тойрч гарах аргыг дүрсэлдэг, шаардлагыг биш. Гаргасан хайлт бүтэлгүйтвэл гэрчилгээний URI-г улам бүрхэг зүйл болгохын оронд түлхүүрийг -k-ээр тодорхой нэрлэ.

Клиентийг буруутгахын өмнө түлхүүр байгаа бөгөөд p11tool --list-keys-ээр харагдаж байгааг батал. Дараа нь объект гарын үсэг эсвэл тайлахад ашиглаж болохоор тэмдэглэгдсэн эсэхийг шалга, учир нь буруу шинж чанараар үүсгэсэн түлхүүр URI хичнээн зөв байсан ч гар барилтыг дуусгаж чадахгүй. OpenVPN профайлын цуваашуулсан pkcs11-id утгыг OpenConnect сонголт руу зөөж болохгүй; хоёр клиент нэг карттай ярьж байсан ч өөр өөр танигчийн формат хэрэглэдэг.

Хэрэв URI шийдэгдэж, PIN хүлээн авагдсан ч баталгаажуулалт бүтэлгүйтсээр байвал URI-г тааруулахаа зогсоо. Гарцын өөрийнх нь алдааг унш, учир нь дараагийн бүтэлгүйтэл токеноос дээгүүр байна.

Зөвхөн URI-ийн асуудал мэт харагдах бүтэлгүйтлүүд

Өөр протоколоор ярьдаг гарц таны URI зөв ч, буруу ч адилхан бүтэлгүйтнэ. OpenConnect хуучин vpnc клиентийг шалтгаанаар сольсон бөгөөд картын дэмжлэг тохиромжгүй гарцын протоколыг тохиромжтой болгодоггүй. Объектын шинж чанарт дахин нэг цаг зарцуулахын өмнө серверийн хүлээгдэж буй протокол, баталгаажуулалтын зохицуулалтыг батал.

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

Объектоос гадагш ажилла: p11tool токеныг харж байна уу, гэрчилгээ болон түлхүүрийг харж байна уу, OpenConnect URI-г хүлээн авч байна уу, тэгээд л гарц таних тэмдгийг хүлээн авч байна уу гэж асуу. Алхам бүр өөрийн алдааны мессежтэй бөгөөд алхам бүрийг дараагийнхаас хямд туршиж болно.

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