Виртуалната частна мрежа (VPN) криптира всички данни, докато пътува между вашия компютър и VPN сървър. В това Пълно ръководство за шифроване на VPN ние разглеждаме подробно какво е криптирането и как се използва в VPN връзки.

Може би най-важното е да обясним масива от термини за криптиране, използвани от VPN услуги. Надяваме се, че след като прочетете този документ, ще разберете по-добре тази сложна тема и ще можете по-добре да оцените претенциите за сигурност, отправени от доставчици на VPN.

Предварителен

Ако не сте сигурни какво е VPN и какво може да направи за вас, моля, разгледайте нашите VPN за Ръководство за начинаещи.

Нашата цел е да представим основните характеристики на VPN криптирането във възможно най-прости условия. Въпреки че няма как да се измъкнем, от факта, че криптирането е сложна тема.

Ако дори терминът криптиране кара очите ви да започнат да остъклят, но все пак искате да знаете какво да внимавате в добра VPN услуга, можете да скочите направо към обобщения.


Какво е шифроване?

Започнете в началото," - каза кралят много сериозно, "и продължете, докато стигнете до края: тогава спрете. "

Люис Карол, Алиса в страната на чудесата

Най-простата аналогия е, че криптирането е заключване. Ако имате правилния ключ, тогава ключалката се отваря лесно. Ако някой няма правилния ключ, но иска да получи достъп до съдържанието на силна кутия (тоест вашите данни), защитена от тази ключалка, тогава той може да опита да разбие ключалката.

По същия начин, както ключалката, която осигурява банков трезор, е по-силна от тази, която осигурява куфар, някои криптиране са по-силни от други криптиране.

Основите

Когато бяхте дете, играхте ли играта, в която създадохте „тайно съобщение“, замествайки една буква от съобщението с друга? Замяната е направена по формула, избрана от вас.

Може например да замените всяка буква от оригиналното съобщение с една три букви зад нея в азбуката. Ако някой друг знаеше каква е тази формула или беше в състояние да я разработи, тогава щеше да може да прочете вашето „тайно съобщение“.

В криптографския жаргон това, което правехте, беше „криптиране“ на съобщението (данните) според много прост математически алгоритъм. Криптографите наричат ​​този алгоритъм като „шифър“. За да го декриптирате, трябва ключът. Това е променлив параметър, който определя крайния изход на шифъра. Без този параметър е невъзможно дешифрирането на шифъра.

Ако някой иска да прочете криптирано съобщение, но няма ключ, той трябва да се опита да „пропука“ шифъра. Когато криптирането използва прост шифър за заместване на букви, пропукването е лесно. Криптирането обаче може да се направи по-сигурно, като се направи математическият алгоритъм (шифърът) по-сложен.

Можете например да замените всяка трета буква от съобщението с число, съответстващо на буквата.

Дължина на ключа за шифроване

Съвременните компютърни шифри са много сложни алгоритми. Дори и с помощта на суперкомпютри, те са много трудни за разбиване, ако не и невъзможно за всички практически цели. Най-грубият начин за измерване на силата на шифъра е чрез сложността на алгоритъма, използван за създаването му.

Колкото по-сложен е алгоритъмът, толкова по-трудно е да се разчупи шифърът с помощта на груба атака. Тази много примитивна форма атака е известна също като изчерпателно търсене на ключове. По същество включва опит за всяка възможна комбинация от числа, докато се намери правилния ключ.

Компютрите извършват всички изчисления, използвайки двоични числа: нули и такива. Сложността на един шифър зависи от неговия размер на ключовете в битове - суровият брой единици и нули, необходими за изразяване на алгоритъма му, където всяка нула или една е представена от един бит.

Това е известно като дължина на ключа и също така представлява практическата възможност за успешно извършване на груба атака върху даден шифър.

Броят на възможните комбинации (и следователно трудността да ги насилваме) нараства експоненциално с размера на ключовете. Използване на AES шифър (вижте по-късно):

Комбинации от ключови размери

За да поставим това в перспектива:

  • През 2011 г. най-бързият суперкомпютър в думата беше Fujitsu K. Това беше способно да достигне максимална скорост Rmax от 10,51 петафлопа. Въз основа на тази цифра ще са необходими Fujitsu K 1,02 x 10 ^ 18 - около един милиард милиарда (един квинтилион) - години, за да се пробие 128-битов AES (Advanced Encryption Standard) ключ. Това е по-старо от възрастта на Вселената (13,75 милиарда години).
  • Най-мощният суперкомпютър в света сега (2017 г.) е Sunway TaihuLight в Китай. Този звяр е способен на пикова скорост от 93,02 петафлопа. Това означава, че най-мощният компютър в света все пак ще отнеме около 885 квадрилиона години, за да накара груба сила на 128-битов AES ключ.
  • Броят на операциите, необходими за груба сила на 256-битов шифър е 3,31 х 10 ^ 56. Това е приблизително равно на броя на атомите във Вселената!

Компютърни шифри

Докато дължината на ключа за шифроване се отнася до количеството на включените сурови числа, шифрите са математиката - действителните формули или алгоритми, използвани за извършване на криптирането. Както току-що видяхме, грубото насилване на съвременни компютърни шифри е диво непрактично.

Слабостите (понякога умишлени) в тези шифърни алгоритми могат да доведат до нарушаване на криптирането. Това е така, защото изходът на (лошо проектиран) шифър все още може да разкрие някаква структура от първоначалната информация преди криптиране. Това създава намален набор от възможни комбинации за опитване, което на практика намалява ефективната дължина на клавиша.

