Примечание: Ну, срок действия щедрости истек, и одной из возможных причин могут быть усилия, необходимые для устранения, как я понял из комментариев. Видя количество голосов, это, кажется, представляет интерес и для других. Я все еще хотел бы получить ответ, так что вот что я предлагаю - хороший ответ в течение месяца, я получу бонус 50. Это, я надеюсь, даст достаточное время и стимул
Я пытался понять процесс шифрования Android и его уязвимости в течение некоторого времени
Есть много вопросов, касающихся частей этой темы на этом сайте, а также на родственном сайте. Чтобы подчеркнуть мою точку зрения, эти вопросы касаются не отдельных, а целых частей (напоминающих « слепых и слона ?» :)
- Что защищает шифрование Marshmallow?
- Защищает ли мое устройство полное шифрование данных от Google и правительства?
- /android/137334/if-we-encrypt-our-device-can-user-connecting-to-adb-get-it
- Вопросы, касающиеся шифрования SD-карт
- Android-шифрование, когда-телефон-это-на
- Android-CyanogenMod-шифрования против-гну
- это-там-криптографической материал-в-телефонах-сим-карты, что-может-быть использован-с-ОГА
- Android-устройства шифрования
Мое понимание (или недоразумение?)
- Пароль шифрования генерируется из комбинации PIN-кода экрана блокировки пользователя и алгоритма шифрования (в этом заключается внутренняя слабость из-за ограниченной длины PIN-кода)
- Это соленое и хранится в корневом расположении, недоступно для пользователей
- Это используется для генерации фактического пароля для шифрования / дешифрования, а фактический пароль хранится в оперативной памяти
- Это было усилено путем привязки шага 1 к устройству SoC ( какая версия Android? Какой аппаратный элемент уникально идентифицирует устройство? Можно ли заменить его на фальшивый? )
- Следовательно, невозможно расшифровать данные без ключа шифрования и устройства (также для внешнего SD)
- Возможные способы восстановления - перебор, захват оперативной информации (шаг 3) для получения ключа
- Корневые устройства кажутся более восприимчивыми к доступу к данным шага 2 через пользовательское восстановление / возможно ПЗУ и перепрошивку ядра ?? ( если это правда, почему это не рекламируется как большой риск? )
- Даже если эта информация получена, я предполагаю, что генерировать реальный пароль нетривиально
- Зефир может рассматривать внешнюю SD как «внутреннее хранилище» или «переносное хранилище». Логично, что это не должно иметь значение, но я не уверен
В моем понимании есть пробелы, вероятно, упускающие и другие ключевые аспекты.
Итак, я ищу каноническое объяснение для понимания с точки зрения пользователя
Весь процесс шифрования (включая внешний SD)
Варианты реализации для разных версий Android - от KitKat до Marshmallow (включая две опции для внешней SD в Marshmallow)
Уязвимости на уровне пользователя
Заметка
- Я осознаю риск того, что вопрос будет считаться слишком широким, но ИМО требует комплексного подхода
Имея некоторый опыт в области безопасности коммуникаций, я понимаю проблему перевода криптографических концепций на уровень пользователя. Я бы предпочел ответ на этот вопрос с пояснительными указателями для более глубокого понимания. Примеры процесса не обязательно должны быть криптографически правильными в строгом смысле, но должны передавать суть
Возможным преимуществом может быть «дублирование» будущих вопросов по смежным аспектам.
За счет повторения ответы должны быть в основном на уровне пользователя , но с адекватным объяснением для более глубокого понимания. Разделение ответа на две части может быть подходящим способом.
Я бы сказал, что нужно проголосовать за тривиальные / случайные / патч-ответы, чтобы получить исчерпывающие ответы.
источник
//
Это может быть лучше подходит для безопасности . Я также думаю, что он слишком широкий, потому что хороший кусок того, о чем вы спрашиваете, зависит от конкретного оборудования и от того, как его реализует производитель.Ответы:
Я предполагаю, что это работает так:
Большая хитрость здесь заключается в том, что асинхронное шифрование мастер-ключа. Когда у Android есть мастер-ключ, он может обмениваться данными с хранилищем. Этот главный ключ известен только тогда, когда пользователь вошел в систему. Асинхронное шифрование - это то, что называется шифрованием с открытым ключом. Что происходит, так это то, что открытый ключ шифрует данные (в данном случае главный ключ), а закрытый ключ расшифровывает данные. Не путать с шифрованием хранилища здесь. Хранилище просто синхронное шифрование. Там один и тот же ключ используется для шифрования и дешифрования. Но нахождение / извлечение этого "главного" ключа - важная персона. Это означает, что если в какой-то момент у вас есть слабый метод входа в систему, например, для intance «1234» в качестве пин-кода, и вы передумали, и измените пин-код на «5364», что сложнее угадать, если не раньше, 1234 " был украден, подслушан, в любой момент, безопасность только стала лучше. То же самое происходит при смене метода входа на полный пароль, который невозможно угадать, или атака по словарю. Само хранилище вообще не нуждается в повторном шифровании. Все дело в том, чтобы скрыть этот главный ключ - внутри. Пользователь никогда не увидит этот мастер-ключ, потому что это, скорее всего, случайный хэш-код - ничто не сможет «найти» или «угадать» этот хэш-код. Даже АНБ или какой-либо другой орган безопасности на планете никогда не сможет найти такой ключ. Единственный вектор атаки - надежда на слабость со стороны пользователя. Возможно, пользователь выбрал пин-код для входа. Если это 4 цифры, то это максимум 10000 возможных пин-кодов. ОС может «заблокировать» устройство после нескольких попыток за короткое время. Решение состоит в том, чтобы «взломать» ОС, чтобы можно было попробовать все возможные пин-коды без вмешательства ОС и блокировки устройства. Я считаю, что именно так ФБР в итоге получило доступ к телефону преступника. Сторонняя компания (некая израильская компания, насколько я помню) взломала ФБР, как мне кажется. Они обошли этот лимит попыток пин-кода. Если для входа в систему указан полный пароль, а пользователь выбрал надежный пароль, то вы сол. Не в жизни со всей силой процессора на планете взломать это через миллион лет. Я не покупаю ни одного из АНБ, могу расшифровать что угодно, слухи. Я думаю, что эти люди смотрели слишком много фильмов о людях в черном. Все, что нужно сделать, это посмотреть научные документы о различных алгоритмах шифрования (например, AES), и вы будете знать, что взлома просто не произойдет, кроме как в старые времена, когда были 40-битные ключи. Эти времена давно прошли. Я думаю, что AES128 уже можно взломать, и, если кто-то обеспокоен этим, переход на AES256 делает его более безопасным по величине по сравнению с размером вселенной. Может быть, однажды квантовые компьютеры могли бы расшифровать это, но я скептически отношусь. Не уверен, возможно ли иметь систему вероятностей, просто выделите решение. Мы увидим об этом, в конце концов. Возможно, это все равно на несколько жизней. Не о чем беспокоиться прямо сейчас.
Итак, в конце концов, ограничение безопасности полностью зависит от метода входа в систему, который используется. Можно изменить метод без необходимости повторного шифрования хранилища. Все это из-за асинхронного шифрования с открытым ключом главного ключа.
источник
Из-за частых обновлений способ обработки шифрования на телефоне (ОС на базе Android) может меняться от одной сборки к другой. Поэтому первостепенное значение имеет не само шифрование, а то, где выполняется процесс. И если у этой платформы есть уязвимости, то сила самого алгоритма шифрования становится незначительной или не имеет значения.
По сути, после того, как ваше устройство расшифровывает файл (ы), к ним может непосредственно обращаться процесс с привилегиями суперпользователя. Этот процесс может получить доступ к вашему устройству, используя уязвимость самого ПЗУ (ОС Android). (Это было недавно в новостях, так как некоторые недостатки были обнаружены WikiLeaks)
Перед рутированием : для рутирования устройства вы должны использовать внешние инструменты, каждый из которых имеет глубокий доступ к внутренней структуре устройства. Некоторые из этих инструментов предварительно скомпилированы и не имеют открытого исходного кода. У них есть «официальные» сайты, но кто эти люди? (twrp.me, например, supersu.com, но есть и другие, такие как KingoRoot) Можем ли мы им доверять? Я доверяю некоторым больше, чем другим. Например, KingoRoot установил на моем компьютере программу, которая вела себя как вирус (пришлось удалить двойную загрузку, чтобы удалить ее).
После получения root-прав : предоставление скомпилированной программе (APK) доступа SU означает, что она может делать все, что захочет, без ограничений или с указанием того, какое намерение она будет использовать. (Назначение - это способ, с помощью которого APK-файлы могут получить доступ к таким вещам, как WiFi, камера и т. Д.). Таким образом, «пользующееся доверием приложение» после получения корневого доступа может легко получить доступ к любой информации и отправить ее обратно на свой сервер.
Гугл - да. У него нет ключа к разблокировке.
Правительство (или хакер) - нет. потому что правительство или хакер могут по существу использовать эксплойт, который будет перехватывать файлы, как я упоминал выше.
Сложности процедур / алгоритмов безопасности малопригодны, если их можно перехватить и обойти.
Изменить: Стоит отметить, что Google на самом деле имеет возможность загружать и устанавливать / обновлять приложения на вашем устройстве Android без вашего разрешения, или даже уведомлять вас, что обновление произошло. И даже на рутированном устройстве, кажется, нет способа заблокировать это без потери ключевых функций (Play Store, Maps, Sync и т. Д.)
источник