Насколько безопасно использовать PIN-код для шифрования?

19

На Android 4.0 (Samsung Galaxy Nexus) есть возможность шифровать телефон. Я нашел это о шифровании на Android 3.0, те же алгоритмы, используемые в Android 4? http://source.android.com/tech/encryption/android_crypto_implementation.html

Мой главный вопрос касается использования PIN-кода для расшифровки вашего телефона. Почему я вынужден использовать один и тот же пароль, чтобы разблокировать экран и расшифровать телефон? Это ограничение позволит мне использовать только пароль низкой сложности (например, ПИН-код), так как было бы сложно ввести, например, 17 символов, чтобы разблокировать мой телефон для простого телефонного звонка.

Попытки грубой силы против разблокировки экрана могут быть предотвращены, то есть принудительной перезагрузкой каждые 5 попыток. Таким образом, нет необходимости в очень надежном пароле, PIN-код может быть достаточно хорошим.
Этот тип защиты не может быть использован на диске, поэтому здесь требуется более надежные пароли. (Это не очень помогает, если энтропия паролей увеличилась, поскольку пользователей со сложным паролем будет очень мало, поэтому злоумышленник может просто попробовать большинство паролей с низкой сложностью). В чем причина того, что вы вынуждены использовать один и тот же пароль для обеих функций?

Кристофер Кек
источник
3
Да, но если я использую пароль, мне нужно будет использовать его, чтобы просто разблокировать мой экран. Не очень удобно набирать 17 символов, чтобы быстро позвонить. Таким образом, большинство пользователей получат деньги с помощью ПИН-кодов, и это будет первое, что попробует злоумышленник. Возможно, лучшим подходом было бы разрешить использование парольных фраз для шифрования диска и разрешить простые PIN-коды на экране блокировки. Во избежание попыток перебора на экране блокировки может быть принудительная перезагрузка после 3 неудачных попыток, что приведет к запросу пароля.
Кристофер Кэк
1
Я не знаю, кто-нибудь, кроме Google, мог бы рассказать вам причину, к сожалению. Вы можете попробовать трекер ошибок Android, чтобы подать запрос на функцию. Это похоже на разумную вещь, чтобы подать туда.
eldarerathis
2
Да, против попытки входа в систему на экране разблокировки, но не против дешифрования жесткого диска. Это то, что я пытаюсь сказать, разблокировка экрана не должна быть такой же длительной, как шифрование жесткого диска (которое должно быть намного длиннее, чем 4 числа), и, таким образом, нельзя заставлять использовать одно и то же для обоих.
Кристофер Кек
1
+1, я полностью с тобой @ ChristopherKäck Это решение не имеет смысла, инженеры Google должны были знать лучше, надеюсь, они скоро это исправят.
Жоао Портела
1
@ Кристофер: но вы основываете свое решение на неверной предпосылке, шифрование на диске было 128-битным AES, а не 4-значным PIN-кодом. Определение того, является ли эта схема безопасной или изначально ошибочной, не является экспертизой Android.SE.
Ли Райан

Ответы:

4

Я думаю, что нашел решение. Проверьте эту ссылку . Это взлом, и он требует рутирования телефона, но он позволяет вам использовать буквенно-цифровой пароль для шифрования и PIN-код для разблокировки экрана.

Oscar_6
источник
1

Используя пароль / фразу против четырехзначного пин-кода, вы повышаете безопасность своего устройства. Хитрость в том, что даже имея четырехсимвольный пароль, вы просто повысили свою безопасность по двум причинам:

  • Вы увеличили количество доступных персонажей.
  • Вы забрали у злоумышленников знание о вашей длине мышц.

Если злоумышленник знает, что ваш пароль состоит из 14 символов, он более надежен, чем пароль из четырех или восьми символов, но в типичной статистике используются диапазоны (1-4, 1-8, 1-14), а не реальность (что было бы просто вычислением доступные комбинации одной длины).

В настоящее время это простой способ получить доступ к данным вашего телефона. Ваша бабушка может это сделать (не в обиду вам или вашей семье: P). Итак, хотя вы правы в том, что у этого шифрования есть ограничения, «сломанная» версия работает НАМНОГО лучше, чем не зашифрованные в настоящее время данные.

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

earthmeLon
источник
2
Да, но я чувствую, что было бы простым решением этой проблемы иметь разные пароли для разблокировки экрана и для расшифровки устройства (как я уже упоминал здесь android.stackexchange.com/questions/17086/… ), поскольку они используются в разных Senarios и должны иметь разные атрибуты.
Кристофер Кек
1