Шифърът Blowfish например е уязвим за атака, която използва теорията на математиката зад проблема за рождения ден в теорията на вероятностите. Изследването на слабостите в криптографските алгоритми е известно като криптоанализа.

По-големите дължини на ключовете компенсират подобни слабости, тъй като те значително увеличават броя на възможните резултати.

Вместо да атакува самия шифър, противник може да атакува самия ключ. Това може да засегне конкретен сайт или определен софтуерен продукт. Но сигурността на шифровия алгоритъм все още е непокътната, а други системи, които използват същия алгоритъм, но имат сигурно генериране на ключове, не са засегнати от почивката.

Дължина на ключа на шифъра

Колко силен е шифърът зависи както от математиката на самия шифър, така и от дължината на ключа му, изразена в битове. По тази причина шифрите обикновено се описват заедно с използваната дължина на ключа.

Така AES-256 (AES-шифърът с 256-битова дължина на ключа) обикновено се счита за по-силен от AES-128. Имайте предвид, че казвам обикновено, защото тук имаме работа с много сложна математика (вижте моите бележки за AES по-късно).

Забележка Icon2 01 150X150

Важно е да се отбележи, че дължината на клавиша сама по себе си не е добър показател за силата на шифъра. Важно е комбинацията от дължина на ключа и шифър. Шифрите, използвани за асиметрично криптиране, например, използват много по-дълги размери на ключовете от тези, използвани за симетрично криптиране, за да осигурят еквивалентна защита.

Сравнение на размера на ключовете

Тази таблица е малко остаряла, тъй като не отчита по-новите атаки, открити по RSA. Също така си струва да се отбележи, че елиптичната крива и вариантите на RSA на Diffie-Hellman са много по-силни от традиционните. Но да се надяваме, че имате идеята.

Забележка Icon2 01 150X150

Едно нещо, което трябва да се отбележи, е, че колкото по-голяма е дължината на ключа, толкова повече изчисления са включени, така че е необходима повече мощност на обработка. Това се отразява на скоростта, с която данните могат да бъдат криптирани и декриптирани. Затова доставчиците на VPN и подобни подобни трябва да решат как най-добре да балансират сигурността и практическата използваемост при избора на схеми за криптиране.

Обсъждаме основните шифри, използвани от различни VPN протоколи малко по-късно, но най-често срещаните шифри, които вероятно ще срещнете, са Blowfish и AES. В допълнение към това, RSA се използва за криптиране и дешифриране на ключове на шифър, а SHA-1 или SHA-2 се използва като хеш функция за удостоверяване на данни.

Асиметрично криптиранеАсиместрично криптиране

Перфектна тайна за напред

Перфектната секретна информация (PFS) се нарича също използването на ефимерни ключове за криптиране или просто Препращане на секретност (FS) от тези, които са неудобни при използването на думата „перфектно“.

Повечето съвременни сигурни онлайн комуникации разчитат на SSL / TLS. Използва се от уеб сайтове на HTTPS и от OpenVPN протокола. TLS (Transport Layer Security) е асиметричен протокол за криптиране. Използването на асиметричен шифър означава, че данните са защитени с публичен ключ, който е достъпен за всички. Той обаче може да бъде дешифриран само от предназначен получател, който държи правилния личен ключ.

Този частен ключ трябва да се пази в тайна. Ако той бъде откраднат или взломен от противник, той може лесно да го прихване и да прочете всички обезпечени от него комуникации..

За съжаление е обичайно за сървъри или дори цели компании да използват само един частен ключ за криптиране, за да осигурят всички комуникации. Защо? Защото е лесно Ако обаче този ключ е компрометиран, нападателят може да получи достъп до всички кодирани с него комуникации.

Следователно този частен ключ за криптиране се превръща в "главен ключ", който може да се използва за отключване на всички комуникации със сървър или компания. Известно е, че NSA е използвал тази слабост, за да събере огромни редици от уж сигурни данни.

Решението е Perfect Forward Secret. Това е система, при която за всяка сесия се генерира нов и уникален частен ключ за криптиране. Това е проста идея, дори ако математическият обмен на Diffie-Hellman е сложен. Това означава, че всяка TLS сесия има собствен набор от ключове. Оттук и терминът „ефемерни ключове“ - те се използват веднъж и след това изчезват.

Следователно няма „главен ключ“, който да може да се използва. Дори ако сесията е компрометирана, само тази сесия е компрометирана - не всички други сесии, които някой има с този сървър или компания!

Макар и необичайно, дори е възможно да опресните PFS ключовете в рамките на сесия (например на всеки час). Това допълнително ограничава количеството данни, което може да бъде прихванато от противник, дори ако частният ключ е компрометиран.

Когато написах тази статия по темата преди няколко години, използването на Perfect Forward Secrecy както за HTTPS уебсайтове, така и за OpenVPN връзки беше ужасно рядко срещано. За щастие тази ситуация донякъде се промени. Въпреки че в никакъв случай не е универсален, използването на ефемерни ключове значително се е увеличило от късно.

Протоколи за шифроване на VPN

VPN протокол е набор от инструкции (механизъм), използвани за договаряне на сигурна криптирана връзка между два компютъра. Редица такива VPN протоколи обикновено се поддържат от търговски VPN услуги. Най-забележителните от тях са PPTP, L2TP / IPSec, OpenVPN, SSTP и IKEv2.

Разглеждам всяко от тях по-долу, но OpenVPN вече е стандартният VPN протокол, използван от търговските VPN услуги - по уважителна причина. Той е много защитен и може да се използва на почти всички VPN-устройства. Следователно ще изразходвам допълнително цифрово мастило, обсъждайки OpenVPN подробно.

PPTP

ПРОФЕСИОНАЛИСТИ

  • Клиент, вграден в почти всички платформи
  • Много лесно за настройване

CONS

  • Много несигурно
  • Определено компрометиран от НСА
  • Лесно се блокира

Какво е PPTP?

Това е само VPN протокол и разчита на различни методи за удостоверяване, за да осигури сигурност. Сред търговските VPN доставчици това е почти неизменно MS-CHAP v2. Протоколът за криптиране (подобно на стандартен шифър), използван от PPTP, е криптиране на Microsoft от точка до точка (MPPE).

Протокол за тунелиране от точка до точка (PPTP) е разработен от консорциум, основан от Microsoft за създаване на VPN през комутируеми мрежи. Като такъв, PPTP отдавна е стандартният протокол за корпоративните VPN мрежи.

PPTP се предлага стандартно за почти всяка VPN-платформа и устройство. Настройката е лесна, без да е необходимо да инсталирате допълнителен софтуер. Това гарантира, че PPTP остава популярен избор както за бизнес VPN, така и за търговски VPN услуги.

Той има и предимството да изисква ниска изчислителна режийност, за да внедрите ... така че е бързо!

За съжаление, PPTP не е защитен. Изобщо. Въпреки че сега обикновено се срещат само с помощта на 128-битови криптиращи ключове, в годините, откакто за първи път са били снабдени с Windows 95 OSR2 през 1999 г., редица уязвимости в сигурността излязоха наяве.

Най-сериозното от тях е възможността за незакапсулирана MS-CHAP v2 удостоверяване. Използвайки този експлоатация, PPTP е напукан в рамките на два дни. Microsoft е отстранила недостатъка, но сама е издала препоръка да се използва L2TP / IPsec или SSTP.

Не трябва да е изненада, че NSA почти сигурно дешифрира шифровани чрез PPTP комуникации като стандарт. Още по-притеснителното е, че NSA събира огромни количества по-стари данни, които бяха криптирани обратно, когато PPTP се считаше за сигурен. Почти сигурно може да дешифрира и тези наследени данни.

PPTP изисква както TCP порт 1723, така и протокол GRE. GRE е лесно да се защити стената, което улеснява блокирането на PPTP връзки.

L2TP / IPSec

  • Обикновено се счита за сигурен (но вижте минусите)
  • Лесна за настройка
  • Предлага се на всички съвременни платформи
  • По-бързо от OpenVPN (може би)
  • Може да бъде компрометиран от НСА (недоказан)
  • Вероятно умишлено отслабен от НСА (недоказан)
  • Може да се бори с ограничителни защитни стени
  • Често се прилага лошо

Какво е L2TP и IPsec?

Протокол за тунелиране на слой 2 (L2TP) е вграден в почти всички съвременни операционни системи и VPN-устройства. Следователно е също толкова лесно и бързо да се настрои като PPTP.

Само по себе си L2TP не предоставя никакво криптиране или конфиденциалност на трафика, който преминава през него, така че обикновено се реализира с пакета за удостоверяване на IPsec (L2TP / IPsec). Дори ако доставчик се отнася само за L2TP или IPsec (както някои правят), това почти сигурно означава L2TP / IPSec.

L2TP / IPsec може да използва или 3DES, или AES шифри. 3DES е уязвим при сблъсъци срещу срещи и Sweet32, така че на практика е малко вероятно да го срещнете днес.

Проблеми могат да възникнат, защото L2TP / IPSec протоколът използва само ограничен брой портове. Това може да доведе до усложнения, когато се използва зад NAT защитните стени. Това разчитане на фиксирани портове също прави протокола доста лесен за блокиране.

L2TP / IPsec капсулира данните два пъти, което забавя нещата. Това се компенсира от факта, че в ядрото се случва криптиране / дешифриране, а L2TP / IPsec позволява мулти-резба. OpenVPN не. Резултатът е, че L2TP / IPsec е теоретично по-бърз от OpenVPN.

L2TP / IPsec, използващ AES шифър, няма основни известни уязвимости и ако е правилно внедрен, все още може да бъде защитен. Разкритията на Едуард Сноудън обаче силно намекнаха, че стандартът е компрометиран от НСА.

Джон Гилмор е специалист по сигурността и основател на Фондацията за електронни граници. Той обяснява, че вероятно IPSec е бил умишлено отслабен по време на своята фаза на проектиране.

Вероятно много по-голям проблем е, че много VPN услуги прилагат L2TP / IPsec слабо. По-конкретно, те използват предварително споделени ключове (PSK), които могат да бъдат свободно изтегляни от техните уебсайтове.

Тези PSK файлове се използват само за удостоверяване на връзката, така че дори да бъдат компрометирани, данните остават сигурно криптирани с помощта на AES. Нападателят обаче може да използва предварително споделения ключ, за да се представи за VPN сървър. След това може да подслушва криптиран трафик или дори да инжектира злонамерени данни във връзката.

Забележка Icon2 01 150X150

резюме

Въпреки някои до голяма степен теоретични проблеми, L2TP / IPsec обикновено се счита за сигурен, ако не се използват открито публикувани предварително споделени ключове. Вградената му съвместимост с много много устройства може да го направи много добър избор.

ПРОФЕСИОНАЛИСТИ

  • Много сигурно
  • Напълно интегриран в Windows
  • Поддръжка на Microsoft
  • Може да заобиколи повечето защитни стени

CONS

  • Собствен стандарт, собственост на Microsoft

Какво е SSTP?

SSTP е тип криптиране, който използва SSL 3.0 и предлага подобни предимства на OpenVPN. Това включва възможността да се използва TCP порт 443 за избягване на цензурата. Тясната интеграция с Windows може да направи по-лесна за използване и по-стабилна от OpenVPN на тази платформа.

За разлика от OpenVPN обаче, SSTP е патентован стандарт, собственост на Microsoft. Това означава, че кодът не е отворен за публичен контрол. Историята на Microsoft за сътрудничество с NSA и спекулациите за възможни заден план, вградени в операционната система Windows, не вдъхват доверие в стандарта.

Протоколът за сигурно тунелиране на сокети (SSTP) беше въведен от Microsoft в Windows Vista SP1. Въпреки че вече е наличен за Linux и дори Mac OS X, той все още е предимно платформа само за Windows.

Друг проблем е, че SSL v3.0 е уязвим към това, което е известно като атака POODLE, и сега не се препоръчва. Дали този въпрос засяга и SSTP, не е ясно, но отново едва ли вдъхва увереност.

Забележка Icon2 01 150X150

резюме

На хартия SSTP предлага много от предимствата на OpenVPN. Това, че е патентован стандарт на Microsoft, обаче лошо подкопава неговата надеждност.

IKEv2

ПРОФЕСИОНАЛИСТИ

  • Бърз
  • Стабилен - особено при превключване на мрежа или повторно свързване след загубена интернет връзка
  • Сигурен (ако се използва AES)
  • Лесна за настройка (поне в края на потребителя!)
  • Протоколът се поддържа на Blackberry устройства

CONS

  • Не се поддържа на много платформи
  • Внедряването на IKEv2 в края на сървъра е сложно, което може потенциално да доведе до проблеми
  • Доверете се само на реализации с отворен код

Какво е IKEv2?

Версия 2 за обмен на ключове в Интернет (IKEv2) е разработена съвместно от Microsoft и Cisco. Той е поддържан от Windows 7+, Blackberry и iOS устройства. Ето защо много iOS VPN услуги използват IKEv2 вместо OpenVPN.

Независими разработени съвместими версии на IKEv2 са разработени за Linux и други операционни системи. Много от тези повторения са с отворен код. Както винаги, предлагам да внимавате за всичко, разработено от Microsoft. Версиите с отворен код на IKEv2 обаче не трябва да имат проблеми.

IKEv2 е част от пакета протоколи IPsec. Той гарантира, че трафикът е сигурен чрез предаване на атрибута SA (Security Association) в рамките на IPsec и се подобрява по IKEv1 по много начини. По този начин IKEv2 понякога се нарича IKEv2 / IPsec. IKEv1, от друга страна, често се нарича просто IPsec.

Дублиран VPN Connect от Microsoft, IKEv2 е особено добър за автоматично възстановяване на VPN връзка, когато потребителите временно загубят интернет връзките си. Например при влизане или излизане от влак на тунел.

Поради поддръжката си на протокола Mobility and Multihoming (MOBIKE), IKEv2 също е силно издръжлив на променящите се мрежи. Това прави IKEv2 чудесен избор за потребители на мобилни телефони, които редовно превключват между домашна WiFi и мобилна връзка или които редовно се движат между горещи точки.

IKEv2 не е толкова често като L2TP / IPSec, тъй като се поддържа на много по-малко платформи (въпреки че тази ситуация се променя бързо). Той обаче се счита поне толкова добър, колкото ако не е по-добър от L2TP / IPsec по отношение на сигурност, производителност (бързина), стабилност и способност за установяване (и възстановяване) на връзка.

OpenVPN

ПРОФЕСИОНАЛИСТИ

  • Много сигурна (ако се използва PFS)
  • Силно конфигурируем
  • Отворен код
  • Може да заобикаля защитните стени
  • Необходим е софтуер на трети страни

Какво е OpenVPN?

OpenVPN е технология с отворен код, която използва OpenSSL библиотеката и TLS протоколи, заедно с амалгама от други технологии, за да предостави силно и надеждно VPN решение. Вече е стандартният VPN протокол, използван от търговските VPN услуги - по уважителна причина.

Една от основните силни страни на OpenVPN е, че е много конфигурируема. Той е поддържан от никоя платформа, но е наличен на повечето платформи чрез софтуер на трети страни. Персонализираните клиенти и приложения на OpenVPN често са достъпни от отделни VPN доставчици, но основният код с отворен код е разработен от проекта OpenVPN.

Много разработчици и сътрудници на проекта OpenVPN също работят за OpenVPN Technologies Inc., която ръководи проекта.

OpenVPN работи най-добре на UDP порт, но може да бъде настроен да се изпълнява на всеки порт (вижте бележките по-късно). Това включва TCP порт 443, който се използва от редовен HTTPS трафик. Изпълнението на OpenVPN през TCP порт 443 затруднява разказването на VPN връзки освен вида на защитените връзки, използвани от банки, електронни услуги и онлайн търговци на дребно. Това прави OpenVPN много труден за блокиране.

