Скрыть значение секретного ключа Air app - PullRequest
4 голосов
/ 28 июня 2011

Я создаю проект Air (AS3). Это будет иметь собственную систему защиты. Все данные с сервера в приложение и обратно зашифрованы. Я использую секретный ключ, который прописан в серверных скриптах и ​​в приложении. Если хакер декомпилировал приложение, он может узнать секретный ключ. Секретный ключ - это строка (константа). Я не хочу делать запутывание для моего заявления.

Как я могу скрыть этот секретный ключ? Могу ли я запутать только это? Могу ли я запутать отдельный класс AS3 секретными данными, а затем при необходимости получить доступ к нему из основного кода?

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

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

После согласования симметричного ключа его можно использовать длязашифровать / расшифровать ваши данные для транзита.Конечно, возникает вопрос, почему вы просто не используете SSL?Это дает вам сквозное шифрование между клиентом и сервером.

Конечно, злоумышленник все равно может извлечь ключ дешифрования из ОЗУ, когда приложение работает в их системе.Таким образом, они могли бы расшифровать данные между приложением, которое они запускают, и сервером, но не смогли бы расшифровать данные, передаваемые другими пользователями приложения (потому что у каждого из них свой ключ).

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

1 голос
/ 28 июня 2011

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

...