OpenVPN vs IKEv2 vs PPTP vs L2TP / IPSec vs SSTP – Ultimate Guide til VPN-kryptering

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 det bruges i VPN-forbindelser.

Det vigtigste er måske, at vi forklarer den række krypteringsudtryk, der bruges af VPN-tjenester. Det er vores håb, at du efter at have læst gennem dette dokument har en større forståelse af dette komplekse emne, og at du vil være bedre i stand til at vurdere sikkerhedskravene fra VPN-udbydere.

indledende

Hvis du er i tvivl om, hvad en VPN er, og hvad man kan gøre for dig, kan du tjekke vores VPN'er til begyndersvejledning.

Vores mål er at præsentere de vigtigste funktioner i VPN-kryptering på så enkle vilkår som muligt. Selvom der ikke kommer nogen væk, er det faktum, at kryptering er et komplekst emne.

Hvis selv udtrykket kryptering får dine øjne til at begynde at glasere, men du stadig ønsker at vide, hvad du skal kigge efter i en god VPN-tjeneste, kan du hoppe direkte til resume.

Hvad er kryptering?

Begynd i begyndelsen," sagde kongen meget alvorligt, "og fortsæt, indtil du kommer til slutningen: stop så. ”

Lewis 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 kasse (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 et bankhvelv, er stærkere end den, der sikrer en kuffert, er nogle kryptering stærkere end anden kryptering.

Det grundlæggende

Da du var barn, spillede du det spil, hvor du oprettede en "hemmelig meddelelse" ved at erstatte et bogstav i meddelelsen med et andet? Udskiftningen blev foretaget efter en formel valgt af dig.

Du kan f.eks. Have erstattet hvert bogstav i den originale meddelelse med tre bogstaver bag sig i alfabetet. Hvis nogen anden vidste, hvad denne formel var, eller var i stand til at finde ud af den, ville de være i stand til at læse din "hemmelige meddelelse."

I kryptografisjargon var det, du gjorde, "kryptering" af meddelelsen (data) i henhold til en meget enkel matematisk algoritme. Kryptografer refererer til denne algoritme som en "ciffer." For at dekryptere den, skal du bruge 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 prøve at "knække" chifferet. Når krypteringen bruger en enkel bogstavsubstitutionskode, er det nemt at revne. Krypteringen kan dog gøres mere sikker ved at gøre den matematiske algoritme (chifferet) mere kompleks.

Du kan for eksempel erstatte hvert tredje bogstav i meddelelsen med et tal, der svarer til brevet.

Krypteringsnøglængde

Moderne computerkryptere 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 på en chiffer er ved kompleksiteten af ​​den algoritme, der bruges til at oprette den.

Jo mere kompleks algoritmen er, desto sværere er chifferet at knække ved hjælp af et brute force-angreb. Dette meget primitive angreb kaldes også som en udtømmende nøglesøgning. Det involverer dybest set at prøve alle mulige kombinationer af numre, indtil den rigtige nøgle findes.

Computere udfører alle beregninger ved hjælp af binære tal: nuller og tal. Kompliciteten af ​​en chiffer afhænger af dens nøglestørrelse i bits - det rå antal af nuller og nuller, der er nødvendige for at udtrykke dens algoritme, hvor hver nul eller én er repræsenteret af en enkelt bit.

Dette er kendt som nøglelængde og repræsenterer også den praktiske gennemførlighed med succes at udføre et brute force-angreb på enhver given ciffer.

Antallet af mulige kombinationer (og derfor vanskeligheden med at brute tvinge dem) øges eksponentielt med nøglestørrelse. Brug af AES-chiffer (se senere):

Nøglestørrelseskominationer

For at sætte dette i perspektiv:

  • I 2011 var den hurtigste supercomputer i ordet Fujitsu K. Dette var i stand til en Rmax-peakhastighed på 10,51 petaflops. Baseret på dette tal ville det tage Fujitsu K 1,02 x 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 kraftfulde supercomputer i verden nu (2017) er Sunway TaihuLight i Kina. Dette udyr er i stand til en tophastighed på 93,02 petaflops. Dette betyder, at den mest magtfulde computer i verden stadig vil tage nogle 885 quadrillion år at brute kraft en 128-bit AES-nøgle.
  • Antallet af operationer, der kræves for at brute kraft en 256-bit chiffer, er 3,31 x 10 ^ 56. Dette er nogenlunde lig med antallet af atomer i universet!

Computer cifre

Mens krypteringsnøglelængde henviser til mængden af ​​involverede rånumre, er cifrene matematikken - de faktiske formler eller algoritmer - der bruges til at udføre krypteringen. Som vi netop har set, er tvinge til at tvinge moderne computerciftere vildt upraktisk.

Det er svagheder (nogle gange bevidste) i disse chifferalgoritmer, der kan føre til, at kryptering bliver brudt. Dette skyldes, at output fra (dårligt designet) chiffer stadig kan afsløre en vis struktur fra den originale information inden kryptering. Dette skaber et reduceret sæt mulige kombinationer at prøve, hvilket faktisk reducerer den effektive nøglelængde.

Blowfish-chifferet er for eksempel sårbart 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 chifferet, kan en modstander angribe selve nøglen. Dette kan påvirke et bestemt sted eller et bestemt softwareprodukt. Men chifferalgoritmens sikkerhed er stadig intakt, og andre systemer, der bruger den samme algoritme, men har en sikker generation af nøgler, påvirkes ikke af bruddet.

Ciffernøglelængde

Hvor stærk en chiffer er afhænger af både matematikken for 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-chiffer med en 256-bit nøglængde) betragtes normalt som stærkere end AES-128. Bemærk, at jeg normalt siger, fordi vi har meget kompleks matematik at gøre her (se mine notater om AES senere).

