Как защитить чувствительные ключи в приложениях Adobe Air? - PullRequest
1 голос
/ 23 апреля 2010

Каковы наилучшие практики для доставки приложения Adobe Air, которому необходим закрытый ключ для взаимодействия с некоторым онлайн-API?

Похоже, что приложения Adobe Air доставляются пользователю с полным исходным кодом, поэтому хранение любых ключей в исходном коде было бы действительно плохой идеей. Я прочитал несколько предложений о том, чтобы загрузить ключ с вашего сервера, но это та же проблема, потому что URL, разрешающий загрузку, должен быть сохранен в исходном коде. Кроме того, предложения о том, чтобы хранить в зашифрованном локальном хранилище, также не имеют смысла для меня, потому что мне все равно нужно как-то получить закрытый ключ.

1 Ответ

0 голосов
/ 23 апреля 2010

Я думаю, что это глобальная проблема доставки секретных ключей в любое приложение, поскольку все может быть подвергнуто обратному инжинирингу (отключено для исполняемых файлов, читателей IL и т. Д.)

Независимо от того, что вы делаете, есликлиентское приложение должно каким-то образом «знать» секретный ключ, тогда пользователь может знать секретный ключ.

Предполагая, что:

  1. Вы поставляете продукт («клиентское приложение»), которыйполагается на какой-либо сторонний веб-сервис («сервис»).
  2. Ваша компания имеет только один секретный ключ («ключ компании») для использования сервиса.
  3. Ключ компании никогда не должен бытьподвергается (из-за возможного злоупотребления)
  4. Каждый фрагмент информации, хранимой или передаваемой клиентским приложением, подвергается воздействию

Решением может быть использование некоторого прокси:

  1. Прокси-сервер реализует API службы
  2. Клиентское приложение подключается к прокси
  3. Прокси-сервер подключается к службе с помощью ключа компании
  4. Делегат проксиВсе звонки от клиента к сервису и наоборот
...