Вверх ↑
Этот топик читают: Гость
Ответов: 58
Рейтинг: 1
#1: 2015-10-19 01:51:02 ЛС | профиль | цитата
Если человек захочет расшифровать вот эти символы "©o2Äaó " и он знает,что тут написано smile,но он не знает каким хеш-алгоритмом и каким ключем зашифровано,то он сможет это расшифровать?
code_36405.txt
карма: 0

0
файлы: 1code_36405.txt [713B] [403]
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2015-10-19 09:43:32 ЛС | профиль | цитата
Jonson, если это пароль т.е сравнивается что-то с чем-то, то это делается элементарно за 1-3 минуты. Достаточно знать ассемблер.
Если это послание, то кроме спецслужб этим никто и заниматься не будет, чтобы удовлетворить своё любопытство.
А ещё можно положить в ямку фантик и накрыть цветным стёклышком. И назвать всё это "секретом".
карма: 6

0
Ответов: 58
Рейтинг: 1
#3: 2015-10-19 14:20:16 ЛС | профиль | цитата
Да,использую как для пароля.А как тогда можно безопасно зашифровать,чтобы нельзя было взломать?
карма: 0

0
Ответов: 2059
Рейтинг: 131
#4: 2015-10-19 14:36:02 ЛС | профиль | цитата

как тогда можно безопасно зашифровать

Никак!
Понятно почему? Если в программе есть механизм дешифровки, то не составит труда сделать шифрование по тем же законам и наоборот.
Всё зависит для какой аудитории предназначено...
Кто хочет, тот сломает.
Другим, противно этим заниматься...
У злоумышленников не должно быть программы где шифруются, или дешифруются данные.
А зачем пароль то шифровать? Совершенно не понятно. Если только чтобы в сети шпионы не перехватили.
P.S.
Я писал:
Если в программе есть механизм дешифровки, то не составит труда сделать шифрование по тем же законам и наоборот.

