Пару дней назад в сети появилось видео о краже сессии вконтакте в публичной Wi-Fi сети. Это произвело немало обсуждений на различных ресурсах. Я уже долгое время использую плагин для Firefox HTTPS Everywhere, который перенаправляет запросы пользователей таким образом, что-бы они использовали зашифрованное соединение. Список поддерживаемых сайтов велик, но он не затрагивает отечественные ресурсы, к счастью разработчики реализовали создание собственных правил.

Этот пост будет написан задом наперед. Сначала я расскажу как проблему защиты в сети решить, а только потом порассуждаю о причинах самой проблемы.

HTTPS Everywhere

Плагин для Mozilla Firefox, который разработан организацией Electronic Frontier Foundation. Это некоммерческая организация, которая была основана еще в 1990 году, на заре интернета. Цели у организации самые благородные: защита приватности, анонимности, интеллектуальных прав и остальных важных вещей. Они то и создали плагин HTTPS EveryWhere, информация о нем есть среди других дополнений на сайте Mozilla, но ссылки на скачивание ведут на сайт организации.

Пинцип работы очень простой, каждый раз, когда вы открываете ссылку, плагин проверяет ее по своим правилам и если находит соответствующее, то заменяет ее на шифрованную.

После установки плагин сразу-же начнет отправлять на шифрование такие сайты:

  • DropBox
  • Google Search
  • Mail.com
  • Twitter
  • Amason S3
  • Gentoo
  • Google Services
  • Meebo
  • NYTimes
  • bit.ly
  • Hotmail / Live
  • Microsoft
  • PayPal
  • Wikipedia
  • Evernote
  • Mozilla
  • WordPress.com
  • Cisco
  • Facebook
  • Google APIs
  • и некоторые другие

Так-же есть стандартные правила, но при запуске они неактивны:

  • Amazon (работает с ошибками)
  • Facebook+ (расширенная версия шифрования в фейсбуке, но может мешать некоторым плагинам)

Создание правил

Конечно-же интернет не ограничивается этими сайтами, и каждый должен иметь возможность защитить свою среду серфинга, к сожалению не все сайты заботятся о своих пользователях и имеют возможность шифрованного использования. Например при заходе на https://vkontakte.ru получаем ошибку 403(запрещено), видимо администраторы этой социальной сети рады, когда воруют аккаунты их пользователей.

Ну от философии перейдем к делу, например в стандартной поставке нет правила для youtube.com, вот его мы и создадим.

Для начала нужно зайти в папку %AppData%\Mozilla\Firefox\Profiles\…\HTTPSEverywhereUserRules\ и создать там файл, например youtube.xml

В этом файле нужно написать:

Select Code
<ruleset name="Youtube">
<target host="www.youtube.com" />
<target host="youtube.com" /></p>
<p style="text-align: justify;"><rule from="^http://(www\.)?youtube\.com/" to="https://www.youtube.com/"/>
</ruleset>

  • <ruleset name=»Youtube»> — имя, которое будет отображаться в настройках плагина
  • <target host=»www.youtube.com» /> — домен, который будет шифроваться. Для каждого субдомена нужно по правилу, но можно использовать звездочку (*), например *.youtube.com (но нельзя youtube.*)
  • <rule from=»^http://(www\.)?youtube\.com/» to=»https://www.youtube.com/»/> — это непосредственно само правило, которое имеет два параметра from и to. Первый отвечает за обработку введенной ссылки, второй за генерацию ссылки на шифрованную страницу. Для этого используются регулярные выражения JavaScript
  • <exclusion pattern=»^http://   «/> — в этом примере не используется, но служит для исключения адреса из шифрования.

После сохранения файла, необходимо перезапустить Firefox.

В самом конце я приведу несколько кодов, которые пригодятся пользователям рунета.

Самое сложное, это узнать что писать. Обычно это просто замена http, на https в адресе сайта, но бывает сложнее, например поисковый запрос из http://google.com превращается в https://encrypted.google.com. В этом поможет гугл, или FAQ нужного сайта.

Проблемы

Сам плагин находится в стадии бета и на сайте дополнений Mozilla предоставлена только ссылка на сайт авторов. Но это не самая большая проблема.

