Если сильно упростить, вся ваша работа в сети – это приходящие и отправляемые запросы. Например, вы хотите посетить сайт ex........e.com, в своем браузере вы вводите адрес сайта, и сайт открывается. Но начнем с того, что example.com – это не адрес сайта, это доменное имя.
Работу системы доменных имен можно сравнить с отправкой почтового письма. Вы хотите отправить письмо своему дяде, но если вы просто напишете на конверте имя и фамилию дяди (аналог доменного имени), на почте этой информации будет мало. Тогда вы открываете записную книжку и смотрите адрес и индекс дяди (аналог IP-адреса). Сама записная книжка с адресами – аналог DNS-сервера.
Итак, вы ввели адрес сайта и ждете, когда он загрузится, а это значит, что сайт вам должен отправить всю информацию, как он выглядит и что содержит. Но куда он вам отправит? Ему нужен ответный IP-адрес. И ваш IP-адрес ему приходит в первом запросе.
Все запросы, которые вы отправляете сайту, и информацию, получаемую в ответ, могут просматривать интернет-провайдер и спецслужбы, размещающие у интернет-провайдеров аппаратуру для проведения оперативно-розыскных мероприятий (в России это СОРМ).
В некоторых странах интернет-провайдеры по закону обязаны хранить не только данные о том, с какими IP-адресами вы обменивались информацией и когда, но и содержание этой информации. Например, подобный закон действует в России, где интернет-провайдеры должны хранить всю отправленную и полученную информацию на протяжении 6 месяцев и общую информацию об активности пользователей в сети на протяжении трех лет.
Графически это выглядит так:
Наверное, некоторые из вас напомнят мне о существовании HTTPS. HTTPS шифрует обмен данными между сайтом и пользователем. При использовании HTTPS интернет-провайдер уже не сможет увидеть, какие страницы вы посещаете внутри сайта, например, страницы каких пользователей просматриваете в VK или какие видео смотрите. Однако он все равно видит, с каким сайтом у вас HTTPS-соединение, а для спецслужб расшифровка HTTPS не составляет проблем.
Использование HTTPS не зависит от пользователя: если на сайте нет сертификата, то трафик не будет шифроваться. HTTPS не стоит переоценивать, он не спасает, если атака на пользователя идет на уровне DNS-сервера с подменой сайта.
Что такое VPN и как он может тут помочь? Это сервер, к которому от пользователя создается защищенный туннель, и внутри этого туннеля проходит весь интернет-трафик. Правильно настроенный VPN-сервер предполагает наличие на нем и своего DNS-сервера.
Когда пользователь VPN вводит в браузере доменное имя сайта, интернет-трафик в зашифрованном виде идет на VPN-сервер. Там используется DNS-сервер не интернет-провайдера или указанный на Wi-Fi роутере, а DNS-сервер VPN-сервера.
Все запросы к DNS-серверу идут по созданному до VPN-сервера зашифрованному туннелю, а потому ни провайдер, ни системы ОРМ (оперативно-розыскных мероприятий) не могут отследить их.
IP-адрес VPN-сервера заранее указывается в конфигурационном файле, который предоставляется пользователю. Ошибка тут исключена, специальное программное обеспечение, которое называется VPN-клиент, шифрует интернет-трафик, направляя его на VPN-сервер. С этой минуты злоумышленник может сколько угодно ломать роутер и менять настройки DNS – пользователю больше не надо спрашивать у Wi-Fi роутера DNS-сервер. Он может сколько угодно перехватывать трафик, весь ваш трафик теперь надежно зашифрован, и он не по зубам злоумышленнику.
Трафик ваш будет не по зубам и интернет-провайдерам, и даже спецслужбам. Именно поэтому спецслужбы стараются всячески противодействовать использованию VPN. При включенном VPN все их технологии, штат сотрудников и дорогостоящая аппаратура становятся абсолютно бесполезными.
Не все VPN-провайдеры предлагают и услуги DNS-сервера.
Итак, пользователь узнал от DNS-сервера, с которым связался по защищенному туннелю, IP-адрес сайта. Дальше он отправляет на этот IP-адрес запрос "сайт, как ты выглядишь?". Запрос к сайту сначала приходит по туннелю на VPN-сервер и только затем идет на IP-адрес сайта.
Если вы сейчас читали текст через слово, то прошу собраться и внимательно прочесть этот абзац. Конечному сайту приходит запрос от VPN-сервера, и потому сайт не знает подлинный IP-адрес отправителя. Ответ он также отправляет на VPN-сервер, а уже VPN-сервер, зная IP-адрес пользователя, перенаправляет данные. Это и создает эффект смены IP-адреса.
Обращаю ваше внимание, что от VPN-сервера до сервера сайта трафик идет уже без VPN-туннеля и шифрования (если у сайта нет HTTPS). Было бы, конечно, здорово, чтобы туннель проходил прямо до сервера сайта, но создание туннеля требует очень больших ресурсов, которых нет у серверов сайтов, кроме того, это потребовало бы серьезной организационной работы и невероятно увеличило нагрузку на сайты.
Если VPN-сервер будет расположен в другой стране, то интернет-трафик пройдет в зашифрованном виде через него и уйдет в направлении страны, где расположен VPN-сервер.Что видит в этот момент ваш интернет-провайдер и системы ОРМ вроде СОРМ и аналогов? Они видят зашифрованный туннель от вашего компьютера к VPN-серверу. Что происходит внутри этого туннеля, какие сайты вы посещаете, кому и какие данные отправляете – все это им недоступно.
При подключении через VPN ваш интернет-трафик идет до VPN-сервера в зашифрованном виде, а потому ни ваш сосед, ни хакер, ни провайдер, ни спецслужбы, ни правоохранительные органы по решению суда не смогут узнать, чем вы занимаетесь в сети, какие сайты посещаете, что качаете или смотрите, что читаете или пишете, не смогут украсть ваши логины и пароли или подменить вам сайты.
Вся информация, которая будет о вас у провайдера, ‒ это время, когда вы были в сети, IP-адрес VPN-сервера, к которому вы подключались, и общий объем переданных данных. Подробнее об этом мы расскажем в следующих главах.
Поговорим о выборе алгоритма шифрования и длины ключа, а также о способах аутентификации данных.
Алгоритм шифрования
Чтобы понять, что такое алгоритм шифрования, опять вспомните историю с Цезарем. Для шифрования своего текста он использовал смещение букв – это и есть алгоритм шифрования. Представьте себе, что вместо смещения он бы начал использовать замену букв на какие-нибудь символы, и вот это был бы уже другой алгоритм.
OpenVPN предлагает два алгоритма шифрования: AES и Blowfish. Оба эти алгоритма зарекомендовали себя как надежные, и если вы не математик, вам нет смысла разбираться в их архитектуре. Я в своих решениях использую AES. В мануалах по OpenVPN Technologies рекомендуется использовать Blowfish, так как он чуть быстрее AES.
Длина ключа
Вернемся к истории Цезаря; они с сенатором уже создали уникальный сессионный ключ, отправив друг другу в сумме 4096 гонцов, и каждый из них сообщил какое-то новое изменение. Но им очень неудобно будет производить в тексте 4096 изменений, это долго и сложно, потому они решают по надежно зашифрованному каналу (4096 изменений) передать другой более простой ключ, где будет всего 256 изменений. Это позволяет им значительно ускорить переписку, но если бы они сразу просто отправили друг другу этот ключ, его могли бы перехватить враги.
Сегодня VPN-провайдеры предлагают 128- и 256-битные ключи. С полей математиков-криптологов поступает информация, что на 2018 год ключ длиной 128 бит можно расшифровать только в специальных датацентрах на очень больших мощностях и это займет очень много времени. Компьютер, способный расшифровать данные, зашифрованные ключом 256 бит, по мнению ученых, пока еще не изобретен.
По утверждениям многих VPN-провайдеров, ключ длиной 128 бит является оптимальным решением в плане безопасности и производительности. При использовании 128-битного ключа шифрование происходит быстрее, нежели при ключе в 256 бит, создает меньше нагрузки на сервер и на устройство пользователя.
Мы проводили тест. Взяли один из телефонов на базе операционной системы Android и поставили на него OpenVPN с файлом параметров генерации сессионного ключа на базе RSA с длиной 2048 бит (OpenVPN RSA 2048 / AES 128 – надеюсь, вам теперь понятны эти данные). При активном веб-серфинге расход батареи вырос на 12%, ввиду того, что устройство тратило ресурсы на шифрование и расшифровку трафика. При использовании OpenVPN RSA 4096 / AES 256 при активном веб-серфинге расход вырос на 26%. Например, если без VPN устройство позволяло 8 часов «активно сидеть» в интернете, то с использованием OpenVPN RSA 4096 / AES 256 – лишь около 6.
Этот показатель нельзя использовать для точного расчета, он всегда индивидуален и зависит от объема шифруемого трафика, мощности батареи и характеристик устройства. Однако можно сказать с уверенностью, что увеличение криптостойкости используемых алгоритмов шифрования заметно увеличивает нагрузку на батарею устройства.
Аутентификация данных
Есть еще один показатель, который влияет на требуемые мощности и скорость работы VPN, это – аутентификация данных.
Представьте ситуацию: приходит к Цезарю гонец и говорит, что он от сенатора с посланием, Цезарь впускает его к себе, а гонец оказывается наемным убийцей от варваров. Для Цезаря это будет роковой ошибкой.
Как проверить подлинность гонца? Наверное, у него должно быть кодовое слово. Представим, что варвары перехватили гонца и с помощью пыток получили у него кодовое слово, дальше клинок в сердце, тело в канаву, а к Цезарю с кодовым словом едет все тот же наемный убийца. Кодовое слово – это уязвимый способ установить подлинность гонца.
Цезарь и сенатор решили усложнить алгоритм и в дополнение к кодовому слову брать в гонцы только голубоглазых блондинов. В этом случае, даже если варвары перехватывали гонца и получали слово, они проваливались на фейс-контроле, так как о втором условии не подозревал даже сам гонец. Аналогичным образом подписываются передаваемые данные при использовании VPN, для этого используются специальные алгоритмы хеширования. Пока просто запомните, что MD5 и SHA1 ‒ недостаточно надежные алгоритмы, а SHA512 и SHA256 – надежные алгоритмы.
На что еще стоит обратить внимание? Использование более криптостойкого алгоритма замедлит скорость работы VPN, потому VPN с MD5 всегда будет быстрее, чем с SHA512. В следующей главе мы на практике закрепим навыки оценки надежности VPN.
Работу системы доменных имен можно сравнить с отправкой почтового письма. Вы хотите отправить письмо своему дяде, но если вы просто напишете на конверте имя и фамилию дяди (аналог доменного имени), на почте этой информации будет мало. Тогда вы открываете записную книжку и смотрите адрес и индекс дяди (аналог IP-адреса). Сама записная книжка с адресами – аналог DNS-сервера.
Итак, вы ввели адрес сайта и ждете, когда он загрузится, а это значит, что сайт вам должен отправить всю информацию, как он выглядит и что содержит. Но куда он вам отправит? Ему нужен ответный IP-адрес. И ваш IP-адрес ему приходит в первом запросе.
Все запросы, которые вы отправляете сайту, и информацию, получаемую в ответ, могут просматривать интернет-провайдер и спецслужбы, размещающие у интернет-провайдеров аппаратуру для проведения оперативно-розыскных мероприятий (в России это СОРМ).
В некоторых странах интернет-провайдеры по закону обязаны хранить не только данные о том, с какими IP-адресами вы обменивались информацией и когда, но и содержание этой информации. Например, подобный закон действует в России, где интернет-провайдеры должны хранить всю отправленную и полученную информацию на протяжении 6 месяцев и общую информацию об активности пользователей в сети на протяжении трех лет.
Графически это выглядит так:
Наверное, некоторые из вас напомнят мне о существовании HTTPS. HTTPS шифрует обмен данными между сайтом и пользователем. При использовании HTTPS интернет-провайдер уже не сможет увидеть, какие страницы вы посещаете внутри сайта, например, страницы каких пользователей просматриваете в VK или какие видео смотрите. Однако он все равно видит, с каким сайтом у вас HTTPS-соединение, а для спецслужб расшифровка HTTPS не составляет проблем.
Использование HTTPS не зависит от пользователя: если на сайте нет сертификата, то трафик не будет шифроваться. HTTPS не стоит переоценивать, он не спасает, если атака на пользователя идет на уровне DNS-сервера с подменой сайта.
Что такое VPN и как он может тут помочь? Это сервер, к которому от пользователя создается защищенный туннель, и внутри этого туннеля проходит весь интернет-трафик. Правильно настроенный VPN-сервер предполагает наличие на нем и своего DNS-сервера.
Когда пользователь VPN вводит в браузере доменное имя сайта, интернет-трафик в зашифрованном виде идет на VPN-сервер. Там используется DNS-сервер не интернет-провайдера или указанный на Wi-Fi роутере, а DNS-сервер VPN-сервера.
Все запросы к DNS-серверу идут по созданному до VPN-сервера зашифрованному туннелю, а потому ни провайдер, ни системы ОРМ (оперативно-розыскных мероприятий) не могут отследить их.
IP-адрес VPN-сервера заранее указывается в конфигурационном файле, который предоставляется пользователю. Ошибка тут исключена, специальное программное обеспечение, которое называется VPN-клиент, шифрует интернет-трафик, направляя его на VPN-сервер. С этой минуты злоумышленник может сколько угодно ломать роутер и менять настройки DNS – пользователю больше не надо спрашивать у Wi-Fi роутера DNS-сервер. Он может сколько угодно перехватывать трафик, весь ваш трафик теперь надежно зашифрован, и он не по зубам злоумышленнику.
Трафик ваш будет не по зубам и интернет-провайдерам, и даже спецслужбам. Именно поэтому спецслужбы стараются всячески противодействовать использованию VPN. При включенном VPN все их технологии, штат сотрудников и дорогостоящая аппаратура становятся абсолютно бесполезными.
Не все VPN-провайдеры предлагают и услуги DNS-сервера.
Итак, пользователь узнал от DNS-сервера, с которым связался по защищенному туннелю, IP-адрес сайта. Дальше он отправляет на этот IP-адрес запрос "сайт, как ты выглядишь?". Запрос к сайту сначала приходит по туннелю на VPN-сервер и только затем идет на IP-адрес сайта.
Если вы сейчас читали текст через слово, то прошу собраться и внимательно прочесть этот абзац. Конечному сайту приходит запрос от VPN-сервера, и потому сайт не знает подлинный IP-адрес отправителя. Ответ он также отправляет на VPN-сервер, а уже VPN-сервер, зная IP-адрес пользователя, перенаправляет данные. Это и создает эффект смены IP-адреса.
Обращаю ваше внимание, что от VPN-сервера до сервера сайта трафик идет уже без VPN-туннеля и шифрования (если у сайта нет HTTPS). Было бы, конечно, здорово, чтобы туннель проходил прямо до сервера сайта, но создание туннеля требует очень больших ресурсов, которых нет у серверов сайтов, кроме того, это потребовало бы серьезной организационной работы и невероятно увеличило нагрузку на сайты.
Если VPN-сервер будет расположен в другой стране, то интернет-трафик пройдет в зашифрованном виде через него и уйдет в направлении страны, где расположен VPN-сервер.Что видит в этот момент ваш интернет-провайдер и системы ОРМ вроде СОРМ и аналогов? Они видят зашифрованный туннель от вашего компьютера к VPN-серверу. Что происходит внутри этого туннеля, какие сайты вы посещаете, кому и какие данные отправляете – все это им недоступно.
При подключении через VPN ваш интернет-трафик идет до VPN-сервера в зашифрованном виде, а потому ни ваш сосед, ни хакер, ни провайдер, ни спецслужбы, ни правоохранительные органы по решению суда не смогут узнать, чем вы занимаетесь в сети, какие сайты посещаете, что качаете или смотрите, что читаете или пишете, не смогут украсть ваши логины и пароли или подменить вам сайты.
Вся информация, которая будет о вас у провайдера, ‒ это время, когда вы были в сети, IP-адрес VPN-сервера, к которому вы подключались, и общий объем переданных данных. Подробнее об этом мы расскажем в следующих главах.
Поговорим о выборе алгоритма шифрования и длины ключа, а также о способах аутентификации данных.
Алгоритм шифрования
Чтобы понять, что такое алгоритм шифрования, опять вспомните историю с Цезарем. Для шифрования своего текста он использовал смещение букв – это и есть алгоритм шифрования. Представьте себе, что вместо смещения он бы начал использовать замену букв на какие-нибудь символы, и вот это был бы уже другой алгоритм.
OpenVPN предлагает два алгоритма шифрования: AES и Blowfish. Оба эти алгоритма зарекомендовали себя как надежные, и если вы не математик, вам нет смысла разбираться в их архитектуре. Я в своих решениях использую AES. В мануалах по OpenVPN Technologies рекомендуется использовать Blowfish, так как он чуть быстрее AES.
Длина ключа
Вернемся к истории Цезаря; они с сенатором уже создали уникальный сессионный ключ, отправив друг другу в сумме 4096 гонцов, и каждый из них сообщил какое-то новое изменение. Но им очень неудобно будет производить в тексте 4096 изменений, это долго и сложно, потому они решают по надежно зашифрованному каналу (4096 изменений) передать другой более простой ключ, где будет всего 256 изменений. Это позволяет им значительно ускорить переписку, но если бы они сразу просто отправили друг другу этот ключ, его могли бы перехватить враги.
Сегодня VPN-провайдеры предлагают 128- и 256-битные ключи. С полей математиков-криптологов поступает информация, что на 2018 год ключ длиной 128 бит можно расшифровать только в специальных датацентрах на очень больших мощностях и это займет очень много времени. Компьютер, способный расшифровать данные, зашифрованные ключом 256 бит, по мнению ученых, пока еще не изобретен.
По утверждениям многих VPN-провайдеров, ключ длиной 128 бит является оптимальным решением в плане безопасности и производительности. При использовании 128-битного ключа шифрование происходит быстрее, нежели при ключе в 256 бит, создает меньше нагрузки на сервер и на устройство пользователя.
Мы проводили тест. Взяли один из телефонов на базе операционной системы Android и поставили на него OpenVPN с файлом параметров генерации сессионного ключа на базе RSA с длиной 2048 бит (OpenVPN RSA 2048 / AES 128 – надеюсь, вам теперь понятны эти данные). При активном веб-серфинге расход батареи вырос на 12%, ввиду того, что устройство тратило ресурсы на шифрование и расшифровку трафика. При использовании OpenVPN RSA 4096 / AES 256 при активном веб-серфинге расход вырос на 26%. Например, если без VPN устройство позволяло 8 часов «активно сидеть» в интернете, то с использованием OpenVPN RSA 4096 / AES 256 – лишь около 6.
Этот показатель нельзя использовать для точного расчета, он всегда индивидуален и зависит от объема шифруемого трафика, мощности батареи и характеристик устройства. Однако можно сказать с уверенностью, что увеличение криптостойкости используемых алгоритмов шифрования заметно увеличивает нагрузку на батарею устройства.
Аутентификация данных
Есть еще один показатель, который влияет на требуемые мощности и скорость работы VPN, это – аутентификация данных.
Представьте ситуацию: приходит к Цезарю гонец и говорит, что он от сенатора с посланием, Цезарь впускает его к себе, а гонец оказывается наемным убийцей от варваров. Для Цезаря это будет роковой ошибкой.
Как проверить подлинность гонца? Наверное, у него должно быть кодовое слово. Представим, что варвары перехватили гонца и с помощью пыток получили у него кодовое слово, дальше клинок в сердце, тело в канаву, а к Цезарю с кодовым словом едет все тот же наемный убийца. Кодовое слово – это уязвимый способ установить подлинность гонца.
Цезарь и сенатор решили усложнить алгоритм и в дополнение к кодовому слову брать в гонцы только голубоглазых блондинов. В этом случае, даже если варвары перехватывали гонца и получали слово, они проваливались на фейс-контроле, так как о втором условии не подозревал даже сам гонец. Аналогичным образом подписываются передаваемые данные при использовании VPN, для этого используются специальные алгоритмы хеширования. Пока просто запомните, что MD5 и SHA1 ‒ недостаточно надежные алгоритмы, а SHA512 и SHA256 – надежные алгоритмы.
На что еще стоит обратить внимание? Использование более криптостойкого алгоритма замедлит скорость работы VPN, потому VPN с MD5 всегда будет быстрее, чем с SHA512. В следующей главе мы на практике закрепим навыки оценки надежности VPN.
Для просмотра ссылки необходимо нажать
Вход или Регистрация