Куда угодно. Если послушать тех, кто по полгода-год ищет работу, и взять среднюю з/п в районе 200 к. , то учитывая возможный риск увольнения в кризис эту зарплату можно смело делить на 2. В смысле что если ты год работаешь, год ищешь работу, то доход выходит 100 к уже .
Дальше вступают другие факторы - давление работодателя, заставление работать с ИИ, что по сути мозговыматывающая потогонка. Это не то, когда ты сам пишешь код по ощущениям и удовольствию. Высирать тонны бойлерплейта из-под плетки в режиме ревью - это когнитивно гораздо хуже, чем классическое программирование. Это не то за чем 90% людей, ставших программистами НЕ ради денег, пришли в профессию.
И в какой-то момент окажется, что проще работать консультантом на складе в ДНС за 50 к, и пилить в подсобке опенсорс. Не на скорость, не на том языке, который лучше всего поддерживается нейронками. При этом уровень мозгоедства будет такой же или даже меньше, чем в случае работы суньёр разработчиком.
Схожий пример с 1С - он есть, там много вакансий и денег, но все, кого я знаю стараются туда не лезть. Потому что это не программирование, а на 30% дрочка отчетов, на 70% общение с бухгалтерией и не самыми приятными людьми. Хотя формально да, программисты 1С.
И да, самое главное: манямирок менеджеров и овнеров, которые думают, что программист с нейронкой будет работать за троих и бояться что его выпнут как собаку в любой момент, и за это можно ему платить меньше - это мечта любого бизнеса. Но это не будет так работать. Такой нейродрочкой по много часов в день мало кто готов заниматься, потому что это рутина с огромной когнитивной нагрузкой. Конечно, первые месяцы люди будут держаться, но выгорание неизбежно. Даже у тех у кого кредиты и больные дети выгорят. Через пару итераций нанимания людей с улицы, до всех дойдет понимание, что заниматься этой нейродрочкой за деньги во-первых, неинтересно, во-вторых, невыгодно. И внезапно окажется, что за сложную, вредную, неинтересную работу придется платить много, чтобы кого-то нанять.
Допустим мы используем условный chacha для шифрования русского текста. Я не знаю сколько именно нужно шума добавить к слову "нет", чтобы ключ не брутфорсился за минуту. Если добавить слишком мало - легко ломается, добавить слишком много - большой оверхед. И доказать, что я добавил достаточно, я не смогу.
Низкая сложность реализации и проверки. Нет никаких гарантий, что я - это не товарищ майор под прикрытием.
Возможность простого достижения отрицаемости за счет удаления использованных кусков ключа
Полная отрицаемость за счет того, что можно подобрать ключ так, чтобы на выходе получить ЛЮБОЙ текст
Хорошая защита от искажений и опечаток: т.е. если изменит пару-тройку символов, то сообщение все равно можно будет прочитать, в отличие от более привычных нам систем шифрования
Малый оверхед по служебной информации
То что вы описываете может быть и лучше, но гораздо сложнее. И там больше возможностей ошибиться, если ты не криптограф, коим я не являюсь.
Сейчас даже если пропатчить веб-клиент или андроид-сборку, нет гарантии, что все что внутри мессенжера все равно не улетит через телеметрию, включая ключи и незашифрованные сообщения. Единственный способ - шифровать не внутри официального клиента, как бы модифицирован он ни был. Я написал вот такой костыль для шифрования поверх MAX: https://habr.com/ru/articles/1002066/ . Но это не про удобство, а для ситуаций когда ничего кроме Max не работает. а в день передать несколько сообщений родственникам все же надо.
Так протокол деревянный - оригинальное сообщение зашифрованное Вернамом, контрольная сумма, позиция в одноразовом ключе(но не сам ключ). Там нечего реверсить.
Абсолютно серьезно. Я не вижу никаких простых автоматических способов со 100% вероятностью выделить сообщение зашифрованное Ivernarus1(в режиме без скрытия спецсимволов) среди потока других сообщений. Нужно будет ручная проверка. Ручная проверка это дорого. Если ручной проверки не будет, то будет много ложных срабатываний.
Иностранные специалисты пишут на языке который поддается переводу и анализу - так что пролет, малограмотные - ну гугл вас как то же понимает когда вы пишите в запросе ошибку, сленг - ну так он становится конструкцией языка (втом числе новояз - или вы думаете обучают систему дремучие люди из 60 годов ссср? ).
Слишком много ресурсов на анализ уйдет и слишком много ложных срабатываний будет имхо. В любом случае это переходный этап и появление шифрования на основе замены слов согласованными словами - вопрос времени. Там процент ложных срабатываний будет еще меньше. К тому же Ivernarus1 - это такой простой способ демонстрации, насколько действительно ваши сообщения хотят читать владельцы сервиса. Даже если его будут блокировать, то это простой способ показать всем, что владелец сервиса настаивает - либо он будет читать твои сообщения, либо сервисом ты не пользуешься.
Что до единственного варианта связи - если у вас стоит задача спросить как дела у близкого человека - вам действительно обязательно шифровать сообщение? Моя задача в случае чего иметь ключ у себя на телефоне и у родственников. Чтобы если у меня или у них срочно возникнет необходимость написать что-то чувствительное, через недоверенный канал связи, да хоть через СМС, то она была. Да хоть записку русскими буквами написать.
В смысле разве Max уже дает возможность писать своих ботов бесплатно, если ты не юр лицо? И боты - это одно, а доступ к контактам и сообщениям - это тоже доступно?
А выявлять в переписке тарабарщину вполне под силу ИИ (достаточно получить низкий уровень распозноного текста и вот тебе повод пользоваеля проверять)...
Под нож пойдут - иностранные специалисты, малограмотные, общающиеся на слэнге, просто шизанутые и т.п.
Да и вообще странная статья - идея шифровать сообщения с заведомо прослушиваемым каналом связи ...
В данный момент теоретически возможна ситуация, когда этот канал будет единственным рабочим. А вам нужно будет срочно написать что-то важное: например что нужно купить лекарства дедушке, а рецепт просрочен. Но если попросить провизора А в аптеке Б, то можно получить лекарство, хоть это и будет незаконно. И т.п.
Так хочется писать что думаешь - может проще исскуственную сетевую нору использовать и нормальный мессенджер?
По событиям последних месяцев я вижу, что многие внезапно оказались в ситуации, когда все отвалилось, включая сетевые норы, и связь есть только на парковке.
Я могу ошибаться, но немало пользователей пишет так, что попытки фильтровать тарабарщину приведут к ложнопозитивным срабатываниям. Думаю на это владельцы Макса не пойдут.
А я как раз написал шифровалку сообщений для Макса https://habr.com/ru/articles/1002066/ . Или теперь это не актуально и можно через API пилить нормальный клиент, в котором сделать шифрование?
В современных реалиях, стеганография скорее будет более актуальная для голосовух. А вторым телефоном "шазамить" на предмет скрытого текста. В ключ можно датанесущие частоты или еще что-то такое.
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
int main () {
int64_t max = 0;
int64_t tmp = 0;
char a = 'x';
int64_t *state0 = malloc(sizeof(int64_t));
int64_t *state1 = malloc(sizeof(int64_t));
// 2^64 = 18446744073709551616
for (int64_t i = 0; i < 1000000000; i++) {
int64_t s1 = *state0;
int64_t s0 = *state1;
*state0 = s0;
s1 ^= s1 << 23;
s1 ^= s1 >> 17;
s1 ^= s0;
s1 ^= s0 >> 26;
*state1 = s1;
// проверить что мы нашли
if (a == i % 255 ) {
tmp = i;
//break;
}
}
}
Мой процессор может делать 39 490 000 000 FLOPS и программа выше имеет скорость перебора 377358490 попыток в секунду.
Т.е. для перебора всех 18446744073709551616 вариантов нужно: 18446744073709551616 / 377358490 = 48883871868 секунд Это 1550 лет .
Возьмем лучшую видеокарту на планете NVIDIA RTX PRO 6000 Blackwell со скоростью: 1.968 TFLOPS = 1 968 000 000 000
Она в 50 раз быстрее моего процессора.
Т.е. на видеокарте ценой 8 000 $ сид ГПСЧ будет подбираться 31 год. В идеальных условиях.
Допустим вы ценны оперативникам и им нужно за хотя бы год взломать переписку. Нужен будет кластер за 250 000 $ - и это толко за видяхи. И это при учете, что подбирается только 1 шифр на всю страну. Если нужно сломать за месяц, то на карточки уйдет уже 3 000 000 $ .
Это в идеальных условиях. В упрощенном алгоритме. В надежде, что там кривой Math.random().
Если вы не устраиваете громкие терракты, то никто в здравом уме не будет вливать столько денег в расшифровку вашей писанины.
Но формально вы правы. ГПСЧ не безопасен. Но это меньшая из возможных опасностей.
P.S. Хотя про видеокарты я может и криво посчитал, слабо верится, что всего в 50 раз быстрее. Если есть знатоки CUDA, пожалуйста сделайте замеры на любой видеокарте кода выше, чтобы понять порядок.
В любом случае я учел ваши замечания. Теперь в настройках контакта можно сделать так, чтобы маскировались цифры, пробелы и спецзнаки. Но все же мне кажется, что в итоге от такого способа шифрования будет больше проблем, потому что он легче обнаруживается автоматикой.
Во-первых в настройках контакта есть режим шифровки для скрытия цифр.
Во-вторых, объясните пожалуйста, как мы, в случае не имения доступа к ключу, можем узнать что:
"р щвао ку гевре в 8:88" это "я буду на месте в 17:00" а не "и вряд ли будет к 12:00"
?
Т.е. с позиции выбивания показания - да, какой-то профит есть. Я вам даже больше скажу - если мы не знаем ключа, то можно подозреваемого заставить написать в признаниях что угодно, равное по длине, а потом просто вывести из этого ключ и прикрепить к делу. Но с позиции доказательства в не-показательном процессе такие догадки - это бред. Особенно в случае, если вы сами создадите ключ на базе ГСЧ, которому вы доверяете. Не понимаю как в таком случае вам помогут границы слов. Даже то что вы точно знаете, где находится слова "я", "не", "и", и что вы можете со 100% вероятностью расшифровать короткие сообщение типа "да" и "нет". Что это даст?
Да, можно. Но еще до появления нейронок такие попытки успешно резались в полностью автоматическом режиме.
Плюс если делать через условный openpgp, то все равно остается проблема передачи ключа через доверенный канал. Плюс больший оверхед. Вернам в этом плане деревяннее, лаконичнее. Плюс легче верифицировать реализацию на предмет закладок.
Да и суть не в том, как шифровать а в том есть ли готовое решение для этого без излишнего красноглазия. Так-то наверное систем типа Ivernarus1 были созданы десятки, просто оно никому не нужно было. Сейчас, возможно, времена поменялись.
Как вы себе это представляете? Будут автоматически искать криптографию в переписках Макса на серверах и приходить с беседами к тем у кого найдут? Ну тогда даже у наигречневейших пользователей возникнет отторжение и понимание что ничего важнее просьбы купить хлеб в Макс писать нельзя.
Куда угодно. Если послушать тех, кто по полгода-год ищет работу, и взять среднюю з/п в районе 200 к. , то учитывая возможный риск увольнения в кризис эту зарплату можно смело делить на 2. В смысле что если ты год работаешь, год ищешь работу, то доход выходит 100 к уже .
Дальше вступают другие факторы - давление работодателя, заставление работать с ИИ, что по сути мозговыматывающая потогонка. Это не то, когда ты сам пишешь код по ощущениям и удовольствию. Высирать тонны бойлерплейта из-под плетки в режиме ревью - это когнитивно гораздо хуже, чем классическое программирование. Это не то за чем 90% людей, ставших программистами НЕ ради денег, пришли в профессию.
И в какой-то момент окажется, что проще работать консультантом на складе в ДНС за 50 к, и пилить в подсобке опенсорс. Не на скорость, не на том языке, который лучше всего поддерживается нейронками. При этом уровень мозгоедства будет такой же или даже меньше, чем в случае работы суньёр разработчиком.
Схожий пример с 1С - он есть, там много вакансий и денег, но все, кого я знаю стараются туда не лезть. Потому что это не программирование, а на 30% дрочка отчетов, на 70% общение с бухгалтерией и не самыми приятными людьми. Хотя формально да, программисты 1С.
И да, самое главное: манямирок менеджеров и овнеров, которые думают, что программист с нейронкой будет работать за троих и бояться что его выпнут как собаку в любой момент, и за это можно ему платить меньше - это мечта любого бизнеса. Но это не будет так работать. Такой нейродрочкой по много часов в день мало кто готов заниматься, потому что это рутина с огромной когнитивной нагрузкой. Конечно, первые месяцы люди будут держаться, но выгорание неизбежно. Даже у тех у кого кредиты и больные дети выгорят. Через пару итераций нанимания людей с улицы, до всех дойдет понимание, что заниматься этой нейродрочкой за деньги во-первых, неинтересно, во-вторых, невыгодно. И внезапно окажется, что за сложную, вредную, неинтересную работу придется платить много, чтобы кого-то нанять.
Допустим мы используем условный chacha для шифрования русского текста. Я не знаю сколько именно нужно шума добавить к слову "нет", чтобы ключ не брутфорсился за минуту. Если добавить слишком мало - легко ломается, добавить слишком много - большой оверхед. И доказать, что я добавил достаточно, я не смогу.
Вернам подкупил меня следующими вещами:
Низкая сложность реализации и проверки. Нет никаких гарантий, что я - это не товарищ майор под прикрытием.
Возможность простого достижения отрицаемости за счет удаления использованных кусков ключа
Полная отрицаемость за счет того, что можно подобрать ключ так, чтобы на выходе получить ЛЮБОЙ текст
Хорошая защита от искажений и опечаток: т.е. если изменит пару-тройку символов, то сообщение все равно можно будет прочитать, в отличие от более привычных нам систем шифрования
Малый оверхед по служебной информации
То что вы описываете может быть и лучше, но гораздо сложнее. И там больше возможностей ошибиться, если ты не криптограф, коим я не являюсь.
Сейчас даже если пропатчить веб-клиент или андроид-сборку, нет гарантии, что все что внутри мессенжера все равно не улетит через телеметрию, включая ключи и незашифрованные сообщения. Единственный способ - шифровать не внутри официального клиента, как бы модифицирован он ни был.
Я написал вот такой костыль для шифрования поверх MAX: https://habr.com/ru/articles/1002066/ . Но это не про удобство, а для ситуаций когда ничего кроме Max не работает. а в день передать несколько сообщений родственникам все же надо.
Так протокол деревянный - оригинальное сообщение зашифрованное Вернамом, контрольная сумма, позиция в одноразовом ключе(но не сам ключ). Там нечего реверсить.
Абсолютно серьезно. Я не вижу никаких простых автоматических способов со 100% вероятностью выделить сообщение зашифрованное Ivernarus1(в режиме без скрытия спецсимволов) среди потока других сообщений. Нужно будет ручная проверка. Ручная проверка это дорого. Если ручной проверки не будет, то будет много ложных срабатываний.
Вообще обычно для подобных случаев использутеся связка из:
require-dev блока в композере, npm и т.п., чтобы ставить зависимости нужные для разработки только если они нужны
.env все же более универсальный механизм и позволяет не хранить все секреты в одном месте
Что касается разъезжающихся версий у разрабов - если человек по каким-то причинам не обновляет инструментарий, ему утилиты не помогут.
Но может ваша утилита и взлетит, питоновский uv вон набирает популярность, хотя его смысл вообще мне не понятен.
Слишком много ресурсов на анализ уйдет и слишком много ложных срабатываний будет имхо. В любом случае это переходный этап и появление шифрования на основе замены слов согласованными словами - вопрос времени. Там процент ложных срабатываний будет еще меньше.
К тому же Ivernarus1 - это такой простой способ демонстрации, насколько действительно ваши сообщения хотят читать владельцы сервиса. Даже если его будут блокировать, то это простой способ показать всем, что владелец сервиса настаивает - либо он будет читать твои сообщения, либо сервисом ты не пользуешься.
В смысле разве Max уже дает возможность писать своих ботов бесплатно, если ты не юр лицо? И боты - это одно, а доступ к контактам и сообщениям - это тоже доступно?
Под нож пойдут - иностранные специалисты, малограмотные, общающиеся на слэнге, просто шизанутые и т.п.
В данный момент теоретически возможна ситуация, когда этот канал будет единственным рабочим. А вам нужно будет срочно написать что-то важное: например что нужно купить лекарства дедушке, а рецепт просрочен. Но если попросить провизора А в аптеке Б, то можно получить лекарство, хоть это и будет незаконно. И т.п.
По событиям последних месяцев я вижу, что многие внезапно оказались в ситуации, когда все отвалилось, включая сетевые норы, и связь есть только на парковке.
Я могу ошибаться, но немало пользователей пишет так, что попытки фильтровать тарабарщину приведут к ложнопозитивным срабатываниям. Думаю на это владельцы Макса не пойдут.
А я как раз написал шифровалку сообщений для Макса https://habr.com/ru/articles/1002066/ . Или теперь это не актуально и можно через API пилить нормальный клиент, в котором сделать шифрование?
В современных реалиях, стеганография скорее будет более актуальная для голосовух. А вторым телефоном "шазамить" на предмет скрытого текста. В ключ можно датанесущие частоты или еще что-то такое.
Вы зря драматизируете. Возьмем донельзя упрощенный подбор на основе алгоритма Math.random из хрома:
https://github.com/v8/v8/blob/master/src/base/utils/random-number-generator.cc#L216
https://github.com/v8/v8/blob/main/test/bigint/bigint-shell.cc#L67
Вот такой вот код пусть будет для взлома:
Мой процессор может делать 39 490 000 000 FLOPS и программа выше имеет скорость перебора
377358490 попыток в секунду.
Т.е. для перебора всех 18446744073709551616 вариантов нужно:
18446744073709551616 / 377358490 = 48883871868 секунд
Это 1550 лет .
Возьмем лучшую видеокарту на планете NVIDIA RTX PRO 6000 Blackwell со скоростью:
1.968 TFLOPS = 1 968 000 000 000
Она в 50 раз быстрее моего процессора.
Т.е. на видеокарте ценой 8 000 $ сид ГПСЧ будет подбираться 31 год. В идеальных условиях.
Допустим вы ценны оперативникам и им нужно за хотя бы год взломать переписку. Нужен будет кластер за 250 000 $ - и это толко за видяхи. И это при учете, что подбирается только 1 шифр на всю страну. Если нужно сломать за месяц, то на карточки уйдет уже 3 000 000 $ .
Это в идеальных условиях. В упрощенном алгоритме. В надежде, что там кривой Math.random().
Если вы не устраиваете громкие терракты, то никто в здравом уме не будет вливать столько денег в расшифровку вашей писанины.
Но формально вы правы. ГПСЧ не безопасен. Но это меньшая из возможных опасностей.
P.S. Хотя про видеокарты я может и криво посчитал, слабо верится, что всего в 50 раз быстрее. Если есть знатоки CUDA, пожалуйста сделайте замеры на любой видеокарте кода выше, чтобы понять порядок.
В любом случае я учел ваши замечания. Теперь в настройках контакта можно сделать так, чтобы маскировались цифры, пробелы и спецзнаки. Но все же мне кажется, что в итоге от такого способа шифрования будет больше проблем, потому что он легче обнаруживается автоматикой.
Во-первых в настройках контакта есть режим шифровки для скрытия цифр.
Во-вторых, объясните пожалуйста, как мы, в случае не имения доступа к ключу, можем узнать что:
"р щвао ку гевре в 8:88"
это
"я буду на месте в 17:00"
а не
"и вряд ли будет к 12:00"
?
Т.е. с позиции выбивания показания - да, какой-то профит есть. Я вам даже больше скажу - если мы не знаем ключа, то можно подозреваемого заставить написать в признаниях что угодно, равное по длине, а потом просто вывести из этого ключ и прикрепить к делу. Но с позиции доказательства в не-показательном процессе такие догадки - это бред. Особенно в случае, если вы сами создадите ключ на базе ГСЧ, которому вы доверяете. Не понимаю как в таком случае вам помогут границы слов. Даже то что вы точно знаете, где находится слова "я", "не", "и", и что вы можете со 100% вероятностью расшифровать короткие сообщение типа "да" и "нет". Что это даст?
Да, можно. Но еще до появления нейронок такие попытки успешно резались в полностью автоматическом режиме.
Плюс если делать через условный openpgp, то все равно остается проблема передачи ключа через доверенный канал. Плюс больший оверхед. Вернам в этом плане деревяннее, лаконичнее. Плюс легче верифицировать реализацию на предмет закладок.
Да и суть не в том, как шифровать а в том есть ли готовое решение для этого без излишнего красноглазия. Так-то наверное систем типа Ivernarus1 были созданы десятки, просто оно никому не нужно было. Сейчас, возможно, времена поменялись.
Как вы себе это представляете? Будут автоматически искать криптографию в переписках Макса на серверах и приходить с беседами к тем у кого найдут? Ну тогда даже у наигречневейших пользователей возникнет отторжение и понимание что ничего важнее просьбы купить хлеб в Макс писать нельзя.
@Number571, @mentin. Спасибо за разъяснение. Добавил чуть более надежный ГСЧ, насколько это вообще возможно в JS runtime.
https://github.com/action52champion/ivernarus1/commit/9b70baa77d09b402b3b03882d76cd9db46bfbf96