Size: a a a

2020 August 10

R

Rtem in Android Guards
main
В продолжении темы. А это нормальная практика генерить ключ от БД, на клиенте зашифровать sqllite с помощью SQLCipher этим ключем и хранить ключ в keystore?
Как мне кажется, лучше для sqlcipher использовать KDF функции. Потому что сам sqlcipher (если ничего не путаю) не умеет работать с ключами из кейстора, как это умеет например Cipher. А значит тебе придется доставать ключ из кейстора, прееговнять его в строку с помощью encoded() и отдавать в sqlcipher. И тут есть риск утечки этой штуки из памяти, потому что при вызове этого метода ключевой материал появляется в памяти приложения в виде той самой строки.
источник

R

Rtem in Android Guards
Но если ты не боишься что кто-то подрежет у тебя ключ на рантайме таким образом, то это довольно рабочий вариант
источник

R

Rtem in Android Guards
Что-то много стало вопросов по шифрованию данных в приложениях. Видимо пришла пора написать на эту тему статью. Еще одну 😄
источник

m

main in Android Guards
Rtem
Как мне кажется, лучше для sqlcipher использовать KDF функции. Потому что сам sqlcipher (если ничего не путаю) не умеет работать с ключами из кейстора, как это умеет например Cipher. А значит тебе придется доставать ключ из кейстора, прееговнять его в строку с помощью encoded() и отдавать в sqlcipher. И тут есть риск утечки этой штуки из памяти, потому что при вызове этого метода ключевой материал появляется в памяти приложения в виде той самой строки.
Все верно, напрямую с keystore не работает. По поводу kdf посмотрю. спасибо за новодку !
источник

l

lulzceh in Android Guards
Rtem
Что-то много стало вопросов по шифрованию данных в приложениях. Видимо пришла пора написать на эту тему статью. Еще одну 😄
лайфхак для отчаянных домохозяек, имена файлов, столбцов таблицы с символом (char) 0x200B, данные(char) 0x200B)данные(char) 0x200B)
кто угадал что за char такой?
источник

Я

Ярослав in Android Guards
Rtem
Что-то много стало вопросов по шифрованию данных в приложениях. Видимо пришла пора написать на эту тему статью. Еще одну 😄
И желательно на хабре, надо как-то канал продвигать:)
источник

R

Rtem in Android Guards
Ярослав
И желательно на хабре, надо как-то канал продвигать:)
Не очень люблю писать на хабр если честно
источник

R

Rtem in Android Guards
Как-то перегорел в этом плане
источник

R

Rtem in Android Guards
lulzceh
лайфхак для отчаянных домохозяек, имена файлов, столбцов таблицы с символом (char) 0x200B, данные(char) 0x200B)данные(char) 0x200B)
кто угадал что за char такой?
источник

Я

Ярослав in Android Guards
Rtem
Не очень люблю писать на хабр если честно
Тут лишь бы в массы пошло:)
источник

NK

Nikita Kulikov in Android Guards
Roman Chumachenko
А как можно вообще защититься от чтения памяти адекватно? Рано или поздно секрет нужно дешифровать и хотя один вызов с ним совершить, так как быть?
Видел подход когда с сервера приходит с каждым респонсом ключ, кидается в кейстор, там выплевывается уникальный ключ для каждого запроса. В кейстор залезть нельзя даже с рутом
источник

l

lulzceh in Android Guards
да, вот если бы прогуард в такой вордлист умел, вот это люто будет
источник

Я

Ярослав in Android Guards
А то ради ~500 человек стараться не оправдано
источник

R

Rtem in Android Guards
Ярослав
А то ради ~500 человек стараться не оправдано
Кому как. Если инфа которую я даю помогает хоть кому-то значит это уже было не зря. Я ж не Варламов или еще кто-нибудь чтобы гнаться за “аудиторией” )
источник

R

Rtem in Android Guards
Так-то вот даже 700+ человек на этом канале сидит. Крутое количество, вроде как. А я тут как-то вкидывал типа “давайте что-нибудь вместе поделаем” и что-то желающих не обнаружилось. Поэтому хоть 500, хоть 700. Это погоды не делает =)
источник

RC

Roman Chumachenko in Android Guards
Nikita Kulikov
Видел подход когда с сервера приходит с каждым респонсом ключ, кидается в кейстор, там выплевывается уникальный ключ для каждого запроса. В кейстор залезть нельзя даже с рутом
Раз ключ идет сразу в кистор -> это ключ в чистом виде -> он у нас в памяти, пока мы его не положим
источник

RC

Roman Chumachenko in Android Guards
Или я чего-то не так понял
источник

NK

Nikita Kulikov in Android Guards
Roman Chumachenko
Раз ключ идет сразу в кистор -> это ключ в чистом виде -> он у нас в памяти, пока мы его не положим
Ключ для каждого запроса свой и протухает
источник

Я

Ярослав in Android Guards
lulzceh
да, вот если бы прогуард в такой вордлист умел, вот это люто будет
А почему бы нет? Щас сурсы открыты, можно свой плагин замутить, просто когда начнёшь писать, перегорит желание уже защищать так;)
источник

NK

Nikita Kulikov in Android Guards
Генерируется в keystore ключ
источник