Sicurezza del client tramite UDP

2

Introduzione

Attualmente sto provando a creare un livello di rete per Unity da zero. Attualmente sto testando la comunicazione tramite UDP usando Node.js per il server e il client. Comunque credo che il linguaggio dell'implementazione non abbia importanza per quello che chiedo.

In realtà, leggo solo cose relative alla sicurezza sul lato server. Ma a causa della necessità che altre persone mi aiutino a testare ciò che sto creando, ho davvero bisogno di essere sicuro che non saranno danneggiati in alcun modo.

Approccio attuale

L'approccio attuale che utilizza Node.js per il server e il client è piuttosto semplice. Semplicemente invio un messaggio da un client al mio server mentre il client e il server non si trovano nella stessa rete locale. Entrambi sono dietro un router e quindi anche dietro un NAT.

Il server quindi restituisce una risposta all'IP e alla porta ricevuta all'interno del pacchetto UDP inviato dal client.

Problema

Sono curioso della sicurezza sul lato client dei dati malevoli inviati da qualcuno che sta spoofing il client e / o il NAT. Inoltre non sono sicuro se il fatto che la mia applicazione stia aprendo le porte sulle macchine e sui router dei client potrebbe essere usato per qualcosa di malevolo.

Assunzione

Finora ho capito che i dati dannosi potrebbero essere di fatto un problema a livello di applicazione. Inoltre ho capito che non si tratta di un problema di sicurezza quando la mia applicazione apre le porte (localmente sul computer client e quindi quando si invia all'interno del router client) o almeno non posso fare nulla contro di esso.

Quindi in sintesi ciò significherebbe che ho solo bisogno di proteggere il client su livelli OSI superiori a 4 (all'interno dell'applicazione). Tutto ciò che è inferiore o uguale al livello OSI 4 non deve essere reso più sicuro da solo.

Domanda

Quindi la mia ipotesi è corretta? In caso affermativo, cosa posso fare contro i dati dannosi?

    
posta David Michael Huber 27.03.2017 - 22:01
fonte

1 risposta

1

Questo dovrebbe essere un commento, ma è un po 'lungo.

security on the client side

... è totalmente dipendente dall'applicazione stessa (che, nel contesto della domanda, non è necessario conoscere / discutere) e il firewall / NAT (di cui non ci hai detto nulla).

I figured out that it is not a security issue when my application opens ports

Davvero? Aumentare la superficie di attacco non influisce sulla sicurezza?

or at least I cannot do anything against it

Prova più difficile.

Il fatto di utilizzare UDP su una WAN o su Internet (tra 2 punti fissi) implica che:

1) l'applicazione utilizza pochissima larghezza di banda

2) bassa latenza è fondamentale

Quindi, TLS o una fase di autenticazione basata su challenge comprometterebbero questi 2 requisiti. Ciò implica piuttosto che dovresti utilizzare un one-pad sia per autenticare le richieste che per proteggere contro MITM.

    
risposta data 28.03.2017 - 13:05
fonte

Leggi altre domande sui tag