Implementazione di RSA in un'app di messaggistica Android

2

Sto implementando la crittografia RSA su un'app Android in modo da poter inviare messaggi SMS in modo sicuro, ogni telefono avrà la sua chiave pubblica e privata generata dall'app.

Ma sono bloccato decidendo il modo migliore per memorizzare i tasti, le mie opzioni sono:

  1. Crea un keystore e tieni la chiave pubblica e privata nel keystore.
  2. Salva la chiave pubblica e privata per separare i file.
  3. Utilizza sharedpreferences per memorizzare le chiavi.

Stavo anche pensando di crittografare la chiave privata con blowfish se è appena stata salvata in un file.

Qualcuno può aiutarmi a spiegarmi qual è l'opzione più sicura?

    
posta RichardCypher 29.02.2012 - 21:24
fonte

1 risposta

1

Quindi ecco la cosa, tutti dei tre approcci che hai menzionato sono intrinsecamente insicuri per un motivo principale: se / quando la tua app viene sottoposta a reverse engineering, la chiave privata sarà essere compromesso. Questa è la natura della memorizzazione di chiavi / informazioni sensibili nelle app e non c'è nulla che tu possa fare al riguardo. Questo ovviamente significa anche che se hai hash la chiave privata in un file, beh ora che la tua app è compromessa, il reverse-hashing sarà banale.

Ora che abbiamo capito tutto, ecco cosa puoi fare (nel contesto Android). Archivia la chiave privata in SharePreferences (modalità privata) e usala come necessario. SharedPreferences in modalità privata si traduce in uno spazio di memoria separato in cui non è possibile accedere ai dati dall'utente o da altre app.

Ancora una volta, devo sottolineare che questo non è un modo sicuro per fare ciò perché i dispositivi possono essere radicati, app reverse engineering, ecc. Questo schema funziona quando hai un modo per recuperare da una violazione.

Ad esempio, se ogni utente della tua app (in qualche modo) ha una chiave privata separata e scopri che la chiave dell'utente X è stata compromessa, beh, sarebbe semplicemente questione di aggiornare X chiave privata dal server e sei sulla buona strada.

    
risposta data 01.03.2012 - 00:07
fonte

Leggi altre domande sui tag