Vanliga frågor och svar
Varför är det så viktigt att ett certifikat lagras korrekt på VPN-gatewayen?
Ett certifikat är som ett identitetsdokument, man skickar det till motparten för att bevisa sin behörighet eller bekräfta sin identitet. Men eftersom vem som helst kan skapa ett certifikat med valfritt innehåll på sin dator är det viktigt att en betrodd CA (Certificate Authority) bekräftar informationen i certifikatet genom att signera det. Detta förhindrar också att certifikatet ändras i efterhand. Ett CA-certifikat behövs bara för att senare kunna kontrollera giltigheten av denna signatur och se vilken CA som ansvarar för dessa uppgifter, så att jag kan avgöra om jag vill lita på denna CA.
Varje certifikat har en privat nyckel. Denna fungerar som ett bevis på att man är ägaren till certifikatet eller behörig att identifiera sig med detta certifikat, eftersom endast behöriga personer någonsin får ha tillgång till den privata nyckeln, medan certifikatet kan vara tillgängligt för alla och ofta är det. Så jag kan enkelt få tag på ett certifikat från vilken webbserver eller OpenVPN-gateway som helst, eftersom båda skickar mig certifikatet automatiskt när jag försöker ansluta till dem, men utan en privat nyckel kan jag inte identifiera mig med certifikatet.
Om en angripare vill låtsas vara en viss OpenVPN-gateway, t.ex. för att stjäla användarnas lösenord, måste han sätta upp sin egen OpenVPN-gateway och omdirigera sitt offers datatrafik ditåt, vilket båda är fullt möjligt. Men då har han ett problem: Han måste också bevisa att han är den korrekta gatewayen. Om klienten inte kontrollerar om gatewayens adress finns i certifikatet kan han helt enkelt använda ett användarcertifikat från en VPN-användare, eftersom även detta är signerat med samma CA som gatewaycertifikatet.
Det är mycket lättare att få tag på ett användarcertifikat och dess privata nyckel än gatewaycertifikatet.
För att få tag på gatewaycertifikatet måste man hacka sig direkt in i gatewayen, men om jag har obegränsad tillgång till gatewayen behöver jag inte längre certifikatet, eftersom jag då kan avlyssna lösenord direkt vid gatewayen och omedelbart få fullständig åtkomst till alla privata nätverk bakom den.
Gateways är naturligtvis konstruerade för att vara så svåra att attackera som möjligt, i motsats till användarnas arbetsdatorer, där det är mycket lättare att smyga in en trojan. Och det är ännu enklare om en VPN-användare själv vill agera hacker, eftersom han regelbundet har tillgång till ett giltigt användarcertifikat inklusive matchande privat nyckel och därmed kan få tag på andra användares lösenord, vilket eventuellt kan ge honom omfattande åtkomsträttigheter, eftersom lösenord ofta hanteras centralt och därför samma lösenord också används för andra företagstjänster.
Därför räcker det inte att ett certifikat är giltigt och signerat med lämplig CA, det måste också säkerställas att gatewaycertifikatet verkligen är gatewaycertifikatet och även matchar den gateway du pratar med just nu, annars undermineras hela säkerhetskonceptet för certifikat.