Se Offload di verifica a un server remoto, penso che il processo sarà qualcosa del tipo:Android in-app di verifica di fatturazione
Android Market Application Remote Server
|--------IN_APP_NOTIFY------->| |
| |-----nonce----->|
| |<----nonce------|
|<-GET_PURCHASE_STATE_CHANGED-| |
|---PURCHASE_STATE_CHANGED--->| |
| |--verification->|
| |<-verification--|
Se ho capito bene, il nonce è quello di ridurre la vulnerabilità attacco di riproduzione e la verifica è quello di ridurre la vulnerabilità spoofing. Inoltre, il motivo per cui i documenti consigliano di scaricare l'elaborazione della sicurezza è che la fase di verifica richiede l'accesso alla chiave pubblica del publisher Android Market e l'obiettivo del server remoto è quello di impedire che tale chiave venga inclusa/calcolata nel mio codice.
Prima domanda, esiste un motivo di sicurezza per il server remoto che esegue la generazione/controllo nonce? Premendo il passaggio di verifica è fatto correttamente, avremmo trovato dal server remoto se il messaggio è stato falsificato. Quindi mi sembra che il nonce sia lì solo per rilevare qualcuno che ritrasmette l'IN_APP_NOTIFY.
Seconda domanda, perché è importante se la nostra chiave pubblica è una stringa letterale? I documenti dicono, "non vuoi rendere più facile per un hacker o un utente malintenzionato sostituire la chiave pubblica con un'altra chiave". Non sono sicuro di come qualcuno possa sfruttare la mia app anche se fosse in grado di modificare il file binario per includere una chiave pubblica dannosa senza dover abbandonare l'app.
Terza domanda, non avrò tutti questi stessi problemi cercando di verificare la verifica dal mio server remoto (ad esempio, memorizzando la chiave pubblica sul mio server remoto nell'applicazione)?
Quarta domanda, è tutta questa sicurezza extra per nulla se voglio memorizzare i risultati di questa verifica di acquisto sul telefono (cioè non voglio dover verificare lo stato dell'acquisto del contenuto sbloccato ogni volta che un utente accede al contenuto)?
Ciao, ho incontrato tutte le stesse domande dopo aver avviato la fatturazione in-app. Penso che lo schema che hai trovato sia corretto (per quanto ho capito ora). Hai acquisito ulteriori informazioni da dicembre? – user291701