Как скрыть открытый ключ на андроид? - PullRequest
4 голосов
/ 11 апреля 2011

Руководство по безопасности Android гласит, что хранить открытый ключ (используемый для Android-маркета) небезопасно в виде строки, и его следует каким-то образом скрывать / кодировать. Может кто-нибудь дать мне пример того, как это можно сделать?

(у меня нет отдельного сервера, поэтому его нельзя хранить там)

Upd. Поверьте, это довольно распространенная задача не только для Android, но и для других приложений.

Ответы [ 3 ]

1 голос
/ 13 июня 2012

Соответствующий текст со страницы , на которую вы ссылаетесь , выглядит следующим образом:

Внимание!как целая буквальная строка.Вместо этого создайте строку во время выполнения из кусочков или используйте битовую манипуляцию (например, XOR с какой-либо другой строкой), чтобы скрыть фактический ключ.Сам ключ не является секретной информацией, но вы не хотите, чтобы хакер или злоумышленник мог легко заменить открытый ключ другим ключом.

Это почти все, что вам нужно знать.Люди, знающие ваш открытый ключ, не причинят вреда, здесь потенциальный вред заключается в том, что кто-то заменяет открытый ключ в вашей программе своим собственным, пытаясь перенаправить покупки в приложении на свой собственный аккаунт.

ОниПредполагая, что вы сделаете это более сложным для этого злоумышленника, храня ключ в отдельных частях или XOR ключа с другой строкой.Теперь, вместо того, чтобы просто вставить свой ключ поверх вашего, они должны выяснить, какие преобразования вы делаете со строкой, и сделать так, чтобы их собственный ключ соответствовал этому шаблону.Это больше работы и может отпугнуть случайных злоумышленников, но не помешает тому, кто действительно настроен.

0 голосов
/ 13 июня 2012

В открытом ключе вы можете его хешировать и сохранить как хеш-значение.Еще лучше было бы посолить хеш-значение чем-то, что вы знаете, когда вам нужно вернуть хеш-значение.Может быть что-то вроде имени пользователя или ESN.Посмотрите на android.telephony.TelephonyManager.getDeviceId ()

0 голосов
/ 11 апреля 2011

Если вы используете утилиту Keytool, это все для вас.Вы получите файл .keystore на вашем локальном компьютере, содержащий ваши закрытые ключи, которые зашифрованы паролем;держите этот файл и пароль в секрете, и вы в безопасности.

http://developer.android.com/guide/publishing/app-signing.html

На самом деле я считаю, что плагин Android для Eclipse даже делает все это автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...