М.Двач / Криптоанархия

Этого треда уже нет.
Это копия, сохраненная 14 июля 2015 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

25 Кб, 450x434

Наноборды тред НаноОП !!P7AFLWRkhg # OP 15 Ноя, 13:56 #169 В конец треда | Веб

Наноборда - борда, основанная на стеганографии.

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

Терминология:
нанопост - данные, содержащиеся в стеганографическом контейнере (пока что это PNG LSB), они зашифрованы с AES, но можно попробовать и другие алгоритмы.
Нанопост содержит:
- Свой SHA-256 хеш
- SHA-256 хеш того поста, на который он отвечает (хеш родителя), либо нули, если он не отвечает на какой-либо пост
- Пакет данных в формате JSON, в котором содержится таймстемп создания и текст поста, в будущем там могут содержаться любые данные, в том числе правила для других нанопостов,что угодно
- Данные аттача, если аттач есть. Аттачем может быть любой файл, который может уместиться в контейнере

правило - набор данных, по которому клиент наноборды может в будущем подбирать другие нанопосты из известных ему расположений (напр. альбомов или тредов).
Правило состоит из:
- URL страницы, на которой расположены ссылки на изображения
- Регулярное выражение, по которому будут извлекаться (обычно из HTML-кода) адреса изображений
- Имя правила
Клиент наноборды загружает все изображения, которые подходят по правилу, затем пытается декодировать их содержимое, используя ключ борды и принимая заранее тот факт, что изображение может хранить данные стеганографически. Если произошла неудача на одном из шагов (обычно это сбой проверки хеша, либо сбой при попытке дешифровать данные), то картинка не считается нанопостом и пропускается. Успешно декодированные нанопосты сохраняются в папку nanoposts и добавляются к дереву постов.

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

Исходный код доступен на гитхабе: https://github.com/Cr0s/JNanoBoard

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

Этот тред - тоже нанобордовый, ключ: anuspes

Ответы: >>170, >>285, >>391, >>1135, >>2112

15 Ноя, 14:21 #2 #170

>>169
Зашёл по ссылке, скачал зип. И что мне теперь с ним делать чтоб ЦП? Ты бы хоть мануал запили бы в вики для тех у кого джавы нет. А этот свой пост как readme положил бы в репу что ли.

> пока что это PNG LSB
https://code.google.com/p/f5-steganography/

Или если хочется всё делать самому, то вот тебе паста для начала:

