Сам себе Телеграм

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

Предположим, надо тебе секретно отправить фотографию чего-нибудь другу. Я взял фотографию путина. Нет, не того Путина, который Владимир Владимирович, а путина, который национальное канадское хрючево. Но не суть. Передать таким образом можно что угодно, хоть диаграммы подрыва Кремля. Ну да, можно использовать всякие там запароленные RAR-архивы (по сути являющиеся симметричным шифрованием), но возникает проблема с обменом ключами для дешифровки. Как ты будешь сообщать пароль собеседнику? По телефону? Он прослушивается. По электронной почте? Она пишется. А если у тебя уже есть безопасный канал для передачи подобных данных — зачем мучаться с RAR? Поэтому не будем мелочиться, и сделаем всё, как у больших.

У вас обоих стоит Линукс с установленным пакетом OpenSSL. Дальше чисто дело техники, и примерно всё то же самое делает и сам мессенжер Телеграм, просто сама работа алгоритмов от тебя скрыта. Эдакий Протокол Диффи — Хеллмана, только в полностью ручном режиме.

Твой собеседник должен:

Создать пару публичных/приватных RSA ключей:
openssl genpkey -algorithm RSA -out private.key.pem -pkeyopt rsa_keygen_bits:4096

Вытащить публичный ключ и записать его в файл:
openssl rsa -pubout -in private.key.pem -out public.key.pem

Прислать содержимое public.key.pem (оно текстовое) тебе, например, обычной почтой (*). Разглашение публичного ключа никому ничего не даёт — для дешифровки нужна его приватная часть.

Теперь тебе нужно зашифровать данные этим его присланным публичным ключом.

Сходу зашифровать несимметричным алгоритмом RSA большой файл, не разбивая его на мелкие куски невозможно, команда
openssl rsautl -encrypt -inkey public.key.pem -pubin -in poutine.jpeg -out poutine.jpeg.enc
выдаёт ошибку о том, что размер данных слишком большой для данного ключа длиной 4096 бит. Но всё, что меньше 4096 – 11 бит, зашифровать можно. Поэтому делают так: создают ключ для симметричного шифрования, например, AES или Twofish — это уж кому что милее — им кодируют файл, а уже сам ключ несимметрично шифруют публичным ключом, и передают его собеседнику в кодированном виде вместе с данными.

Делаем случайный ключ для симметричного шифрования:
openssl rand 256 -out symm.key

Шифруем фотографию путина алгоритмом AES256 с этим ключом:
openssl enc -aes-256-cbc -salt -in poutine.jpeg -out poutine.jpeg.enc -pass file:./symm.key

Шифруем сам ключ алгоритмом RSA:
openssl rsautl -encrypt -inkey public.key.pem -pubin -in symm.key -out symm.key.enc

Теперь у нас есть два шифрованных файла, в одном данные, шифрованные AES256, в другом — шифрованный ключ к AES256.

Чтобы послать это по обычной почте, переведём все бинарники в текст кодировкой Base64.

cat poutine.jpeg.enc | base64
cat symm.key.enc | base64

Текст присылаем нашему собеседнику.

Фсе. Теперь ни одна живая душа, без владения приватным ключом, не сможет ничего прочитать. И всё делается элементарно, на коленке. В-общем, “террористам”, которых якобы гоняет Роскомгестапо, блокировка Телеги не преграда совершенно. Ну, а страдают, как обычно, непричастные.

PS: Единственный способ передать государству ключи для дешифровки сообщений — это на этапе генерации у клиента несимметричных ключей сливать приватную часть “кому надо”. Т.е. это надо спецом встраивать такую функцию в клиента. А клиент Телеги — опаньки — опенсорсный. Вставка подобной функциональности будет мгновенно засечена.

Поэтому сам запрос на получение ключей — нелеп и смехотворен. Я могу отдать только то, что у меня есть.

PPS: Нынче модно ненавидеть Роскомгестапо за то, что они делают. А меж тем претензия не по адресу. Кто создал Роскомгестапо? Кто принял законы, по которым он работает? Кто подписал эти законы? И кто, вообще, выбрал всех этих людей?

* В реальных применениях публичный ключ ещё дополнительно подписывается центром сертификации, которому доверяют оба участника — иначе сообщения возможно перехватить, и ключи подменить, устроив атаку типа “Человек посередине”.

Дископад

Примерно в 2012-2013 году все начали переходить на твёрдотельные жёсткие диски. И всё поначалу было круто, и скорость работы, и отсутствие шума. Но вот 6 лет спустя этого массового перехода я стал замечать, что практически все твёрдотельные диски, которые я куда-то устанавливал, дохнут с характерным сроком наработки на отказ около 5 лет. И скажу я вам, что на старорежимных накопителях с магнитной технологией записи я такой ерунды не замечал. У меня есть диски заметно старше 5 лет, которые прекрасно работают до сих пор. А такого же возраста SSD-шников, всё ещё в рабочем состоянии — очень немного осталось. Причём, чисто личный опыт говорит, что от марки это практически не зависит. Больше всего я видел дохлых Гнусмасов, но это потому, что мы их больше всего и покупали. Но и Micron/Crucial тоже дохнут. Вот пока Intel и SanDisk’ов дохлых не видал, но думаю, это вопрос времени. Скорее всего, это ограничения самой технологии — на флеш память невозможно записать материал более определённого числа раз. Насколько понимаю, каждый цикл записи чуточку разрушает слой изолятора, который не даёт затвору МОП-транзистора разряжаться. Постепенно он теряет свои изоляционные свойства, заряд начинает стекать, и отличить 2 от 3 (если память у нас MLC/TLC) становится невозможно. SLC в этом отношении живёт заметно дольше, но попробуйте найти в 2018 году хоть один диск вменяемой ёмкости и не за конские деньги, сделанный по этой технологии.

Но вообще всё равно удивительно. Ведь чтобы убить диск размером 256 гигабайт, на него придётся записать 2.44 петабайта информации (256 гиг записать 10 000 раз). Чтобы это успеть сделать за 5 лет, на него надо писать 58 гигабайт в час или почти 17 мегабайт в секунду, безостановочно. Хм… Хотя… Особенно если учитывать то, что на самом деле чтобы записать данные на флеш, ячейку флеша надо предварительно очистить, т.е. мы записываем по-сути, дважды. На большинстве компьютеров очисткой более неиспользуемых ячеек флеш-памяти занимается технология TRIM, в фоновом режиме, иначе производительности кабздец, см. Write Amplification. В-общем, чорт его знает, может быть, вполне возможно.

Гомеопатия на марше

Канадка Анке Циммерманн, “доктор натуропатии и гомеопатии”, чтобы “вылечить” 4-летнего ребёнка с “агрессивным поведением”, целиком и полностью следуя принципу гомеопатии, что “подобное лечится подобным”, дала ему слюну бешеной собаки.

https://arstechnica.com/science/2018/04/homeopath-treated-4-yr-old-boys-behavior-problems-with-saliva-from-rabid-dog/

Я, честное, слово, затрудняюсь сказать, кто тут самый (долба)нутый. Не то сама “докторша”, не то родители ребёнка, пользующие его такими методами.

Центробежный насос из говна и палок

Прикольно. Дрель, правда, в таком использовании быстро перегорит. Такие моторы очень не любят крутиться с большой нагрузкой и низкими оборотами, т.к. начинает сильно расти потребляемый ток, что и приводит к перегреву. Надо было редуктор поставить как минимум.

Строительство усилителей

Припадаю опять к тихим хобби, типа электроники. В очередной раз интересуюсь звуковыми схемами, в том числе усилителями. Если раньше меня больше интересовало изготовление схем вообще (и тот самый предусилитель для микрофона я таки собрал, и он прослужил мне верой и правдой много лет) и овладевание общей теорией, в этот раз меня интересует изготовление схем КАЧЕСТВЕННЫХ. В понятие качества вкладывается понятно какой смысл — низкие параметры КНИ. Ну, хотя бы ниже 0.5% получить бы для начала.

Так вот, что архиудобно, так это бесплатная программа LTSpice. Помимо того, что в ней можно нарисовать саму схему, её можно просимулировать, и анализировать полученное через обратное преобразование Фурье, рассчитав КНИ и показав наглядно гармоники.

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

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

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

Так вот если её просимулировать, подав на вход сигнал 1 килогерц, то FFT полученного сигнала выглядит довольно порнографично:

Этих вот иголок на 2, 3, 4 и далее килогерц (гармоник) быть не должно в хорошем усилителе.

Если добавить SPICE-директиву .four, LTSpice любезно посчитает КНИ. И цифры отражают, в-общем, то, что видно на картинке:

КНИ аж три процента с гаком, почти как у лучших ламповых усилителей =)) Шучу, конечно, но вообще-то факты действительно таковы, что КНИ 0.5% является для ламповой техники очень хорошим показателем, а уж КНИ 0.08%, до которого транзисторная техника дошла ещё в 1970х, как, например, в усилителе Техникс SE-9600, для ламповой техники остаётся недостижимой вершиной. Нет, ну, достижимой, конечно. Но за очень конские деньги. В недорогой советской ламповой технике КНИ в 3% был обычным делом. Слушать это, тем не менее, было можно, так как характер искажений у ламповой техники обычно немного другой, не такой заметный.