Друго предимство на OpenVPN е, че библиотеката OpenSSL, използвана за предоставяне на криптиране, поддържа редица шифри. На практика обаче само Blowfish и AES обикновено се използват от търговски VPN услуги. Обсъждам тези по-долу.

В светлината на информацията, получена от Едуард Сноудън, изглежда, че докато се използва Perfect Forward Secret, OpenVPN не е компрометиран или отслабен от NSA.

Скорошен одит на OpenVPN е завършен, както и друг, финансиран от Частен достъп до Интернет. Не бяха открити сериозни уязвимости, които засягат поверителността на потребителите. Открити бяха няколко уязвимости, които направиха сървърите на OpenVPN потенциално отворени за атака на отказ на услуга (DoS), но те бяха изплатени в OpenVPN 2.4.2.

OpenVPN обикновено се счита за най-сигурният VPN протокол, който е наличен и се поддържа широко в VPN индустрията. Следователно ще разгледам подробно по-долу криптирането на OpenVPN.

Шифроване на OpenVPN

Шифроването на OpenVPN включва две части - криптиране на канали за данни и криптиране на контролния канал. Шифроването на канали за данни се използва за защита на вашите данни. Шифроването на контролния канал осигурява връзката между вашия компютър и VPN сървъра.

Всяка защита е само толкова силна, колкото и най-слабата й точка, така че е жалко, че някои VPN доставчици използват много по-силно криптиране на един канал от другия (обикновено по-силен в контролния канал).

Не е рядкост например да видите VPN услуга, рекламирана като използване на AES-256 шифър с RSA-4096 криптиране на ръкостискане и аутентификация на хеш SHA-512. Това звучи много впечатляващо, докато не разберете, че се отнася само за криптиране на контролния канал, а не за канала за данни, който е криптиран с Blowfish-128 с SHA1 хеш аутентификация. Това се прави само по маркетингови причини.

Ако в каналите за данни и контрол се използва различно криптиране, тогава истинската сила на OpenVPN връзката се измерва от използвания по-слаб пакет за криптиране.

За максимална сигурност както криптирането на данните, така и на контролния канал трябва да бъде възможно най-силно. Въпреки това, колкото по-силно е използваното криптиране, толкова по-бавна ще бъде връзката, поради което някои доставчици оскъпяват криптирането на канали за данни.

Криптирането на контролния канал се нарича също TLS криптиране, защото TLS е технологията, използвана за сигурно договаряне на връзката между вашия компютър и VPN сървъра. Това е същата технология, използвана от вашия браузър за сигурно договаряне на връзка към криптиран от HTTPS уебсайт.

  • Шифроването на контролния канал се състои от шифър, криптиране на ръкостискане и удостоверяване на хеш.
  • Криптирането на каналите за данни се състои от шифриране и хеш аутентификация.

VPN доставчиците често използват едно и също ниво на криптиране както за контролни, така и за канали за данни. В нашите отзиви и таблици „светофари“ ние ги изброяваме само поотделно, ако за всеки канал се използват различни стойности.

Ако заявим, че доставчикът използва AES-256 шифър, това означава, че AES-256 шифър се използва както за контролния, така и за канала за данни. *

(* Това трябва да е най-малкото. Някои наследени прегледи не отговарят на нашите настоящи указания, но те трябва да бъдат постепенно прекратени).

шифри

OpenVPN може да използва редица симетрични ключови шифри, за да защити данните както в контролния, така и в канала за данни. На практика единствените, използвани от търговските VPN доставчици, са Blowfish, AES и (много рядко) Camellia.

Blowfish

Blowfish-128 е шифърът по подразбиране, използван от OpenVPN. Ключовите размери на теория могат да варират от 32 бита до 448 бита, но Blowfish-128 е единствената версия, която вероятно ще срещнете в природата.

Blowfish често се счита за достатъчно сигурен за ежедневни цели, но има известни слабости. Той е създаден от известния криптограф Брус Шнайер, който през 2007 г. казва: „В този момент, въпреки това, съм изумен, че все още се използва.“

Според нас използването на Blowfish-128 е приемливо като втора линия на защита в канала за данни на OpenVPN. Тя обаче не трябва да се счита за сигурна, когато се използва в контролния канал.

AES

AES се превърна в шифрования шифров симетричен ключов широк отрасъл за VPN. AES е сертифициран за NIST и почти универсално се счита за много сигурен. AES-256 се използва от правителството на САЩ за защита на "сигурни" данни.

Фактът, че той има 128-битов размер на блока, а не 64-битовия размер на Blowfish, също означава, че може да обработва по-големи файлове (над 4 GB) по-добре от Blowfish. В допълнение към това, инструкцията AES се възползва от вграденото хардуерно ускорение на повечето платформи.

AES обикновено се предлага в 128-битови и 256-битови размери на ключовете (съществува и 192-битов AES). AES-128 остава сигурен доколкото някой знае. Имайки предвид това, което сега знаем за степента на нападение на NSA върху стандартите за криптиране, обаче, повечето експерти са съгласни, че AES-256 осигурява по-голям марж на сигурност.

Само за да се гарантира, че никой никога не намира тази тема за твърде лесна, все пак има известен дебат по този въпрос. AES-128 има по-добър ключов график от AES-256, което кара някои много изтъкнати експерти да твърдят, че AES-128 всъщност е по-силен от AES-256.

Общият консенсус обаче е, че AES-256 е по-силен.

камелия