Короче говоря нужна защита программы, чтобы механизм был не доступен для изучения, а каков механизм (шифрование) по хрену мороз.
Шифрование нужно только когда посылаешь гонца с посланием, а на обратном пути затарится в магазине.
Надо сделать свой стек... - поменять ESP и EBP.
Вот что примерно нужно иметь по адресу entry point:
(Параметры передаются, если есть.)
asm
@entry_point:
CALL @WNDPROCCODE
DD @LLL //твоя
@WNDPROCCODE:
MOV EAX , ESP
SUB ESP , $F80
MOV EBP, DWORD PTR DS:[EAX+8]
PUSH EBP
MOV EBP, DWORD PTR DS:[EAX+4]
PUSH EBP
MOV EBP , EAX
ADD EBP , $10
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
MOV EAX , [EAX]
MOV EBX , [EAX]
MOV EAX , -4[EBP]
CALL EBX // Тута твоя пограмма
LEA EBP , -4[EBP]
MOV $0[EBP] , EAX
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
MOV EAX , ESP
MOV ESP , EBP
MOV EBP , [EAX]
MOV EAX , 4[EAX]
XCHG EAX , [ESP]
RET
@LLL:
...
RET
Вот так она хранится, советская граница и никакая сволочь её не перейдёт.
http://www.muz-urok.ru/kor_pugovka.htm
В Jonson`ой коллекции,та пуговка хранится, За маленькую пуговку,ему большой почёт.
http://xmusic.me/q/lsO8zrTT5cuQwIrptvfn0arjgv9Gt8e897bEpdmI6JL06f0/
карма: 6

0
Ответов: 58
Рейтинг: 1
#5: 2015-10-19 21:12:54 ЛС | профиль | цитата
Значит нельзя,хорошо.А тогда как можно не дать пользователю просмотреть или скачать файл напрямую,то есть через браузер http://сайт.net/file.txt,а его можно скачать только через программу.Просто я шифровал данные и отправлял на хост,а потом через программу дешифровал их.
карма: 0

0
Ответов: 2059
Рейтинг: 131
#6: 2015-10-19 21:36:17 ЛС | профиль | цитата
Полагаю, что вопрос не уместен о способе шифрования.
Если это твои кореша, или (...), и только у них есть программка с золотым ключиком, то достаточно в цикле пройти весь файл по 6 байт накладывая "Jonson" по XOR (Исключающее ИЛИ) побайтно - да и дело с концом.
Причем тут способ шифрования?
Железно!
P.S.
Можно время создания файла замутить в накладку, но думаю это не стоит свеч.
карма: 6

0
Ответов: 58
Рейтинг: 1
#7: 2015-10-19 21:49:38 ЛС | профиль | цитата
Как причем? разве нельзя или не нужно шифровать эти данные?
В общем все понятно,если известно какое слово зашифровано,то расшифровать его можно.
карма: 0

0
Ответов: 2059
Рейтинг: 131
#8: 2015-10-19 21:53:50 ЛС | профиль | цитата
если известно какое слово зашифровано,то расшифровать его можно.

Ну а как иначе? Закон равновесия.
разве нельзя или не нужно шифровать эти данные?

Посетитель официанту - можно мне кофе.
Официант - откуда я знаю можно вам кофе, или нельзя?
разве нельзя или не нужно шифровать эти данные?

Я сказал, что значения не имеет как. Достаточно простого варианта XOR(Jonson), как выше предложил.
Граждане программисты - берегите время, своё и пользователей - жизнь коротка.
Чем проще, тем быстрей. Способ же в твоём случае рояли не играет.
карма: 6

0
Ответов: 58
Рейтинг: 1
#9: 2015-10-19 22:53:18 ЛС | профиль | цитата
Как же тогда безопасно зашифровать данные?
карма: 0

0
Ответов: 2059
Рейтинг: 131
#10: 2015-10-19 23:10:52 ЛС | профиль | цитата
Вопрос не верен!!!
Два слова "безопасно зашифровать" никак не связаны.
зашифровать = XOR(Jonson), или любым другим способом.
безопасно = ключ-алгоритм только у корешей.
И причём здесь пароль??? Это уже другая история.



карма: 6

0
Ответов: 209
Рейтинг: 1
#11: 2015-10-20 00:10:19 ЛС | профиль | цитата
...и разный ключ на каждое соединение
карма: 0

0
Ответов: 58
Рейтинг: 1
#12: 2015-10-20 01:34:42 ЛС | профиль | цитата
Ладно,спасибо!
карма: 0

0
Ответов: 4621
Рейтинг: 746
#13: 2015-10-20 11:02:58 ЛС | профиль | цитата
Jonson писал(а):
если известно какое слово зашифровано,то расшифровать его можно.
Расшифровать то можно, вопрос во времени.
Для подбора пароля нужно:
- иметь реализованный алгоритм дешифрования (знать его)
- иметь возможность проверить правильность пароля в процессе дешифровки (знать зашифрованный текст, как в твоем случае; использовать предусмотренный алгоритмом способ, например, наличие контрольной суммы в зашифрованных данных; или выдвигать предположения о характере зашифрованного текста).

Во всех случаях требуется полный перебор возможных комбинаций паролей. Скорость перебора (количество проверенных паролей) зависит от:
- скорости генерации очередного пароля
- скорости подготовки пароля внутри алгоритма
- скорости дешифрования данных очередным паролем
- скорости проверки правильности дешифрования
Вместе с длиной пароля и используемым алгоритмом всё это составляет стойкость шифра.
Для пароля в десять символов, состоящего только из цифр 0-9 количество требуемых комбинаций составляет:
10^10 = 10 000 000 000
Если в пароле есть цифры и малые латинские буквы a-z, количество комбинаций будет:
36^10 = 3 656 158 440 062 976
Пароль той же длины, состоящий из рандомного набора байт:
256^10 = 1 208 925 819 614 629 174 706 176

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

flint2 писал(а):
Jonson, если это пароль т.е сравнивается что-то с чем-то, то это делается элементарно за 1-3 минуты.
Хм, странно, и как вообще в этом мире что-то может быть секретным...

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

Jonson писал(а):
А тогда как можно не дать пользователю просмотреть или скачать файл напрямую,то есть через браузер http://сайт.net/file.txt,а его можно скачать только через программу
Самый логичный способ - на сервере файл отдаётся не напрямую, а через PHP-скрипт, который проверяет авторизацию пользователей по базе данных. Пользователь в твоей программе вводит логин и пароль, и при запросе файла ты их прописываешь в заголовки запроса. Скрипт на сервере, соответственно, проверяет по базе.
Можно обойтись и без скрипта, реализовав на сервере Basic или Digest аутентификацию. Но в этом случае файл можно скачать и через браузер, введя логин и пароль.
карма: 26

0
Ответов: 2059
Рейтинг: 131
#14: 2015-10-20 13:53:40 ЛС | профиль | цитата
Netspirit, раньше применялись такие конструкции-ключи в программах, игрушках:
XXXX-XXX-XXX-XXX-XXXX и надо было ввести правильные буковки и циферки, так по моему от этого отказались, потому что на раз ломалось.
По поводу пароля - если пароль проверяется на сервере, то да долго подбирать, если пароль проверяется в пользовательской программе, то его не подбирают, а смотрят, как строка сравнивается - тоже на раз. Есть такие программки подбора пароля к архивам RAR и ZIP, полный бред, легче посмотреть пароль в программе, только надо знать как.
Нужна защита от трассировки-дизассемблирования, что тоже можно обойти. Дело времени.
Насколько кому это нужно- это другой вопрос?
В случае, как у Jonson, можно просто сделать исключающее ИЛИ с какой-то строкой и не мудрить.
карма: 6

0
Ответов: 4621
Рейтинг: 746
#15: 2015-10-20 14:03:36 ЛС | профиль | цитата
flint2 писал(а):
так по моему от этого отказались, потому что на раз ломалось
Что ломалось, то да, но в зависимости от умений разработчика, квалификация взломщика требовалась различная.
flint2 писал(а):
а смотрят, как строка сравнивается
Если пароль сравнивается прямо с сохраненным тут же в программе паролем, то да, можно сломать, модифицируя программу. Защита от модификации - это другой вопрос.

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

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)