Однако, вернёмся к тупому усилителю. Почему данная схема искажает? В первую очередь из-за нелинейности транзистора Q1. Дело в том, что у транзистора есть собственное сопротивление, и оно составляет примерно 25 / Ic в миллиамперах. Т.е. если ток в цепи коллектора (Ic) составляет 1 миллиампер, сопротивление транзистора будет равно 25 омам. С возрастанием тока оно падает, с уменьшением — растёт. Таким образом, коэффициент усиления транзистора получается разным просто на усилении банальной синусоиды: в тот момент, когда синусоида проходит через ноль, коэффициент усиления минимален, а на гребне синусоиды — максимален. Получается ерунда. Именно поэтому в книжках по электронике говорят “не делайте схему с заземлённым эмиттером”, потому что это переменное сопротивление таким образом становится наиболее заметным. С данным эффектом можно бороться, вкрячив в цепь эмиттера резистор, сравнительно большой по сравнению с внутренним сопротивлением транзистора. Ну, как на схеме, собственно, и сделано. Является ли при этом такая схема отрицательной обратной связью или мы просто исправляем одну кривизну другой кривизной — мнения расходятся. Горовиц-Хилл говорят, что да, это таки отрицательная обратная связь. Но в любом случае, помогает это не сильно.

В-общем, схему надо будет доработать, до полноценной схемы с отрицательной обратной связью. В результате я бы хотел сделать усилитель для наушников. Это проще, так как усилитель не надо делать очень мощным, 1 ватт для наушников — это OVERДОХРЕНА. И такое у меня подозрение, что скорее всего саму усилительную часть я сделаю на банальном операционнике Бурр-Браун, а выходной каскад — классический тяни-толкай на парах инженера Шиклаи.

Про блокировку Телеги

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

Идея не моя, просто я на это насмотрелся досыта, когда компьютерные вирусы препарировал. Технология DGA (domain generation algorithm).

При запуске программа сначала пытается идти на свои основные серверы. ОК, допустим Роскомгестапо уже подсуетилось, и заблокировало их. Не проблема, вот у нас, например, сегодня 16 апреля 2018 года. Соответственно, идём на 2018Apr16.com, который вчера был предусмотрительно зарегистрирован владельцами мессенжера. Завтра пойдём на 2018Apr17.com и так далее. Это и есть алгоритм. Роскомгестапе придётся каждый день отрывать зад от стула и блокировать всё новые и новые серверы.

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

bkadufmdyf[.pm]
kpvoxwgf[.pm]
fysck[.fr]
hsasjielgfkneh[.ru]
qquvjijtvatj[.in]
edmgbqygn[.de]
nbavfpb[.uk]
wyusb[.yt]

В нём, правда, алгоритм генерации доменов тоже не фонтан. Но в Телеге сидят настоящие программисты, которые умеют в криптографию, я верю, что они смогут придумать такой алгоритм, который не смогут раскусить интернет-гестаповцы. Потом, кто сказал, что надо генерировать ОДНО доменное имя? А двести тысяч ежедневно — не хотите? (абсолютно реальный случай, вирус GameOver Zeus). Особенно учитывая, что на данный момент процедура блокировки работает в полностью ручном режиме, блокировать 200 000 доменов лапками, да ещё ежедневно… как говорится, это пишется с мягким знаком. Пока владельцу ботнета Zeus всем миром не прищемили хвост, никто, ни ФБР, ни ЦРУ ничего сделать с самим вирусом не могли. Так победим. Удачи.

Зоопарк Ведроидов — радость хакера

Собственно, о чём уже давно говорят большевики.

Обновления для ОС регулярно выпускают только четыре вендора — сам Гугл (ещё бы), Самсунг, Сони, и Вико (никогда о таком не слышал). Остальные, включая не только Сяоми и прочие Хуевеи, но также довольно известные марки типа Моторолы, Нокии, ЛыЖы — толком не занимаются безопасностью. Даже когда пользователь, который слышал о том, что ОС периодически надо обновлять, проверяет наличие апдейтов, производитель ему радостно врёт, “усё у порядке, шеф!”. А на деле в телефоне навалом дыр:

Статья

Америка, которую мы потеряли