Камелия е модерен защитен шифър и е поне толкова сигурен и бърз, колкото AES. Предлага се в ключови размери от 128, 192 и 256 бита. Благодарение на сертификацията NIST и използването му от правителството на САЩ, AES почти винаги се използва вместо Camellia.

Но както обсъждам по-долу, има причини да не се доверите на сертифицирани NIST шифри. Фактът, че Камелия е не-NIST шифър, е основната причина да го изберете над AES. Тази опция обаче е достъпна само рядко.

Също така си струва да се отбележи, че Камелия не е почти толкова добре изпитана за слабост като AES.

Шифроване на ръкостискане

За да се осигури сигурна връзка между вашето устройство и VPN сървър, OpenVPN използва ръкостискане TLS. Това позволява на клиента OpenVPN и VPN сървъра да установят секретните ключове, с които комуникират.

За да защити това ръкостискане, TLS обикновено използва криптосистемата с публичен ключ RSA. Това е алгоритъм за криптиране и цифров подпис, използван за идентифициране на TLS / SSL сертификати. Той може също така да използва Diffie-Hellman или ECDH размяна на ключове.

RSA

RSA е асиметрична система за криптиране - публичен ключ се използва за криптиране на данните, но се използва различен частен ключ за декриптирането му. Той е основата за сигурността в интернет през последните 20 години.

Вече е добре установено, че RSA с дължина на ключа от 1024 бита (RSA-1024) или по-малко не е сигурен и почти сигурно е пропукан от NSA. Следователно е имало съгласуван ход между интернет компаниите да мигрират далеч от RSA-1024.

За съжаление, все още откриваме, че някои VPN услуги продължават да използват RSA-1024 за защита на ръкостискането. Това не е хубаво.

RSA-2048 и по-висока версия все още се счита за сигурна. Само по себе си RSA не осигурява перфектна тайна за напред (PFS). Това обаче може да бъде осъществено чрез включване на Diffie-Hellman (DH) или елиптична крива Diffie-Hellman (ECDH) обмен на ключове в своя шифров пакет.

В този случай силата на DH или ECDH ключа няма значение, тъй като се използва само за осигуряване на перфектна напред секретност. Връзката е защитена с помощта на RSA.

Тъй като може да предизвика объркване, ще отбележа също, че криптосистемата RSA няма нищо общо с позорната американска техническа фирма RSA Security LLC. Тази компания умишлено отслаби водещите си продукти за криптиране BSAFE, след като беше подкупена от 10 милиона долара от NSA.

Diffie-Hellman и ECDH

Алтернативно (съперническо) криптиране на ръкостискане, което понякога се използва от OpenVPN, е обменът на криптографски ключове Diffie-Hellman (DH). Обикновено има дължина на ключ от 2048 бита или 4096 бита. Обърнете внимание, че нищо по-малко от DH-2048 трябва да се избягва поради чувствителността към атаката на лоджа.

Основното предимство на ръкостискането на Diffie-Hellman пред RSA е, че той по същество осигурява перфектна тайна за напред. Както вече беше отбелязано, просто добавянето на обмен на DH ключ към ръкостискане на RSA постига подобна цел.

Diffie-Hellman предизвика огромен спор относно повторното му използване на ограничен набор от прости числа. Това го прави уязвим да бъде напукан от мощен противник, като NSA. Следователно, Diffie-Hellman сам по себе си не прави сигурно криптиране с ръкостискане. Добре е обаче, когато се използва като част от RSA шифров пакет.

Елиптичната крива Diffie-Hellman (ECDH) е по-нова форма на криптография, която не е уязвима за тази атака. Това е така, защото той използва свойствата на определен тип алгебраична крива вместо големи прости числа за криптиране на връзки.

ECDH може да се използва като част от ръкостискане на RSA за осигуряване на перфектна напред секретност или може да криптира сигурно ръкостискане самостоятелно (с подпис на ECDSA). Това осигурява и PFS.

Дължината на ключа на ECDH започва от 384 бита. Това се счита за сигурно, но когато се използва самостоятелно за осигуряване на TLS ръкостискане, толкова по-дълго, толкова по-добре (по отношение на сигурността, така или иначе).

SHA Hash Удостоверяване

Това също се нарича автентификация на данни или код за удостоверяване на хеш съобщение (HMAC).

Алгоритъмът за сигурен хеш (SHA) е криптографска хеш функция, използвана (наред с други неща) за удостоверяване на данни и SSL / TLS връзки. Това включва OpenVPN връзки.

Той създава уникален пръстов отпечатък на валиден TLS сертификат, който може да бъде валидиран от всеки клиент на OpenVPN. Дори и най-малката промяна е забележима. Ако сертификатът е фалшифициран, това веднага ще бъде открито и връзката отказана.

Това е важно за предотвратяване на атака Man-in-the-Middle (MitM), при която противник се опитва да пренасочи вашата OpenVPN връзка към един от собствените си сървъри вместо към вашия доставчик на VPN. Това би могло да стане това, например, чрез хакване на вашия рутер.

Ако противник може да счупи хеша на истинския TLS сертификат на вашия доставчик, той може да обърне хеша, за да създаде подправен сертификат. След това вашият софтуер за Open VPN ще потвърди връзката като истинска.

Сигурен ли е SHA?

Когато се използва за защита на HTTPS уебсайтове, SHA-1 е счупен. Това се знае от известно време. Уебсайтовете на SHA-1 все още могат да бъдат намерени, но постепенно се премахват. Повечето браузъри вече ще отправят предупреждение, когато се опитате да се свържете към уебсайт, защитен с SHA-1.