Если ради лулзов делать стеганографию в png или wav (файлы с сжатием без потерь или вообще без сжатия), то я бы поступил так:
1. Берём 24-битную картинку и представляем её в виде массива байт. Типа [R, G, B, R, G, B, R, G, B…] - назовём его с[]
2. Создаём второй массив такой же длинны, но в нём каждый элемент это порядковый номер байта в массиве c[]. То есть [0, 1, 2, 3, 4, 5, 6, 7….] - назовём его i[]
3. Данные, которые надо спрятать, помещаем в другой массив. Назовём его d[]. При этом в начале массива добавляем 4 байта в которые записываем длину данных. Получается как-то так [0, 0, 12, 130, 77, 90, 0, 3…]
4. Просим у пользователя пароль и с его помощью инициализируем наш PRNG (можно взять от пароля SHA-256 и запустить с него RC4 PRGA - для простоты. Гуглите википедию)
5. Используя PRNG перемешиваем наш i[]. Один и тот же пароль будет выдавать один и тот же перемешанный массив. К примеру такой: [135, 23567, 2, 3562, 123, 5246, 6891…]
6. Сразу после предыдущего шага, мы каждый байт в массиве d[] XOR-им с рандомным байтом возвращаемым нашим PRNG, чтобы наши данные стали больше походить на шум.
7. Теперь начинаем ПО БИТАМ обходить массив d[]. Берём первый бит. Берём первый элемент из i[] который у нас 135. Берём 135-й элемент из c[] и делаем его младший бит равным биту прочитанному из d[]. И так продолжаем пока биты в d[] не кончатся.
Что в итоге получится: если мы встраиваем в картинку сообщение длинной 100 байт (всего 104 байта), ту нас в картинке будет 832 (или чуть меньше) пикселей которые чуть-чуть отличаются от оригинала. И пикселы эти будут разбросаны по картинке "случайно". Для картинки размером 800х600 это будет около 0,15% пикселей, на глаз такое вряд ли заметишь.
И ещё совет - картинку надо выбирать такую, чтоб было как можно меньше областей залитых одним и тем же цветом. Лучше всего подойдут фотографии, так как в них и так уже есть шум.
Теперь как это всё из картинки достать:
1. Выполняем из первого алгоритма шаги 1, 2, 4, 5.
2. Используя массив i[] читаем из картинки первые 32 бита (чтобы получит длину встроенных данных).
3. XOR-им полученные байты со "случайными" байтами из нашего PRNG. Так как он инициирован из того же пароля, байты он будет выдавать те же самые, что и при встраивании.
4. Зная длину данных - создаём массив d[] и по биту заполняем его тем же методом, как и в шаге 7 первого алгоритма.
6. Получив все байты внедренных данных, XOR-им их с нашим PRNG.
What's all, folks!
Таким методом мы можем встроить в bmp-ашку весом 800кб данные размером до 100кб. Вполне внушительно. Можно впихнуть и больше используя вместо одного младшего бита два, вот только картинку это исказит сильнее и встроенные данные станут более заметными. А вот если встраивать коротенькие сообщения, то выходит вполне отлично. Дальше можно углубиться в теорию кодирования и запихивать в одно изменение бита в картинке 3-4 бита данных.
А вот с форматами использующими сжатие с потерями всё хоть и выглядит примерно так же, но вот результат визуально другой, так как там чаще всего мы работаем с частотами, а не непосредственно с пикселами. При этом изменение одного бита может повлиять на значения аж 64-х пикселов (для jpeg). Вот только сказать действительно ли эти изменения вызваны встраиванием сообщения, а не есть результат сжатия с потерями, не так-то просто. (хотя статистика довольно сурьёзная штука, всё может выпалить)

Ответы: >>171, >>3195

НаноОП !!P7AFLWRkhg 15 Ноя, 15:03 #3 #171

>>170
Установи JRE 1.7
Скачай релиз с гитхаба, распакуй.
Потом запусти JNanoBoard.jar
Например командой:
java -jar JNanoBoard.jar

Сейчас один байт пишется в R, G, B сразу, в первых двух в 3 бита, а в последнем в 2. Но детектируется легко сильной заливкой, ибо пикселы искажаются заметно, если картинка с фоном и без шума. Есть куда шагать в плане улучшения скрытности.

Какая-то хуйня не даёт скачивать картику с сосача, с других сайтов качается хорошо, странно. Исключений никаких не вылетает нигде.

Ответы: >>173

15 Ноя, 15:07 #4 #173

>>171
Сосач портит картинку, чтобы не работал рарджепег.

Для маскировки надо лить в пикчи для хипстоты, там шума дофига

Ответы: >>176

755 Кб, 812x670

НаноОП !!P7AFLWRkhg 15 Ноя, 15:12 #5 #174

Починил загрузку картинок, теперь наноборда берёт протокол загрузки из урла правила, а не просто подставляет http://, ибо сосач, например, не котирует http:// и перенаправляет на https://.

Ответы: >>175

15 Ноя, 15:17 #6 #175

>>174
Таки работает?

1066 Кб, 926x713

НаноОП !!P7AFLWRkhg 15 Ноя, 15:17 #7 #176

>>173
Нет, не портит, всё работает.

Ответы: >>178

186 Кб, 933x408

НаноОП !!P7AFLWRkhg 15 Ноя, 15:26 #8 #177

Сделал релиз с фиксами и новым правилом для сосача с этим тредом Ключ борды: anuspes.

https://github.com/Cr0s/JNanoBoard/releases/tag/2.1a

15 Ноя, 15:31 #9 #178

>>176
Значит починили, месяца полтора назад работало в усеченном варианте VI

15 Ноя, 16:40 #10 #182

Нажал начать синхронизацию, а пароль забыл ввести, следовательно написало что постов нет. Но после ввода пароля посты не обновились.
Баг или фича?

