Pull to refresh

Хакер опубликовал способ подбора pin-кодов к iPhone без дополнительных устройств

Smartphones
image

Недавняя история с устройством для подбора 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.



Вывод: чем длиннее и сложнее пароль, тем выше ваша безопасность. Впрочем, это и так было очевидно.
Tags:
Hubs:
Total votes 18: ↑15 and ↓3 +12
Views 14K
Comments Comments 13