Certifikat kan betraktas som ett “identitetsbevis”. Det innehåller en offentlig krypteringsnyckel + viss meta-data som är undertecknade av en CA. Signaturen kan verifieras genom CA-certifikatet (som i grunden är ett "identitetsbevis för den certifierande myndigheten "). Och du kan ha en certifikatkedja, om under-CAs är involverade - vilket är i stort sett hur webben fungerar.
I OpenVPN-sammanhang används ett klientcertifikat för att identifiera klienten för servern. På ett sätt kan användarnamn/lösenordautentisering faktiskt betraktas som en svagare form av klientautentisering _OM_ klientens privata nyckel är väl skyddad; vilket vanligtvis innebär att den lagras i en “certifikatsbutik” skyddad av operativsystemet eller på en hårdvaratoken (“smartcards”, nitrokey, yubikey, etc).
För de flesta webbplatser med centraliserad användarautentisering (LDAP, Kerberos, SAML/OAuth, etc), är detta generellt tillräckligt för VPN-klientautentisering. I dessa fall ger klientcertifikatet utöver den centraliserade användarautentiseringen inte mycket högre säkerhet.
Om du bara har användarnamn/lösenord-autentisering mot en lokal databas som inte blockerar inloggningsförsök baserat på misslyckade inloggningar och inte implementerar MFA, förbättrar klientcertifikat den övergripande säkerheten för VPN-anslutningen.
Vissa platser kan också tillhandahålla ett oberoende certifikat per enhet kopplat till användarnamn/lösenord-autentisering. Om en enhet förloras kan certifikatets utgivning för den enheten återkallas och det bör inte vara möjligt att ansluta med det certifikatet igen (så länge OpenVPN-servern får timely CRL - Certifikatsåterkallelse- listuppdateringar).
Men som du kan se, handlar detta om olika sätt för klientautentisering.
När autentisering och auktorisering i anslutningsuppsättningen är klar, utbyts en tillfällig sessionsnyckel (detta är där Diffie Hellman och relaterade algoritmer kommer in i bilden) och en krypteringsnyckel härleds (vilket involverar PRF-algoritmer). Denna nyckel används sedan för att kryptera nätverkstrafiken som passar över VPN-anslutningen. Och denna nyckel förhandlas om regelbundet (standard: var 60:e minut). Denna del av trafiken passerar i det som kallas datapunkten i OpenVPN-anslutningen, och den ändras inte alls oavsett om du använder klientcertifikat eller inte.
Byte av klient- och servercertifikat görs med TLS-protokollet över OpenVPN-anslutningen i det vi kallar " kontrollkanalen". Servercertifikatet skickas alltid, men klientcertifikatet är valfritt. Och det är denna kontrollkanal som också används för att överföra användarnamn/lösenord (efter att TLS-sessionen har etablerats korrekt), utöver nätverkskonfiguration, rutter, etc. När du inte använder klientcertifikat är TLS-handskaken lite annorlunda - men datan som överförs över TLS-sessionen i Kontrollkanalen är inte svagare eller starkare oavsett om du använder klientcertifikat eller inte. Klientcertifikat ger bara servern möjlighet att acceptera eller avvisa anslutningen i ett tidigare skede av anslutningsuppsättningen.