> Да, всё, что вы говорите — справедливо, я с вами согласен. Разумеется,
> если гитхаб будет взломан, то существует опасность подмены скриптов, А не требуется никакого "взлома гитхаба". Атакующему достаточно просто завернуть запросы к такому серверу стеганографии на свой сервак где хоть какая-то из 100500 ауторитей выдала сертификат. И далее делать вид что оно тут типа стеганографией занимается и типа шифрует. А то что это был совсем левый скрипт который куда-то копию ключей слил, например - так кто ж это увидит?
В вебе в браузере нет ни-ка-ких средств удостовериться что ремотный сервак отгрузил именно то что ожидалось, от именно того автора который это писал. Какие-то вялые попытки проверить что сервер тот самый - в SSL/TLS предприняты, но его надежность никакая. PKI - лохоразвод, о чем криптографы предупреждали давно. А т.к. скрипт каждый раз грузится с сервака (по крайней мере этот процесс 100% подконтролен MITM-у с левым серваком) - уповать на то что скрипт будет вгружен правильный и с правильного сервака совершенно не приходится. А дотошно проверять вот такие вот портянки каждый раз - не вариант, опять же.
> но не стоит, однако, забывать, что подобному сценарию подвержено абсолютно всё,
> что хоть как-то связано с внешним миром: так, ничто не мешает украсть приватный
> ключ мейнтейнера и использовать его для подписи изменённых пакетов, что, кстати,
> уже наблюдалось.
Вот тут как раз факапы обычно весьма редки - большинство майнтайнеров в нормальных дистрах ответственно относятся к своему ремеслу. И кроме того цена атаки намного выше. Такие ключи обычно просто не хранятся абы где и спереть их - отдельный рокетсайнс. Во вторых, если у меня уже предзагружены пубкеи майнтайнеров, припершийся с бухты-барахты MITM в канале вообще никак не может мне всучить какой-то левый ключ по желанию левой пятки. Кроме того совсем не факт что он сможет спереть парный привкей. И программу перекачивать он меня не может обязать. Это весьма и весьма поднимает планку.
Если сравнивать - эта схема по надежности от вебни отличается как сантиметровый лист стали - от куска картона. В первом застрянут даже приличные пули. Второе протыкается даже перочинным ножиком.
> Единственное же отличие вебни в данном случае то, что она работает в
> гораздо ограниченной песочнице,
Нет, глобальное отличие вебни прежде всего в том что
1) нет никаких сколь-нибудь надежных и работоспособных методов проверить что подсунутое нечто - наавторено именно вон тем автором.
2) все поведение клиента контролируется сервером, который потенциально может быть левым MITMом. С другой стороны, левый MITM совершенно не может меня спровоцировать на вгрузку креативно пропатченной версии программы в произвольный, удобный ему момент времени. А вот с JS - как два байта переслать.
> и максимум, что при этом может произойти: трекинг
> пользователей и компрометация данных.
Во первых, оно имеет все предпосылки для того чтобы не справиться с декларируемой целью. Когда тебе втюхивают бронежилет, а оказывается что он из картона и протыкается зубочисткой - это как-то не прикольно совсем. Из-за нестыковки того что заявлено с тем что по факту.
Во вторых, оно работает в немеряном браузере и то что в браузере, либах используемых им и прочая нет багов, которые сможет атаковать MITM - совсем не факт.
> Поэтому я всем советую идеальное решение любых
> паранойя-проблем: пожалуйста, пользуйтесь моим сервисом через TOR
Есть маленькая проблемка: вы никогда не знаете кто там на exit node и насколько он изволит из себя MITMа изобразить. Это может быть частичным решением, в том плане что в результате MITMом сможет быть только какой-то случайно выбранный узел и у атакующего уже не будет твердой гарантии получения желаемой порции данных. С другой стороны, нет никаких гарантий того что tor exit node - добропорядочный. Напротив зачастую там вполне можно ожидать чего угодно.
> (равно как, понятное дело, и при передаче кодированного контента по открытым
> и/или незащищённым каналам связи. Всего и делов-то.
В целом надежность всех схемы липовая и отдает картонным щитом. Делаются какие-то совершенно левые допущения о добропорядочности промежуточных узлов, что совсем не факт. В нормальных условиях такие допущения не делаются. И если надеяться укачать программу 1 раз без подстав еще можно то вот надеятся что не всучат посторонний JS как-то уже не приходится, т.к. клиент-серверная модель подразумевает что клиент пляшет под дудку сервера, а он может быть и совсем не тем кем ожидалось. Что факапит всю схему. В самых основах. Веб-чудики никак не могут взять в толк что их игрушка априори не тянет на серьезные применения. By design.