Самое неприятное то, что при использовании шифрованной страницы, Google не использует некоторые фишки поиска, такие как Google Instant. Но это не вина плагина.

Источник проблем

Откуда-же появилась эта проблема? Она не взялась вдруг, а существовала давно, просто о ней особо не вспоминали, и тут произошло стечение обстоятельств: открытые точки Wi-Fi в McDonalds, отсутствие шифрования у vkontakte.ru.

Открытые точки Wi-Fi

В открытых сетях все пакеты рассылаются на все устройства, а те под честное слово разбирают только свои. И если в проводной сети сложно прийти в чужой кабинет и воткнуть свой ноутбук, то в публичной беспроводной сети человек с ноутбуком не вызывает подозрений.

Далее нужно взять «нечестный» Wi-Fi, который позволяет получать данные адресованные другим клиентам в сети. Список таких устройств легко найти в интернете, либо найти сторонний драйвер, который реализует эту функцию у приличного устройства.

Далее берется программа сниффер, которая собирают и записывает всю информацию, летающую в пространстве.

Отсутствие шифрования у vkontakte.ru

Если раньше хакерам тяжело было ориентироваться в огромных потоках информации, то теперь легко найти лакомый кусочек по ключевому слову — куки vkontakte.ru, файлы, которые хранят данные авторизации пользователей, у приличных сайтов они шифруются, а вот vkontakte об это не задумывались.

Перехватив такой файлик, хакер подсовывает его своему браузеру и заходит на сайт, который не видит разницы между этими компьютерами (внешний IP адрес точки доступа один для всех, куки одинаковые). Теперь хакер может делать все что не требует ввода пароля. Хотя можно получить и пароль, достаточно уловить момент, когда пользователь его вводит. На представленном ниже видео хакер меняет фотографию пользователя, just for lulz, а не такие добрые люди отсылают спам, воруют личные данные и т.д.

Правила HTTPS Everywhere для сайтов рунета

Этот раздел будет пополнятся, по мере необходимости. Если вы используете какой-то сайт, и создали для него правило шифрования, то оставляйте в комментарии. Полезные сайты попадут в это список со ссылкой на сайт автора.

Yandex.ru

YandexRu.xml — Яндекс поддерживает шифрование практически для всех сервисов, я не нашел https версии у Главной страницы и страницы Виджетов. Возможно есть и другие, что-бы исключить какой-то сервис из принудительного шифрования достаточно создать новую строку exclusion, и вставить там этот адрес.

Select Code
</p>
<p style="text-align: justify;"><ruleset name="Yandex.ru">
<target host="*.yandex.ru" />
<exclusion pattern="^http://www.yandex.ru"/>
<exclusion pattern="^https://wdgt.yandex.ru/"/></p>
<rule from="^http://([^/:@]*)\.yandex.ru/" to="https://$1.yandex.ru/"/>
</ruleset>
<p style="text-align: justify;">

Yandex.ua

Сервера для Украины, работают так-же как и российские. Если вы из Украины, то создайте файлик YandexUA.xml и вставьте туда код

Select Code
<ruleset name="Yandex.ua">
<target host="*.yandex.ua" />
<exclusion pattern="^http://www.yandex.ua"/>
<exclusion pattern="^https://wdgt.yandex.ua/"/>

<rule from="^http://([^/:@]*)\.yandex.ua/" to="https://$1.yandex.ua/"/>
</ruleset>

Где небезопасно?

Написав статью я решил пройтись по популярным сайтам рунета и проверить у них наличие https версии. Результаты неутешительные.

  • [email protected] — https://www.mail.ru не соединяется, https://win.mail.ru 403 Forbiden. Единственная спасительная палочка, это защищенная форма ввода пароля https://secure.mail.ru/
  • Rambler.ru — https тихо редиректится на http, а в помощи нет ни одного упоминания https
  • livejournal.com — https поддерживается только для формы ввода пароля и платежей
  • liveinternet.ru — про https ни слова, а https://www.liveinternet.ru не принимает соединение
  • rutube.ru — https редиректится на обычный http

Заключение

Используйте шифрование везде, где это возможно, а если ваш любимый сайт не поддерживает шифрование, то не используйте его в публичных местах.