Wéi ee PKCS#11 URI brauch OpenConnect fir en Token?
OpenConnect wëll en PKCS#11 URI, deen d’Zertifikat an de Schlëssel vum Token nennt, net en exportéierte PEM. Fannt d’Objet, deen zur Aschreiwung passt, a setzt en an Uféierungszeechen.
Eng Smartkaart, déi de richtege Schlëssel schonn huet, muss trotzdem gesot kréien, wéi en Objet drop benotzt soll ginn. OpenConnect wëll an där Situatioun keng kopéiert .key-Datei; et wëll en PKCS#11 URI, deen d’Zertifikat nennt an, wann déi automatesch Sich d’Aarbecht net fäerdeg kritt, de private Schlëssel dernieft. Dat Onbequeem ass, datt en syntaktesch valabelen URI näischt beweist. En muss d’Aschreiwung nennen, déi den Gateway schonn traut, net just en Objet, dee d’Kaart bereet ass opzemaachen.
Wat de Client wëll amplaz vun engem exportéierte Schlëssel
D’-c-Optioun hëlt normalerweis e Dateipad, awer wann de Wäert als PKCS#11 URI geparst gëtt, behandelt OpenConnect en als Referenz op en Objet am Token an net op eng Datei um Disk. D’-k-Optioun verhält sech genee sou fir de private Schlëssel. Näischt gëtt exportéiert, an de Schlëssel verléisst ni de Schutz, deen d’Kaart bitt. Wat de Client vun Iech brauch, ass en Numm, iwwer deen den Tokenmodul, de Zertifikatsspäicher an d’Aschreiwung vum Gateway eens sinn.
Op där leschter Aschränkung bleiwen déi meeschte Versich stoe. En URI kann komplett gutt geformt sinn an trotzdem en Zertifikat auswielen, deen den Gateway refuséiert, well Gëltegkeet a Relevanz getrennte Froen sinn. D’Kontroll, déi sech lount, ass e Verglach mam Aschreiwungsrekord, net eng Sich nom éischten Objet, dee sech zoufälleg opmécht.
Zwee URI, zwee verschidde Aarbechten
Den URI vum Zertifikat beäntwert, wéi eng Identitéit Dir behaapt. En weist op en Zertifikatsobjet, deem säi ëffentlech Schlëssel an seng Sujjetlinn zum Kont- oder Apparatprofilt passen, deen de VPN-Administrator ausgestallt huet. Dee selwechten Zertifikat kënnt meeschtens mat engem private Schlësselobjet, deen dernieft gespäichert ass, a genee dës Pair brauch den TLS-Handshake wierklech.
Den URI vum Schlëssel beäntwert, wou de passende private Material läit, wann OpenConnect en net ofleede kann. Mat nëmmen -c gesat, baut de Client eng Schlësselsich aus den Zertifikatseigenschaften; -k uginn ersetzt d’Vermuddung duerch eng explizit Objetreferenz. D’PIN vum Token ass en drëtten, onverbonnen Input: en entspaart d’Kaart fir d’Operatioun, an en identifizéiert ni en Objet.
openconnect --protocol=anyconnect \
-c 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=1a2b3c4d;id=%01' \
vpn.example.net
Alles an där ugeféierter Zeecheketten sinn Daten. D’Semikolone trennen d’URI-Attributer an d’Prozent-Escapes kodéieren Zeechen, déi soss d’Parséierung géife briechen, dofir muss dat ganzt Argument d’Shell onversehrt iwwerstoen.
Den URI fannen, deen zu Ärer Aschreiwung passt
GnuTLS liwwert p11tool, deen oplëscht, wat dee momentanen Notzer iwwer p11-kit wierklech erreeche kann. Fänkt mat p11tool --list-tokens un a lëscht dann d’Zertifikatsobjeten um Token, deen Iech interesséiert. Setzt --login derbäi, wann d’Objete just no enger PIN erschéngen, a vergläicht de Sujet an den Aussteller mam Aschreiwungsrekord, amplaz dat ze huelen, wat als éischt erschéngt.
Wann den Token iwwerhaapt net erschéngt, läit de Problem ënner OpenConnect: p11-kit huet kee Modul fir dee Middleware registréiert, oder de Modul ass fir en anere Kont registréiert. D’Registréierung um Systemniveau läit ënner /etc/pkcs11/modules, an en Dossier pro Notzer kann dat selwecht halen, ouni d’Systemkopie ze beréieren. Kuckt no, ob de Providerpad an der Moduldatei op eng Bibliothéik weist, déi d’Software vum Lieser wierklech installéiert huet.
Wann Dir den URI aus der Lëscht kopéiert, behält d’Uféierungszeechen drëm. Semikolone ouni Uféierungszeechen schneiden dat Argument beim éischten Attribut of an de Client mellt dann en Objet, deen en net fënnt.
Wann déi automatesch Schlësselsich opgëtt
OpenConnect kann aus dem Zertifikats-URI eng Schlësselsich ofleeden, awer déi genee Iwwereneestëmmung, déi en ausféiert, hänkt vun der Versioun of, an den Ëmgang mat Objettyp a Label huet sech mat der Zäit geännert. Den Rot, den URI ze verkierzen bis en funktionéiert, beschreift en ale Wee ronderëm, keng Fuerderung. Wann déi ofgeleet Sich feelt, nennt de Schlëssel ausdrécklech mat -k, amplaz den Zertifikats-URI an eppes méi Onkloers ëmzebauen.
Bestätegt mat p11tool --list-keys, datt de Schlëssel existéiert a sichtbar ass, ier Dir de Client beschëllegt. Kuckt duerno no, ob den Objet als notzbar fir Ënnerschrëft oder Decryptéierung markéiert ass, well e Schlëssel, deen mat falschen Attributer erstallt gouf, keen Handshake fäerdeg kritt, esou korrekt wéi den URI och ass. Transplantiert kee serialiséierten pkcs11-id-Wäert aus engem OpenVPN-Profil an eng OpenConnect-Optioun; déi zwee Cliente benotzen ënnerschiddlech Identifikatorformater, och wann se mat därselwechter Kaart schwätzen.
Wann den URI sech opléist an d’PIN akzeptéiert gëtt, awer d’Authentifizéierung nach ëmmer feelt, stoppt d’URI-Ajustéieren. Liest de Feeler vum Gateway selwer, well deen nächsten Ausfall iwwer dem Token läit.
Feeler, déi just wéi URI-Problemer ausgesinn
En Gateway, deen en anere Protokoll schwätzt, wäert identesch feelen, egal ob Ären URI richteg oder falsch ass. OpenConnect huet den ale vpnc-Client aus engem Grond ersat, an d’Kaartenënnerstëtzung mécht en inkompatibelen Gatewayprotokoll net kompatibel. Bestätegt dee vum Server erwaarten Protokoll an d’Authentifizéierungsarrangement, ier Dir eng weider Stonn an Objeteigenschaften steckt.
D’Validéierung vun der Server-Identitéit ass och eng separat Couche. De Client verifizéiert den Zertifikat vum Gateway géint säi Vertrauensspäicher, an déi Kontroll leeft, nodeems d’Kaart hire Deel schonn erleedegt huet. Lieserberechtegungen an en gestoppte pcscd-Service produzéieren déiselwecht äusserlech Symptom, en onliesbaren Token, mat enger vill méi einfacher Léisung.
Schafft vum Objet no baussen: gesäit p11tool den Token, gesäit et den Zertifikat an de Schlëssel, akzeptéiert OpenConnect den URI, a freet eréischt dann, ob den Gateway d’Identitéit akzeptéiert. All Schrëtt huet seng eege Feelermeldung, an all een ass méi bëlleg ze testen wéi déi nächst.