![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Привет всем!
Мой код на ideone: http://ideone.com/nVXIQ Для поклонников Web-IDE, и приведу код в теме же чуть ниже, как только опишу суть своей проблемы и вопросы. Основная проблема: ф-ция recv() работает очень медленно, работа recv() занимает несколько секунду на обработку результата. Я знаю, что recv() должен работать быстрее , а тем более с таким малым объемом информации. Поэтому, давайте не будем сейчас тыкать в то, что код выглядет не пойми, как, что от C++ тут только юзается std::cout и string::append ( и что за чистый Си стиль? ), потому что суть не в этом... А суть в том, что я не понимаю, почему в моем коде работет очень медленно именно recv() ф-ции, чем это обусловенно и как оптимизировать ее работу, чтобы не было таких тормозов. Код - рабочий, если у Вас MS компилер смело компилите ( т.к. все-таки использую WinSock , а не Berkley Sockets ). Спасибо заранее за помощь! Собственно код:
|
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Программу не запускал, не тестировал.
У тебя используются блокирующие сокеты (управление передается, только после завершения работы функции, в данном случае это recv). Функция recv завершится после того, как заполнится ее буфер той длиной, который ты передал в качестве аргумента. А как долго он будет заполняться зависит от отклика сервера. Серверы бывают быстрые и медленные по скорости обработки запросов. Но не один сервер, не станет отправлять сразу же ответы на целую кучу запросов, интервал по времени между которыми очень маленький. Вполне возможно, что после того, как ты кучу раз передавал серверу логин и пароль, тебя он просто отрубает, и не шлет тебе ответа, или шлет через некоторое время, а функция recv его ожидает. И не передает управление пока не получит ответа. Поэтому работает долго. Быстрее получать ответы от сервера, уже не зависит от твоей программы, а зависит от того насколько быстро хочет обрабатывать сервер твои запросы. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Попытка взлома ящика:
mail.ru видимо делает паузу, чтобы затруднить и правильно делает. |
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Нет. Он не обрубает работу по логам, нормально просит авторизацию , запрашивает пароль, ждет и выдает ответ "подходит или нет" данный пароль к юзеру ( кстати именно на этот финальный запрос приходится долго очень ждать ). Но, я понял , спасибо большое Вам за развернутый и качественный ответ. Это мой ящик А в коде, можно подставить: любой другой IP, другой ящик, а также пытаться взломать: переписав команды для IMAP и прочего по обработке данных от сервера. Это сообщение отредактировал(а) magesi - 20.5.2012, 12:56 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
magesi, все вменяемые реализации протоколов авторизации имеют задержку между приемом пароля и ответом. Если бы сервер отвечал сразу же, то он бы давно лежал под натиском хакеров.
|
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Пардон, я в танке в этом плане А были бы Вы любезны так помочь, указать еще ключевые моменты для дальнешего гугливания ключевых моментов по безопаснотям от метода перебора? PS Я сейчас улучшаю свой программу. Решил для перебора каждого пароля опред. разрядности ( 6 симв., 7, 8 etc ) выделять каждый поток. Т.е., переборкой пароля 6-ю симв. занимается один поток, 7-ую - уже другой и тд Мин. - 6 символов Макс. - 22 символа Т.е. 16 потоков будет, а я еще не подумал о всяких спец. символах в пароле И решил в каждом потоке с двух концов начинать переборку по словарю. Что Вы думаете, насчет такой реализации? Что задача bruteforce относится к NP-задачам, помню, но все равно интересно. Большое спасибо! Это сообщение отредактировал(а) magesi - 21.5.2012, 15:05 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
своё на mail.ru , учитывая, что там у меня платный аккаунт был бы более Вам благодарен за разрбор NP-задачи, спасибо заранее PS Потом bruteforce юридически можно рассматривать, как "забыл пароль к своему ящику, если он действительно мой", и большое кол-во попыток, юридических проволочек очень много и всегда можно интерпретировать по-разному. Это сообщение отредактировал(а) magesi - 21.5.2012, 15:31 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
1. нужно сократить поле перебора, отбросив заведомо неподходящие варианты. правда в данном случае нет гарантии, что не отсеется верный пароль 2. среднее время подбора может быть улучшено, если сначала проверять более вероятные комбинации, но верхняя оценка останется той же. в простейшем случае думаю целесообразно случайно перемешать alphabet, т.к. пароли abcd не слишком вероятны ЗЫ: это только в фильмах пароли подбираются быстро, легко и красочно |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Если я хоть что-то понимаю в безопасности, после очередной попытки залогинится с неверным паролем, mail.ru резко увеличит таймаут между попытками, а потом забанит IP атакующего... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
1). Я на ночь ставил, время отклика такое же, значит не увеличивали timeout. 2). IP до сих пор не забанен, а у меня статичный. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
это если mail.ru понимает в безопасности
Добавлено через 2 минуты и 13 секунд имхо грубой силой пароль можно подбирать очень долго, так что и без увеличения таймаута шансы невелики. а держать открытым соединение серверу дорого, он скорее подохнет от открытых сессий. Добавлено через 2 минуты и 57 секунд подобрал? |
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
||||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
4х буквенный хороший пароль на данном словаре это 3-6млн попыток, в зависимости от удачи. а поскольку число попыток с ростом длины пароля растет факториально...
хороший взломщик должен первым делом попробовать словарь+модификации, а брутфорс не подряд, а с использованием эвристик. хотя улучшение скорости с десяти тысяч лет скажем до года на практике ничего полезного не даст. |
|||
|
||||
| magesi |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Придется на ДНК-компы переходить, которые сразу сгенерят все комбинации за раз Правда изъять результат будет сложно из ДНК-компов ( их основная проблема ). А ведь, если бы не это проблема, NP-задачи на DNA-PC щелкались бы только так. Добавлено через 6 минут и 54 секунды
факториальный рост или геомт. прогрессии? |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |