2015-06-16 9 views
6

Sto creando un SDK in cui richiedo di prendere l'ID app e la chiave segreta dell'app dall'app che integrerà il mio SDK Android.Qual è il ruolo della chiave app e della chiave segreta in ogni SDK

Vedo che ogni SDK utilizza questo ID app di concetto e la chiave segreta. Non so a cosa serve questo? In che modo questo sistema è sicuro?

Qualcuno può aiutarmi su questo argomento.

risposta

5

ID app e chiave segreta sono due cose diverse. Lasciatemi provare ad affrontare entrambi separatamente e poi legarli insieme.

App ID

App ID è semplicemente un marchio di identificazione univoco per un app. Questo per evitare sovrapposizioni nell'App Store e sul tuo dispositivo. Se due app hanno lo stesso ID app, è possibile installarne una sopra l'altra, cancellando in modo efficace quella precedente e magari dirottando i dati. L'ID app è solo il primo passo per SECURITY. Per garantire che non vi sia assolutamente alcun modo per lo scenario sopra descritto, usiamo la chiave segreta.

chiave segreta

La chiave segreta è un'implementazione di sicurezza, di solito per la crittografia asimmetrica. Diamo uno sguardo alla definizione di Wikipedia di crittografia asimmetrica:

crittografia a chiave pubblica, noto anche come crittografia asimmetrica, è una classe di protocolli crittografici basati su algoritmi che richiedono due tasti separati, uno dei quali è segreto (o privato) e uno dei quali è pubblico. Sebbene differenti, le due parti di questa coppia di chiavi sono collegate matematicamente.

La chiave segreta fa parte di una coppia di chiavi, l'altra è la chiave pubblica. La chiave pubblica, come suggerisce il nome, è apertamente disponibile al pubblico. La chiave segreta dovrebbe idealmente essere disponibile solo per una persona.

La coppia di chiavi viene utilizzata per aprire un lucchetto, nel tuo caso per "sbloccare" le app. Ogni app ha un blocco unico asimmetrico. Un blocco asimmetrico può essere bloccato con una chiave segreta e aperto con la chiave pubblica o viceversa. Lo scopo è IDENTIFICAZIONE. Solo una persona può avere la chiave segreta. Quindi qualsiasi app di questa persona, sappiamo che proviene sicuramente da quella persona e non da qualche hacker/fonte dubbiosa. Questo è il motivo per cui la chiave segreta è importante.

Quindi, questi due concetti funzionano mano nella mano per offrirti una maggiore sicurezza. Quando usi le API, a volte non hai bisogno della chiave segreta, ma solo dell'ID app in modo che il servizio principale che utilizzi API sappia quale prodotto esatto stai utilizzando.

+0

Ma chiunque può ottenere la chiave segreta (chiave privata) dopo aver decompilato l'apk, quindi come può essere sicuro? –

+0

@Williams Due cose. 1. Come/quale programma stai usando per decompilare l'apk e ottenere la chiave segreta? 2. Per prima cosa tratterò questo punto;) Le persone – bernlim

+0

usano dextojar come https://github.com/pxb1988/dex2jar e possono vedere la tua chiave segreta dal codice sorgente –

2

Fondamentalmente è utilizzato per l'autorizzazione. Ciò consente in cambio ai creatori di SDK un maggiore controllo sui propri utenti. Mi vengono in mente un paio di motivi per cui uno SDK richiederebbe un'autorizzazione:

  • attacchi di spam Prevenire/blocchi sui server che l'SDK possibilmente collega a
  • limitare l'uso del SDK
  • Traccia l'uso per statistiche (esfrequenza d'uso)
Problemi correlati