пятница, 14 сентября 2018 г.

На мосту стояли трое - он, она и Google Cache

Всем вайтишникам, яростно надр*чивающим на https everywhere вообще и Let's Encrypt в частности, посвящается.

Пока вы с пеной у рта настаиваете на всеобщем шифровании, регулярно потр*хиваясь с ежемесячной заменой сертов, ваш Let's Encrypt, подписав свои корневые серты у рутов, встал во всемирное "дерево доверия". Ну а Корпорация Бобра, тихо-мирно, не афишируя на публику вообще ничего, подписывает соглашения о дистрибуции контента с мессенджерами и другими гигантами:



Ну, и до кучи, дабы убедиться:



Это из других сетей запрашивалось.

А вы там мандражируете на тему госсертификатов... Ха! И еще раз - ха! Да вы на гугл посмотрите! Святее Папы Римского и стоит прямо на дороге!

Маленькое лирическое отступление для тех, кто все еще свято верит в HTTPS. Я неоднократно говорил, и повторюсь снова - кэширование HTTPS без расшифровки невозможно. Это означает, что любой кэширующий прокси, будь то форвардинговый или реверсивный, в случае HTTPS может, в случае его кэширования, перешифровывать трафик и кэшировать его в расшифрованном виде. Разумеется, это означает, что расшифрованный трафик виден, может быть проанализирован, привязан в пользователю, логгирован и выдан по запросу. Это также означает, что ваш "HTTPS" безопасен и приватен ровно до точки терминирования TLS-трафика, то есть до ближайшего CDN/реверсивного прокси. О Gоogle Global Cache в деталях известно на удивление мало, по-сути, ничего не известно, однако, так как других технологий кэширования пока что не изобрели (вы помните, да, что TLS-трафик - это случайный мусор, раз от раза разный по содержанию и кэшировать его живьем по этой причине невозможно никому?), это почти наверняка реверсивный кэширующий прокси.

Апологеты CDN могут в этом месте начать метать икру, крича, что "репутация-де, она дороже, никто не будет сливать бла-бла-бла" и так далее. Сливать, может, и не будет. А вот насчет "не анализировать" и "не предоставлять никому, включая правительства" разговора (и договора) не было. Кстати, вы в курсе, что Акамай/Lime Light/Cloudflare это тоже CDN, построенные на реверсивных кэширующих прокси? Так вот. Не отвлекайтесь. Речь идет покамест не о них, а о Корпорации Бобра с ее глобальным кэшом.

Как вы думаете, кому выгодно топить за HTTPS повсюду, имея собственный PKI, собственный доверенный CA, установленный во все устройства планеты, и собственный Global Cache, установленный практически в каждом провайдере планеты? Может быть, провайдерам? Или CDN? А, может быть, вам?

Мы уже выяснили, что кэширование HTTPS без его расшифровки невозможно, так?

Соответственно, Global Cache (равно как и все остальные CDN, хотя те в большей степени ограничены лишь своими клиентами) видит практически весь передаваемый через него трафик. Бонусом он, конечно, кэшируется - должна же быть какая-то выгода для подопытных от его использования - но он весь просматривается - вы точно верите, что Гугл не станет этого делать? А проверить - сможете? - анализируется и логгируется. Можете быть уверены - Гугл не продает GGC, а лишь предоставляет его в пользование. В чем его выгода? В том, чтобы анализировать те самые 95% HTTPS трафика. Без уведомления пользователей - а вы, лично вы, видели пользовательское соглашение GGC?

Это было бы полбеды. Зная, как радостно Гугл раздвигает нижние конечности перед запросами правительств мира, предоставляя ваши данные - вы уверены, что ваш HTTPS-трафик так же точно не будет предоставлен? Во всяком случае, его логи? Шта? Гугл мамой клянется, что никому не выдаст ваших данных, кроме как в оговоренных законом случаях и строго по судебному предписанию или ордеру? Мде? И вас это устраивает? Скажите - в какой стране вы живете?

Nothing personal - just business.

Снова и снова повторюсь - TLS не является E2E и по определению не может им являться. Коль скоро это так - какой смысл в этих заячьих плясках с вашим LE?

Кстати, я очень сильно позабавлюсь через пару-тройку лет. Как, интересно знать, LE станет поддерживать CRL для миллионов протухших или отозванных сертов? SAN петабайтный поставит для его хранения и раздачи? А, может, затолкает все истекшие/отозванные серты в экзабайтный ZFS с NoSQL DB и построит супер-пупер-мега-дупер-OCSP responder? А на какие шиши, интересно, если он бесплатен и работает на чистом человеколюбии?

Как бы то ни было - "ищи, кому выгодно", как говорили латиняне. Всеобщий HTTPS выгоден только Корпорации Бобра - так как позволяет знать и то, что вы желали бы скрыть, а еще позволяет уделать кэширующих HTTPS конкурентов - потому что расшифровывает и кэширует все, а не только те сайты, на которые выписаны подписанные рутами серты. А вас еще и развели, как лохов, убедив в том, что всеобщий TLS якобы делает коммуникации безопаснее. Черта с два! Даже TLS 1.3 этого не сделает, так как все, что могло бы послужить к усилению защиты, оттуда старательно выхолостили. Ка-ак раз по вышеприведенным причинам.

Finally. По моему глубокому убеждению, повсеместный HTTPS не только не нужен - он опасен, так как создает иллюзию безопасности не только у хомячков, но и у айтишников (вы ж не желаете вникать - как оно там работает внутри, верно?). И, по моему глубокому убеждению, HTTPS должен сохраняться лишь на логин-страницах (и, может быть, на страницах с формами персональных данных), и то лишь в виде Certificate Pinning. Во всех остальных случаях HTTPS не нужен. А данные мессенджеров, включая медийные, на ракетный залп не должны подходить к HTTPS и передаваться исключительно под E2E по собственным каналам. HSTS тоже должен умереть, будучи лобковыми волосами, которые в одно действие могут быть выдернуты простыми манипуляциями с заголовками HTTP.

А Let's Encrypt можете смело засунуть прямо в задницу - до тех пор, пока существует Gogle Global Cache, стоящий посредине. И не пытайтесь меня убедить в том, что это-де защищает от чего бы то ни было и гарантирует хоть что бы то ни было.

То, что знают трое - знает и свинья.