Недавняя история с устройством для подбора pin-кода к iPhone так впечатлила известного хакера и разработчика jailbreak для iOS Мажида Альфхайли, что он задумался – а нельзя ли всё-таки сделать программный подбор pin-кода к устройству, да ещё и быстрее, чем один pin за 40 секунд? Оказалось – можно. Единственное требование – устройство должно быть подвергнуто jailbreak.
Сначала разработчик написал следующий код для перебора всех паролей с 0000 до 9999:
(void)bruteforce { NSString *numString; NSString *oneZeroString = @"0"; NSString *twoZeroString = @"00"; NSString *threeZeroString = @"000"; for (int i = 1; i <= 9999; i++) { numString = [NSString stringWithFormat:@"%d", i]; switch ([numString length]) { case 1: { numString = [threeZeroString stringByAppendingString:numString]; break; } case 2: { numString = [twoZeroString stringByAppendingString:numString]; break; } case 3: { numString = [oneZeroString stringByAppendingString:numString]; break; } default: break; } NSLog(@"code : %@", numString); } }
Затем в дампе SpringBoard он нашёл класс SBDeviceLockController с методом
(BOOL)attemptDeviceUnlockWithPassword:(id)password appRequested:(BOOL)requested;
Затем он сделал библиотеку, подключающуюся к процессу SpringBoard и запускающую вышеуказанный код по окончанию процесса, и вызывающую attemptDeviceUnlockWithPassword:appRequested для каждого нового pin-кода.
Всё работало, за исключением того, что после 10 попыток телефон блокировался. После дополнительного исследования хакер нашёл в классе SBFDeviceLockController методы
(bool)_temporarilyBlocked; (bool)isPasscodeLockedOrBlocked; (bool)isBlocked;
После переопределения этих методов таким образом, чтобы они возвращали NO, код заработал в полную силу. 10 попыток не блокируют устройство, проверка одного pin-кода занимает 5 секунд – то есть, проверка всех четырёхзначных кодов займёт не более 14 часов. Теперь хакер работает над автоматической утилитой, которая сможет отправлять этот код на устройство через USB.
Вывод: чем длиннее и сложнее пароль, тем выше ваша безопасность. Впрочем, это и так было очевидно.
ссылка на оригинал статьи http://geektimes.ru/post/247754/
Добавить комментарий