Ответы: >>185

575 Кб, 500x586

15 Ноя, 17:29 #11 #185

>>182
Фича, программа запоминает урлы уже проверенные. Удали файл urls.txt из папки nanoposts

Ответы: >>193, >>194

917 Кб, 616x600

15 Ноя, 18:26 #12 #193

>>185
без мануала никак.
еле понял что и как жать надо.

может интерфейс программы упростить?

564 Кб, 467x700

15 Ноя, 18:32 #13 #194

>>185

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

Ответы: >>198

1527 Кб, 853x901

15 Ноя, 18:39 #14 #197

1277 Кб, 1014x684

15 Ноя, 18:51 #15 #198

>>194
а вместо того что бы скрывать уже полученные урлы - может просто их все же показывать, но с какой нибудь галочкой "синхринизировано"

16 Ноя, 00:04 #16 #206

ОП, а может запилишь подробное описание и гайд для тех, кто немного с зубочисткой? А то я ничего не понял.

Ответы: >>219

604 Кб, 1000x1200

16 Ноя, 04:33 #17 #219

>>206
оп-хуй

1) качаешь сборочку
https://github.com/Cr0s/JNanoBoard/releases/tag/2.1a

2) запускаешь батником в консоли:
java -jar JNanoBoard.jar

3) в первом окне вводишь пароль (внизу оп поста)

4) в 1 окне жмешь кнопку
синхронизировать

5) в 4 окне жмешь кнопку
рефреш.

6) чтоб ответить в тренд, в 4 окне жмешь "реплай"

7) в 3 окне пишешь текст, выбираешь фоточку в пост, и PNG в который будешь заливать свой пост с картинкой.

8) после того как охуеешь все это нажимать, и при отсутствии ошибок, пиздуешь в корень папки куда распаковал, переходишь в "outbox" и ищешь свой стеганографированный файл вида 5da19............8b83dddc.nanopost.png, который и засылаешь в открытый инет.

Ответы: >>230

16 Ноя, 04:52 #18 #230

>>219
А может прикрутить автоматическую заливку файла на чаны?

Ответы: >>232

16 Ноя, 05:00 #19 #232

>>230
1) а сможешь прикрутить?
2) на какую борду конкретно заливать будешь? на какую то одну - глупо. надо готовить и поддерживать тогда список стабильно работающих борд.
- 4чан
- сосач
- кайзерчан

а вопрос то все тот же - шифрование паролем

Ответы: >>236, >>241

16 Ноя, 07:59 #20 #233

Отлично, нанооп жив. Только зря отказался от первичной идеи распространять архив доски, а не отдельные нанопосты. И на java перешел. Параноики завопят, начнут критиковать реализацию. А так отлично. Есть архив 8 альфы, которую еще через синк пускали

Ответы: >>236, >>242

145 Кб, 835x542

НаноОП !!P7AFLWRkhg 16 Ноя, 11:18 #21 #236

>>233
Могу тебя огорчить, я, скорее всего, не тот нанооп, о котором ты думаешь. Я - одиз из немногих продолжателей идеи.

>>232
Контейнер шифруется встроенной в джаву реализацией AES/CBC/PCKS7Padding, да, знаю, что может быть подвержена закладкам, но я не настолько спец, чтобы реализовывать криптографию вручную. Ключ шифрования - ключ борды (даже не хеш от него).

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

Ответы: >>243, >>274

16 Ноя, 12:44 #22 #241

>>232
>а сможешь прикрутить?
С программированием у меня не сложилось, если только анон насоветует мне с чего начать (у меня затык на уровне понятий класса, цикла итд, в школе вместо информатики был ворд+эксель+клац+клац)

16 Ноя, 12:44 #23 #242

>>233
Да, джава - зашквар, посоны

Ответы: >>245

16 Ноя, 12:45 #24 #243

>>236
>Я - одиз из немногих продолжателей идеи
Идея не может умереть.

НаноОП !!P7AFLWRkhg 16 Ноя, 13:04 #25 #245

>>242
Чем аргументируешь?
inb4: кококо сисярп лучше