Bemærk ikon2 01 150X150

Det er vigtigt at bemærke, at nøglelængde alene ikke er en god indikator for en krypteres styrke. Det er kombinationen af ​​nøglelængde og chiffer, 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.

Sammenligning af nøglestørrelse

Denne tabel er lidt forældet, da den ikke tager højde for 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 idéen.

Bemærk ikon2 01 150X150

En ting at bemærke er, at jo højere nøgellængde, desto mere beregning er involveret, så jo mere behov for behandlingskraft. Dette påvirker hastigheden, hvormed data kan krypteres og dekrypteres. VPN-udbydere og lignende skal derfor beslutte, hvordan man bedst skal balancere sikkerhed imod praktisk brugbarhed, når man vælger krypteringsordninger.

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 Blowfish og AES. Derudover bruges RSA til at kryptere og dekryptere en cifferens nøgler, og SHA-1 eller SHA-2 bruges som hashfunktion til at autentificere data.

Asymmetrisk krypteringAsymmestrisk kryptering

Perfekt fremadretthed

Perfect Forward Secrecy (PFS) kaldes også ved hjælp af flygtige krypteringsnøgler, eller bare Forward Secrecy (FS) af dem, der er ubehagelige med at bruge ordet "perfekt."

De fleste moderne sikre online kommunikationer er afhængige af SSL / TLS. Det bruges af HTTPS-websteder og OpenVPN-protokollen. TLS (Transport Layer Security) er en asymmetrisk krypteringsprotokol. Brug af en asymmetrisk ciffer betyder, at data er sikret ved hjælp af en offentlig nøgle, der stilles til rådighed for alle. Det kan dog kun dekrypteres af en bestemt modtager, der har den korrekte private nøgle.

Denne private nøgle skal holdes hemmelig. Hvis det er stjålet eller knækket af en modstander, kan denne modstander let aflytte 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 let. Hvis denne nøgle imidlertid kompromitteres, kan en hacker få adgang til al kommunikation, der er 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. Det er kendt, at NSA har udnyttet denne svaghed for at indsamle store rækker af angiveligt sikre data.

Løsningen er perfekt fremadrettet hemmelighed. Dette er et system, hvorved der genereres en ny og unik privat krypteringsnøgle til hver session. Det er en simpel idé, selvom Diffie-Hellman-udvekslingsmatematik er kompleks. Det betyder, at hver TLS-session har sit eget sæt nøgler. Derfor udtrykket "flygtige nøgler" - de bruges én gang og forsvinder derefter.

