2015-06-16 53 views
6

我正在構建SDK,其中我需要從應用程序獲取應用程序ID和應用程序密鑰,這將集成我的Android SDK。每個SDK中的應用程序密鑰和密鑰的作用

我看到每個SDK都使用這個概念的應用程序ID和密鑰。我不知道這是什麼用途?這是如何使系統安全的?

任何人都可以幫助我解決這個問題。

回答

5

應用程序ID和密鑰是兩個不同的東西。讓我試着分別解決這兩個問題,然後將它們聯繫在一起。

應用ID

應用程序ID是簡單地爲應用的唯一標識標籤。這是爲了避免App Store和設備上的重疊。如果兩個應用程序具有相同的應用程序ID,則可以將其中一個安裝在另一個之上,有效地擦除舊應用程序,並可能劫持您的數據。應用程序ID只是SECURITY的第一步。爲了確保上述情況絕對沒有發生,我們使用密鑰。

保密密鑰

的密鑰是一個安全的實現,通常用於非對稱加密。讓我們來看看非對稱加密維基百科的定義:

公鑰加密,也被稱爲非對稱加密,是一類基於算法需要兩個獨立的按鍵,其中一個是祕密的密碼協議(或私人),其中之一是公開的。雖然不同,但這個密鑰對的兩個部分在數學上是連接的。

密鑰是一對密鑰的一部分,另一個是公鑰。顧名思義,公鑰就公開向公衆開放。理想情況下,祕密密鑰只適用於一個人。

這對鑰匙是用來打開一個鎖,在你的情況下'解鎖'的應用程序。每個應用程序都有一個獨特的不對稱鎖。不對稱鎖定或者用祕密密鑰鎖定,並用公鑰打開,反之亦然。目的是IDENTIFICATION。只有一個人可以擁有密鑰。所以,這個人的任何應用程序,我們知道絕對是來自那個人,而不是一些黑客/懷疑的來源。這就是爲什麼密鑰很重要。

因此,這兩個概念可以攜手合作,爲您帶來更好的安全性。當您使用API​​時,您有時不需要密鑰,而只需要應用程序ID,因此您正在使用API​​的主要服務知道您使用的是哪個確切產品。

+0

但是任何人都可以在反編譯apk後獲得密鑰(私鑰),然後如何才能保證安全? –

+0

@威廉姆斯兩件事。 1.您如何使用哪個程序來反編譯APK並獲得密鑰? 2.我會先保留這一點;) – bernlim

+0

人們使用像https://github.com/pxb1988/dex2jar這樣的dextojar,並且可以從源代碼 –

2

基本上它用於授權。作爲回報,SDK開發人員可以更好地控制用戶。我能想到的幾個原因的SDK將需要授權:

  • 的SDK可能連接到
  • 限制使用SDK
  • 跟蹤使用的服務器上防止/阻止垃圾郵件攻擊爲統計(例如使用頻率)
相關問題