Огромное спасибо, Озон, за перенос сроков доставки заказа в пункт выдачи (казалось бы, логистика такого рода должна быть отлажена вплоть до минут?)😜😜👍👍
Двойное спасибо за то, что даже не сообщили об этом, позвонила и узнала сама 👍👍😜😜
Двойное спасибо за то, что даже не сообщили об этом, позвонила и узнала сама 👍👍😜😜
Forwarded from Артём и его MacBook (Artem Tamoian)
CloudFlare делает очень большой шаг в борьбе за свободный интернет: они анонсировали SNI Encryption. Использование TLS 1.3 и SNI Encryption делает DPI (их используют для ограничения доступа к заблокированным сайтам) бесполезными.
Подробное объяснение тут: https://blog.cloudflare.com/esni/
Когда SNI Encryption и TLS 1.3 станут стандартом и будут широко поддерживаться, российская система блокировок перестанет работать. Останутся всего два варианта — блокировать по IP, как сейчас делают небольшие провайдеры, и навязывать клиентам использование провайдерского DNS.
Но ведь DNS всегда можно сменить 1.1.1.1 или 8.8.8.8 (блокировать протокол они вроде как не собираются, да и страшно представить, сколько всего поломается, если они попробуют). А менять IP-адереса сейчас не составляет никакого труда (Telegram всё ещё работает, да?), да и IPv6 потихоньку развивается.
Подробное объяснение тут: https://blog.cloudflare.com/esni/
Когда SNI Encryption и TLS 1.3 станут стандартом и будут широко поддерживаться, российская система блокировок перестанет работать. Останутся всего два варианта — блокировать по IP, как сейчас делают небольшие провайдеры, и навязывать клиентам использование провайдерского DNS.
Но ведь DNS всегда можно сменить 1.1.1.1 или 8.8.8.8 (блокировать протокол они вроде как не собираются, да и страшно представить, сколько всего поломается, если они попробуют). А менять IP-адереса сейчас не составляет никакого труда (Telegram всё ещё работает, да?), да и IPv6 потихоньку развивается.
The Cloudflare Blog
Encrypting SNI: Fixing One of the Core Internet Bugs
Cloudflare launched on September 27, 2010. Since then, we've considered September 27th our birthday. This Thursday we'll be turning 8 years old.
Ever since our first birthday, we've used the occasion to launch new products or services.
Ever since our first birthday, we've used the occasion to launch new products or services.
Артём и его MacBook
CloudFlare делает очень большой шаг в борьбе за свободный интернет: они анонсировали SNI Encryption. Использование TLS 1.3 и SNI Encryption делает DPI (их используют для ограничения доступа к заблокированным сайтам) бесполезными. Подробное объяснение тут:…
Это прекрасная новость!
Всегда боялась, что SNI Encryption очень нескоро увидит свет, что он лишь в стадии обсуждения спецификаций и всего такого, поэтому сейчас приятно удивлена, что первая масштабная реализация уже близко.
Всегда боялась, что SNI Encryption очень нескоро увидит свет, что он лишь в стадии обсуждения спецификаций и всего такого, поэтому сейчас приятно удивлена, что первая масштабная реализация уже близко.
Попросили рассказать об SNI подробнее.
Все ведь понимают, что на одном веб-сервере с одним IP-адресом может размещаться любое количество сайтов?
Эта возможность называется "виртуальные хосты" и существует благодаря заголовку Host в HTTP-запросах. Сервер понимает по этому заголовку, какой контент нужно отдать браузеру.
О хитрости с заголовком Host при использовании https, которая называется domain fronting, я уже писала (t.me/theyforcedme/51) в статье про магию Telegram. Сейчас не об этом.
Дело в том, что когда вы обращаетесь к сайту по https, все запросы, включая заголовки, заворачиваются в протокол TLS и шифруются. Проверка подлинности при этом осуществляется с помощью сертификатов SSL, которые привязываются к доменным именам. После рукопожатия и установления шифрованного соединения, третьи стороны не могут понять, что именно вы передаёте и получаете в запросах. Секурити!
Как же быть, если на одном сервере несколько виртуальных хостов? Например, веб-сервер имеет адрес 185.88.181.6, а на нём крутятся сайты vk.com, 2ch.hk, fsb.ru, каждый из которых работает по https. Так как сертификаты привязываются к доменам, у каждого сайта будет свой, поэтому сервер должен как-то понять, какой сайт хочет пользователь.
Заголовок Host здесь не подходит, его сервер получит только после рукопожатия и установления зашифрованного соединения. Значит нужно сообщить серверу о нужном нам домене прямо в процессе рукопожатия. Для этого и был придуман апгрейд протокола TLS, называющийся Server Name Indication, SNI.
Проще говоря, ваш браузер, стучась на сервер, сразу говорит ему, что хочет получить сертификат для домена, например, 2ch.hk, передавая доменное имя в поле SNI.
Беда здесь в том, что происходит это в открытом виде, шифрование ведь ещё не установилось. А значит, операторы связи могут с помощью DPI перехватить это поле и выяснить, куда стучится пользователь, несмотря на то, что он планирует использовать защищённый канал. И если, например, государство считает сайт запрещённым, оператор может оборвать соединение.
Таким образом, операторы и прочие третьи лица могут:
а) получать информацию о том, на какие https-сайты ходит пользователь, несмотря на то, что получить содержимое запросов они не могут
б) блокировать соединения с конкретными доменами. Например, 2ch.hk можно заблокировать, а vk.com и fsb.ru останутся доступны.
Дальше напишу про SNI Encryption, который призван решить эту проблему.
Все ведь понимают, что на одном веб-сервере с одним IP-адресом может размещаться любое количество сайтов?
Эта возможность называется "виртуальные хосты" и существует благодаря заголовку Host в HTTP-запросах. Сервер понимает по этому заголовку, какой контент нужно отдать браузеру.
О хитрости с заголовком Host при использовании https, которая называется domain fronting, я уже писала (t.me/theyforcedme/51) в статье про магию Telegram. Сейчас не об этом.
Дело в том, что когда вы обращаетесь к сайту по https, все запросы, включая заголовки, заворачиваются в протокол TLS и шифруются. Проверка подлинности при этом осуществляется с помощью сертификатов SSL, которые привязываются к доменным именам. После рукопожатия и установления шифрованного соединения, третьи стороны не могут понять, что именно вы передаёте и получаете в запросах. Секурити!
Как же быть, если на одном сервере несколько виртуальных хостов? Например, веб-сервер имеет адрес 185.88.181.6, а на нём крутятся сайты vk.com, 2ch.hk, fsb.ru, каждый из которых работает по https. Так как сертификаты привязываются к доменам, у каждого сайта будет свой, поэтому сервер должен как-то понять, какой сайт хочет пользователь.
Заголовок Host здесь не подходит, его сервер получит только после рукопожатия и установления зашифрованного соединения. Значит нужно сообщить серверу о нужном нам домене прямо в процессе рукопожатия. Для этого и был придуман апгрейд протокола TLS, называющийся Server Name Indication, SNI.
Проще говоря, ваш браузер, стучась на сервер, сразу говорит ему, что хочет получить сертификат для домена, например, 2ch.hk, передавая доменное имя в поле SNI.
Беда здесь в том, что происходит это в открытом виде, шифрование ведь ещё не установилось. А значит, операторы связи могут с помощью DPI перехватить это поле и выяснить, куда стучится пользователь, несмотря на то, что он планирует использовать защищённый канал. И если, например, государство считает сайт запрещённым, оператор может оборвать соединение.
Таким образом, операторы и прочие третьи лица могут:
а) получать информацию о том, на какие https-сайты ходит пользователь, несмотря на то, что получить содержимое запросов они не могут
б) блокировать соединения с конкретными доменами. Например, 2ch.hk можно заблокировать, а vk.com и fsb.ru останутся доступны.
Дальше напишу про SNI Encryption, который призван решить эту проблему.
Нужно ли так подробно разъяснять принципы работы технологий?
anonymous poll
Да, для меня это новая и интересная информация – 594
👍👍👍👍👍👍👍 94%
Нет, я и так отлично разбираюсь в базовых принципах работы сети – 40
▫️ 6%
👥 634 people voted so far.
anonymous poll
Да, для меня это новая и интересная информация – 594
👍👍👍👍👍👍👍 94%
Нет, я и так отлично разбираюсь в базовых принципах работы сети – 40
▫️ 6%
👥 634 people voted so far.
Меня заставили создать канал
Попросили рассказать об SNI подробнее. Все ведь понимают, что на одном веб-сервере с одним IP-адресом может размещаться любое количество сайтов? Эта возможность называется "виртуальные хосты" и существует благодаря заголовку Host в HTTP-запросах. Сервер понимает…
ESNI, он же Encrypted SNI, он же — решение вышеописанной проблемы. Или вовсе не решение?..
В августе в RFC 8446 был описан TLS версии 1.3, в котором появилось шифрование поля server_name, где передаётся доменное имя.
Теперь браузер при рукопожатии не будет посылать доменное имя в открытом виде, оно будет зашифровано и доступно только веб-серверу.
Это означает, что третьи лица, включая операторов связи, не смогут:
а) получать информацию о https-сайтах, которые посещает пользователь. Всё, что у них останется — IP-адрес.
б) блокировать https-сайты по конкретным доменам. Блокировать смогут только весь сервер по IP-адресу, но на одном сервере вместе с неугодным регулятору сайтом могут располагаться десятки "добрых" сайтов. У Cloudflare, кстати, на одном IP-адресе могут располагаться тысячи сайтов. Мало кто пойдёт на такие потери ради блокировки одного "вредителя". Насколько я знаю, некоторые IP-адреса Cloudflare всё-таки полностью заблокированы в России, но у Роскомнадзора смелости не занимать.
Звучит всё круто, но как же работает это шифрование? Как сервер сможет расшифровать server_name? Обмен ключами.
Браузер и сервер обмениваются ключами и формирует секретную строку, которой браузер шифрует server_name, а сервер расшифровывает.
В этом есть неприятная загвоздка, сейчас вы все расстроитесь.
Дело в том, что браузер получает публичный ключ сервера из TXT-поля домена. А это DNS. А все DNS-запросы у нас ныне отправляются открытым текстом... Почему надо расстроиться? Потому что злой оператор связи может перехватить DNS-запрос браузера, предназначенный для получения публичного ключа, и подменить ответ на пустоту, например.
Браузер не получит публичный ключ и не сможет зашифровать server_name, произойдёт откат до старой версии TLS и server_name будет отправлен в открытом виде. ESNI полностью ломается и мы возвращаемся к проблеме из прошлого поста.
Чтобы решить и эту проблему, нужно переходить на шифрованные DNS-запросы, например, с помощью DNSSEC или DNS, завёрнутого в TLS (там уже могут возникнуть свои проблемы). Поддержка этих штук вряд ли предвидится в ближайшее время, так что ESNI будет сломан Роскомнадзором и прочими регуляторами сразу же, когда начнёт широко применяться.
Ох, я ещё не сказала, что для работы ESNI нужна поддержка на уровне браузеров и веб-серверов, а единственный браузер, который вот-вот выкатит ESNI — Mozilla Firefox.
В общем, порадовались немного и хватит. Полностью обезопасить веб-трафик от вмешательства лишних глаз мы сможем ещё не скоро.
Спасибо Павлу Жовнеру за подсказку о проблеме с зависимостью ESNI от DNS. <3
В августе в RFC 8446 был описан TLS версии 1.3, в котором появилось шифрование поля server_name, где передаётся доменное имя.
Теперь браузер при рукопожатии не будет посылать доменное имя в открытом виде, оно будет зашифровано и доступно только веб-серверу.
Это означает, что третьи лица, включая операторов связи, не смогут:
а) получать информацию о https-сайтах, которые посещает пользователь. Всё, что у них останется — IP-адрес.
б) блокировать https-сайты по конкретным доменам. Блокировать смогут только весь сервер по IP-адресу, но на одном сервере вместе с неугодным регулятору сайтом могут располагаться десятки "добрых" сайтов. У Cloudflare, кстати, на одном IP-адресе могут располагаться тысячи сайтов. Мало кто пойдёт на такие потери ради блокировки одного "вредителя". Насколько я знаю, некоторые IP-адреса Cloudflare всё-таки полностью заблокированы в России, но у Роскомнадзора смелости не занимать.
Звучит всё круто, но как же работает это шифрование? Как сервер сможет расшифровать server_name? Обмен ключами.
Браузер и сервер обмениваются ключами и формирует секретную строку, которой браузер шифрует server_name, а сервер расшифровывает.
В этом есть неприятная загвоздка, сейчас вы все расстроитесь.
Дело в том, что браузер получает публичный ключ сервера из TXT-поля домена. А это DNS. А все DNS-запросы у нас ныне отправляются открытым текстом... Почему надо расстроиться? Потому что злой оператор связи может перехватить DNS-запрос браузера, предназначенный для получения публичного ключа, и подменить ответ на пустоту, например.
Браузер не получит публичный ключ и не сможет зашифровать server_name, произойдёт откат до старой версии TLS и server_name будет отправлен в открытом виде. ESNI полностью ломается и мы возвращаемся к проблеме из прошлого поста.
Чтобы решить и эту проблему, нужно переходить на шифрованные DNS-запросы, например, с помощью DNSSEC или DNS, завёрнутого в TLS (там уже могут возникнуть свои проблемы). Поддержка этих штук вряд ли предвидится в ближайшее время, так что ESNI будет сломан Роскомнадзором и прочими регуляторами сразу же, когда начнёт широко применяться.
Ох, я ещё не сказала, что для работы ESNI нужна поддержка на уровне браузеров и веб-серверов, а единственный браузер, который вот-вот выкатит ESNI — Mozilla Firefox.
В общем, порадовались немного и хватит. Полностью обезопасить веб-трафик от вмешательства лишних глаз мы сможем ещё не скоро.
Спасибо Павлу Жовнеру за подсказку о проблеме с зависимостью ESNI от DNS. <3
Ух, пографоманила, теперь можно снова два месяца молчать, изредка постить мемы и просьбы регнуть Рокетбанк по моей ссылке.
Кстааати, посмотрите в закреплённый пост! Зачем дарить девушкам цветы, если можно пользоваться их рефералкой? Я буду рада.
Кстааати, посмотрите в закреплённый пост! Зачем дарить девушкам цветы, если можно пользоваться их рефералкой? Я буду рада.
И вам доброе утро!
Грузинская свадьба под окном.
Или, может, вы лучше поймёте, что происходит?
Грузинская свадьба под окном.
Или, может, вы лучше поймёте, что происходит?
TAG: Что в моей сумочке?
Хочу рассказать о софте, который упрощает мне жизнь. Возможно, какие-то малоизвестные приложения будут для вас полезным открытием.
Я использую macOS, предупреждаю сразу (прямо камингаут, теперь камнями забьют). Об очевидных и популярных писать не буду.
Alfred 3 — отличная замена стандартному Spotlight. Использую для запуска всего остального софта и как калькулятор. В принципе, Spotlight всем устраивал, кроме ужасного калькулятора. Есть бесполезные платные фичи.
Charles (кроссплатформенная!) — моё любимое приложение. Это прокси, который позволяет перехватывать любые HTTP/HTTPS-запросы, повторять их, изменять, ставить брейкпоинты. Использую, чтобы изучать API всяких мобильных и не только приложений. Пользуюсь много лет.
Clean — очень простая бесплатная утилита, которая раз в сутки убирает всё с рабочего стола в папку
Keka — лучший архиватор. Простой и минималистичный, съедает любые архивы. Опенсорсный и бесплатный, но если хотите поддержать, качайте в App Store.
Loopback — самый удобный на планете софт для перенаправления звука. Можете собирать звук из нескольких приложений и выделять в один виртуальный микрофон. Как VAC для Windows, только по-настоящему удобный и простой. Полезно для стримеров, подкастеров, etc.
Macs Fan Control — этой штукой часто вручную подкручивала вентиляторы ноутбука, но после прочистки от пыли необходимость в программе отпала.
Monosnap (кроссплатформенная!) — с этой скриншотилкой я уже много лет. Очень хороший редактор, может и видео записывать. Лениво объяснять, как её можно удобно использовать. Может, например, заливать скриншот на ваш сервер и помещать в буфер обмена прямую ссылку на картинку. Кстати, думала, что с выходом macOS Mojave перейду на встроенную новую скриншотилку, но она оказалась отстой.
Paw — суперский софт для составления HTTP-запросов и их отправки. С помощью него удобно тестирую всякие API. Целый комбайн. Вот тут, кстати, хочу сказать, что люблю macOS за милые иконки и названия у приложений.
Transmission — самый компактный и аккуратный torrent-клиент.
Transmit — лучший FTP/SFTP/etc-клиент.
Телефон — самая минималистичная и простая в мире SIP-звонилка от отечественного разработчика.
В качестве блокнота я использую Sublime Text, в качестве браузера Google Chrome, основные мои IDE — GoLand, Android Studio и Visual Studio.
Хочу рассказать о софте, который упрощает мне жизнь. Возможно, какие-то малоизвестные приложения будут для вас полезным открытием.
Я использую macOS, предупреждаю сразу (прямо камингаут, теперь камнями забьют). Об очевидных и популярных писать не буду.
Alfred 3 — отличная замена стандартному Spotlight. Использую для запуска всего остального софта и как калькулятор. В принципе, Spotlight всем устраивал, кроме ужасного калькулятора. Есть бесполезные платные фичи.
Charles (кроссплатформенная!) — моё любимое приложение. Это прокси, который позволяет перехватывать любые HTTP/HTTPS-запросы, повторять их, изменять, ставить брейкпоинты. Использую, чтобы изучать API всяких мобильных и не только приложений. Пользуюсь много лет.
Clean — очень простая бесплатная утилита, которая раз в сутки убирает всё с рабочего стола в папку
~/Documents/Desktop/<год> <месяц>. Ребята, ставьте и привыкайте, это ВАЖНО. Рабочий стол всегда должен быть пуст, на нём должно лежать только то, с чем вы прямо сейчас работаете. Остатки должны регулярно сгребаться куда-нибудь в другое место, что эта программа и делает. P.S. Так должно быть и с вашим реальным рабочим столом в жизни!Keka — лучший архиватор. Простой и минималистичный, съедает любые архивы. Опенсорсный и бесплатный, но если хотите поддержать, качайте в App Store.
Loopback — самый удобный на планете софт для перенаправления звука. Можете собирать звук из нескольких приложений и выделять в один виртуальный микрофон. Как VAC для Windows, только по-настоящему удобный и простой. Полезно для стримеров, подкастеров, etc.
Macs Fan Control — этой штукой часто вручную подкручивала вентиляторы ноутбука, но после прочистки от пыли необходимость в программе отпала.
Monosnap (кроссплатформенная!) — с этой скриншотилкой я уже много лет. Очень хороший редактор, может и видео записывать. Лениво объяснять, как её можно удобно использовать. Может, например, заливать скриншот на ваш сервер и помещать в буфер обмена прямую ссылку на картинку. Кстати, думала, что с выходом macOS Mojave перейду на встроенную новую скриншотилку, но она оказалась отстой.
Paw — суперский софт для составления HTTP-запросов и их отправки. С помощью него удобно тестирую всякие API. Целый комбайн. Вот тут, кстати, хочу сказать, что люблю macOS за милые иконки и названия у приложений.
Transmission — самый компактный и аккуратный torrent-клиент.
Transmit — лучший FTP/SFTP/etc-клиент.
Телефон — самая минималистичная и простая в мире SIP-звонилка от отечественного разработчика.
В качестве блокнота я использую Sublime Text, в качестве браузера Google Chrome, основные мои IDE — GoLand, Android Studio и Visual Studio.
Один знакомый резко сменил жизненный курс с завоёвывания звёздочек на погонах на развитие в мире разработки, свои шаги старается описывать в блоге.
Недавно он взял у меня интервью (не думаю, что я достаточно интересный для такого человек, но мне приятно), можете почитать.
t.me/developer_ru/6
Недавно он взял у меня интервью (не думаю, что я достаточно интересный для такого человек, но мне приятно), можете почитать.
t.me/developer_ru/6
Telegram
Нетипичный программист
Сегодня интервью с классной IT-шницей, автором телеграм-канала Меня заставили создать канал с более чем 2 тыс. подписчиков.
➡️Ань, привет! 😀
➡️Как бы ты себя представила? 2 существительных, 2 прилагательных и 2 глагола.
✅Недопрограммист, тюлень. Добрая…
➡️Ань, привет! 😀
➡️Как бы ты себя представила? 2 существительных, 2 прилагательных и 2 глагола.
✅Недопрограммист, тюлень. Добрая…