Der er derfor ingen "masternøgle", der kan udnyttes. Selv hvis en session er kompromitteret, er det kun den session, der er kompromitteret - ikke alle de andre sessioner nogen har med den server eller det firma!

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 kompromitteres.

Da jeg skrev denne artikel for et par år siden, var brug af Perfect Forward Secrecy til både HTTPS-websteder og OpenVPN-forbindelser desværre sjældent. Heldigvis har denne situation ændret sig noget. Selvom det på ingen måde er universelt, er brugen af ​​flygtige nøgler steget meget sent.

VPN-krypteringsprotokoller

En VPN-protokol er det sæt instruktioner (mekanisme), der bruges til at forhandle om en sikker krypteret forbindelse mellem to computere. Et antal 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 den branchestandard 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. Derfor vil jeg bruge yderligere digital blæk på detaljeret diskussion af OpenVPN.

PPTP

PROS

  • Klient indbygget i næsten alle platforme
  • Meget let at konfigurere

ULEMPER

  • Meget usikker
  • Definitivt kompromitteret af 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 (svarer til en standardciffer) brugt af PPTP er Microsoft Point-to-Point Encryption (MPPE).

Point-to-Point Tunneling Protocol (PPTP) blev udviklet af et konsortium grundlagt af Microsoft til at oprette VPN via opkaldsnetværk. Som sådan har PPTP længe været standardprotokollen for corporate VPN-netværk.

PPTP er tilgængelig som standard på næsten enhver VPN-kompatibel platform og enhed. Det er let at konfigurere uden at skulle installere yderligere software. Dette sikrer, at PPTP forbliver et populært valg både for forretnings-VPN'er og kommercielle VPN-tjenester.

Det har også fordelen ved at kræve et lavt beregningsomkostning til implementering ... så det er hurtigt!

Desværre er PPTP ikke sikker. Overhovedet. Selvom det normalt kun findes ved hjælp af 128-bit krypteringsnøgler, er der i årene siden det først blev bundtet med Windows 95 OSR2 tilbage i 1999, kommet en række sikkerhedsmæssige sårbarheder frem.

Den mest alvorlige af disse er muligheden for ikke-indkapslet MS-CHAP v2-godkendelse. Ved hjælp af denne udnyttelse er PPTP blevet brudt inden for to dage. Microsoft har lappet fejlen, men har selv udsendt en anbefaling om at bruge L2TP / IPsec eller SSTP i stedet.

Det burde ikke komme som nogen overraskelse, at NSA næsten helt sikkert afkrypterer PPTP-krypteret kommunikation som standard. Endnu mere bekymrende er, at NSA indsamlede enorme mængder ældre data, der blev krypteret tilbage, da PPTP blev betragtet som sikkert. Det kan næsten helt sikkert også dekryptere disse gamle data.

PPTP kræver både TCP-port 1723 og GRE-protokollen. Det er let at firewall GRE, hvilket gør det nemt at blokere PPTP-forbindelser.

L2TP / IPsec

  • Anses normalt som sikkert (men se ulemper)
  • Let at konfigurere
  • Fås på alle moderne platforme
  • Hurtigere end OpenVPN (måske)
  • Kan blive kompromitteret af NSA (uprøvet)
  • Sandsynligvis bevidst svækket af NSA (uprøvet)
  • Kan kæmpe med restriktive firewalls
  • 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å let og hurtigt at konfigurere som PPTP.

På egen hånd leverer L2TP ikke nogen kryptering eller fortrolighed til trafik, der passerer gennem den, så den implementeres normalt med IPsec-godkendelsessuite (L2TP / IPsec). Selv hvis en udbyder kun henviser til enten L2TP eller IPsec (som nogle gør), betyder det næsten helt sikkert faktisk L2TP / IPSec.

L2TP / IPsec kan bruge enten 3DES- eller AES-cifrene. 3DES er sårbar over for Meet-in-the-middle og Sweet32 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-firewalls. Denne afhængighed af faste porte gør også protokollen temmelig let at blokere.

L2TP / IPsec indkapsler data to gange, hvilket bremser tingene ned. Dette opvejes af det faktum, at kryptering / dekryptering forekommer i kernen, og L2TP / IPsec tillader flertrådning. OpenVPN gør det ikke. Resultatet er, at L2TP / IPsec teoretisk er hurtigere end OpenVPN.

