#https

12 постов
пост №947Разработка и инженерия

Эти три поста — мини-ода серверу Nginx и его создателю Игорю Сысоеву. Я не написал о покупке компании NGINX американским гигантом F5 за 670 миллионов долларов в феврале (профайл в Ведомостях и в Форбсе), исправляюсь.

Nginx — это скотч веб-разработчика. Вы ведь знаете, что именно с помощью скотча астронавты починили свой автомобиль на луне? С помощью Nginx можно скрепить разные части сайта между собой (микросервисы, ау), ускорить сайт с помощью кеширования (скорость работы Медузы и RAWG), серьезно сэкономить на хостинге и даже защититься от DDoS-атак. Nginx поддерживает и простейшие одностраничные сайты и гигантские корпорации. Это сервер, который вобрал в себя лучшее от таможни, DHL и завода.

Мы с коллегами недавно сделали с помощью nginx две необычные вещи, которыми я хочу поделиться.

Во-первых, перевели один очень старый сайт с http на https (это улучшает позиции в гугле), по пути убрали www из всех адресов и добавили кеширование, так что сайт стал открываться раз в 10 быстрее.

Интересная часть в том, что на сайте было много хардкод-адресов http://www..., и поменять исходный код было решительно невозможно (старый perl), так что мы использовали модуль ngx_http_sub_module, который позволяет переписать содержимое ответа на лету.

Мы не поменяли ни одной строки кода в движке сайта, все изменения — через настройки nginx.

Во-вторых, добавили щепотку динамического контента в кешированные nginx'ом страницы. Под нагрузкой наш django + react сервер отвечает не очень быстро. Для того, чтобы сайт отвечал мгновенно — мы кешируем странички для анонимов, то есть регулярно пересчитываем их, а при запросах мгновенно отдаем последнюю сохраненную версию.

Для проверки одной SEO-гипотезы нам потребовалось добавить несколько случайных ссылок на каждую страницу. Казалось, nginx-кеширование и динамический контент не сочетаются. Но нет, выручил SSI — технология родом из 1993, когда писали статический html-код страниц, а динамику добавляли маааленькими кусочками. Мы добавили в код своих страниц <include>, так что основная страница кешируется как и раньше, а блок со ссылками быстро отдается отдельным быстрым микросервисом.

Да здравствует nginx и инженеры, умеющие с ним управляться!

пост №823Разработка и инженерия

Почему система обновления APT (Ubuntu, Debian, etc.) не использует HTTPS? Они проверяют аутентичность и свежесть обновлений по криптографической подписи, а слепки ключей распространяют вместе с ОС.

Статья вновь актуальна (в своё время, команду APT задолбали настолько, что для этой статьи даже зарегистрировали отдельный домен почемунеиспользуетhttps.com!), потому что на прошлой неделе, какой-то аноним прибежал в багтрекер VLC и открыл баг «у вас всё сломано, чините срочно, достаточно добавить HTTPS». Тред на 350 комментариев на реддите.

Необходимость постоянно включать мозги — то, что делает безопасность одной из самых сложных (и дорогих) дисциплин. Не будьте как топикстартер. Если вам вдруг кажется, что вы правы, а все ошибаются — детально (но сухо) распишите сценарий атаки, а не «всё сломано, сделайте X».

пост №715Технологии и общество

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

Тем не менее, жизнь не останавливается: на вакансию фронтендера пришло 73 отклика (скоро начнем собеседования с первой дюжиной кандидатов), мы в RAWG допрогиваем большой и сложный проект, а глобальные корпорации продолжают поставлять лулзы.

Google Chrome начал показывать пометочку «не безопасная страница», если вы заходите на сайт без HTTTPS-шифрования. Я был большим сторонником HTTPS, но чем дальше это всё двигается — тем меньше мне нравится эта история.

