Безопасный жесткий код пароля в мобильном приложении - PullRequest
3 голосов
/ 25 июля 2011

У меня есть веб-сервер, который создает QR-код, который [имя пользователя] + md5 хэш [имя пользователя] [пароль].Где [username] - пользователь, вошедший в данный момент.Где [пароль] - системный пароль, установленный мной и общий для веб-сервера и приложений.

Приложение для Android / iPhone / BlackBerry / Windows отсканирует этот QR-код и будет использовать [имя пользователя], указанное в QR-коде.код для хеширования с [паролем], который сообщит мне, что QR-код поступил с моего сервера.

Очевидно, что если кто-то завладеет [паролем], то он может создать QR-коды, которые не пришли из моего Интернетасервер.Так есть ли способ безопасно хранить [пароль] в моем приложении или кто-то может декомпилировать .apk и найти его в classes.dex?

Ответы [ 3 ]

9 голосов
/ 25 июля 2011

Вы можете каким-то образом запутать пароль, но в конечном итоге это только безопасность через неизвестность.Кто-то, кто хотел, наверняка может перепроектировать его.

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

0 голосов
/ 25 июля 2011

Я не уверен насчет других платформ, но если вы положите свой пароль жестко закодированным в виде открытого текста на Android, они получат его очень легко.Другие платформы могут потребовать более продвинутых методов.Вы можете хешировать пароль с помощью более продвинутого алгоритма хеширования, чтобы они не получали исходный пароль, но из того, что вы сказали, вы не хотите, чтобы они создавали «поддельные» QR-коды.

Краткий ответ:нет, потому что все можно как-то взломать, если оно на стороне клиента.

0 голосов
/ 25 июля 2011

Нет.

Если кто-то достаточно мотивирован, он сможет реконструировать жестко запрограммированный пароль.

...