Как стать автором
Обновить

Комментарии 19

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

я пользовался генератором паролей в линуксе, брал 128 байт, не ограничивался буквами, брал все печатные ascii символы, а 128 - это половина таблицы.

Ни в коем разе нельзя шифровать пустые файлы или файлы с известным контентом, но и тут можно хитрить например совмещая с этим.

кстати, если посмотреть в сторону сюжетов из кино и книг, то близким по невозможности взлома к XOR будет банальный шифр по словам(буквам) из определенной книги. Тем более этот вариант менее бросающийся в глаза чем таскание с собой в явном виде книги с шифрами. А чтобы сильнее запутать стартовой считать не первую страницу книги, а например 1+день недели или день месяца или номер недели в году или, что неочевидно - день рождения секретаря-машинистки Светланы из разведшколы.

в этом смысле всегда забавны киношные "взломы" шифров в духе - "так это же шифр Карпентера" и раз-два и уже всё расшифровал.

банальный шифр по словам(буквам) из определенной книги

Ну да, книжный шифр. Для Алисы и Боба вполне годное решение; для разведсети - не очень. 1 раскрытый агент или перебежчик - и всё. А заменить N ключевых книг может оказаться совсем непросто.

Да, у Швейка было что-то подобное. Только оно не работало, потому что из-за ошибки снабжения кому-то достался первый том книги, а кому-то второй ;)

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

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

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

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

Но в целом суть ясна и я не то чтобы сильно спорю, всё же первый абзац моего опуса решает.

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

лучше взять проверенные современные криптосистемы

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

И да, шифр Виженера (xor с фразой) взламывается для паролей тех времён

каким образом?

На вики всё расписано - Тест Касиски ищите. Мне приходилось ломать Вижинера для небольших паролей (<30 символов) на разных ctf'ах.

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

openssl, gnupg - старый проверенный софт, которым пользуются и блэкхаты и те кто их ловит для своих коммуникаций. Но конечно, у них у всех есть фатальный недостаток - сделано не нами.
А вообще, все ухищрения, которые вы писали ниже - не вопрос криптографии. Аксиома криптографии как науки - способ шифрования априори известен, задача - как найти ключ. Я же утверждаю, что при наличии компьютера и при принятии этой аксиомы - нужно брать aes, а не Виженера.

На вики всё расписано - Тест Касиски ищите. Мне приходилось ломать Вижинера для небольших паролей (<30 символов) на разных ctf'ах

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

А вообще, все ухищрения, которые вы писали ниже - не вопрос криптографии

Я и не говорил о криптографии, о ней говорите вы.

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

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

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

И мы получим ещё один известный шифр - Шифр Вернама, абсолютно криптостойкий. Только пароль придётся хранить в блокнотике.

Вот простой пример как отправить гулять метод Касински.

Hidden text

Соответственно слева направо: число файлов, энтропия, размер словаря в байтах, размер файла, имя файла и гистограмма распределения частот появления символов.

Это всё здорово, только ещё раз, шифр Виженера - нестойкий, тем более на текстах в полмегабайта. Это означает, что стоимость атаки на него очень низкая. Все ухищрения со стеганографией (типа запихивания в неправильный архив) добавляют какую-то не слишком большую цену для атакующего. До тех пор, пока ценность данных ниже стоимости атаки - всё в порядке. Лично мне лень оценивать ценность своих данных, поэтому я просто шифрую всё aes256+rsa2048 и верю, что моя база паролей стоит меньше чем, например, банковские коммуникации. Мои усилия при этом - один раз настроить vim-gnupg, gitcrypt и раскидать ключи по разным устройствам.

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

я любое кодирование считаю контекстным, соответственно и методы выбираются исходя из содержимого. если это рецепт пирога и главная цель не дать кому-то просто подглядеть, то достаточно и фразы "Hello World!". А если надумаете закодировать например координаты клада в лесу, то можно и фразу подлиннее взять. Но я еще часто делаю обманку, например архив zip, от архива я сам делаю только заголовок, а вот содержимое оставляю после xor без сжатия. Поверьте, любой подумает что это битый архив.

Структура файла, а значит и часть открытого текста известна

это вы сейчас о чем? вот попал вам в руки мой ноутбук, вы даже знать не будете где искать. банально кодируете xor файл, называете его wmms32.ocx, подкладываете в windows\system32 и всё, можете дату и время файла сделать как у файлов винды - от 99.99% всех у кого окажется ноут информацию найти они не смогут никогда.

Шифры старые ломали еще так, что изначально понятно что там закодирован текст, если кодировать в несколько ступеней, например сначала сжать LZ77 самописным, потом xor. Никто и никогда ничего не раскодирует, потому что 1) никто не в курсе что перед ним закодированная информация, 2) никто не знает чем и как закодировано.

это вы сейчас о чем? вот попал вам в руки мой ноутбук, вы даже знать не будете где искать. банально кодируете xor файл, называете его wmms32.ocx, подкладываете в windows\system32 и всё, можете дату и время файла сделать как у файлов винды - от 99.99% всех у кого окажется ноут информацию найти они не смогут никогда.

