объяснялка

Меня зовут Самат, мне 35 лет и пару месяцев назад я научился точить ножи.

Раньше я думал, что это особое искусство, передающееся от отца к сыну, и раз меня папа не научил, то не быть мне настоящим мужчиной никогда. Ещё я думал, что для хорошей заточки нужны дорогие точильные камни.

Оказывается, это легко, быстро и дешево. Схема следующая:

1. Покупаешь на амазоне или алиэкспрессе «алмазный точильный камень». На самом деле это не камень, а супер плоская железка, на которую нанесен тонкий слой алмазной крошки. Отличается тем, что не нуждается в особом уходе и живет практически вечно. Бывает разной агрессивности — нам нужна 200/400 — это грубая поверхность, которая съедает металл очень быстро. Стоит 20 баксов.

2. Ставишь нож на камень и выставляешь угол, на который будешь точить нож — можно с помощью пирамидки, которая идет в комплекте, можно тупо палец подставить. Важно не менять этот угол в процессе заточки, для этого фиксируешь запястье, а ещё лучше двигаться всем телом, зафиксировав руку целиком. Водишь ножом по камню туда-обратно, сильно не давишь. Камень съедает метал ножа. Проведя ножом по камню 5-10 раз, можно почувствовать, что с обратной стороны ножа, по всей его режущей кромке появляется заусенец. Увидеть его без лупы нельзя, а вот почувствовать пальцем — легко. Главное вести пальцами не вдоль кромки ножа, а поперек — не то палец порежете.

3. Теперь поворачиваем нож другой стороной и повторяем операцию. После того, как и с первой стороны появился заусенец — поздравляю, мы выставили режущую поверхность (на второй стороне заусенца уже нет — его съел камень). В этот момент нож супер острый — можно проверить это, разрезав им листок бумаги или даже волос (можно побрить волосы на руках, магия:)

4. Но есть проблема — если пользоваться этим ножом, то он очень быстро затупится. Дело в том, что сейчас режет заусенец, а он слишком тонкий, легко загнется или обломится, и нож станет очень тупым.

5. Так что следующий этап – это аккуратное удаление заусенца, чтобы осталась только выставленная нами режущая поверхность. Для этого нужно провести ножом по точильному камню супер супер легко, буквально весом перышка, чередуя стороны, чтобы заусенец с той стороны, где он есть — убрался, а на противоположной стороне — не появился.

6. После этого хорошо бы заполировать достижение повторением всей процедуры на коже, покрытой пастой ГОИ — получается как наждачная бумага, только супер мелкая и гибкая. Она позволяет убрать остатки заусенцев. Кожа, закрепленная на деревяшке и паста к ней стоят ещё долларов 20.

7. Всё, у нас супер острый нож, который долго не будет тупиться.

Никакой магии, никакого секретного знания, передающегося из поколения в поколение.

Первый раз это у меня заняло час. Теперь — пару минут. И это медитативный процесс, но не потому, что занимает часы, а потому что сразу виден результат труда — очень приятно.

Всему этому я научился у простого американского парня Outdoors55. Вот 5-минутное (!) видео, где кроме наглядной демонстрации процесса, автор показывает чудеса макро-съемки, демонстрируя тупой нож, заусенец, процесс его удаления и получившуюся режущую кромку ножа крупным планом.

Про это есть миллионы статей, тысячи часовых видео на ютубе, но всё что нужно знать есть в этом буквально 5-минутном видео. Причем не только что делать, но и почему.

Вот за таких авторов я люблю интернет.

В Firefox Nightly и в Cloudflare подвезли поддержку Encrypted SNI. Это рокот канонады, которая скоро накроет Роскомнадзор и остальных клоунов, блокирующих интернет.

(не-техническое описание в следующем абзаце) При установлении HTTPS соединения, клиент в незашифрованном виде передает серверу имя домена, с которым хочет установить TLS-соединение, это называется Server Name Indication, SNI. Пидоры (в плохом смысле этого слова) из Роскомнадзора парсят эту информацию (то, что называется Deep Packet Inspection, DPI) и блокируют неугодные сайты. Encrypted SNI шифрует имя домена, так что владелец канала увидит только IP-адрес и порт. Если сайт хостится на крупном CDN (типа Cloudflare), то у атакующего не будет другого выхода, кроме блокирования крупных частей интернета по IP-адресам.

Приведу аналогию с телефонными разговорами. На сегодняшний день, многие сайты не имеют своего телефонного номера (IP адреса), а пользуются общими номерами арендодателя (CDN типа Cloudflare). Это значит, что сотни тысяч сайтов используют один и тот же номер. Шифрование разговора при этом включается только после того, как вы скажете секретарю арендодателя, какой сайт вам нужен. Товарищ майор (Роскомнадзор) слушает все разговоры и обрывает ваш звонок, как только слышит имя запрещенного сайта. Новая технология позволит включить шифрование уже на этапе разговора с секретарем, так что у товарища майора не будет возможности блокировать отдельные сайты — только крупные части интернета целиком по номеру телефона (IP-адресу).

Технически, это гениальное в своей простоте решение сложной задачи. Специальный ключ домена хранится в оговоренной DNS-записи. Клиент забирает из DNS ключ и вместо ClientHello server_name делает ClientHello encrypted_server_name. Никто кроме целевого сервера не сможет расшифровать, какое имя домена просил пользовать. Понятно, что для того, чтобы это всё работало, нам нужен безопасный DNS. Тут на выручку приходит DNS over HTTPS (DoH), который уже поддерживается как минимум тремя крупными провайдерами: Google, Cloudflare и Verizon. Я до сих пор не понимаю, почему РКН не блокирует неугодные сайты через DNS (если кто знает причину — расскажите, пожалуйста), но с распространением в клиентах поддержки DoH, этот вектор атаки остается в прошлом.

Я думаю, что в перспективе 2-5 лет, власти России встанут перед выбором — двигаться по «китайскому сценарию», заблокировав внешний интернет скопом (и оставив только белые списки) или перестать блокировать точечно сайты, потому что это слишком неэффективно. Ой нет, извините, можно ещё делать хорошую мину при плохой игре и продолжать спускать деньги бюджета на бутафорию. Это — самый вероятный сценарий.

Очень жду, когда поддержка ESNI и DoH приедет в Google, AWS, Chrome, iOS и Android. И всё, пользовательский интернет станет на порядок безопаснее. В интересное время живем, товарищи!

Классная история и повод рассказать про взломы паролей понятным языком.

Историки взломали пароль Кена Томпсона из 1980-х! Томпсон — живая легенда (ru), создатель операционной системы Unix (предок Linux).

Дело в том, что в 1980е создатели Unix раздавали хэши (шифрованные отпечатки) своих паролей вместе с копиями операционной системы. Как так получилось?

Самый простой способ работы с паролями - хранить их на диске и при попытке входа сравнить введенный пароль с сохранённым. Совпадают - пускаем, не совпадают - не пускаем. У этого подхода есть проблема - если вдруг диск попадёт в руки злоумышленнику - все пропало.

Чтобы защитить пароль от утечки, мы храним не сами пароли, а их отпечатки (хэши). При попытке входа система подсчитывает хэш введённого пароля и сравнивает его с сохранённым. Хороший хэш устроен так, что по нему нельзя угадать пароль.

И все же, есть один гарантированный способ восстановить пароль зная его хэш: для этого нужно посчитать хэши всех возможных паролей. Тот, чей хэш совпал с нашим и есть искомый пароль. «Против лома нет приема», по английски - brute-force attack, по русски брутфорс или просто «перебор».

Именно отсюда происходят советы по хорошим паролям (я ненавижу формы регистрации не меньше вашего):

— не стоит использовать короткий пароль. При длине 1 для взлома нужно перебрать всего 26 вариантов (26 букв), при длине 2 вариантов — 26×26=676, при трех — уже 17 576 (26×26×26). Если у вас в пароле 8 букв — то это 208 миллиардов вариантов для перебора;
— заглавные буквы рулят! Добавление заглавных букв увеличивает число вариантов для 8 букв в 256 раз, до 53 триллионов.
— нельзя использовать как пароль слово из словаря. Слов очень мало — порядка 200 тысяч . Для перебора всех слов нужно в 800 миллионов раз меньше времени (ресурсов), чем для перебора случайных паролей длины 8.

☞ Попытки атакующих быстро перебрать много паролей и старания разработчиков сделать процесс перебора максимально долгим — одна из классических гонок вооружений. Существуют так называемые «радужные таблицы» предподсчитанных хэшей, которые существенно ускоряют процесс перебора вариантов. Для борьбы с использованием радужных таблиц придумали «соль)». ◼︎

Так вот, на прошлой неделе один энтузиаст подобрал пароль Томпсона найдя его хэш на винтажном диске — это заняло 4 дня непрерывной работы современной графической карты. Вычислительная мощь непредставимая 40 лет назад. Пароль был «p/q2-q4!», что на современный шахматный язык переводится «e2-e4» :)

🍒 Вишенка на торте — в публичную почтовую рассылку ответил сам Кен Томсон (!): «поздравляю». Через день в рассылку написал Роб Пайк — другая живая легенда: «во первых, я невольно подглядел пароль ещё в восмидесятых, а во вторых — взламывать пароли — безвкусно. Было безвкусно тогда, безвкусно и сейчас». У дедушек вечеринка 🎉

Написал краткий разбор, заводить ли свой VPN-сервер и инструкцию, как это проще всего сделать.
https://medium.com/@samat/%D1%81%D0%B2%D0%BE%D0%B9-vpn-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-%D0%BF%D0%BB%D1%8E%D1%81%D1%8B-%D0%BC%D0%B8%D0%BD%D1%83%D1%81%D1%8B-%D0%B8-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F-3e0ec97c129e#.6ymspkr63

Неприятно, что поводом служит командировка в Москву, а не поездка в Иран, например.

На свете есть два крутых платежных провайдера для интернет-компаний, Braintree и Stripe. Обе компании обрабатывают карточки, являются посредником между вашим сайтом/приложением и платежными системами MasterCard/Visa.

Оба они, конечно, из Америки и начали работать с компаниями из Европы относительно недавно — финтех мир он такой. России в списке поддерживаемых стран, конечно, нет и с текущими развитием событий, наверное, не появится. Речь идет о стране юрлица-получателя денег; покупатели ваших товаров могут быть почти отовсюду, список стран под эмбарго OFAC совсем маленький (Северная Корея, Иран, ещё 5 неинтересных стран и Белоруссия).

Stripe пытается решить "проблему не-США мира", запустив программу Atlas. За тысячу долларов они регистрируют для вас бизнес в штате Делавер, в котором инкорпорирована половина интернет компаний планеты.

А повод написать про это у меня такой: посмотрите на список стран, в которых не работает Atlas Stripe. Мы в хорошей компании 🤦‍♂️

Опора для коллег

Важная функция руководителя — быть опорой для коллег. Когда прод лежит, а сроки горят — тимлид должен приносить в команду спокойствие, а не тревогу. Когда прибыль падает, и CEO топчет ногами — COO должен поддерживать коллег, а не грозить всех уволить. Когда инвесторы отказываются от раунда, CEO должен верить в будущее, а не пропадать из офиса с бутылкой.

Собственник бизнеса имеет право на свою прибыль именно потому, что обязан оставаться спокойным и трезвым в любой ситуации. Даже когда когда корабль тонет и бизнес разоряется — команда должна видеть уверенного капитана, чтобы спокойно вычёрпывать воду.

Самое сложное в том, что надо не просто демонстрировать спокойствие и искриться улыбкой, а действительно быть таким внутри, иначе люди быстро распознают хуйню и станет только хуже. Это довольно сложная работа — чтобы выполнять её в собственных бизнесах, мне понадобилось 10 лет ежедневного руководства командами и 5 лет психотерапии. До сих пор есть, куда расти.

Мой идеал спокойствия — Людвиг Быстроновский, арт-директор, с которым я когда-то давно работал в студии. Судя по его рассказам (посмотрите его цикл лекций о шторме) — человек довольно взрывной внутри. Несмотря на это, всегда когда у меня случался полный пиздец (а в клиентской работе полные пиздецы случаются раз в неделю), если на проекте был Людвиг — я успокаивался гораздо быстрее. Он не применял никаких специальных инструментов — просто спокойно разговаривал о проблемах. Наверное это работало где-то на уровне химии и языка тела, не знаю. Часто мне даже не надо было с ним разговаривать — я садился писать ему письмо и, даже не дописав, понимал что делать. Сейчас я стараюсь быть таким же для своих коллег — давать уверенность и спокойствие, что бы ни происходило в бизнесе.

Так вот, к чему это я: если начали руководить даже двумя людьми — учитесь приносить им спокойствие. Тревоги им и без вас достаточно.

У каждого свой подход к сообщениям и уведомлениям.

