[Перевод] HTTP/2.0 — Халтура от IETF: плохой протокол, плохая политика
Давным давно, в начале 1989 года, Рональд Рейган ещё был президентом, хотя до окончания его срока оставалось 19½ дней. А перед тем, как 1989 год подошел к концу, родилась Тейлор Свифт, а Андрей Сахаров и Сэмюэл Беккет скончались.
В долгосрочной перспективе, наиболее значительным событием 1989 скорее всего станет то, что Тим Бернерс-Ли заложил основы протокола HTTP и назвал результат «World Wide Web». (Одно примечательное свойство этого имени состоит в том, что аббревиатура «WWW» имеет в два раза больше слогов и требует больше времени для произнесения.)
Протокол HTTP, предложенный Тимом, работал в 10-мегабитных сетях с коаксиальными кабелями, а его компьютером был NeXT Cube с частотой 25 МГц. 26 лет спустя, в моем ноутбуке установлен процессор в сотни раз быстрее, а оперативной памяти в тысячи раз больше, чем было на компьютере Тима, но протокол HTTP всё тот же.
Несколько дней назад рабочая группа IESG (The Internet Engineering Steering Group) запросила последние комментарии по новому протоколу HTTP/2.0 (https://tools.ietf.org/id/draft-ietf-httpbis-http2) перед тем, как утвердить его в качестве официального стандарта.
[Спустя пару месяцев с минимальными изменениями стандарт был утвержден. — прим. пер.]
Ожидания будут отличаться
Кто-то ожидает, что существенное обновление наиболее распространенного в мире протокола станет шедевром, каноническим примером для будущих студентов в области дизайна протоколов. Кто-то ожидает, что протокол, разработанный во времена разоблачений Сноудена, должен повысить конфиденциальность. Другие же цинично ждут обратного. В целом есть ожидание некоторого «ускорения». Многие возможно также предполагают «экологичность». И некоторые из нас достаточно пресыщены, чтобы увидеть »2.0» и пробормотать «ой-ой, синдром второй системы».
Шпаргалка с ответами: нет, нет, скорее всего нет, возможно, нет, да.
Если это звучит разочаровывающе, то только потому, что так оно и есть.
HTTP/2.0 — это не шедевр технической мысли. Он нарушает целостность отдельных, ранее изолированных слоев, переусложнен, содержит кучу нестыковок, плохих компромиссов, упущенных возможностей и т. д. На моем (гипотетическом) курсе по разработке протоколов студенты провалились бы, если бы предложили такой протокол. HTTP/2.0 также не повысит вашу конфиденциальность. Запаковывание HTTP/2.0 в SSL/TLS может повысить, а может не повысить её, также как запаковывание HTTP/1.1 или любого другого протокола в SSL/TLS. Но HTTP/2.0 сам по себе не делает ничего для повышения конфиденциальности. Крайне иронично, учитывая что основное бремя HTTP — куки, которые являются настолько серьзной проблемой, что в Евросоюзе есть законодательное требование уведомлять о них. HTTP/2.0 мог бы избавиться от кук, заменив их на полностью контролируемый клиентом идентификатор сессии. Что дало бы пользователям четкое право распоряжаться тем, когда они хотят быть отслеживаемы, а когда нет — существенное улучшение по части конфиденциальности. Это бы также сэкономило трафик. Но предлагаемый стандарт не делает этого.
Хорошая новость в том, что HTTP/2.0 скорее всего и не понизит вашу конфиденциальность. Хотя он добавляет несколько возможностей для отслеживания со стороны сервера, но уже существует множество способов с помощью кук, JavaScript, Flash, т. д., что это, скорее всего, не имеет значения.
Вы можете заметить, что страницы загружаются быстрее с HTTP/2.0, но скорее всего только если у поставщика контента огромная сеть серверов. Отдельные компьютеры, включая ваш собственный, будут вынуждены тратить больше ресурсов, в особенности для больших объектов, как музыка, телепередачи, фильмы и т. д. Никто не продемонстрировал реализацию HTTP/2.0, которая бы могла приблизиться к современным скоростям передачи данных. Быстрее? Вовсе нет.
Есть и ответ на вопрос о влиянии на окружающую среду: HTTP/2.0 требует больше вычислительных ресурсов, нежели HTTP/1.1, и таким образом, повысив выбросы CO2, ускорит климатические изменения. Вы могли бы предполагать, что протокол предназначенный для десятков миллионов компьютеров будет объектом рассмотрения с точки зрения экологии, но к удивлению, по крайней мере моему, я не нашел каких-либо свидетельств тому, что IETF вообще заботилась о вопросах влияния на окружающую среду.
И да, синдром второй системы силен.
Принимая во внимание столь посредственный результат, вам скорее всего интересно, так почему HTTP/2.0 вообще рассматривается в качестве стандарта.
Ответ прост — политика
В Google придумали протокол SPDY, и поскольку у них имеется свой браузер, они могут экспериментировать как им угодно, оптимизируя протокол под их конкретные нужды. SPDY был хорошим прототипом, который ясно показал, что тут есть потенциал для улучшения в новой версии HTTP. Поклон Google за это. Но SPDY также стал чем-то вроде «сада за высокими стенами» для других людей и, что важно, для других компаний, вот политика и всплыла.
Организация IETF, очевидно ощущая свою никчемность, быстро «обнаружила», что протоколу HTTP/1.1 требуется обновление, озадачила рабочую группу подготовить его в нереально короткие сроки. Что исключило какую-либо иную основу для нового протокола HTTP/2.0, нежели протокол SPDY. Выбросив наиболее отвратительные огрехи SPDY и отклоняя любые другие попытки усовершенствования с резолюциями типа «вне повестки», «слишком поздно», «нет консенсуса», IETF теперь может показать свою причастность и объявить победу, пожертвовав практически всеми принципами, которыми дорожила, в обмен на привилегию штамповать инициативу Google.
Но политика на этом не заканчивается.
Причина, по которой HTTP/2.0 не повысит конфиденциальность, заключается в том, что большие покровительствующие корпорации построили свою бизнес-модель на отсутствии конфиденциальности. Их очень расстраивает, что NSA шпионит почти что за каждым во всем мире, но они не хотят делать что-либо, что помешало бы им заниматься тем же. Сторонники протокола HTTP/2.0 пытаются использовать его как рычаг для навязывания SSL повсеместно, несмотря на тот факт, что для множества применений HTTP шифрование не требуется, оно нежелательно или даже может быть нелегальным.
Сайт МЧС в вашей стране, округе или городе
Местные власти не желают тратить ресурсы на SSL/TLS соединения с каждым смартфоном на территории, когда что-то взрывается, реки выходят из берегов или люди отравились. Крупнейшие новостные сайты аналогично препочтают иметь возможность сообщить новость, чем скрыть тот факт, что они сообщают новости, особенно если что-то серьезное произошло. (Неужели в IETF все забыли график экспоненциального роста трафика на сайтах CNN 14 лет назад? — [прим. пер.: тут автор апеллирует к терактам 11 сентября 2001 в США]).
Так называемый «мультимедиа-бизнес», что составляет почти 30% всего трафика в сети, также не желает вынуждено тратить ресурсы на бессмысленное шифрование. Существуют категории людей, которые легально лишаются конфиденциального обмена информацией: дети, заключенные, финансовые трейдеры, аналитики ЦРУ, и т. д. Всё же, не смотря на это, HTTP/2.0 будет работать только с SSL/TLS по крайней мере во всех основных браузерах с целью навязать конкретную политику. По иронии, те же самые браузеры рассматривают самоподписные сертификаты как смертельную опасность, не смотря на тот факт, что такие сертификаты позволяют легко добиться секретности. (Секретность означает, что только вы и другая сторона можете расшифровать переписку. Конфиденциальность — это секретность с идентифицированной или аутентифицированной стороной.)
История ярко показала то, что если вы хотите изменить мир к лучшему, то вам стоит представить хорошие инструменты для изменения мира к лучшему, а не политику для изменения его к лучшему. Я советую всем, у кого есть голос в этом деле, показать палец вниз HTTP/2.0: это не хороший протокол, и это даже не хорошая политика.
Об авторе
Поуль-Хеннинг Камп (phk@FreeBSD.org) один из основных разработчиков операционной системы FreeBSD, над которой работал с самого появления. Он широко «неизвестен» своим алгоритмом шифрования паролей на основе MD5, который защищает пароли на маршрутизаторах Cisco, Juniper, а также Linux и FreeBSD системах. Некоторые могли заметить, что он написал менеджер памяти, файловую систему и метод шифрования дисков, который реально работает. Камп живет в Дании со своей женой, сыном, дочерью, дюжиной компьютеров с FreeBSD, а также с одними из самых точных в мире NTP часов. Он зарабатывает на жизнь как независимый эксперт, занимаясь всевозможными задачами в области компьютеров и сетей.
[Также является автором Varnish (HTTP-акселератора и кэширующего прокси) — прим. пер.]