Articles of шифрования

Ошибка дешифрования на Android 4.4

У меня есть алгоритм шифрования / расшифровки файлов: private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(clear); return encrypted; } private static byte[] getRawKey(byte[] seed) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom sr = new SecureRandom(); sr.setSeed(seed); […]

Зашифрованная сохраненная и дешифрованная загрузка ArrayList сериализуемых объектов

Я сохраняю и загружаю в SD-карту файл, содержащий ArrayList сериализуемого объекта с этими двумя методами Сохранить метод public static void saveUserList(ArrayList<User> userList) { if (storageAvailable()) { try { createFolder(); FileOutputStream userList = new FileOutputStream( baseDir + File.separator + baseAppDir + File.separator + fileName); ObjectOutputStream oos = new ObjectOutputStream( userList); oos.writeObject(userList); oos.close(); } catch (Exception exc) […]

Проверьте, зашифрована ли файловая система Android

Мы разрабатываем безопасное приложение для Android. Пользователям требуется хранить файловые системы своих устройств зашифрованными, но мы должны проверить этот факт и запретить использовать приложение. Можно ли проверить, зашифрована ли файловая система? Также есть некоторые устройства с Android <3.0, которые поддерживают шифрование, например Motorola RAZR. Было бы интересно узнать о шифровании на таких устройствах.

Какой смысл шифровать anyting в Android (или Java), если исходный код может быть изменен в обратном порядке?

Android и Java предоставляют криптографический API, который относительно прост в использовании для криптозащитных экспертов. Но так как мы знаем, что никакой код не может быть действительно защищен от обратной инженерии, особенно строковых констант, используемых в качестве семян или разделяемых секретов, мне интересно: какой смысл проходить испытание зашифрования и дешифрования в приложениях Android? Я что-то упускаю? […]

Обработать значение предпочтения перед сохранением в Android?

Мне нужно зашифровать мой пароль, прежде чем сохранять его в локальной базе данных Android. Все работает нормально без шифрования, у меня есть preferences.xml и так далее. Как я могу вызвать функцию после изменения значения предпочтения (например, пароль)? Вот мой код: public class Preferences extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); // […]

Как защитить общие настройки Android?

Общее место, где SharedPreferences хранятся в приложениях Android: /data/data/<package name>/shared_prefs/<filename.xml> Пользователь с привилегиями root может перейти к этому местоположению и может изменить его значения. Сохранение его защиты имеет большое значение. Сколько способов мы можем зашифровать весь shared_pref's xml файл shared_pref's xml ? Мы все знаем, что мы можем шифровать и сохранять данные в shared_pref's xml […]

Хорошая разработка программного обеспечения и безопасность

Руководства по безопасности и дизайну в значительной степени описывают различные методы, с тем чтобы злоумышленник мог скомпрометировать реализацию биллинга в приложении. Особенно примечательно то, насколько легко перепроектировать файл .apk , даже если он запутан через Proguard. Поэтому они даже рекомендуют модифицировать весь примерный код приложения, особенно «известные точки входа и точки выхода». То, что я […]

Android: как защитить данные в базе данных SQLite?

В настоящее время я разрабатываю Android-игру, которая сохраняет данные в базу данных SQLite. Это не «чувствительные» данные, но я не хочу, чтобы пользователи могли его модифицировать (по понятным причинам игрового баланса, так как это было бы обманом). И довольно легко получить доступ и изменить SQLite db, когда ваш телефон укоренен (на рынке есть много приложений). […]

Хранение RSA Private Key Android

Во время создания простого приложения для Android-сообщений, предназначенного для шифрования / дешифрования сообщений и отправки их через Интернет, я решил использовать шифрование с открытым / закрытым ключом RSA. Вопрос в том, как хранить секретный ключ, так что даже если телефон злонамеренно внедрен, ключ останется в безопасности? Насколько я понял, KeyStore используется для сертификатов и не […]

Шифрование и расшифровка имени пользователя с помощью KeyStore в Android M и более старой версии?

Я пытаюсь зашифровать и дешифровать имя пользователя в приложении с помощью KeyStore, Используя KeyPairGeneratorSpec для создания ключа в более старой версии, например, с 18 по 22, KeyPairGeneratorSpec был лишен версии 23 android M, но Android M поддерживает KeyGenParameterSpec. Поддерживает ли этот KeyGenParameterSpec обратную сопоставимость или как это сделать? Я пытаюсь что-то вроде этого, есть ли […]