Мой подход следующий:
1. Не трогать письма и уведомления, на которые не хочешь реагировать. Не кликать, не архивировать, не удалять. Посмотрел заголовки и пока. Анти zero inbox;
2. Выключать уведомления (режим do not disturb), если нужно сконцентрированно поработать. Такая возможность есть и в компьютере тоже;
3. Выключать badge count - красные шарики, показывающие, что есть непрочитанные сообщения. Они имеют удивительно сильное влияние на психику и вы поразитесь, насколько меньше будете открывать приложения на телефоне, если выключите им badge count. Особенно это касается мессенджеров. Вы не пропустите ничего важного - новые сообщения все равно отобразятся в Notification Center. Эту настройку приходится делать отдельно для каждого приложения в iOS, но только один раз.

Про то, как быстро отписаться от всех друзей в ФБ я уже писал, но у этого есть и обратная сторона - алгоритмы поймут, что вы не сидите на сайте и перестанут показывать ваши посты кому-либо. Наказывают.

Возможно, такой хардкор нужен только увлекающимся людям со слабым самоконтролем. Я по-другому чувствую себя собакой Павлова, которой пускают слюну включением лампочки.

Кстати, Кейти была экспертом при подготовке Вассенаарских договоренностей, которые определяют, какой софт считается оружием и как его контролировать.

Я в этой связи вспоминаю, как правительство США пыталось запретить публичное распространение криптографии, которую они не могли взломать.

Правительство классифицировало стойкие алгоритмы как вооружение и запрещало их экспорт.

Например, в середине 90-х, было две разных версии браузера Netscape: одна с нормальным 128-битным шифрованием, доступная только в США и Канаде, а остальной мир должен был довольствоваться 40-битным шифрованием.

Активисты, которые боролись с этим безумием, в числе прочего, распространяли алгоритмы и даже исходники RSA и PGP в виде книги. Потому что книги защищены первой поправкой к конституции США о свободе слова.

Вот активистская футболка тех времен, с алгоритмом RSA и крупным предупреждением «эта футболка классифицируется как вооружение и не может быть экспортирована из США или показана иностранцу».

«Простота — это великая добродетель, но она требует напряженной работы, чтобы её достичь и образование, чтобы оценить. И к сожалению, сложность продается легче.» — Дейкстра.

Простые решения дешевле в реализации и поддержке, в них меньше вероятности допустить ошибку, их легче передать другому и так далее и так далее.

Кажется, что раз решение сложное — то в него вложено больше труда и значит оно должно быть лучше.

Это, конечно, не так. Процитирую Паскаля: «если бы у меня было больше времени, я бы написал письмо покороче».

В программировании ровно то же самое: простые решения требуют гораздо больше интеллектуальных усилий, приходят с опытом.

Да, есть задачи, которые сами по себе сложные, с огромным числом ограничений и тд., например, биллинги обычно такие. При этом, почти все биллинги, которые я видел, были переусложнены сверх необходимого. 🙈

Отличная статья об этом феномене на примере научных статьей в области машинного обучения. Спасибо Игорю за наводку.

66% потерянных флешек содержат вирусы.

Зараженные флешки — мощный вектор атаки. Подкидываешь жертве флешку с вирусами и получаешь полный доступ к её компьютеру.

Такие зараженные флешки позволили проникнуть в защищенную сеть Пентагона (флешка на парковке). Их использовали для успешного проникновения в изолированную сеть иранской ядерной программы, где вирус повредил центрифуги для обогащения урана. Их регулярно разбрасывают около банков в ходе учений по ИБ.

Атаки бывают простые: вордовские документы с макросами и файлы фотки-из-отпуска.exe. Или сложные: специальные устройства (русская(!) вики, оригинальный пост) (там есть ссылки на видео доклада и pdf презентации 2014-го года(!)). Устройства выглядят как флешки, но при этом содержат дополнительные прошивки/драйверы для виртуальной клавиатуры или сетевого устройства. Они могут печатать на вашей клаве и перехватывать весь сетевой трафик. Вот, черт подери, пошаговая инструкция, как самому приготовить такую флешку.

Классный проект по защите от таких атак — программно-аппаратный комплекс из Raspberry Pi и софта. Получившийся мини-компьютер копирует все файлы с потенциально зараженной флешки на гарантированно чистую. Вирусы или аппаратные закладки остаются на оригинальном диске, на вашем — только чистые файлы в безопасных форматах.