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-акселератора і кешуючого проксі) — прим. пер.]
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.