Если у вас там пароль к кошельку на 100 биткоинов - найду, не переживайте.

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

С какой целью вы придумываете взлом несуществующего ноутбука подгоняя его под какие-то ваши условия?

Простой пример, я за последние 20 лет чинил в частном порядке ноутов 30-35, часть из них перекупал под восстановление. Практически у всех была установлена ОС и часто со всеми файлами прошлых владельцев. Были там 100 биткоинов или нет - никто не знает и поисками этих выдуманных биткоинов я не занимался, даже, представьте себе, не искал папочки DCIM и файлы JP*G у женщин владельцев, ибо так воспитан.

Обычный осмотр ноута выглядит как поиск в корне диска Inst/Dist(r)/Soft иногда что-то еще как правило с целью забрать файлы с драйверами для ноута, редко в желании обнаружить старый или экзотический софт из прошлого (меня ноуты по большей части интересуют из 1995-2008). Так что никто никакие биткоины не ищет и вы не станете искать никогда.

вот попал вам в руки мой ноутбук, вы даже знать не будете где искать

Для каждого файла в System32 есть не так много источников, из которых он может там появиться. По системным журналам и реестру можно узнать, какая версия ОС устанавливалась, и какие сервиспаки на неё потом в каком порядке накатывались. Если wmms32.ocx ни в одном дистрибутиве не присутствует, то это явным образом указывает на то, что кто-то его туда руками подложил. Можно попробовать поискать в интернете хеш любого неизменённого системного файла из популярных ОС - почти наверняка он найдётся.

никто не знает чем и как закодировано

А как потом самому раскодировать? Каждый раз грузиться в live-систему и писать по-памяти программу-раскодировщик?

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

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

есть понятие, да и физическое воплощение как - межкомнатная дверь. многие в силу незнания, а порой откровенной глупости, покупаю замки для таких дверей и ставят их на входные двери в квартире. хотя задача замка у межкомнатной двери одна - человек без ключа дёргает ручку и уходит, этот замок абсолютно не защищает от злоумышленника даже начинающего. а теперь представьте две двери, на одной установлен замок фирмы "Х" модели "Y", а на второй вообще нет замка. вот первый случай это aes, а второй случай мой. и не нужно рассказывать как вы там вычислите все обновления ОС и хеши всех файлов - это интересно, но для этого вы должны знать как именно данные скрыты, а вы этого не знаете, в этом и смысл.

А как потом самому раскодировать? Каждый раз грузиться в live-систему и писать по-памяти программу-раскодировщик?

вы хотите чтобы я вам разработал систему с быстрым доступом, с мобильным приложением и с интеграцией во все ОС? я рассказал о методе, а что, как, зачем и почему - это детали, которые к обсуждению не относятся. конкретно в моем случае я передавал файл через я.диск по ссылке, это было одноразовое решение, даже если оно где-то закешировалось и конкретно вы когда-то увидите на флешке файл deepr2.7z, то вы абсолютно не будете знать что это, как закодировано (и вообще кодированный это файл или нет) и главное - надо ли вам тратить своё время на этот файл. Когда-то знакомый занимался "рыбалкой" на спутниковой тарелке и таких архивов ему падало тысячи и если какой-то из них был битый, то он его просто удалял. Так же сделаете и вы.

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

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

вы хотите чтобы я вам разработал систему с быстрым доступом, с мобильным приложением и с интеграцией во все ОС?

Нет, я лишь хочу понять общий принцип. Если я использую какие-то традиционные способы, типа архива с паролем, то декодировщик у меня уже есть в программе-архиваторе. А если я применяю какой-то необычный способ кодирования, то декодировщик нухно откуда-то принести. А сам факт наличия такого декодировщика поможет атакующему, особенно если вся защита строится на принципе "security through obscurity". Даже если он сам не справится, то знание того, что тут кто-то что-то скрывает будет мотивировать его нанять более опытного взломщика.

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

Для ноутбука уже есть простой способ обезопасить свои данные - включить полнодисковое шифрование

это просто пример, не нужно на нём заострять внимание.

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

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

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

В моем случае я передавал файл через облако, декодировщик был на обоих ПК. Условно уязвимым было именно облако (например запароленные архивы можно открыть как список файлов и возможно это уже вызовет интерес. Можно запаролить и имена, но и это вызовет интерес. А если я кину абстрактный файл simple.dbx то что делать с ним? Самописного софта неисчислимое количество, что это и как это открыть? Никто не знает. Вы не инвестор в биткоины, а значит это не кошель на 100 биткоинов. Да и кому вы нужны в целом? То есть заглянуть в окно и увидеть вас в трусах, это одно, а выбить дверь в многоэтажке в спальном районе - это совсем другое. Так что не будет никто сидеть и ломать этот ваш simple.dbx, а для себя задачу вы решили. Вот и весь метод.

В более трудном случае, да - алгоритм в голове с реализацией на лайв системе/песочнице или USB флешке которую потом сжечь XD, фраза или в голове или на видном месте, например первая страница Гарри Гаррисон "Крыса из нержавеющей стали". Как я писал выше - вам решать. Я лишь написал что можно простейшими способами скрывать данные.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий