Prevenire l'uomo in attacco medio (LAN)

3

Sto lavorando su un'applicazione di chat in un'area locale che stabilisca semplicemente la connessione tra due socket sulla LAN e procedo con la comunicazione. Ora, concentrandomi sulla sicurezza, la mia preoccupazione principale è quella di evitare che la mia applicazione provochi la fuga di dati a causa del successo dell'attacco mitm.

  • Nel web esiste la verifica del certificato, ma non ho alcun server dedicato, in quanto può essere semplicemente la comunicazione tra gli unici due nodi sulla rete.
  • La domanda più vicina era questa: Prevenire l'uomo nel mezzo attacco , ma l'aggiunta di una voce statica nella tabella ARP non è né praticabile né fattibile nel mio caso.
posta Kaustubh 06.01.2016 - 20:33
fonte

2 risposte

2

Non è possibile creare un'applicazione in modo che non sia vulnerabile agli attacchi MiTM perché questi attacchi si verificano in un livello inferiore rispetto a quello su cui si basa l'applicazione. È possibile solo proteggere la rete utilizzata dai client. Ci sono diversi contromisure disponibili. Innanzitutto hai bisogno della sicurezza della porta che impedirà molti di questi attacchi. Quindi puoi aggiungere un IDS / IPS basato sulla rete che cattura la porta del monitor del tuo switch. Ma tutto questo non verrà gratuitamente, ti costerà un po 'di soldi e molto tempo.

// La soluzione più pratica è usare la crittografia per garantire che qualcuno che esegue un attacco MiTM non sia in grado di leggere i dati che cattura. Ma anche questo non ti darà sicurezza al 100%. Il problema principale qui è che non hai un server.

Codice asincrono (simile a SSH)

Su entrambi i lati viene creata una coppia di chiavi RSA e quindi utilizzata per crittografare e decrittografare i messaggi. Quando viene stabilita la prima connessione tra due host, si salva la chiave di quell'host per identificare questo host in ulteriori sessioni. Il problema qui è che un MiTM-Attacker potrebbe interrompere la prima sessione. È quindi in una posizione in cui può iniettare i propri certificati per eseguire comunque un attacco MiTM. Questo porterà anche a un sito Web dove in altre sessioni che non vengono interrotte dall'attaccante la connessione verrà riconosciuta come non sicura perché la chiave salvata dell'hosting di opossing è in effetti quella dell'attaccante.

Il tuo problema è che non conosci la chiave del lato opossing finché non ti connetti per la prima volta. Molte aziende risolvono questo problema quando si tratta di ssh sincronizzando il ssh_known_hosts tramite un server affidabile. Non hai un server di questo tipo perché non puoi farlo qui e sei un po 'insicuro alla prima connessione.

Pre-Shared-Key

È possibile implementare la crittografia con una chiave pre-condivisa, ma il problema qui è sempre l'usabilità e il comportamento dell'utente. Quando generi una PSK per ogni connessione, la chiave deve essere scambiata. Ricorda sempre: le persone sono pigre. Manderanno il PSK via posta che è potenzialmente non criptato. Inoltre, molte persone potrebbero dire "ohh questo è complesso, userò un altro software che è facile da usare" e questo è il modo in cui le persone finiscono con un software facile da usare ma totalmente insicuro.

// Inoltre nessuna delle procedure descritte preverrà un MiTM-Attack, ma impedirà solo che l'attacco abbia successo nel modo in cui lo è stato.

    
risposta data 06.01.2016 - 20:48
fonte
0

Solo per aggiungere alla risposta di @davidb, è sufficiente una chiave simmetrica preimpostata per eseguire la comunicazione crittografata, che dovrebbe essere abbastanza semplice. Se questo non funziona, puoi utilizzare certificati firmati dalla tua CA di cui sono a conoscenza sia il client che il server e facilitare la comunicazione sicura.

    
risposta data 07.01.2016 - 00:16
fonte

Leggi altre domande sui tag