В ранних версиях Mac OS X использовались только первые 8 символов любого пароля. Позже Apple увеличила это число.
Правильная система паролей хранит хэш, а не фактический пароль. В этом случае более длинный пароль/парольная фраза, как правило, предпочтительнее, чтобы увеличить вероятность создания хэш-значения, которое еще не было предварительно рассчитано. Я предполагаю, что Apple использует этот метод хеширования для аутентификации пользователей, вошедших в систему.
Это Mavericks, каково максимальное количество символов в парольной фразе, используемой для входа в учетную запись пользователя Apple?
Я тестировал пароли длиной до 480 символов (в OS X версии 10.8.5), и он использовал их все; около 480 у passwd
команды были небольшие проблемы с установкой паролей, но они были немного непоследовательными, поэтому я не уверен, что это реальный предел. Я не тестировал интерфейс System Prefs, потому что он не позволяет вставлять пароли, и я не могу набирать что-то такое длинное (дважды!). По сути, он будет использовать столько, сколько вы можете печатать.
(Посоленный и растянутый) хеш пароля для входа хранится в /var/db/dslocal/nodes/Default/users/username.plist
10.7 и более поздних версиях. Если вы беспокоитесь, что кто-то может прочитать хэш (например, запустив в однопользовательском режиме), а затем использовать инструмент взлома, такой как DaveGrohl , чтобы выяснить пароль, OS X использует PBKDF2 с версии 10.8, что ограничивает инструменты взлома примерно до десять догадок в секунду на ядро.
Мне потребовалось около десяти минут, чтобы угадать случайный пароль из трех символов на моем iMac:
$ sudo dave -u $USER
-- Loaded PBKDF2 (Salted SHA512) hash...
-- Starting attack
-- Found password : 'y8d'
-- (incremental attack)
Finished in 879.274 seconds / 31,385 guesses...
35 guesses per second.
Если вы не выполняете распределенную атаку, в настоящее время нецелесообразно взломать даже случайный восьмизначный пароль, состоящий из строчных букв ASCII и цифр ASCII. При 40 догадках в секунду потребуется около 36^8/40/(86400*365) ≈ 2000 лет, чтобы проверить все варианты.
На самом деле хранение хэшей — это УЖАСНЫЙ способ «надежно» хранить пароли. По своей природе хэши невозможно «обратить», но это не мешает создать большую таблицу (называемую радужной таблицей ), в которой хранятся пары открытый текст-хэш. С помощью этой таблицы можно найти хэш и увидеть связанные с ним пароли открытого текста.
Принятым способом хранения паролей является метод хеширования и соли. Соль — это случайная большая строка , которая объединяется с паролем перед вычислением хэша. Это делает ввод хеша слишком большим, чтобы его можно было предварительно вычислить в радужной таблице. В конце концов, единственное, что хранится в надлежащей базе данных паролей, — это хэши и соли (соли могут храниться в виде открытого текста, поскольку они совсем не помогают реверсировать хэши).
По сути, вам не нужно иметь длинный пароль для защиты от атак с использованием радужных таблиц, поскольку соли делают это за вас.
Computerphile снял отличное видео на YouTube о хранении паролей.
Что касается создания безопасного пароля, один из лучших подходов — использовать 4-6 средних, несвязанных, НАСТОЯЩИХ слов (без необходимости использования символов/цифр). Это обеспечивает достаточно длинный пароль, который нелегко угадать и, что наиболее важно, запоминающийся (поэтому у вас никогда не возникнет соблазна написать его на стикере).
TL;DR:
Тони Уильямс
Тони Уильямс