SSL vs Crittografia

3

Sto lavorando alla creazione di un'applicazione mobile Android che deve connettersi a un server di volta in volta. L'applicazione fa uso di dati sensibili che non vorrei mettere nelle mani sbagliate.

Finora sono stato in grado di trovare un modello per proteggere i dati sensibili sia sul dispositivo che sul server. Tuttavia sono ancora vulnerabile agli attacchi degli uomini nel mezzo.

Ho letto e cercato da solo e ho scoperto che posso crittografare i dati durante il trasporto utilizzando l'infrastruttura a chiave pubblica AES o posso utilizzare un certificato SSL. Ovviamente SSL sarebbe il meglio era andare, ma poi sono preoccupato per il sovraccarico di calcolo che richiederà.

Un ulteriore scavo mi ha portato a trovare RCF-SSL che è veloce e conveniente quando Google implementa questo sistema, ma una semplice ricerca rivela che i dati crittografati con RCF possono essere facilmente decriptati da hacker dedicati.

Quale sarebbe il metodo preferito per la sicurezza del trasporto e perché? Se è SSL, quale strategia di crittografia è sicura, veloce, non richiede un overhead di calcolo e viene preferibilmente riconosciuta dalla maggior parte dei browser?

    
posta Princeobi007 03.07.2013 - 09:41
fonte

3 risposte

3

Utilizzando DefaultHttpClient di Android puoi stabilire una connessione HTTPS e configurarlo per fidarsi solo di determinati certificati. È abbastanza facile da usare ed è già lì. Puoi anche utilizzare SSLSocket se non hai voglia di HTTP. Il punto principale è: non creare la tua cripta .

Per quanto riguarda l'overhead, non ti preoccupare, il più delle volte è trascurabile. I tuoi dati sono sensibili e la comunicazione avverrà di volta in volta. Per quanto posso vedere, non c'è nulla contro l'utilizzo di SSL qui.

    
risposta data 03.07.2013 - 23:29
fonte
1

La migliore soluzione per la sicurezza del trasporto è TLS / SSL. È supportato per impostazione predefinita e il sovraccarico è minimo. Supporta anche l'autenticazione implicita.

Se vuoi che gli utenti si fidino SOLTANTO dei tuoi server, allora puoi creare il tuo certificato CA che distribuisci con la tua app e che istruisci la tua app da utilizzare come unica fonte di fiducia. Quindi puoi firmare i tuoi certificati server con quel certificato CA personalizzato. È inoltre possibile eseguire l'autenticazione del client firmando un certificato client con la stessa CA che è possibile distribuire agli utenti delle app utilizzando qualsiasi strategia scelta.

Come accennato altrove, basta usare le utilità fornite dalla piattaforma. Se stai pensando a protocolli di crittografia specifici, quasi certamente stai sbagliando.

    
risposta data 04.07.2013 - 03:50
fonte
0

La linea inferiore usa SSL e educa i tuoi utenti. Se desideri la massima protezione, utilizza Extended Validation ma paghi un premio per questo. L'SSL può ancora essere vulnerabile a un uomo nell'attacco intermedio se l'utente fa clic sull'avviso. I browser moderni fanno un lavoro un po 'migliore di spaventare le persone nel non accettare un certificato non valido, ma molte volte continueranno a fare clic. Assicurati di educare i tuoi utenti. Mostra loro come appare un CERT cattivo e in nessuna circostanza accettalo.

Se i dati sono così sensibili e non si vuole rischiare che facciano gli utenti VPN nella rete prima che possano accedere al sito e utilizzare comunque SSL per ogni evenienza.

    
risposta data 04.07.2013 - 04:16
fonte

Leggi altre domande sui tag