L2TP / IPsec ved hjælp af AES-chifteren har ingen større kendte sårbarheder, og hvis korrekt implementeret kan det stadig være sikkert. Edward Snowdens afsløringer har dog stærkt antydet, at standarden kompromitteres af NSA.

John Gilmore er en sikkerhedspecialist og stiftende medlem af Electronic Frontier Foundation. Han forklarer, at det sandsynligvis er, at IPSec bevidst blev svækket i dens designfase.

Et problematisk meget større problem er, at mange VPN-tjenester implementerer L2TP / IPsec dårligt. Specifikt bruger de foruddelte nøgler (PSK'er), der frit kan downloades fra deres websteder.

Disse PSK'er bruges kun til at autentificere forbindelsen, så selvom de kompromitteres, forbliver dataene sikkert krypteret ved hjælp af AES. En angriber kunne dog bruge den foruddelte nøgle til at udgive sig for en VPN-server. Det kunne derefter tænde på krypteret trafik eller endda injicere ondsindede data i forbindelsen.

Bemærk ikon2 01 150X150

Resumé

På trods af nogle stort set teoretiske problemer betragtes L2TP / IPsec generelt som værende sikker, hvis åbent offentliggjorte foruddelte nøgler ikke bruges. Dens indbyggede kompatibilitet med mange enheder kan gøre det til et meget godt valg.

PROS

  • Meget sikker
  • Fuldstændigt integreret i Windows
  • Microsoft support
  • Kan omgå de fleste firewalls

ULEMPER

  • Ejendomstandard 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. Stram integration med Windows kan gøre det lettere at bruge og mere stabilt end OpenVPN på denne platform.

I modsætning til OpenVPN er SSTP imidlertid en proprietær standard, der ejes af Microsoft. Dette betyder, at koden ikke er åben for offentlig kontrol. Microsofts historie med at samarbejde med NSA og spekulationer om mulige bagdøre, der er indbygget i Windows-operativsystemet, inspirerer ikke tilliden til standarden.

Secure Socket Tunneling Protocol (SSTP) blev introduceret af Microsoft i Windows Vista SP1. Selvom det nu er tilgængeligt for Linux og endda Mac OS X, er det stadig primært en Windows-kun platform.

Et andet problem er, at SSL v3.0 er sårbar over for det, der kaldes POODLE-angrebet, og derfor derfor ikke anbefales. Om dette spørgsmål også påvirker SSTP er uklart, men igen inspirerer næppe tillid.

Bemærk ikon2 01 150X150

Resumé

På papir tilbyder SSTP mange af fordelene ved OpenVPN. At være en proprietær Microsoft-standard undergraver dog dårligt dets troværdighed.

IKEv2

PROS

  • Hurtig
  • Stabil - især når du skifter netværk eller tilslutter igen efter en mistet internetforbindelse
  • Sikker (hvis AES bruges)
  • Let at konfigurere (i det mindste ved brugersiden!)
  • Protokol understøttes på Blackberry-enheder

ULEMPER

  • Understøttes ikke på mange platforme
  • Det er vanskeligt at implementere IKEv2 ved serveren og det kan være noget, der potentielt kan resultere i problemer under udvikling
  • Stol kun på open source-implementeringer

Hvad er IKEv2?

Internet Key Exchange version 2 (IKEv2) blev udviklet i fællesskab af Microsoft og Cisco. Det understøttes naturligt af Windows 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 udviklet til Linux og andre operativsystemer. Mange af disse iterationer er open source. Som altid foreslår jeg at være på vagt over for noget, der er udviklet af Microsoft. Open source-versioner af IKEv2 bør dog ikke have nogen problemer.

IKEv2 er en del af IPsec-protokolsuiten. Det sikrer, at trafikken er sikker ved at overdrage SA (Security Association) -attributten inden for IPsec og forbedrer på IKEv1 på mange måder. IKEv2 kaldes derfor undertiden IKEv2 / IPsec. På den anden side kaldes IKEv1 ofte simpelt hen som IPsec.

IKEv2, der kaldes VPN Connect af Microsoft, 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 mobilitet og multihoming-protokollen (MOBIKE) 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 WiFi og hjemmeforbindelser til hjemmet, eller som regelmæssigt bevæger sig 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 overlegen, L2TP / IPsec med hensyn til sikkerhed, ydelse (hastighed), stabilitet og evnen til at etablere (og genoprette) en forbindelse.

OpenVPN

PROS

  • Meget sikker (hvis PFS bruges)
  • Meget konfigurerbar
  • Open source
  • Kan omgå firewalls
  • Har brug for tredjepartssoftware

Hvad er OpenVPN?

OpenVPN er en open source-teknologi, der bruger OpenSSL-biblioteket og TLS-protokoller sammen med et amalgam af andre teknologier til at levere en stærk og pålidelig VPN-løsning. Det er nu branchens standard VPN-protokol, der bruges af kommercielle VPN-tjenester - med god grund.

En af OpenVPNs største styrker er, at det er meget konfigurerbart. Det understøttes naturligt af ingen platform, men er tilgængeligt på de fleste platforme via tredjepartssoftware. Brugerdefinerede OpenVPN-klienter og apps er ofte tilgængelige fra individuelle VPN-udbydere, men kerne-open source-koden er udviklet af OpenVPN-projektet.

Mange udviklere og bidragydere til OpenVPN-projektet fungerer også for OpenVPN Technologies Inc., der fører tilsyn med projektet.

OpenVPN kører bedst på en UDP-port, men det kan indstilles til at køre på enhver port (se noter senere). Dette inkluderer TCP-port 443, der 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-mailtjenester og online detailhandlere. Dette gør OpenVPN meget svært at blokere.

En anden fordel ved OpenVPN er, at OpenSSL-biblioteket, der bruges til at tilvejebringe kryptering, understøtter et antal cifre. I praksis er det imidlertid kun Blowfish og AES, der ofte bruges af kommercielle VPN-tjenester. Jeg diskuterer disse nedenfor.

I lyset af oplysninger indhentet fra Edward Snowden ser det ud til, at så længe Perfect Forward Secrecy bruges, så er OpenVPN ikke blevet kompromitteret eller svækket af NSA.

En nylig crowddsourced-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. Et par sårbarheder blev opdaget, der gjorde OpenVPN-servere potentielt åbne for et DoS-angreb, men disse er blevet rettet i OpenVPN 2.4.2.

OpenVPN betragtes normalt som den mest sikre VPN-protokol, der er tilgængelig og understøttes bredt i hele VPN-branchen. Jeg vil derfor drøfte OpenVPN-kryptering i detaljer nedenfor.

OpenVPN-kryptering

OpenVPN-kryptering består af to dele - datakanalkryptering og kontrolkanalkryptering. Datakanalkryptering bruges til at sikre dine data. Kontrolkanalkryptering 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, der annonceres, som bruger en AES-256-chiffer med RSA-4096-håndtrykskryptering 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 Blowfish-128 med SHA1-hash-godkendelse. Dette gøres kun af markedsføringsårsager.

Hvis der bruges forskellige kryptering på data- og kontrolkanalerne, måles den sande styrke af OpenVPN-forbindelsen med den svagere krypteringssæt, der bruges.

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 er forbindelsen, hvilket er grunden til, at nogle udbydere ser 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, som din browser bruger til sikker forhandling af en forbindelse til et HTTPS-krypteret websted.

  • Kontrolkanalkryptering består af en chiffer, håndtrykskryptering og hash-godkendelse.
  • Datakanalkryptering består af en chiffer og hash-godkendelse.

VPN-udbydere bruger ofte det samme krypteringsniveau til både kontrol- og datakanaler. I vores anmeldelser og "trafiklys" -tabeller viser vi dem kun separat, hvis der bruges forskellige værdier for hver kanal.

Hvis vi oplyser, at en udbyder bruger en AES-256-chiffer, betyder det, at en AES-256-chiffer bruges til både kontrol- og datakanaler. *

(* Dette skal i det mindste være tilfældet. Nogle af anmeldelser fra ældre opfylder ikke vores nuværende retningslinjer, men disse skal udfases i tide).

ciphers

OpenVPN kan bruge et antal cymre med symmetrisk nøgle for at sikre data på både kontrol- og datakanaler. I praksis er de eneste, der bruges af kommercielle VPN-udbydere, Blowfish, AES og (meget sjældent) Camellia.

Blowfish

Blowfish-128 er standardkoderen, der bruges af OpenVPN. Nøglestørrelser kan i teorien variere fra 32 bit til 448 bit, men Blowfish-128 er den eneste version, du sandsynligvis vil støde på i naturen.

Blowfish betragtes ofte som sikre nok til afslappede formål, men har kendte svagheder. Det blev skabt af den berømte kryptograf Bruce Schneier, der i 2007 sagde, "på dette tidspunkt er jeg dog forbløffet over, at den stadig bruges."

Efter vores opfattelse er brug af Blowfish-128 acceptabel som en anden forsvarslinje på OpenVPN-datakanalen. Det skal dog ikke betragtes som sikkert, når det bruges på kontrolkanalen.

AES

AES er blevet VPN-branchen "guldstandard" symmetrisk nøgleciffer. AES er NIST-certificeret og betragtes næsten universelt som meget sikker. AES-256 bruges af den amerikanske regering til beskyttelse af "sikre" data.

Det faktum, at det har en 128-bit blokstørrelse snarere end Blowfishs 64-bit-blokstørrelse betyder også, at den kan håndtere større filer (over 4 GB) bedre end Blowfish. Derudover drager AES-instruktionen fordele ved indbygget hardwareacceleration 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 ved. 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 nogen 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 enighed er imidlertid, at AES-256 er stærkere.

Camellia

Camellia er en moderne sikker chiffer 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 brugen af ​​den amerikanske regering anvendes 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-ciffer er den vigtigste grund til at vælge det frem for AES. Denne indstilling er dog kun sjældent tilgængelig.

Det er også værd at bemærke, at Camellia ikke er så godt testet for svaghed som AES.

Håndtryk kryptering

For sikkert at forhandle om 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-nøgle-kryptosystemet. 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 dem. 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 brudt af NSA. Der har følgelig været en samordnet træk blandt internetvirksomheder for at migrere væk fra RSA-1024.

Desværre finder vi stadig, at nogle VPN-tjenester fortsat bruger RSA-1024 til at beskytte håndtryk. Det er ikke godt.

RSA-2048 og højere betragtes stadig som sikker. På egen hånd leverer RSA ikke Perfect Forward Secrecy (PFS). Dette kan imidlertid implementeres ved at inkludere en Diffie-Hellman (DH) eller en Elliptisk kurve Diffie-Hellman (ECDH) nøgleudveksling i dens chiffer-suite.

I dette tilfælde betyder styrken af ​​DH- eller ECDH-nøglen ikke noget, da den kun bruges til at give perfekt fremadretthed. 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ære amerikanske teknologifirma RSA Security LLC. Dette firma svækkede bevidst sine flagskib BSAFE-krypteringsprodukter efter at have bestikket 10 millioner dollars af NSA.

Diffie-Hellman og ECDH

En alternativ (rivaliserende) håndtrykskryptering, der undertiden bruges af OpenVPN, er Diffie-Hellman (DH) kryptografisk nøgleudveksling. Dette har normalt en nøglelængde på 2048-bit eller 4096-bit. Bemærk, at noget mindre end DH-2048 bør undgås på grund af følsomhed over for logjam-angrebet.

Den største fordel ved et Diffie-Hellman-håndtryk over RSA er, at det indfødte giver perfekt fremad-hemmelighed. Som allerede bemærket opnår man simpelthen en lignende ende ved at tilføje en DH-nøgleudveksling til et RSA-håndtryk.

Diffie-Hellman har skabt enorm kontrovers for dets genbrug af et begrænset sæt primtal. Dette gør det sårbart over for at blive brudt af en stærk modstander, såsom NSA. Diffie-Hellman på sin egen side sørger derfor ikke for sikker håndtrykkryptering. Det er dog fint, når det bruges som en del af en RSA-chiffer-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 for at kryptere forbindelser.

ECDH kan bruges som en del af et RSA-håndtryk for at give perfekt fremad-hemmelighed, eller kan sikkert kryptere et håndtryk på egen hånd (med en ECDSA-signatur). Dette giver også PFS.

ECDH-tastens længde starter ved 384-bit. Dette betragtes som sikkert, men når det bruges på egen hånd til at sikre et TLS-håndtryk, jo længere desto bedre (hvad angår sikkerhed alligevel).

SHA Hash-godkendelse

Dette benævnes også data-godkendelse eller hashmeddelelsesgodkendelseskode (HMAC).

Secure Hash Algorithm (SHA) er en kryptografisk hash-funktion, der anvendes (blandt andet) til at autentificere 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 er detekterbar. Hvis der er manipuleret med certifikatet, opdages dette straks, og forbindelsen afvises.

Dette er vigtigt for at forhindre et Man-in-the-middle-angreb (MitM), hvor en modstander forsøger at aflede din OpenVPN-forbindelse til en af ​​sine egne servere i stedet for din VPN-udbyder. Det kan f.eks. Gøre dette ved at hacking din router.

Hvis en modstander kan knække hash fra din udbyders ægte TLS-certifikat, kan den vende hasjen for at oprette et forfalsket certifikat. Din Open VPN-software godkender derefter forbindelsen som ægte.

Er SHA sikkert?

Når det bruges til at beskytte HTTPS-websteder, er SHA-1 ødelagt. Dette har været kendt i nogen tid. SHA-1-websteder kan stadig findes, men udfases. De fleste browsere udsender nu en advarsel, når du prøver at oprette forbindelse til et websted, der er sikret med SHA-1.

SHA-2 og SHA-3 hash-funktioner anbefales nu i stedet og er sikre. SHA-2 inkluderer SHA-256, SHA-384 og SHA-512. Imidlertid…

OpenVPN bruger kun SHA til HMAC. Jeg synes ikke, det er nyttigt at gå for detaljeret ind her, men SHA-hash-godkendelse er en del af HMAC-algoritmen. At angribe HMAC integreret med SHA-1 er meget sværere end bare at angribe selve SHA-1-hashfunktionen.

Med andre ord betragtes HMAC SHA-1 som brugt af OpenVPN som sikker, og der er matematisk bevis på dette. HMAC SHA-2 og HMAC SHA-3 er selvfølgelig endnu mere sikre! Faktisk anerkender den nylige OpenVPN-revision, at HMAC SHA-1 er sikkert, 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 ​​dets ciffer.

I betragtning af det, vi nu ved om NSAs systematiske indsats for at svække eller opbygge bagdøre i internationale krypteringsstandarder, er der al grund til at stille spørgsmålstegn ved integriteten af ​​NIST-algoritmer.

NIST afviser naturligvis kraftigt sådanne påstande:

“NIST ville ikke bevidst svække en kryptografisk standard.”

Det har også opfordret til offentlig deltagelse i en række kommende foreslåede krypteringsstandarder i et skridt, der er designet til at styrke den offentlige tillid.

New 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 afdeling af EMC) privat bad kunderne om at stoppe med at bruge en krypteringsalgoritme, der angiveligt indeholder en fejl, der er konstrueret af NSA. Denne algoritme var også 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 lancere 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 industrien. Microsoft, Cisco, Symantec og RSA inkluderer alle algoritmen i deres produkts kryptografiske biblioteker. Dette er i vid udstrækning, fordi overholdelse af NIST-standarder er en forudsætning for at få amerikanske regeringskontrakter.

NIST-certificerede kryptografiske standarder er stort set allestedsnærværende overalt i hele sektoren inden for industri og erhverv, der er afhængige af privatlivets fred. Dette gør hele situationen ret kølig.

Måske netop fordi så meget er afhængige af disse standarder, har kryptografieksperter været uvillige til at møde problemet.

AES-CBC vs AES-GCM

Indtil for nylig var den eneste AES-kodning, som du sandsynligvis ville støde på i VPN-verdenen, AES-CBC (Cipher Block Chaining). Dette henviser til blokciffertilstand, et komplekst emne, som ikke er værd at gå ind her. Selvom CBC teoretisk kan have nogle sårbarheder, er den generelle enighed om, at CBC er sikkert. CBC anbefales faktisk i OpenVPN manualen.

OpenVPN understøtter nu også AES-GCM (Galios / Counter Mode).

  • GCM giver godkendelse, hvilket fjerner behovet for en HMAC SHA-hashingfunktion.
  • Det er også lidt hurtigere end CBC, fordi det bruger hardwareacceleration (ved at tråde til flere processor-kerner).

AES-CBC forbliver den mest almindelige tilstand i almindelig brug, men vi er nu begyndt at støde på AES-GCM "i det vilde." I betragtning af fordelene ved GCM er denne tendens kun sandsynligvis fortsat. 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. Hver gang en computer sender en netværkspakke vha. TCP, venter den på bekræftelse af, at pakken er ankommet, før den næste pakke sendes. 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 bekræftelse eller gentest. Dette gør UDP meget hurtigere end TCP, men mindre pålidelig.

Hvis du får valget, foreslår jeg, at du bruger den hurtigere UDP-protokol, medmindre du oplever forbindelsesproblemer. Dette er standardstrategien, der er vedtaget af de fleste VPN-udbydere.

Besejr censur med OpenVPN på TCP Port 443

En af de store fordele ved OpenVPN er, at det 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 websteder.

Uden HTTPS ville ingen form for online-handel, såsom shopping eller bankvirksomhed, være mulig. Det er derfor meget sjældent, at denne havn 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 Deep Packet Inspection-teknikker. TCP-port 443 er derfor den foretrukne port til at undgå VPN-blokke.

Mange VPN-udbydere tilbyder muligheden for at ændre det portnummer, der bruges af OpenVPN ved hjælp af deres brugerdefinerede software.

Selv hvis 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 af din OpenVPN-konfigurationsfil (.ovpn). 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 TCP-port 443 som standard.

Resuméer

VPN-protokoller

  • PPTP er meget usikker og bør undgås. Selvom dens lethed med opsætning og kompatibilitet på tværs af platforme er attraktiv, 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 dog blevet alvorligt kompromitteret af NSA.
  • SSTP tilbyder de fleste af fordelene ved OpenVPN, men er primært kun en Windows-protokol. Dette betyder, at det er bedre integreret i OS, men det understøttes dårligt af VPN-udbydere takket være denne begrænsning. Derudover betyder dens ejendomsret og det faktum, at det er skabt af Microsoft, at jeg for det første ikke har tillid til det.
  • IKEv2 er en meget god (sikker og hurtig) protokol. Især mobile brugere kan måske endda foretrække det frem for OpenVPN på grund af dets forbedrede evne til at genoprette forbindelse, 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 i sig selv ingen reelle ulemper, men for at være virkelig sikker er det vigtigt, at det implementeres godt. Dette betyder stærk kryptering med Perfect Forward Secrecy.

OpenVPN-kryptering

Når det kommer til kryptering, er djævelen i detaljer. Det er almindeligt at se VPNs-udbydere siger, at de bruger “ultra-stærk 256-bit” AES OpenVPN-kryptering, men dette fortæller os ikke meget. AES-256 er virkelig en stærk chiffer, men hvis andre aspekter af den anvendte krypteringssuite er svage, vil dine data ikke være sikre.

  • cipher - dette beskytter dine faktiske data. AES-256 er nu branchestandarden 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 er ikke.
  • Hash-godkendelse - skaber 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-koderen bruges.
  • Perfekt fremadretthed (PFS) - dette sikrer, at der oprettes nye krypteringsnøgler til hver session. OpenVPN bør ikke betragtes som sikkert, 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 taster er næsten altid mere sikkert, men det koster en hastighed.

OpenVPN vil forhandle cifere mellem klient og server når som helst. Medmindre der er defineret meget specifikke parametre, er OpenVPN muligvis standard til svage indstillinger. Som minimum vil OpenVPN som standard være Blowfish-128-chiffer, 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 at konfigurere en VPN korrekt, er kryptering imidlertid kun halvdelen af ​​historien. Den anden halvdel sikrer, at ingen trafik kommer ind eller forlader din computer uden for VPN-forbindelsen.

Hvis du vil lære mere om dette, kan du se vores komplette guide til IP-lækager.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me