Читаю довольно любопытную книгу пера Джеймса Авиретта, капеллана Конфедеративной Армии. Он сын владельца плантации Авиретт-Стивенс, что в Северной Каролине (плантация, кстати, до сих пор стоит, можно посетить). Книга задумывалась как ответ “Хижине дядюшки Тома” Бичер-Стоу, которая описала довоенный Юг далеко не в пастельных тонах. Нет, чего говорить, сама постановка вопроса о том, что один человек владеет другим как собственностью — с современной точки зрения, конечно, является дичью. Хотя вообще-то с точки зрения Библии, так ценимой большим количеством людей, рабство — это хорошо и правильно. Но как мне кажется, большинство людей, когда думают о рабстве, думают не о самом смысле рабства, а скорее о том, как хозяин обращался со своей собственностью. И что сам термин “рабство” вызывает у большинства ассоциации с порками на конюшнях, жизнью впроголодь, продаванием детей, жены раба другому хозяину. И такое, безусловно, тоже имело место быть, хотя разбивание семьи происходило довольно редко; как правило, только либо в виде наказания за какие-то очень серьёзные провинности, либо в экстраординарных случаях типа раздела наследства.

Кроме того.

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

Вот копия купчей крепости 1840 года, где помимо всего прочего, было продано четверо рабов: две рабыни (одна с ребёнком) и один раб:

Как видим, “негр мужеска пола Джон” был продан за 800 долларов. Восемьсот долларов в 1840 году в переводе на наши деньги это около 22 тысяч долларов.

Вот подумай сам, если ты купил что-то за 22 тысячи долларов, например, новенький трактор Кубота B3350SUHSD с фронтальным погрузчиком, ты как будешь с этим трактором обращаться? Заливать в него всякую срань вместо солярки и держать под открытым небом? Или всё же аккуратно менять масло, ставить под навес, потчевать его качественным горючим? Вот то-то.

Другой факт заключается в том, что продажу рабов из Африки в США сделали незаконной в 1808 году. Т.е. новых рабов больше не привозили. В 1808 году количество рабов составляло 440 тысяч человек, а в 1860м году — 4.5 миллиона, то-есть, за 50 с небольшим лет население рабов увеличилось более, чем вдесятеро. Если с рабами в массе обращались так отвратительно, как описала Бичер-Стоу (никогда, кстати, на Юге не жившая), как ты думаешь, наблюдался ли бы такой же прирост? Я даже больше скажу. Количество рабов увеличивалось намного быстрее, чем количество свободных во всех отношениях белых фабричных рабочих на Севере. Вообще, если мы посмотрим на историю США, то мы увидим, что рабовладение получило по-настоящему широкий размах только когда условия жизни в колониях улучшились настолько, что владеть рабами стало рентабельно. До этого в самых тяжёлых, опасных условиях по колено в говнище и по локоть в кровище работали белые должники, отрабатывавшие какие-то долги (например, за перевоз себя из Ирландии в Новый Свет). Их, в случае чего, было не жалко — они не стоили 800 долларов.

Я очень далёк от мыслей “как тогда всё было хорошо и правильно” и прочих соплей в сахаре про довоенный Юг типа начала х/ф “Унесённые Ветром”. Но во-первых, излишне демонизировать тоже не надо, а во-вторых, надо сравнивать сравнимое. Если мы будем сравнивать сейчас и тогда, то ничего, кроме ужаса и благодарности, что сейчас не 1840й год, такое сравнение не даст. А если мы будем сравнивать жизнь раба на южной плантации и жизнь белого рабочего на Севере в одном временном промежутке — то уже можно придти к разным мнениям.

PS: Книгу можно прочитать здесь: http://docsouth.unc.edu/fpn/avirett/avirett.html

Как ВВС США Америку бомбили

Захватывающее чтиво. Вкратце — до конца 1950х годов бомбардировщики ВВС США во время тренировочных полётов несли с собой настоящие ядерные бомбы. Из них около 10 штук было утеряно в ходе различного рода инцидентов. Статья рассказывает об случае в Южной Каролине, где бомбардировщик Б-47 случайно сбросил ядерную бомбу на городишко Марс Блафф, когда штурман-бомбардир наклонился над рычагом сброса бомбы как раз в тот момент, когда самолёт угодил в воздушную яму. Ядерный заряд не был активирован, но толовый заряд для инициации взрыва таки жахнул, расхреначив стоявший недалеко от места падения дом и вырыв котлован глубиной 7.5 метров. Находящиеся в доме люди получили серьёзные, но несмертельные осколочные ранения. Владелец дома в конце концов подал в суд, который присудил ему… 36 тысяч долларов. Недостаточно даже для того, чтобы заново выстроить дом. Дичь, конечно, сверху донизу, но вполне в духе США 1950х годов, которые раем далеко не были.

https://www.militarytimes.com/news/2018/03/31/the-atomic-bomb-that-faded-into-south-carolina-history/