Сейчас основная задача это разработать окончательный формат нанопоста и протоколов стеганографии/шифрования. То, что PoC написан на жабе ни о чём не говорит и камнем ни в чей огород не является, важна идея и архитектура, которую следует продумать и провести её анализ на предмет фундаментальных косяков, а реализовать её потом можно хоть на крестах, асме, хоть в железе на ПЛИС, было бы желание и возможности.

Ответы: >>246

16 Ноя, 13:39 #26 #246

>>245
жаба - дуршлаг.
Но тут ты прав - сначала делаем как работает, потом переписываем.

0 Кб, 320x432

sage 16 Ноя, 17:32 #27 #255

123

Ответы: >>269

385 Кб, 1600x1200

16 Ноя, 17:39 #28 #256

321

Ответы: >>269

16 Ноя, 20:54 #29 #269

>>255
>>256
Вам кота в треде не хватает?

16 Ноя, 23:10 #30 #274

>>236
> но я не настолько спец, чтобы реализовывать криптографию вручную

gpg смотрел?
можно шифровать хоть паролем, хоть сертификатом.
(хотя однохуйственно, что тут могут быть закладоны, что там.)

по поводу пароля на первой вкладке
а разве пароль один на всю наноборду?
логичней было бы захуячить пароль в правило.

т.е. каждое правило - каждый новый пароль

Ответы: >>279

17 Ноя, 13:01 #31 #279

>>274
>хоть сертификатом
=файл-ключ?

21 Кб, 800x460

17 Ноя, 14:40 #32 #285

>>169

Про ДДТ слышал?

Ответы: >>288, >>371

17 Ноя, 15:45 #33 #288

>>285
В последнююю ооооосееенььь!

18 Ноя, 15:06 #34 #332

Прет крас)

597 Кб, 600x545

18 Ноя, 15:16 #35 #334

123

Ответы: >>351, >>352

131 Кб, 586x293

18 Ноя, 17:27 #36 #351

>>334

Ответы: >>352

18 Ноя, 18:20 #37 #352

>>334
>>351
Это бамп или вайп?

Ответы: >>357

18 Ноя, 22:30 #38 #357

>>352
По ту сторону нанопостов идёт общение, ты видишь лишь картинки.

Ответы: >>358

18 Ноя, 23:07 #39 #358

>>357
Торможу

19 Ноя, 15:28 #40 #371

>>285

Нанооп опять съебал по-английски?

Ответы: >>373

19 Ноя, 16:22 #41 #373

>>371
Анус твой съебал, пёс.

Ответы: >>374

19 Ноя, 16:26 #42 #374

>>373

Иди нахуй.

Ответы: >>376

19 Ноя, 19:54 #43 #376

>>374
Сам иди, пёс!

20 Ноя, 14:31 #44 #391

>>169
Хочу настроить прокси, но как?

Ответы: >>394

20 Ноя, 22:04 #45 #394

>>391
java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 -jar JNanoBoard.jar
Как-то так запускай.

20 Ноя, 22:49 #46 #395

А куда посоветуешь учиться криптографии ?

Ответы: >>396, >>397

20 Ноя, 23:11 #47 #396

>>395
В мозг.

20 Ноя, 23:36 #48 #397

>>395
Начни с Брюс Шнаер "Прикладная Криптография"

Ответы: >>398

21 Ноя, 00:24 #49 #398

>>397
К слову - понятная книга. Даже для меня, который не дружит с логикой, алгеброй и подобным

217 Кб, 1366x676

21 Ноя, 02:11 #50 #401

Нахуя если есть ddt?

Ответы: >>469

22 Ноя, 20:28 #51 #469

>>401
DDT опирается на куклу, которой теперь нет места тут.

Ответы: >>471, >>478

22 Ноя, 20:40 #52 #471

>>469
Форкни куклу и сам проверяй коммиты.

Ответы: >>482

22 Ноя, 22:04 #53 #478

>>469
1. Пишу с куклы.
2. Для некоторых движков работа без куклы уже запилена.

22 Ноя, 22:46 #54 #482

>>471
Все равно иметь альтернативу неплохо. Спасибо наноопу.

26 Кб, 460x349

23 Ноя, 02:15 #55 #496

А почему на жаве?

Ответы: >>499

52 Кб, 674x600

23 Ноя, 02:57 #56 #499

>>496

Ответы: >>502

23 Ноя, 03:39 #57 #502

Ну есть и другие ЯП
>>499

Ответы: >>503, >>504, >>512

23 Ноя, 03:43 #58 #503

>>502
Да я просто рандомную пикчу выбрал.

153 Кб, 305x434

23 Ноя, 03:43 #59 #504

>>502
Например..

Ответы: >>505, >>701

59 Кб, 635x328

23 Ноя, 03:44 #60 #505

>>504

Ответы: >>511

23 Ноя, 05:43 #61 #511

>>505

Писать на Джаве - себя не уважать.

Ответы: >>512

23 Ноя, 12:26 #62 #512

>>502
>>511
Охуенные аргументы против джавы, прям уровня /pr/, ничего не скажешь.

25 Ноя, 18:15 #63 #701

>>504
Очкопетух Кудах, ты?

Ответы: >>710

25 Ноя, 18:22 #64 #710

>>701
я

26 Ноя, 13:31 #65 #944

Заглохло всё

Ответы: >>1021

sage 26 Ноя, 15:48 #66 #1021

>>944
Анус твой заглох, от вас всех толку ноль, клоуны.

Ответы: >>1065

26 Ноя, 17:52 #67 #1065

>>1021

Спасибо на добром слове.
Я вот активно раскручиваю тут борду, дабы обеспечить приток новых людей.

Ответы: >>1133

26 Ноя, 23:40 #68 #1133

>>1065
Лол, это не нанооп как какой-то клоун, у наноопа трип же.

Ответы: >>1138

26 Ноя, 23:48 #69 #1135

>>169
пилю диплом на тему стеганографии, алсо исследую сохранение контейнера при сжатии изображения.
У кого есть соображения какие?

Ответы: >>1137

26 Ноя, 23:56 #70 #1137

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

27 Ноя, 00:04 #71 #1138

>>1133
Я и не говорил, что я ОП.

12 Дек, 10:24 #72 #2112

>>169
Если бы стег был бы незаметен...

НаноОП !!P7AFLWRkhg 27 Янв, 16:07 #73 #3188

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

Ответы: >>3189

27 Янв, 16:19 #74 #3189

>>3188
Было бы круто. Ещё бы и заголовки все выпилить...

Ответы: >>3191

НаноОП !!P7AFLWRkhg 27 Янв, 17:37 #75 #3191

>>3189
О каких заголовках речь?

Ответы: >>3192

27 Янв, 18:03 #76 #3192

>>3191

Нахуй ты говоришь:

>Буду

Ещё до того, как что-то сделал? Ты уже показал себя знатным пиздоболом, так зачем продолжаешь позориться?

Ответы: >>3196

НаноОП !!P7AFLWRkhg 27 Янв, 19:06 #77 #3195

>>170
Неплохой алгоритм, но в нём фундаментальный косяк - чтобы узнать длину данных, нужно знать длину данных.
А всё потому, что для того, чтобы правильно перемешать массив индексов, нужно знать его длину. Иначе перемешанный массив будет отличаться от того, который был создан при записи в изображение.

А создавать массив индексов для всего изображения целиком это идиотизм и будет работать очень и очень медленно и жрать очень много

НаноОП !!P7AFLWRkhg 27 Янв, 19:08 #78 #3196

>>3192
Иди туши зад
Ты не понимаешь смысла слов или для тебя не существует времени и пространства? Буду - значит собираюсь делать, а не уже сделал.

88 Кб, 1059x498

НаноОП !!P7AFLWRkhg 27 Янв, 23:03 #79 #3218

Иллюстрация нового алгоритма.

Стеганография детектится заливкой минимальной чувствительности на сплошном фоне. Меняется один младший бит случайно выбранного R, G или B байта случайно выбранного пиксела. При этом можно обнаружить только единичные биты. Нулевые, разумеется, обнаружить невозможно.

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

ГПСЧ -- RC4, инициализируется SHA-256 хешем от пароля.

Тред утонул или удален.
Это копия, сохраненная 14 июля 2015 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /crypt/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion