2010-04-23 59 views
1

傳遞需要私鑰的Adobe Air應用程序以便與某些在線API進行通信的最佳做法是什麼?如何保護Adobe Air Apps中的敏感密鑰?

Adob​​e Air應用程序看起來好像是用完整的源代碼交付給用戶的,所以在源代碼中存儲任何密鑰都是一個非常糟糕的主意。我已經閱讀了一些建議,稱要從服務器上下載密鑰,但這也有同樣的問題,因爲允許下載的URL必須存儲在源代碼中。此外,建議存儲在加密本地存儲中的建議也對我沒有意義,因爲我仍然必須以某種方式獲得私鑰。

回答

-1

我想這是在任何應用程序提供密鑰的一個全球性的問題,因爲一切都可以逆向工程(disasamble可執行文件,IL閱讀器等)

不管你做什麼,如果客戶端應用程序需要以某種方式「知道」一個密鑰,然後用戶可以知道該密鑰。

假設:

  1. 您提供產品(「客戶端應用程序」),這relys一些第三方網絡服務(以下簡稱「服務」)。
  2. 貴公司只有一個使用該服務的密鑰(「公司密鑰」)。
  3. 公司關鍵絕不能暴露(由於可能被濫用)
  4. 由客戶端應用程序通過持有或發送一條報警信息暴露

一個解決方案可能是使用一些代理:

  1. 代理實現服務
  2. 客戶端應用程序連接到代理
  3. 代理連接到S的API ervice使用該公司的關鍵
  4. 代理代表所有呼叫從客戶機到服務,反之亦然
+0

非常感謝。我也有這些想法,但認爲可能有一些我沒有想過的標準實踐。通過爲代理添加安全性,確保您的密鑰只能由授權用戶使用。 我在Twitter API上發現了這個相關的討論,以及它們如何轉向只允許OAuth:http://twitter.pbworks.com/oauth-desktop-discussion – 2010-04-23 14:54:41

+0

非常真實,代理本身應該受到保護。其主要思想是,如果您無法更改第三方服務的安全方案,那麼您可以使用代理實現您要實施的安全方案。 – 2010-04-23 14:57:07

+0

Downvoters:照顧自己解釋一下嗎? – 2010-04-27 08:20:53