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: це не хороший протокол, і це навіть не хороша політика.

Про автора

Поуль-Хеннінг Камп (Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.) один з основних розробників операційної системи FreeBSD, над якою працював з самого початку. Він широко «невідомий» своїм алгоритмом шифрування паролів на основі MD5, який захищає паролі на маршрутизаторах Cisco, Juniper, а також Linux і FreeBSD системах. Деякі могли зауважити, що він написав менеджер пам'яті, файлову систему і метод шифрування дисків, який реально працює. Камп живе в Данії зі своєю дружиною, сином, дочкою, дюжиною комп'ютерів з FreeBSD, а також з одним з найточніших у світі NTP годин. Він заробляє на життя як незалежний експерт, займаючись всілякими завданнями в області комп'ютерів і мереж.

[Також є автором Varnish (HTTP-акселератора і кешуючого проксі) - прим. пер.]