et virtuelt privat netværk (VPN) krypterer alle data, når de rejser mellem din computer og en VPN-server. I denne komplette VPN-Krypteringsvejledning tager vi et detaljeret kig på, hvad kryptering er, og hvordan den bruges i VPN-forbindelser.
måske vigtigst af alt vil vi forklare den række krypteringsudtryk, der bruges af VPN-tjenester. Det er vores håb, at du efter at have læst gennem denne vejledning vil have en større forståelse af dette komplekse emne, og at du vil være bedre i stand til at vurdere de sikkerhedskrav, der er fremsat af VPN-udbydere.
- Preliminaries
- Hvad Er Kryptering?
- det grundlæggende
- Krypteringsnøglelængde
- Computerciphers
- Cipher nøglelængde
- perfekt Fremadhemmelighed
- VPN-krypteringsprotokoller
- PPTP
- PROS
- ulemper
- hvad er PPTP?
- L2TP / IPsec
- PROS
- ulemper
- hvad er L2TP og IPsec?
- SSTP
- fordele
- ulemper
- hvad er SSTP?
- IKEv2
- PROS
- ulemper
- hvad er IKEv2?
- OpenVPN
- PROS
- hvad er OpenVPN?
- OpenVPN kryptering
- Ciphers
- Blæsefisk
- AES
- Camellia
- Håndtrykskryptering
- RSA
- Diffie-Hellman og ECDH
- SHA Hash Authentication
- er SHA sikker?
- noter
- NIST
- AES-CBC vs AES-GCM
- OpenVPN UDP vs. OpenVPN TCP
- Besejr censur med OpenVPN på TCP-Port 443
- Resume
- VPN-protokoller
- OpenVPN-kryptering
- konklusion
Preliminaries
hvis du er usikker på, hvad en VPN er, og hvad man kan gøre for dig, kan du tjekke vores VPN ‘ er til Begyndervejledning.
vores mål er at præsentere nøglefunktionerne i VPN-kryptering på så enkle vilkår som muligt. Selvom der ikke er nogen at komme væk, fra det faktum, at kryptering er et komplekst emne.
hvis selv udtrykket kryptering får dine øjne til at begynde at glasere over, men du stadig vil vide, hvad du skal passe på i en god VPN-tjeneste, kan du springe direkte til oversigter ved hjælp af indholdsfortegnelsen.
Hvad Er Kryptering?
“Begynd i begyndelsen,” sagde Kongen meget alvorligt, ” og fortsæt, indtil du kommer til slutningen: så stop.”
Levis Carroll, Alice i Eventyrland
den enkleste analogi er, at kryptering er en lås. Hvis du har den rigtige nøgle, er låsen let at åbne. Hvis nogen ikke har den rigtige nøgle, men ønsker at få adgang til indholdet af en stærk boks (det vil sige dine data) beskyttet af den lås, kan de prøve at bryde låsen.
på samme måde som låsen, der sikrer en bankhvelv, er stærkere end den, der sikrer en kuffert, er en vis kryptering stærkere end anden kryptering.
hvis du vil have en VPN med den stærkeste kryptering, så tjek vores mest sikre VPN-liste for mere information.
det grundlæggende
da du var barn, spillede du nogensinde spillet, hvor du oprettede en “hemmelig besked” ved at erstatte et bogstav i meddelelsen med et andet? Udskiftningen blev foretaget i henhold til en formel valgt af dig.
du kan for eksempel have erstattet hvert bogstav i den oprindelige meddelelse med et tre bogstaver bag det i alfabetet. Hvis nogen anden vidste, hvad denne formel var, eller var i stand til at finde ud af det, så ville de være i stand til at læse din “hemmelige besked.”
i kryptografisk jargon var det, du gjorde, at “kryptere” meddelelsen (data) i henhold til en meget enkel matematisk algoritme. Kryptografer henviser til denne formel som en “cipher.”For at dekryptere det har du brug for nøglen. Dette er en variabel parameter, der bestemmer den endelige output af chifferet. Uden denne parameter er det umuligt at dekryptere krypteringen.
hvis nogen vil læse en krypteret besked, men ikke har nøglen, skal de forsøge at “knække” chifferet. Når krypteringen bruger en simpel bogstav substitution cipher, revner det er nemt. Krypteringen kan dog gøres mere sikker ved at gøre den matematiske algoritme (krypteringen) mere kompleks.
du kan for eksempel erstatte hvert tredje bogstav i meddelelsen med et tal svarende til brevet.
Krypteringsnøglelængde
moderne computercifre er meget komplekse algoritmer. Selv ved hjælp af supercomputere er disse meget vanskelige at knække, hvis ikke umulige til alle praktiske formål. Den råeste måde at måle styrken af en chiffer på er kompleksiteten af den algoritme, der bruges til at oprette den.
jo mere kompleks algoritmen er, desto sværere er krypteringen at knække ved hjælp af det, vi kalder et brute force-angreb.
et brute force-angreb, hvis en meget primitiv form for angreb er (også kendt som en udtømmende nøglesøgning), der dybest set involverer at prøve enhver kombination af tal, der er mulig, indtil den korrekte nøgle findes.
computere udfører alle beregninger ved hjælp af binære tal: nuller og dem. Kompleksiteten af en chiffer afhænger af dens nøglestørrelse i bits – det rå antal og nuller, der er nødvendige for at udtrykke sin algoritme, hvor hver nul eller en er repræsenteret af en enkelt bit.
dette er kendt som nøglelængden og repræsenterer også den praktiske gennemførlighed af med succes at udføre et brute force-angreb på en given kryptering.
antallet af mulige kombinationer (og derfor vanskeligheden med at brute tvinge dem) øges eksponentielt med nøglestørrelse. Brug af AES-krypteringen (se senere):
for at sætte dette i perspektiv:
- i 2011 var den hurtigste supercomputer i ordet Fujitsu K. Dette var i stand til en rmaks-tophastighed på 10,51 petaflops. Baseret på dette tal ville det tage Fujitsu K 1,02 gange 10^18 – omkring en milliard Milliarder (en kvintillion) år at knække en 128 – bit AES (Advanced Encryption Standard) nøgle med magt. Dette er ældre end universets alder (13,75 milliarder år).
- den mest magtfulde supercomputer i verden nu (2017) er Solvej TaihuLight i Kina. Dette dyr er i stand til en tophastighed på 93,02 petaflops. Det betyder, at den mest magtfulde computer i verden stadig vil tage omkring 885 kvadrillion år at brute force en 128-bit AES-nøgle.
- antallet af operationer, der kræves for at brute force en 256-bit kryptering, er 3,31 gange 10^56. Dette er stort set lig med antallet af atomer i universet!
Computerciphers
mens krypteringsnøglelængde refererer til mængden af involverede rå tal, er cifre matematikken – de faktiske formler eller algoritmer – der bruges til at udføre krypteringen. Som vi lige har set, er brute tvinger moderne computer ciphers vildt upraktisk.
det er svagheder (undertiden bevidst) i disse krypteringsalgoritmer, der kan føre til, at kryptering brydes. Dette skyldes, at output fra den (dårligt designede) kryptering stadig kan afsløre en vis struktur fra de originale oplysninger før kryptering. Dette skaber et reduceret sæt mulige kombinationer at prøve, hvilket faktisk reducerer den effektive nøglelængde.
Blæsefiskens kryptering er for eksempel sårbar over for et angreb, der udnytter matematikken bag fødselsdagsproblemet i sandsynlighedsteori. Undersøgelsen af svagheder i kryptografiske algoritmer er kendt som kryptoanalyse.
længere nøglelængder kompenserer for sådanne svagheder, da de i høj grad øger antallet af mulige resultater.
i stedet for at angribe selve krypteringen kan en modstander angribe selve nøglen. Dette kan påvirke et bestemt sted eller et bestemt produkt. Men sikkerheden ved krypteringsalgoritmen er stadig intakt, og andre systemer, der bruger den samme algoritme, men har en sikker generation af nøgler, påvirkes ikke af pausen.
Cipher nøglelængde
hvor stærk en cipher er afhænger af både matematikken i selve chifferet plus dens nøglelængde som udtrykt i bits. Af denne grund beskrives cifre normalt sammen med den anvendte nøglelængde.
så AES-256 (AES-krypteringen med en 256-bit nøglelængde) betragtes normalt som stærkere end AES-128. Bemærk, at jeg siger normalt, fordi vi har at gøre med meget kompleks matematik her (se mine noter om AES senere).
det er vigtigt at bemærke, at nøglelængden alene ikke er en god indikator for en ciffers styrke. Det er kombinationen af nøglelængde og kryptering, der betyder noget. Cifre, der bruges til asymmetrisk kryptering, bruger for eksempel meget længere nøglestørrelser end dem, der bruges til symmetrisk kryptering for at give den tilsvarende beskyttelse.
denne tabel er lidt forældet, da den ikke tager hensyn til nyere angreb, der er blevet opdaget på RSA. Det er også værd at bemærke, at den elliptiske kurve og Diffie-Hellman varianter af RSA er meget stærkere end traditionelle. Men forhåbentlig får du ideen.
en ting at bemærke er, at jo højere nøglelængde, jo mere beregning involveret, så jo mere processorkraft er nødvendig. Dette påvirker den hastighed, hvormed data kan krypteres og dekrypteres. VPN-udbydere og lignende skal derfor beslutte, hvordan man bedst balancerer sikkerhed vs. praktisk brugervenlighed, når man vælger krypteringsordninger. Der er nogle VPN-udbydere, der har formået at finde denne fine balance godt. For mere information, se vores hurtige VPN-guide.
vi diskuterer de vigtigste cifre, der bruges af forskellige VPN-protokoller lidt senere, men de mest almindelige cifre, som du sandsynligvis vil støde på, er Blæsefisk og AES. Ud over dette bruges RSA til at kryptere og dekryptere en krypterings nøgler, og SHA-1 eller SHA-2 bruges som hash-funktion til at godkende data.
asymmetrisk kryptering
perfekt Fremadhemmelighed
perfekt Fremadhemmelighed (PFS) kaldes også brug af flygtige krypteringsnøgler eller bare Fremadhemmelighed (FS) af dem, der er ubehagelige med at bruge ordet “perfekt.”
mest moderne sikker online kommunikation er afhængig af SSL/TLS. Det bruges af HTTPS hjemmesider og OpenVPN protokollen. TLS (Transport Layer Security) er en asymmetrisk krypteringsprotokol. Brug af en asymmetrisk kryptering betyder, at data sikres ved hjælp af en offentlig nøgle, som stilles til rådighed for alle. Det kan dog kun dekrypteres af en tilsigtet modtager, der har den korrekte private nøgle.
denne private nøgle skal holdes hemmelig. Hvis den bliver stjålet eller revnet af en modstander, kan denne modstander let opfange og læse enhver kommunikation, der er sikret af den.
Desværre er det almindeligt, at servere eller endda hele virksomheder kun bruger en privat krypteringsnøgle til at sikre al kommunikation. Hvorfor? Fordi det er nemt. Men hvis denne nøgle er kompromitteret, kan en angriber få adgang til al kommunikation krypteret med den.
denne private krypteringsnøgle bliver derfor en “hovednøgle”, der kan bruges til at låse op for al kommunikation med en server eller virksomhed. NSA er kendt for at have udnyttet denne svaghed for at indsamle store bunker af angiveligt sikre data.
løsningen er perfekt fremad hemmeligholdelse. Dette er et system, hvor en ny og unik privat krypteringsnøgle genereres for hver session. Det er en simpel ide, selvom Diffie-Hellman-udvekslingsmatematik er kompleks. Det betyder, at hver TLS-session har sit eget sæt nøgler. Derfor er udtrykket” efemere nøgler ” – de bruges en gang og forsvinder derefter.
der er derfor ingen “hovednøgle”, der kan udnyttes. Selvom en session er kompromitteret, er det kun den session, der er kompromitteret – ikke alle de andre sessioner, som nogen har med den server eller virksomhed!
selvom det er usædvanligt, er det endda muligt at opdatere PFS-nøgler inden for en session (for eksempel hver time). Dette begrænser yderligere mængden af data, der kan opfanges af en modstander, selvom en privat nøgle er kompromitteret.
da jeg skrev denne artikel om emnet for et par år siden, brug af perfekt fremad hemmeligholdelse for både HTTPS hjemmesider og OpenVPN forbindelser var sørgeligt sjældne. Heldigvis har denne situation ændret sig noget. Selvom det på ingen måde er universelt, er brugen af flygtige nøgler stærkt steget for sent.
VPN-krypteringsprotokoller
en VPN-protokol er det sæt instruktioner (mekanisme), der bruges til at forhandle en sikker krypteret forbindelse mellem to computere. En række af sådanne VPN-protokoller understøttes almindeligvis af kommercielle VPN-tjenester. De mest bemærkelsesværdige af disse er PPTP, L2TP/IPSec, OpenVPN, SSTP og IKEv2.
jeg ser på hver af disse nedenfor, men OpenVPN er nu branchens standard VPN – protokol, der bruges af kommercielle VPN-tjenester-med god grund. Det er meget sikkert og kan bruges på næsten alle VPN-kompatible enheder. Jeg vil derfor bruge yderligere digital blæk på at diskutere OpenVPN i detaljer.
PPTP
PROS
- klient indbygget til næsten alle platforme
- meget let at oprette
ulemper
- meget usikker
- absolut kompromitteret af de NSA
- let blokeret
hvad er PPTP?
det er kun en VPN-protokol og er afhængig af forskellige godkendelsesmetoder for at give sikkerhed. Blandt kommercielle VPN-udbydere er dette næsten altid MS-CHAP v2. Krypteringsprotokollen (svarende til en standardciffer), der bruges af PPTP, er Microsoft Point-to-Point-kryptering (mppe).
Point-to-Point Tunneling Protocol (PPTP) blev udviklet af et konsortium grundlagt af Microsoft til oprettelse af VPN via opkaldsnetværk. Som sådan har PPTP længe været standardprotokollen for virksomhedens VPN-netværk.
PPTP er tilgængelig som standard på næsten alle VPN-kompatible platforme og enheder. Det er nemt at sætte op, uden at det er nødvendigt at installere ekstra programmer. Dette sikrer, at PPTP forbliver et populært valg både for forretnings-VPN ‘ er og kommercielle VPN-tjenester.
det har også den fordel, at det kræver en lav beregningsmæssig overhead at implementere… så det er hurtigt!
Desværre er PPTP ikke sikker. Overhovedet. Selvom nu normalt kun findes ved hjælp af 128-bit krypteringsnøgler, i årene siden det først blev bundtet med vinduer 95 OSR2 tilbage i 1999, en række sikkerhedssårbarheder er kommet frem.
den mest alvorlige af disse er muligheden for ikke-indkapslet MS-CHAP v2-godkendelse. Ved hjælp af denne udnyttelse er PPTP blevet revnet inden for to dage. Microsoft har lappet fejlen, men har selv udsendt en anbefaling om at bruge L2TP/IPsec eller SSTP i stedet.
det bør ikke komme som nogen overraskelse, at NSA næsten helt sikkert dekrypterer PPTP-krypteret kommunikation som standard. Endnu mere bekymrende er, at NSA indsamlede store mængder ældre data, der blev krypteret tilbage, da PPTP blev betragtet som sikker. Det kan næsten helt sikkert dekryptere denne arv data samt.
PPTP kræver både TCP-port 1723 og GRE-protokollen. Det er let at affyre GRE, hvilket gør det nemt at blokere PPTP-forbindelser.
L2TP / IPsec
PROS
- normalt betragtes som sikker
- let at oprette
- tilgængelig på alle moderne platforme
- hurtigere end OpenVPN (måske)
ulemper
- kan blive kompromitteret af NSA (uprøvet)
- sandsynligvis bevidst svækket af NSA (uprøvet)
- kan kæmpe med restriktive brandvægge
- ofte implementeret Dårligt
hvad er L2TP og IPsec?
Layer 2 Tunneling Protocol (L2TP) er indbygget i næsten alle moderne operativsystemer og VPN-kompatible enheder. Det er derfor lige så nemt og hurtigt at konfigurere som PPTP.
på egen hånd giver L2TP ingen kryptering eller fortrolighed til trafik, der passerer gennem den, så det implementeres normalt med IPsec authentication suite (L2TP/IPsec). Selvom en udbyder kun henviser til enten L2TP eller IPsec (som nogle gør), betyder det næsten helt sikkert L2TP/IPSec.
L2TP/IPsec kan bruge enten 3DES-eller AES-cifrene. 3DES er sårbar over for møde-i-midten og Søde32 kollisionsangreb, så i praksis er det usandsynligt, at du støder på det i disse dage.
der kan opstå problemer, fordi L2TP/IPSec-protokollen kun bruger et begrænset antal porte. Dette kan forårsage komplikationer, når de bruges bag NAT brandvægge. Denne afhængighed af faste porte gør også protokollen ret let at blokere.
L2TP/IPsec indkapsler data to gange, hvilket bremser tingene ned. Dette opvejes af, at kryptering/dekryptering forekommer i kernen, og L2TP/IPsec tillader multi-threading. OpenVPN gør det ikke. Resultatet er, at L2TP / IPsec er teoretisk hurtigere end OpenVPN.
L2TP/IPsec brug af AES-krypteringen har ingen større kendte sårbarheder, og hvis det er korrekt implementeret, kan det stadig være sikkert. Men hans afsløringer har stærkt antydet, at standarden er blevet kompromitteret af NSA.
John Gilmore er sikkerhedsspecialist og stiftende medlem af Electronic Frontier Foundation. Han forklarer, det er sandsynligt, at IPSec bevidst blev svækket i sin designfase.
et uden tvivl meget større problem er, at mange VPN-tjenester implementerer L2TP/IPsec Dårligt. Specifikt bruger de pre-shared keys (PSK ‘ er), der frit kan hentes fra deres hjemmesider.
disse PSK ‘ er bruges kun til at godkende forbindelsen, så selvom de er kompromitteret, forbliver dataene sikkert krypteret ved hjælp af AES. En angriber kunne dog bruge den foruddelte nøgle til at efterligne en VPN-server. Det kan derefter aflytte krypteret trafik eller endda injicere ondsindede data i forbindelsen.
Resume
på trods af nogle stort set teoretiske problemer betragtes L2TP/IPsec generelt som værende sikker, hvis der ikke bruges Åbent offentliggjorte foruddelte nøgler. Dens indbyggede kompatibilitet med mange enheder kan gøre det til et meget godt valg.
SSTP
fordele
- meget sikker
- helt integreret i vinduer
- Microsoft support
- kan omgå de fleste brandvægge
ulemper
- proprietær standard ejet af Microsoft
hvad er SSTP?
SSTP er en type kryptering, der bruger SSL 3.0 og tilbyder lignende fordele som OpenVPN. Dette inkluderer muligheden for at bruge TCP-port 443 til at undgå censur. Tæt integration med vinduer kan gøre det lettere at bruge og mere stabilt end OpenVPN på den platform.
i modsætning til OpenVPN er SSTP imidlertid en proprietær standard ejet af Microsoft. Dette betyder, at koden ikke er åben for offentlig kontrol. Microsofts historie om at samarbejde med NSA og spekulationer om mulige bagdøre indbygget i operativsystemet, inspirerer ikke tilliden til standarden.
Secure Socket Tunneling Protocol (SSTP) blev introduceret af Microsoft i Vinduer Vista SP1. Selvom det nu er tilgængeligt for VPN ‘ er, og endda Mac OS, er det stadig primært en platform, der kun er tilgængelig for vinduer.
et andet problem er, at SSL v3.0 er sårbar over for det, der er kendt som PUDDELANGREBET, og nu derfor ikke anbefalet. Hvorvidt dette problem også påvirker SSTP er uklart, men igen inspirerer næppe tillid.
Resume
på papir tilbyder SSTP mange af fordelene ved OpenVPN. At være en proprietær Microsoft-standard undergraver imidlertid dårligt dens troværdighed.
IKEv2
PROS
- Fast
- stabil – især når du skifter netværk eller genopretter forbindelse efter en mistet internetforbindelse
- sikker (hvis AES bruges)
- let at konfigurere (i det mindste i brugerenden!)
- protokollen understøttes på Blackberry-enheder
ulemper
- understøttes ikke på mange platforme
- implementering af IKEv2 ved serverenden er vanskelig, hvilket er noget, der potentielt kan resultere i problemer, der udvikler
- kun tillid til open source-implementeringer
hvad er IKEv2?
internet nøgleudveksling version 2 (IKEv2) blev udviklet i fællesskab af Microsoft og Cisco. Det er indbygget understøttes af vinduer 7+, Blackberry, og iOS-enheder. Dette er grunden til, at mange iOS VPN-tjenester bruger IKEv2 i stedet for OpenVPN.
uafhængigt udviklede kompatible versioner af IKEv2 er blevet udviklet til IKEv2 og andre operativsystemer. Mange af disse gentagelser er open source. Som altid foreslår jeg at være forsigtig med noget udviklet af Microsoft. Open source-versioner af IKEv2 bør dog ikke have nogen problemer.
IKEv2 er en del af IPsec protocol suite. Det sikrer trafik er sikker ved at aflevere sa (Security Association) attribut inden IPsec og forbedrer på IKEv1 på mange måder. IKEv2 kaldes således undertiden IKEv2 / IPsec. IKEv1 kaldes derimod ofte blot IPsec.
døbt VPN Connect af Microsoft, IKEv2 er især god til automatisk at genoprette en VPN-forbindelse, når brugerne midlertidigt mister deres internetforbindelser. For eksempel, når du går ind eller forlader en togtunnel.
på grund af sin støtte til Mobility and Multihoming (MOBIKE) – protokollen er IKEv2 også meget modstandsdygtig over for skiftende netværk. Dette gør IKEv2 til et godt valg for mobiltelefonbrugere, der regelmæssigt skifter mellem trådløst internet og mobilforbindelser, eller som regelmæssigt flytter mellem hotspots.
IKEv2 er ikke så almindelig som L2TP/IPSec, da den understøttes på mange færre platforme (selvom denne situation ændrer sig hurtigt). Det betragtes dog som mindst lige så godt som, hvis ikke bedre end, L2TP/IPsec med hensyn til sikkerhed, ydeevne (hastighed), stabilitet og evnen til at etablere (og genoprette) en forbindelse.
OpenVPN
PROS
- meget sikker (hvis PFS bruges)
- meget konfigurerbar
- Open source
- kan omgå brandvægge
- har brug for tredjepartsprogrammer
hvad er OpenVPN?
OpenVPN er en open source-teknologi, der bruger OpenSSL-biblioteket og TLS-protokollerne sammen med en sammenlægning af andre teknologier til at levere en stærk og pålidelig VPN-løsning. Det er nu branchestandarden VPN-protokol, der bruges af kommercielle VPN – tjenester-med god grund.
en af Openvpns største styrker er, at den er meget konfigurerbar. Det understøttes oprindeligt af ingen platform, men er tilgængeligt på de fleste platforme via tredjepartsprogrammer. Brugerdefinerede OpenVPN-klienter og apps er ofte tilgængelige fra individuelle VPN-udbydere, men kernen open source-kode er udviklet af OpenVPN-projektet.
mange udviklere og bidragydere til OpenVPN-projektet arbejder også for OpenVPN Technologies Inc., som fører tilsyn med projektet.
OpenVPN kører bedst på en UDP-port, men den kan indstilles til at køre på enhver port (se noter senere). Dette inkluderer TCP-port 443, som bruges af almindelig HTTPS-trafik. At køre OpenVPN over TCP port 443 gør det svært at fortælle VPN-forbindelser bortset fra den slags sikre forbindelser, der bruges af banker, e-mail-tjenester og onlineforhandlere. Dette gør OpenVPN meget svært at blokere.
en anden fordel ved OpenVPN er, at OpenSSL-biblioteket, der bruges til at levere kryptering, understøtter et antal cifre. I praksis er det dog kun Blæsefisk og AES, der ofte bruges af kommercielle VPN-tjenester. Jeg diskuterer disse nedenfor.
i lyset af de oplysninger, der er indhentet fra NSA, ser det ud til, at så længe der bruges perfekt Fremadhemmelighed, så er OpenVPN ikke blevet kompromitteret eller svækket af NSA.
en nylig revision af OpenVPN er nu afsluttet, ligesom en anden er finansieret af privat internetadgang. Ingen alvorlige sårbarheder, der påvirker brugernes privatliv, blev opdaget. Der blev opdaget et par sårbarheder, der gjorde OpenVPN-servere potentielt åbne for et DoS-angreb (Denial of Service), men disse er blevet lappet i OpenVPN 2.4.2.
OpenVPN betragtes normalt som den mest sikre VPN-protokol, der er tilgængelig, og understøttes bredt på tværs af VPN-branchen. Jeg vil derfor diskutere OpenVPN-kryptering i detaljer nedenfor.
OpenVPN kryptering
OpenVPN kryptering består af to dele – datakanal kryptering og kontrol Kanal kryptering. Datakanal kryptering bruges til at sikre dine data. Kryptering af kontrolkanaler sikrer forbindelsen mellem din computer og VPN-serveren.
ethvert forsvar er kun så stærkt som dets svageste punkt, så det er uheldigt, at nogle VPN-udbydere bruger en meget stærkere kryptering på den ene kanal end den anden (normalt stærkere på kontrolkanalen).
det er ikke ualmindeligt, for eksempel, at se en VPN-tjeneste annonceret som bruger en AES-256 cipher med RSA-4096 håndtryk kryptering og SHA-512 hash-godkendelse. Dette lyder meget imponerende, indtil du er klar over, at det kun refererer til kontrolkanalkryptering og ikke datakanalen, som er krypteret med blot Blæsefisk-128 med SHA1 hash-godkendelse. Dette gøres kun af markedsføringsårsager.
hvis der anvendes anden kryptering på data-og kontrolkanalerne, måles den sande styrke af OpenVPN-forbindelsen ved hjælp af den svagere krypteringspakke, der anvendes.
for maksimal sikkerhed skal både data-og kontrolkanalkryptering være så stærk som muligt. Jo stærkere den anvendte kryptering er, desto langsommere bliver forbindelsen, hvorfor nogle udbydere scrimp på datakanalkryptering.
Kontrolkanalkryptering kaldes også TLS-kryptering, fordi TLS er den teknologi, der bruges til sikkert at forhandle forbindelsen mellem din computer og VPN-serveren. Dette er den samme teknologi, der bruges af din bro.ser til sikkert at forhandle en forbindelse til en HTTPS-krypteret hjemmeside.
- Kontrolkanalkryptering består af en kryptering, håndtrykskryptering og hash-godkendelse.
- datakanal kryptering består af en cipher og hash-godkendelse.
VPN-udbydere bruger ofte det samme niveau af kryptering til både kontrol-og datakanaler. I vores anmeldelser og” trafiklys ” – tabeller viser vi dem kun separat, hvis der anvendes forskellige værdier for hver kanal.
hvis vi angiver, at en udbyder bruger en AES-256-kryptering, betyder det, at en AES-256-kryptering bruges til både kontrol-og datakanaler.*
(*dette skal i det mindste være tilfældet. Nogle ældre anmeldelser opfylder ikke vores nuværende retningslinjer, men disse skal udfases i tide).
Ciphers
OpenVPN kan bruge et antal symmetriske nøglekiffer for at sikre data på både kontrol-og datakanaler. I praksis er de eneste, der bruges af kommercielle VPN-udbydere, Blæsefisk, AES og (meget sjældent) Camellia.
Blæsefisk
Blæsefisk-128 er standardkrypteringen, der bruges af OpenVPN. Nøglestørrelser kan i teorien variere fra 32 bit til 448 bit, men Blæsefisk-128 er den eneste version, du sandsynligvis vil støde på i naturen.
Blæsefisk betragtes ofte som sikker nok til afslappede formål, men har kendte svagheder. Det blev skabt af den berømte kryptograf Bruce Schneier, som i 2007 sagde: “på dette tidspunkt er jeg dog forbløffet over, at den stadig bruges.”
efter vores opfattelse er brugen af Blovfish-128 acceptabel som en anden forsvarslinje på OpenVPN-datakanalen. Det bør dog ikke betragtes som sikkert, når det bruges på kontrolkanalen.
AES
AES er blevet VPN-branchens “guldstandard” symmetrisk nøglechiffer. AES er NIST-certificeret og betragtes næsten universelt som meget sikker. AES – 256 bruges af den amerikanske regering til at beskytte “sikre” data.
det faktum, at den har en 128-bit blokstørrelse snarere end Blæsefiskens 64-bit blokstørrelse, betyder også, at den kan håndtere større filer (over 4 GB) bedre end Blæsefisk. Ud over dette drager AES-instruktionssættet fordel af indbygget udstyrsacceleration på de fleste platforme.
AES er normalt tilgængelig i 128-bit og 256-bit nøglestørrelser (192-bit AES findes også). AES – 128 forbliver sikker så vidt nogen er klar over. I betragtning af hvad vi nu ved om omfanget af NSA ‘ s angreb på krypteringsstandarder, er de fleste eksperter imidlertid enige om, at AES-256 giver en højere sikkerhedsmargin.
bare for at sikre, at ingen nogensinde finder dette emne for let, er der dog en vis debat om dette spørgsmål. AES-128 har en stærkere nøgleplan end AES-256, hvilket får nogle meget fremtrædende eksperter til at hævde, at AES-128 faktisk er stærkere end AES-256.
den generelle konsensus er imidlertid, at AES-256 er stærkere.
Camellia
Camellia er en moderne sikker kryptering og er mindst lige så sikker og hurtig som AES. Den Fås i nøglestørrelser på 128, 192 og 256 bit. Takket være NIST-certificering og dens anvendelse af den amerikanske regering bruges AES imidlertid næsten altid i stedet for Camellia.
men som jeg diskuterer nedenfor, er der grunde til ikke at stole på NIST-certificerede cifre. Det faktum, at Camellia er en ikke-NIST-kryptering, er hovedårsagen til at vælge den frem for AES. Denne mulighed er dog kun sjældent tilgængelig.
det er også værd at bemærke, at Camellia ikke er nær så godt testet for svaghed som AES.
Håndtrykskryptering
for sikkert at forhandle en forbindelse mellem din enhed og en VPN-server bruger OpenVPN et TLS-håndtryk. Dette gør det muligt for OpenVPN-klienten og VPN-serveren at etablere de hemmelige nøgler, som de kommunikerer med.
for at beskytte dette håndtryk bruger TLS normalt RSA public-key kryptosystem. Dette er en krypterings-og digital signaturalgoritme, der bruges til at identificere TLS/SSL-certifikater. Det kan dog også bruge en Diffie-Hellman eller ECDH nøgleudveksling i stedet.
RSA
RSA er et asymmetrisk krypteringssystem – en offentlig nøgle bruges til at kryptere dataene, men en anden privat nøgle bruges til at dekryptere den. Det har været grundlaget for sikkerhed på internettet i de sidste 20 år eller deromkring.
det er nu veletableret, at RSA med en nøglelængde på 1024-bit (RSA-1024) eller mindre ikke er sikker og næsten helt sikkert er blevet revnet af NSA. Der har derfor været en samordnet bevægelse blandt internetfirmaer for at migrere væk fra RSA-1024.
desværre bruger vi stadig nogle VPN-tjenester til at beskytte håndtryk. Det er ikke godt.
RSA-2048 og højere betragtes stadig som sikker. I sig selv giver RSA ikke perfekt Fremadhemmelighed (PFS). Dette kan dog implementeres ved at inkludere en Diffie-Hellman (DH) eller elliptisk kurve Diffie-Hellman (ECDH) nøgleudveksling i sin cipher suite.
i dette tilfælde betyder styrken af DH-eller ECDH-tasten ikke noget, da den kun bruges til at give perfekt Fremadhemmelighed. Forbindelsen er sikret ved hjælp af RSA.
fordi det kan forårsage forvirring, vil jeg også bemærke, at RSA-kryptosystemet ikke har noget at gøre med det vanærede amerikanske tech-firma RSA Security LLC. Dette firma svækkede bevidst sit flagskib BSAFE-krypteringsprodukter efter at være blevet bestukket $10 millioner af NSA.
Diffie-Hellman og ECDH
en alternativ (rival) håndtrykskryptering, der undertiden bruges af OpenVPN, er Diffie-Hellman (DH) kryptografisk nøgleudveksling. Dette har normalt en nøglelængde på 2048-bits eller 4096-bits. Bemærk, at noget mindre end DH-2048 bør undgås på grund af modtagelighed for logjam-angrebet.
den største fordel ved et Diffie-Hellman håndtryk over RSA er, at det indbygget giver perfekt Fremadhemmelighed. Som allerede nævnt opnår imidlertid blot at tilføje en DH-nøgleudveksling til et RSA-håndtryk en lignende ende.
Diffie-Hellman har skabt stor kontrovers over dets genbrug af et begrænset sæt primtal. Dette gør det sårbart over for at blive revnet af en stærk modstander, såsom NSA. Diffie-Hellman alene sørger derfor ikke for sikker håndtrykskryptering. Det er dog fint, når det bruges som en del af en RSA cipher suite.
elliptisk kurve Diffie-Hellman (ECDH) er en nyere form for kryptografi, der ikke er sårbar over for dette angreb. Dette skyldes, at det bruger egenskaberne for en bestemt type algebraisk kurve i stedet for store primtal til at kryptere forbindelser.
ECDH kan bruges som en del af et RSA-håndtryk for at give perfekt Fremadhemmelighed eller kan sikkert kryptere et håndtryk alene (med en ECDSA-signatur). Dette giver også PFS.
ECDH nøglelængde starter ved 384-bits. Dette betragtes som sikkert, men når det bruges alene til at sikre et TLS-håndtryk, jo længere jo bedre (med hensyn til sikkerhed, alligevel).
SHA Hash Authentication
dette kaldes også data authentication eller hash message authentication code (HMAC).
Secure Hash Algorithm (SHA) er en kryptografisk hash-funktion, der bruges (blandt andet) til at godkende data og SSL/TLS-forbindelser. Dette inkluderer OpenVPN-forbindelser.
det skaber et unikt fingeraftryk af et gyldigt TLS-certifikat, som kan valideres af enhver OpenVPN-klient. Selv den mindste ændring kan påvises. Hvis certifikatet er manipuleret, registreres dette straks, og forbindelsen afvises.
dette er vigtigt for at forhindre et Man-in-the-middle (MITM) angreb, hvor en modstander forsøger at omdirigere din OpenVPN-forbindelse til en af sine egne servere i stedet for din VPN-udbyder. Det kan for eksempel gøre dette ved at hacke din router.
hvis en modstander kan knække hash for din udbyders ægte TLS-certifikat, kan det vende hash for at oprette et forfalsket certifikat. Dit åbne VPN-program vil derefter godkende forbindelsen som ægte.
er SHA sikker?
når det bruges til at beskytte HTTPS hjemmesider, er SHA-1 brudt. Dette har været kendt i nogen tid. SHA – 1 hjemmesider kan stadig findes, men er ved at blive udfaset. De fleste brugere vil nu udsende en advarsel, når du forsøger at oprette forbindelse til en hjemmeside, der er sikret med SHA-1.
SHA-2 og SHA-3 hash funktioner anbefales nu i stedet, og er sikre. SHA – 2 omfatter SHA-256, SHA-384 og SHA-512. Dog …
OpenVPN bruger kun SHA til HMAC. Jeg synes ikke, det er nyttigt at gå for meget i detaljer her, men SHA hash-godkendelse er en del af HMAC-algoritmen. At angribe HMAC indlejret med SHA-1 er meget sværere end blot at angribe SHA-1 hash-funktionen selv.
med andre ord, HMAC SHA-1 som brugt af OpenVPN betragtes som sikker, og der er matematisk bevis på dette. Selvfølgelig er HMAC SHA – 2 og HMAC SHA-3 endnu mere sikre! Faktisk anerkender den nylige OpenVPN-revision, at HMAC SHA-1 er sikker, men anbefaler overgang til HMAC SHA-2 eller HMAC SHA-3 i stedet.
noter
NIST
AES, RSA, SHA-1 og SHA-2 blev alle udviklet og/eller certificeret af United States National Institute of Standards and Technology (NIST). Dette er et organ, der ved egen optagelse arbejder tæt sammen med NSA i udviklingen af sine cifre.
i betragtning af hvad vi nu ved om NSA ‘ s systematiske bestræbelser på at svække eller opbygge bagdøre i internationale krypteringsstandarder, er der al mulig grund til at sætte spørgsmålstegn ved integriteten af NIST-algoritmer.
NIST afviser selvfølgelig stærkt sådanne påstande:
“NIST ville ikke bevidst svække en kryptografisk standard.”
det har også inviteret offentlig deltagelse i en række kommende foreslåede krypteringsstandarder i et skridt designet til at styrke offentlighedens tillid.
Ny York Times beskyldte imidlertid NSA for at omgå NIST-godkendte krypteringsstandarder ved enten at indføre uopdagelige bagdøre eller undergrave den offentlige udviklingsproces for at svække algoritmerne.
denne mistillid blev yderligere styrket, da RSA Security (en division af EMC) privat fortalte kunderne at stoppe med at bruge en krypteringsalgoritme, der angiveligt indeholder en fejl Konstrueret af NSA. Denne algoritme var også blevet godkendt af NIST.
desuden er dual_ec_drbg (Dual Elliptic Curve Deterministic Random Bit Generator) en krypteringsstandard Konstrueret af NIST. Det har været kendt for at være usikkert i årevis.
i 2006 bemærkede Eindhoven University of Technology i Holland, at et angreb mod det var let nok at starte på “en almindelig PC.”Microsoft-ingeniører markerede også en mistænkt bagdør i algoritmen.
på trods af disse bekymringer, hvor NIST fører, følger branchen. Microsoft, Cisco, Symantec og RSA inkluderer alle algoritmen i deres produkts kryptografiske biblioteker. Dette skyldes i vid udstrækning, at overholdelse af NIST-standarder er en forudsætning for at opnå amerikanske regeringskontrakter.
NIST-certificerede kryptografiske standarder er stort set allestedsnærværende over hele verden, i alle områder af industrien og erhvervslivet, der er afhængige af privatlivets fred. Dette gør hele situationen temmelig nedkøling.
måske netop fordi så meget er afhængig af disse standarder, har kryptografieksperter været uvillige til at imødegå problemet.
AES-CBC vs AES-GCM
indtil for nylig var den eneste AES-kryptering, som du sandsynligvis ville støde på i VPN-verdenen, AES-CBC (Cipher Block Chaining). Dette refererer til block cipher mode, et komplekst emne, der ikke rigtig er værd at gå ind her. Selvom CBC teoretisk kan have nogle sårbarheder, er den generelle konsensus, at CBC er sikker. CBC anbefales faktisk i OpenVPN-manualen.
OpenVPN understøtter nu også AES-GCM (Galios/Counter Mode).
- GCM giver godkendelse, fjerne behovet for en HMAC SHA hashing funktion.
- det er også lidt hurtigere end CBC, fordi det bruger udstyrsacceleration (ved at tråde til flere processorkerner).
AES-CBC forbliver den mest almindelige tilstand i almindelig brug, men vi begynder nu at støde på AES-GCM “i naturen.”I betragtning af fordelene ved GCM vil denne tendens sandsynligvis kun fortsætte. Fra et kryptografisk perspektiv er tho9ugh, både AES-CBC og AES-GCM meget sikre.
OpenVPN UDP vs. OpenVPN TCP
OpenVPN kan køre over TCP (Transmission Control Protocol) eller UDP (User Datagram Protocol).
- TCP = pålidelig. Når en computer sender en netværkspakke ved hjælp af TCP, venter den på bekræftelse af, at pakken er ankommet, før den sendes den næste pakke. Hvis der ikke modtages nogen bekræftelse, sender den pakken igen. Dette kaldes fejlkorrektion. Der er “garanteret levering” af alle data, men det kan være ret langsomt.
- UDP = hurtig. Ved hjælp af UDP udføres ingen sådan fejlkorrektion. Pakker sendes og modtages simpelthen uden anerkendelser eller forsøg. Dette gør UDP meget hurtigere end TCP, men mindre pålidelig.
hvis jeg får valget, foreslår jeg at bruge den hurtigere UDP-protokol, medmindre du oplever forbindelsesproblemer. Dette er standardstrategien vedtaget af de fleste VPN-udbydere.
Besejr censur med OpenVPN på TCP-Port 443
en af de store fordele ved OpenVPN er, at den kan køres over enhver port, inklusive TCP-port 443. Dette er den port, der bruges af HTTPS, den krypterede protokol, der sikrer alle sikre hjemmesider.
uden HTTPS ville ingen form for online handel, såsom shopping eller bank, være mulig. Det er derfor meget sjældent, at denne port blokeres.
som en bonus kan VPN-trafik på TCP-port 443 dirigeres inde i TLS-krypteringen på samme måde som bruges af HTTPS. Dette gør det meget sværere at få øje på ved hjælp af avancerede Dyb Pakkeinspektionsteknikker. TCP port 443 er derfor den foretrukne port til at undgå VPN-blokke.
mange VPN-udbydere tilbyder muligheden for at ændre portnummeret, der bruges af OpenVPN ved hjælp af deres brugerdefinerede program.
selvom din ikke gør det, understøtter mange VPN-udbydere faktisk OpenVPN ved hjælp af TCP-port 443 på serverniveau. Du kan skifte til det med en simpel redigering til din OpenVPN-konfiguration (.ovpn) fil. Det er derfor værd at spørge din VPN-udbyder om dette.
det er værd at bemærke, at netværksingeniører ikke kan lide denne taktik, da TCP over TCP er meget ineffektiv. Når det kommer til at besejre censur, fungerer det dog ofte.
SSTP bruger som standard TCP-port 443.
Resume
VPN-protokoller
- PPTP er meget usikker og bør undgås. Mens dens lette opsætning og kompatibilitet på tværs af platforme er attraktive, har L2TP/IPsec de samme fordele og er meget mere sikker.
- L2TP/IPsec er en god VPN-løsning til ikke-kritisk brug. Dette gælder især på ældre enheder, der ikke understøtter OpenVPN. Det er imidlertid blevet alvorligt kompromitteret af NSA.
- SSTP tilbyder de fleste af fordelene ved OpenVPN, men er primært kun en Vinduer protokol. Dette betyder, at det er bedre integreret i operativsystemet, men det understøttes Dårligt af VPN-udbydere takket være denne begrænsning. Ud over dette betyder dets proprietære natur og det faktum, at det er skabt af Microsoft, at jeg for en ikke stoler på det.
- IKEv2 er en meget god (sikker og hurtig) protokol. Især Mobile brugere kan endda foretrække det frem for OpenVPN på grund af dets forbedrede evne til at oprette forbindelse igen, når en internetforbindelse afbrydes. For Blackberry-brugere er det stort set den eneste tilgængelige mulighed. Brug open source-versioner, hvor det er muligt.
- OpenVPN er den anbefalede VPN-protokol under de fleste omstændigheder. Det er hurtigt, pålideligt, sikkert og open source. Det har ingen reelle ulemper, i sig selv., men for at være virkelig sikker er det vigtigt, at det implementeres godt. Dette betyder stærk kryptering med perfekt Fremadhemmelighed.
OpenVPN-kryptering
når det kommer til kryptering, er djævelen i detaljerne. Det er almindeligt at se VPN-udbydere siger, at de bruger “ultra-stærk 256-bit” AES OpenVPN-kryptering, men dette fortæller os ikke i virkeligheden meget. AES – 256 er faktisk en stærk kryptering, men hvis andre aspekter af den anvendte krypteringspakke er svage, vil dine data ikke være sikre.
- Cipher – dette beskytter dine faktiske data. AES-256 er nu industristandarden og anbefales.
- håndtryk – dette sikrer din forbindelse til VPN-serveren. RSA-2048+ eller ECDH-384 + er sikre. Det er vigtigt, at RSA-1024 og Diffie-Hellman håndtryk ikke er det.
- Hash – godkendelse-opretter et unikt fingeraftryk, der bruges til at validere data og TLS-certifikater (det vil sige for at kontrollere, at den server, du opretter forbindelse til, virkelig er den, du tror, du opretter forbindelse til). HMAC SHA-1 er helt fint, men HMAC SHA-2 (SHA-256, SHA-384 og SHA-512) og HMAC SHA-3 er endnu mere sikre! Bemærk, at hash-godkendelse ikke er påkrævet, hvis AES-GCM-krypteringen bruges.
- perfekt Fremadhemmelighed (PFS) – dette sikrer, at der oprettes nye krypteringsnøgler til hver session. OpenVPN bør ikke betragtes som sikker, medmindre PFS er implementeret. Dette kan gøres enten ved at inkludere en Diffie-Hellman eller ECDH nøgleudveksling i et RSA-håndtryk eller et DH-eller ECDH-håndtryk.
- kryptering er kun så sikker som det svageste punkt. Dette betyder, at krypteringsindstillingerne skal være stærke på både data-og kontrolkanaler.
- brug af højere bitlængder til cifre og nøgler er næsten altid mere sikkert, men dette koster en hastighed.
OpenVPN vil forhandle cifre mellem klient og server efter behag. Medmindre meget specifikke parametre er defineret, kan OpenVPN som standard være svage indstillinger. I det mindste vil OpenVPN som standard være blovfish-128 cipher, RSA-1024 håndtryk uden PFS og HMAC SHA-1 hash-godkendelse.
konklusion
forhåbentlig har du nu en bedre forståelse af, hvad der skaber en sikker VPN-forbindelse. Når det kommer til korrekt konfiguration af en VPN, er kryptering dog kun halvdelen af historien. Den anden halvdel er at sikre, at ingen trafik kommer ind eller forlader din computer uden for VPN-forbindelsen.
for at lære mere om dette, se vores komplette Guide til IP-lækager.