Вместо това се препоръчват хеш-функции SHA-2 и SHA-3 и са защитени. SHA-2 включва SHA-256, SHA-384 и SHA-512. Въпреки това…

OpenVPN използва само SHA за HMAC. Не мисля, че е полезно да навлизаме в прекалено големи подробности тук, но SHA аутентификацията на хеш е част от алгоритъма на HMAC. Нападането на HMAC, вградено с SHA-1, е много по-трудно, отколкото просто да атакувате самата функция на хеш SHA-1.

С други думи, HMAC SHA-1, използван от OpenVPN, се счита за сигурен и има математическо доказателство за това. Разбира се, HMAC SHA-2 и HMAC SHA-3 са още по-сигурни! Всъщност, неотдавнашният одит на OpenVPN признава, че HMAC SHA-1 е сигурен, но препоръчва вместо това да преминете към HMAC SHA-2 или HMAC SHA-3.

бележки

NIST

AES, RSA, SHA-1 и SHA-2 са разработени и / или сертифицирани от Националния институт за стандарти и технологии на САЩ (NIST). Това е орган, който по собствено признание работи в тясно сътрудничество с НСА при разработването на своите шифри.

Предвид това, което сега знаем за систематичните усилия на NSA за отслабване или изграждане на заден план в международните стандарти за криптиране, има всички причини да се поставя под въпрос целостта на NIST алгоритмите.

NIST, разбира се, категорично опровергава подобни твърдения:

„NIST умишлено не би отслабил криптографския стандарт.“

Той също така покани участието на обществеността в редица предстоящи предложени стандарти за криптиране, като се стреми да засили общественото доверие.

„Ню Йорк Таймс“ обаче обвини НСА, че заобикаля одобрените от NIST стандарти за криптиране, или чрез въвеждане на неоткриваем заден план или подриване на процеса на обществено развитие за отслабване на алгоритмите.

Това недоверие беше допълнително засилено, когато RSA Security (разделение на EMC) на частно каза на клиентите да спрат да използват алгоритъм за криптиране, който според съобщенията съдържа недостатък, създаден от NSA. Този алгоритъм беше одобрен и от NIST.

Освен това Dual_EC_DRBG (Dual Elliptic Curve Determinic Random Bit Generator) е стандарт за криптиране, разработен от NIST. От години се знае, че е несигурен.

През 2006 г. Технологичният университет в Айндховен в Холандия отбеляза, че атака срещу него е достатъчно лесна за стартиране на „обикновен компютър“. Инженерите на Майкрософт също поставиха под съмнение задната задна врата в алгоритъма.

Въпреки тези опасения, където NIST води, индустрията следва. Microsoft, Cisco, Symantec и RSA включват алгоритъма в криптографските библиотеки на своя продукт. Това е до голяма степен, тъй като спазването на стандартите на NIST е предпоставка за получаване на американски правителствени договори.

Криптографските стандарти, сертифицирани от NIST, са почти повсеместни по целия свят, във всички области на индустрията и бизнеса, които разчитат на поверителността. Това прави цялата ситуация доста смразяваща.

Може би точно защото толкова много разчита на тези стандарти, експертите по криптография не са склонни да се изправят пред проблема.

AES-CBC срещу AES-GCM

Доскоро единственият AES шифър, който вероятно ще срещнете в света на VPN, беше AES-CBC (Cipher Block Chaining). Това се отнася до режима на блокчейн шифър, сложен обект, който всъщност не си струва да навлизаме тук. Въпреки че теоретично CBC може да има някои уязвими места, общият консенсус е, че CBC е сигурен. CBC наистина се препоръчва в ръководството за OpenVPN.

OpenVPN сега също поддържа AES-GCM (Galios / Counter Mode).

  • GCM осигурява автентификация, премахвайки необходимостта от HHAC SHA функция на хеширане.
  • Освен това е малко по-бърз от CBC, тъй като използва хардуерно ускорение (чрез резба към множество ядра на процесора).

AES-CBC остава най-често срещаният режим в общата употреба, но сега започваме да срещаме AES-GCM "в дивата природа." Като се имат предвид предимствата на GCM, тази тенденция вероятно ще продължи. От криптографска гледна точка, tho9ugh, и AES-CBC, и AES-GCM са много сигурни.

OpenVPN UDP срещу OpenVPN TCP

OpenVPN може да работи над TCP (Transmission Control Protocol) или UDP (User Datagram Protocol).

  • TCP = надежден. Всеки път, когато компютър изпрати мрежов пакет, използвайки TCP, той чака потвърждение, че пакетът е пристигнал, преди да изпрати следващия пакет. Ако не бъде получено потвърждение, той ще изпрати отново пакета. Това е известно като коригиране на грешки. Има "гарантирана доставка" на всички данни, но това може да бъде доста бавно.
  • UDP = бързо. Използвайки UDP, не се извършва такава корекция на грешки. Пакетите се изпращат и получават без потвърждения или повторни опити. Това прави UDP много по-бърз от TCP, но по-малко надежден.

Ако имате избор, предлагам да използвате по-бързия протокол UDP, освен ако нямате проблеми с връзката. Това е стратегията по подразбиране, приета от повечето доставчици на VPN.

Победете цензурата с OpenVPN на TCP порт 443

Едно от големите предимства на OpenVPN е, че той може да се изпълнява над всеки порт, включително TCP порт 443. Това е порта, използван от HTTPS, криптиран протокол, който защитава всички защитени уебсайтове.

Без HTTPS не би била възможна никаква форма на онлайн търговия, като пазаруване или банкиране. Следователно е много рядко този порт да бъде блокиран.

Като бонус, VPN трафикът на TCP порт 443 може да бъде пренасочен вътре в TLS криптирането по същия начин, както се използва от HTTPS. Това прави много по-трудно да забележите, използвайки съвременни техники за дълбока проверка на пакети. Следователно TCP порт 443 е предпочитаният порт за избягване на VPN блокове.

Много доставчици на VPN предлагат възможността да променят номера на порта, използван от OpenVPN, използвайки техния персонализиран софтуер.

Дори и вашият да не е, много VPN доставчици действително поддържат OpenVPN, използвайки TCP порт 443 на ниво сървър. Можете да преминете към него с обикновена редакция на вашия конфигурационен файл (.ovpn) на OpenVPN. Ето защо си струва да попитате вашия доставчик на VPN за това.

Заслужава да се отбележи, че мрежовите инженери не харесват тази тактика, тъй като TCP над TCP е много неефективен. Когато става въпрос за побеждаване на цензурата обаче, тя често работи.

SSTP използва TCP порт 443 по подразбиране.

Резюмета

VPN протоколи

  • PPTP е много несигурен и трябва да се избягва. Въпреки че лекотата на настройка и съвместимостта между платформите са атрактивни, L2TP / IPsec има същите предимства и е много по-сигурен.
  • L2TP / IPSec е добро VPN решение за некритична употреба. Това е особено вярно за наследени устройства, които не поддържат OpenVPN. Той обаче е сериозно компрометиран от НСА.
  • SSTP предлага повечето предимства на OpenVPN, но преди всичко е само Windows протокол. Това означава, че той е по-добре интегриран в операционната система, но е слабо поддържан от доставчици на VPN благодарение на това ограничение. В допълнение към това, неговата собствена същност и фактът, който е създаден от Microsoft, означават, че аз, например, не му вярвам.
  • IKEv2 е много добър (сигурен и бърз) протокол. По-специално, потребителите на мобилни устройства могат дори да го предпочетат пред OpenVPN поради подобрената му способност да се свърже отново при прекъсване на интернет връзка. За потребителите на Blackberry, това е почти единствената налична опция. Използвайте версии с отворен код, когато е възможно.
  • OpenVPN е препоръчителният VPN протокол при повечето обстоятелства. Той е бърз, надежден, сигурен и с отворен код. Той сам по себе си няма истински недостатъци, но за да бъде наистина сигурен, е важно той да бъде приложен добре. Това означава силно криптиране с Perfect Forward Secret.

Шифроване на OpenVPN

Когато става дума за криптиране, дяволът е в детайлите. Обичайно е да се види, че доставчиците на VPN казват, че използват "ултра-силно 256-битово" AES OpenVPN криптиране, но това всъщност не ни казва много. AES-256 наистина е силен шифър, но ако други аспекти на използвания пакет за криптиране са слаби, вашите данни няма да бъдат защитени.

  • шифър - това защитава вашите реални данни. AES-256 вече е отрасловият стандарт и се препоръчва.
  • ръкостискане - това осигурява вашата връзка с VPN сървъра. RSA-2048 + или ECDH-384 + са сигурни. Важно са ръкостисканията RSA-1024 и Diffie-Hellman не.
  • Хеш аутентификация - създава уникален пръстов отпечатък, който се използва за валидиране на данни и TLS сертификати (тоест за проверка дали сървърът, към който се свързвате, наистина е този, към който смятате, че се свързвате). HMAC SHA-1 е абсолютно добре, но HMAC SHA-2 (SHA-256, SHA-384 и SHA-512) и HMAC SHA-3 са още по-сигурни! Обърнете внимание, че аутентификацията на хеш не се изисква, ако се използва шифър AES-GCM.
  • Перфектна тайна за напред (PFS) - това гарантира създаването на нови ключове за криптиране за всяка сесия. OpenVPN не трябва да се счита за сигурен, освен ако не бъде приложен PFS. Това може да се направи или чрез включване на Diffie-Hellman или ECDH размяна на ключове в RSA ръкостискане, или DH или ECDH ръкостискане.
  • Шифроването е само толкова сигурно, колкото и най-слабата му точка. Това означава, че настройките за криптиране трябва да бъдат силни както в каналите за данни, така и в контрола.
  • Използването на по-големи дължини на битовете за шифри и клавиши почти винаги е по-сигурно, но това става с бързи разходи.

OpenVPN ще преговаря по желание шифри между клиент и сървър. Освен ако не са дефинирани много специфични параметри, OpenVPN може да е по подразбиране към слаби настройки. Като минимум, OpenVPN по подразбиране ще бъде Blowfish-128 шифър, RSA-1024 ръкостискане без PFS и HMAC SHA-1 hash автентификация.

заключение

Да се ​​надяваме, че сега имате по-добро разбиране на това, което прави сигурната VPN връзка. Когато става въпрос за правилното конфигуриране на VPN, обаче, криптирането е само половината от историята. Другата половина е да се гарантира, че няма трафик да влиза или да оставя компютъра ви извън VPN връзката.

За да научите повече за това, моля, разгледайте нашето Пълно ръководство за IP течове.

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