ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 01.10.2009, 23:28
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

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

  #12  
Старый 01.10.2009, 23:36
Scripter
Участник форума
Регистрация: 03.09.2008
Сообщений: 155
Провел на форуме:
1201665

Репутация: 236
По умолчанию

тоже интересовал когда то такой вопрос, нагуглил следующее:

Пусть диалог программ будет примерно следующий:
Клиент (К): Я хочу залогиниться. Я Василиса Пупкина.
Сервер (С): Хоти. Вот тебе число (генерирует и отсылает случайное число). Сложи его по маске XOR со своим паролем, посчитай MD5 хеш и пришли результат мне.
К: Сейчас... (складывает пароль с присланным числом по маске XOR, считает MD5 хеш, отправляет результат). Вот!
С: Ага, счас (смотрит в таблицу, где лежат пароли в открытом виде, сам проводит все нужные действия, сравнивает присланное число и то, что получилось) Да ты, никак действительно Василиса! Вот тебе уникальное число (генерирует и отправляет нечто вроде SessionID), запомни! (заводит запись, соответствующую заданному номеру, в которой будет хранить все, что относится к указанному клиенту).
К: (запоминает число, отправляет его серверу при каждом обращении).
 

  #13  
Старый 01.10.2009, 23:45
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

Цитата:
Сообщение от Scripter  
тоже интересовал когда то такой вопрос, нагуглил следующее:

Пусть диалог программ будет примерно следующий:
Клиент (К): Я хочу залогиниться. Я Василиса Пупкина.
Сервер (С): Хоти. Вот тебе число (генерирует и отсылает случайное число). Сложи его по маске XOR со своим паролем, посчитай MD5 хеш и пришли результат мне.
К: Сейчас... (складывает пароль с присланным числом по маске XOR, считает MD5 хеш, отправляет результат). Вот!
С: Ага, счас (смотрит в таблицу, где лежат пароли в открытом виде, сам проводит все нужные действия, сравнивает присланное число и то, что получилось) Да ты, никак действительно Василиса! Вот тебе уникальное число (генерирует и отправляет нечто вроде SessionID), запомни! (заводит запись, соответствующую заданному номеру, в которой будет хранить все, что относится к указанному клиенту).
К: (запоминает число, отправляет его серверу при каждом обращении).
Сервер ничего не отправляет,только принимает.
 

  #14  
Старый 01.10.2009, 23:46
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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

Хотя можно замутить и по другому. Генерить ключ в определенном диапазоне чисел. к примеру от 0x00000000 до 0xFFFFFFFF это будет ключ шифрования. Ты береш пароль, вычисляеш его crc затем шифруеш. и передаеш серваку шифрованный пароль и crc
а сервак когда получит начинает брутить ключ )) 4 милиадра операций на нормальном компа выполнятся за 1-2 секунуды.
 

  #15  
Старый 01.10.2009, 23:55
gold-goblin
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме:
5265510

Репутация: 455


По умолчанию

Цитата:
Программа не автомобиль.
А ты думаешь сигнализации это набор транзисторов и резисторов? Нет, сигналки уже давно микро контроллер в котором прошивка написана на С или ассемблере.
Всем спасибо, я выбрал немного другой способ. Ничего кодировать не буду а просто сделаю рандом список и буду проверять есть ли пасс в списке (после использования в черный список).
Ну или способ предложенный человеком долеким от программирования: "Кодировать абракадабру временем которое установлено в системе =) и если время одинаковое расшифровка будет одинаковая =)))
 

  #16  
Старый 02.10.2009, 01:52
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

Цитата:
Сообщение от slesh  
вообще можно слегка скрывать инфу о ключе.
К примеру. Клиент коннектится к серваку, получает порт который выдала ему винда для коннекта. Далее рандомным ключем криптит пароль, затем сцепляет этот рандомный ключ с шифрованным паролем и это шифруется номером этого порта.
Сервер в свою очередь получает номер порта с которого коннектится клиент и в обратной последовательности всё делает. А если пароль разбавить мусором и потом шифровать то довольно хорошо будет получаться )

Хотя можно замутить и по другому. Генерить ключ в определенном диапазоне чисел. к примеру от 0x00000000 до 0xFFFFFFFF это будет ключ шифрования. Ты береш пароль, вычисляеш его crc затем шифруеш. и передаеш серваку шифрованный пароль и crc
а сервак когда получит начинает брутить ключ )) 4 милиадра операций на нормальном компа выполнятся за 1-2 секунуды.
В каждом TCP пакете указан порт отправителя и порт получателя,первые два поля TCP пакете,сам знаешь
Опять же есть риск что пакет могу перехватить и узнать порт.
 

  #17  
Старый 02.10.2009, 23:25
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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

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

Также можно сделать несколько разных генераторов и потом передавать номер используемого. или последовательность их использования. Защитить ГСЧ намного проще чем чтото другое, потому что его можно сделать очень сложным с точки зрения математических вычислений и размера.
 

  #18  
Старый 02.10.2009, 23:46
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

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

Цитата:
генератор псевдослучайных чисел основанный на математических операциях(т.е. не юзаюзий таймер, часы, случайные велечины и rdtsc)
slesh, а тебе не кажется, что генератор без случайной инициализации временем - чем угодно не является вообще случайным генератором, а просто выдаёт последовательность чисел?)
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 

  #19  
Старый 03.10.2009, 00:22
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 desTiny ну так почти все генераторы основаны на математической генерации последовательности и вся фишка именно в инициализации. Даже стандартный генератор в делфи и си - они математические. По этому их и назвали псевдослучайные.

Другое дело генераторы основанные на более случайных числах или промежутках чисел. К примеру основанный на rdtsc потому как случайности вносит частота процессора, его производительность и загруженность системы и ты можеш сказать примерно какие значения он нагенерит но не сможеш сказать их точного значения.
Вот тебе простой пример:
Код:
 rdtsc // 0000098C D88D99BD
 mov ecx, eax
 mov ebx, edx
 rdtsc // 0000098C D88D99E2
Как видиш за время выполнение нескольких машинных инструкций проц выполнил 37(0x25) тактов и такое примерно всё время было. При большей нагрузке на систему число начало меняться в диапазоне он 0x18 до 0x26 и это на моём проце. на твоем проце будут другие значения скорее всего.

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

Кстати rdtsc очень удобно юзать для улучшения качества обычных ГСЧ потому что значения можно подмешивать в результаты обычного ГСЧ и таким образов давая большую случайность, а главное - типа небольшая и не напряжная дополнительная инициализация при каждой генерации
 

  #20  
Старый 03.10.2009, 00:32
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

ай прости, я неправильно понял, то что ты написал. мне показалось, что ты каким-то образом хочешь инициализировать генератор без всего этого.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