Веб такой классный потому, что мы в нем много странной фигни. Почти каждый, кому есть что рассказать, может сделать себе веб-страничку. Поддерживать её в рабочем состоянии — практически бесплатно. И всё это без какой-либо центральной силы, которая бы решала, что хорошо, а что — плохо. Во всяком случае, так было до фейсбука и инстаграма :)

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

Сегодня Chrome показывает серенькое уведомление, которое никто не замечает (как раньше не замечали зеленый замочек HTTPS). Но что они решат сделать завтра? Покажут большой красный страшный попап или запретят доступ к сайту без HTTPS совсем?

HTTPS решает две проблемы: 1) массовая слежка за тем, какие страницы мы смотрим 2) кража паролей в публичных WiFi сетях.

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

При этом, для Google HTTPS нужен также совсем по другой причине. Провайдеры могут легко вставить свою рекламу на любую не-https страницу. С таким же успехом они могут вырезать рекламу Google с не-защищенных веб-страниц. Недавно они даже начали это делать. С помощью повсеместного введения HTTPS Google устраняет эту опасность раз и навсегда. Money talks. Чувствую, что это теория заговора, надеваю шапочку из фольги.

пост №704Технологии и общество

Чуваки из Cloudflare, Mozilla, Fastly и Apple, тем временем, собрались на хакатон и напрогали реализацию encrypted SNI.

SNI - технология, которая используется для создания шифрованного HTTPS соединения. Проблема в том, что SNI сейчас передаёт адрес сайта (не весь адрес страницы, только имя домена, rawg.io, или Meduza.io, например) в нешифрованном виде.

Именно через эту «дыру» в SNI работают 99% DPI-решений, блокирующие доступ к сайтам в России. Если цензору не нравится адрес сайта - он блокирует соединение. Encrypted SNI решает эту «проблему», потому что теперь цензор не знает даже адреса сайта, только IP адрес, а на одном IP адресе может быть множество сайтов.

До продакшена ещё далеко, но как же долго мы ждали этих первых шагов в правильном направлении!

пост №660Технологии и общество

Продолжаем серию «я и звезды». Обсуждаем интернет-блокировки с исполнительным директором Wikimedia Russia (условная русская википедия) Стасом Козловским.

С удивлением узнал, что русские суды вынесли уже 10 решений о блокировке статей Википедии. Википедия работает по протоколу HTTPS. А это значит, что на территории РФ википедия открывать не должна. То, что она работает — нарушение статьи 315 УК РФ. Роскомнадзор не исполнил решение суда и не внес вики в реестр блокировок. А это, между прочим, до двух лет лишения свободы для Жарова. Кекеке.

пост №637Разработка и инженерия

Гениальная штука для быстрого выпуска HTTPS сертификата.

Let’s encrypt certbot docker container + Cloudflare DNS = ❤️

https://github.com/adferrand/docker-letsencrypt-dns

Если не нужна автоматизация (или для совсем ленивых) http://sslforfree.com

пост №339Разработка и инженерия

В протоколе шифрования Wifi-сетей WPA2 обнаружили уязвимость, позволяющую прослушать трафик.

Жирно то, что уязвимость не в реализации конкретного поставщика, а в протоколе, то есть уязвимы вообще все Wifi-устройства.

Хороших новостей две: 1) уязвимость можно пофиксить, не сломав при этом старые, не-обновленные устройства 2) весь мало-мальски важный трафик уже давно шифруется на уровне приложений (смотри HTTPS), так что практическая применимость, кажется, есть только для корпораций и хитрых DNS-атак.

https://www.krackattacks.com/

пост №291Разработка и инженерия

Chrome начнёт требовать HTTPS при подключении к сайтам .dev. Google зарегистрировал себе этот TLD и почему-то решил добавить .dev в HSTS preload list хромиума.

Сам грешен, использую meduza.dev для разработки. Теперь придётся переезжать на некрасивый, но закреплённый стандартом meduza.test

https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/