Size: a a a

2018 January 22

IS

Ilya Sokolov in Android Guards
оу... понятно. Спасибо, буду думать
источник

AS

Alexander Smirnov in Android Guards
Ilya Sokolov
исходящий, грубо говоря кейс такой, есть двух симочный телефон, одна симка допустим разрешена другая нет и нужно задетектить с какой симки набрали номер
если про детальную инфу про симкарту говорить, а вот с какой симки набирали  – никогда не интересовался апи для многосимочной работы, но уверен что понять sim1 или sim2 использовалась можно будет
источник

IS

Ilya Sokolov in Android Guards
ну я могу дергать IccId симок (проверял на теле 2 и мегафоне)
источник

IS

Ilya Sokolov in Android Guards
а вот отследить звонок не получается, есть чуть чуть инфы, но те подходы мне не помогают, даже слот вызывающей симки не могу определить)
источник

IS

Ilya Sokolov in Android Guards
если про детальную инфу про симкарту говорить, а вот с какой симки набирали  – никогда не интересовался апи для многосимочной работы, но уверен что понять sim1 или sim2 использовалась можно будет
источник

AS

Alexander Smirnov in Android Guards
Dmitry
Гуглю сейчас по мотивам этого интересного доклада на предмет шифрования секьюрных данных и чтобы это работало начиная с minSdk=15. Есть примеры. Например вот:
https://github.com/hyperledger/iroha-android/blob/3e66f6fb4f8d91ec816239c85db2f65002cd4427/iroha-android/src/main/java/io/soramitsu/irohaandroid/security/KeyStoreManager.java#L115

Проблема в том, что KeyPairGeneratorSpec.Builder(context) added in API level 18 😢

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

Вы действительно хотите упарываться ради 5-6% пользователей?
источник

D

Dmitry in Android Guards
Alexander Smirnov
KeyStore и многое апи почти всегда можно достать через рефлексию на старых API, они не описаны но часто есть. Но это костыль :]

Вы действительно хотите упарываться ради 5-6% пользователей?
Да не особо. Но т.е. ответ такой, что на API ниже 18 вообще не шифровать никак?
источник

AS

Alexander Smirnov in Android Guards
технически вопрос только насколько сложно будет ну и немного менее секьюрней будет, на практике уже нет смысла упарываться если вы не банк
источник

AS

Alexander Smirnov in Android Guards
если банк – свой криптоконтейнер
источник

D

Dmitry in Android Guards
Я не банк. Но тут обсудили и попросили сделать шифрование в проекте.
источник

AS

Alexander Smirnov in Android Guards
Ilya Sokolov
а вот отследить звонок не получается, есть чуть чуть инфы, но те подходы мне не помогают, даже слот вызывающей симки не могу определить)
написал в лс
источник

R

Rtem in Android Guards
Dmitry
Я не банк. Но тут обсудили и попросили сделать шифрование в проекте.
Ну так и сделай без кейстора. Зачем он тебе? А Chiper доступен с каких-то древних версий API насколько я помню. Если тебе не подходит, то возми внешнюю сошку
источник

D

Dmitry in Android Guards
Rtem
Ну так и сделай без кейстора. Зачем он тебе? А Chiper доступен с каких-то древних версий API насколько я помню. Если тебе не подходит, то возми внешнюю сошку
Т.е. просто в шаредах хранить ключик?
источник

D

Dmitry in Android Guards
Для старых API
источник

R

Rtem in Android Guards
Т.е. просто не хранить )
источник

D

Dmitry in Android Guards
Я думал что чтобы что-то зашивровать и потом расшифровать нужен ключ. Ключ в идеале должен хранится в каком-то защищенном сторе, доступном только приложению. На API 18 и ниже получается такого стора "из коробки" нет и ключ нужно где-то самому хранить. Как же можно не хранить совсем ключ? Как мы потом расшифруем то что сами зашифровали?
Т.е. я знаю что например вместо паролей можно хранить их md5, а потом сравнивать md5 введенного пароля с хранимым. Но в моем случае нужно именно обратимое шифрование.
источник

R

Rtem in Android Guards
Dmitry
Я думал что чтобы что-то зашивровать и потом расшифровать нужен ключ. Ключ в идеале должен хранится в каком-то защищенном сторе, доступном только приложению. На API 18 и ниже получается такого стора "из коробки" нет и ключ нужно где-то самому хранить. Как же можно не хранить совсем ключ? Как мы потом расшифруем то что сами зашифровали?
Т.е. я знаю что например вместо паролей можно хранить их md5, а потом сравнивать md5 введенного пароля с хранимым. Но в моем случае нужно именно обратимое шифрование.
Ключ не нужно хранить если выводить его каждый раз на базе пользовательского ввода
источник

D

Dmitry in Android Guards
Т.е. ключ генерируется из введенного пользователем пароля? Если пароль неверный, то и ключ неверный? Такая логика?
источник

AS

Alexander Smirnov in Android Guards
yep
источник

D

Dmitry in Android Guards
А если нет пользовательского ввода? Данные например какие-то в кэше надо зашифровать? Но при этом при открытии приложения никаких паролей не запрашививает, только при первом запуске, а далее уже вход по сохраненной сессии.
источник