Если вы пытаетесь взломать шифрование диска независимо от остальной части устройства в сценарии, где у вас есть выключенное устройство или только микросхемы памяти, то это другой вектор атаки, чем тот, который используется при включенном питании защищенное паролем устройство, где ключ дешифрования может храниться в памяти (что приводит к уязвимостям, используемым такими устройствами, как похитители ключей шифрования Firewire, которые распространены на ПК с использованием более старого программного обеспечения для шифрования FDE, а не модуля типа TPM), или экран разблокировки может быть грубым принудительно (или имеют свои уязвимости).

Если вы атакуете диск напрямую, то в этом случае вы не атакуете 4-значный PIN-код или пароль пользователя, который шифрует устройство, вы атакуете 128-битным ключом AES:

Главный ключ - это 128-битное число, созданное чтением из / dev / urandom. Он зашифрован с помощью хэша пароля пользователя, созданного с помощью функции PBKDF2 из библиотеки SSL. Нижний колонтитул также содержит случайную соль (также читаемую из / dev / urandom), используемую для добавления энтропии к хешу из PBKDF2 и предотвращения атаки паролем на радужную таблицу.

Из пункта 4 в разделе « Включение шифрования на устройстве » заметок о внедрении шифрования в Android 3.0, на которые вы ссылались.

(собирался быть комментарием, но закончился слишком долго)

GAThrawn
источник
1
Спасибо за этот хороший комментарий! Хотя одна вещь; я не ищу пароль пользователя (который, скорее всего, будет 4-значный пин-код, потому что вы вынуждены поделиться ключом с разблокировкой экрана и что-либо еще будет хлопот, чтобы набрать, чтобы сделать телефонный звонок), чтобы расшифровать 128-битный Ключ AES? (вместо того, чтобы искать ключ напрямую). Если я хэширую все 10000 контактов с помощью функции PBKDF2 + соль, то не будет ли для меня попыткой расшифровки 10000 попыток?
Кристофер Кек
@Melpomene « Атака радужного стола », о которой они говорят, заключается в том, что вы предварительно зашифровываете все 10000 комбинаций, чтобы посмотреть, как они выглядят в зашифрованном виде, а затем просто сравнить то, что находится на диске, с тем, что находится в вашем радужном столе. « Случайная соль » - это то, что помогает предотвратить это, создавая более 10 000 комбинаций, через которые вам придется угадывать (если только вам не удастся сначала выработать «соль»).
GAThrawn
1
Радуга - это умный способ хранения зашифрованных паролей. И если соль используется, она, вероятно, должна быть специально создана только для взлома паролей с этой солью. Это не очень сложная операция, когда на выбор доступно всего 10 000 паролей. Обратите внимание, что Salt всегда считается известным злоумышленнику (поскольку в документах он читается из / dev / urandom, он, скорее всего, хранится либо в виде открытого текста, либо зашифрован с помощью пароля пользователя). В любом случае пароль пользователя является слабым звеном.
Кристофер Кек
Но мне даже не нужно было бы создавать радужную таблицу, поскольку хранение (или вычисление) 10000 хешей не так уж сложно для моей памяти (процессора).
Кристофер Кек
Использование функции получения ключа, такой как PBKDF2, кажется хорошей новостью, но типичный 4-значный пин-код по-прежнему всего 10000 возможных комбинаций.
Жоао Портела
1

Одним из возможных решений для этого является использование Whispercore , но это требует от вас рута вашего устройства.

Я также заполнил запрос функции на странице проекта Android .

Жоао Портела
источник
0

Если вы включили удаленную очистку (при условии, что она все еще работает с зашифрованным устройством), PIN-код может не защитить ваше устройство навсегда, но он может делать это достаточно долго, чтобы дать вам время для очистки устройства.

шанс
источник
2
Проблема в том, что короткий PIN-код может защитить устройство, только когда оно включено. Поэтому отключение украденного устройства предотвращает стирание устройства, и, кроме того, PIN-код может быть взломан при автономной атаке методом перебора. Следовательно, короткий PIN-код не поможет вам в этой ситуации.
Роберт
@ Роберт, я не слишком знаком с тем, как работает удаленная очистка. Если это происходит через Exchange, должен ли телефон быть включен в тот же момент, когда выдается команда удаленного удаления? Я думаю, что если я смогу выполнить удаленную очистку в течение 30 минут или около того, потеряв свой телефон, это достаточно для меня, но у меня нет никаких финансовых данных, моя главная проблема - мой рабочий адрес электронной почты GMail.
Шанс
2
Телефон должен быть включен и включен через некоторое время после того, как вы выполнили команду удаленной очистки. Если телефон был выключен (и остается выключенным), команда стирания бесполезна.
Роберт