Devo crittografare i dati inviati tramite intento Android?

6

Voglio sviluppare due app Android che comunicano tramite intents (sullo stesso dispositivo).

Quando le due app trasferiscono dati riservati, dovrebbero crittografarli?

O il sistema operativo Android garantisce (o almeno cerca di garantire) che i dati di intenti non siano visti da nessuno tranne mittente e destinatario?

Naturalmente, supponiamo che l'utente selezioni sempre la mia app come destinatario dell'intento.
Diciamo anche che sono installate entrambe le app, che dovrebbero prevenire il dirottamento dello spazio dei nomi.

    
posta Nicolas Raoul 31.03.2014 - 07:06
fonte

1 risposta

4

No, il sistema operativo Android non garantisce che i dati delle intenzioni non vengano visti da nessuno. Qualsiasi app dannosa che implementa il filtro intent è in grado di ricevere il messaggio e quindi acquisire i dati sensibili. La crittografia dei dati è una buona idea, ma assicurati che:

  1. la chiave utilizzata per la crittografia non è memorizzata sulla scheda SD.
  2. non stai codificando la chiave nell'app in quanto è molto banale ottenere la sorgente dall'apk.

Inoltre, assicurati che solo le app che sono destinate a ricevere il messaggio (tramite intenti) ricevano l'intento e che nessun'altra app sia in grado di ricevere tale intenzione. Se si desidera comunicare dati riservati e se si conoscono i nomi delle classi che le app comunicheranno tramite intenti, è possibile garantire che solo l'app specifica riceva l'intento utilizzando il metodo setClassname() degli intent. Ad esempio:

Intent i = new Intent(); 
i.setClassName(“your.pkg.name”, “your.pkg.name.Destination”);

o lasciando che le app che hanno solo autorizzazioni specifiche ricevano l'intento. Ad esempio:

Intent i = new Intent(); 
i.setAction(“your.own.action”); 
sendBroadcast(i, “your.own.permission”);

Fonte: " Seven Ways to Hang Yourself with Google Android " (Defcon 19)

    
risposta data 31.03.2014 - 10:29
fonte

Leggi altre domande sui tag