Quanto è sicuro il login basato su IP?

8

Da diversi libri e siti di sicurezza comprendo che la sicurezza basata su IP (con cui intendo: l'utente è verificato solo per indirizzo IP) è una cattiva idea. Uno dei motivi è ovvio, più utenti reali possono utilizzare lo stesso indirizzo IP.

La nostra idea non è nuova: vogliamo una convalida una tantum e da quel momento in poi consentire a qualsiasi computer in un determinato intervallo IP di accedere ad un sito web con un leggero montaggio (si consideri: tutti i dipendenti di un'azienda che si trovano all'interno tale intervallo). Inoltre, vogliamo essere in grado di configurarlo in anticipo sul server ricevente.

  • Capisco che sia possibile e facile falsificare un indirizzo IP
  • Un indirizzo IP falsificato non può ricevere una risposta dal tuo server
  • Quando dietro un proxy o un router, esiste un modo correlato che mi consente di identificare l'utente / il sistema di origine originale, ad esempio qualcosa di simile all'header X-Forwarded-For HTTP?

Sono particolarmente interessato al secondo elemento. Secondo Wikipedia, è molto difficile ma non impossibile catturare il pacchetto di risposta di un indirizzo IP falsificato. Tuttavia, non specifica cosa è necessario.

Che cosa consiglieresti se il requisito fosse di poter configurare questo basato su IP (o relativo)?

    
posta Abel 29.03.2012 - 20:02
fonte

3 risposte

6

No. Questo probabilmente sarà debole. Inoltre, in alcuni casi lo spoofing IP è molto più semplice di quanto la tua domanda indichi. Ad esempio, se l'utente effettua il login tramite connessione WiFi aperta, è facile eseguire un attacco man-in-the-middle o falsificare l'indirizzo IP dell'utente.

Non è presente un'intestazione Forwarded-By aggiunta quando un router inoltra un pacchetto IP. Non esiste un'intestazione che ti aiuti a rilevare lo spoofing IP.

Vedi anche In quali scenari si basa sull'indirizzo IP di origine come controllo di sicurezza accettabile / inaccettabile? .

Se desideri una convalida una tantum, ti suggerisco di impostare un cookie persistente sicuro sul browser dell'utente (dopo averlo autenticato) in modo che tu possa riconoscerli nuovamente in futuro. Ciò eliminerà la necessità per loro di condurre un'altra fase di autenticazione in futuro, a patto che continuino a utilizzare la stessa macchina e il medesimo browser.

    
risposta data 29.03.2012 - 21:10
fonte
9

Prima di tutto, devo sottolineare che l'indirizzo IP mai può essere usato per autenticare un utente , può essere usato solo per (tentare di) validare un < em> host . Anche se l'indirizzo IP fosse perfettamente collegato a un computer esatto su una porta di rete esatta, non avremmo ancora alcuna garanzia che un determinato utente fosse alla console di quel computer in quel momento. Quindi, se stai cercando di assicurarti che le risorse che stai proteggendo possano essere accessibili solo da un particolare utente , devi eseguire un'autenticazione di livello utente di qualche tipo.

Ora può darsi che tu voglia limitare l'accesso solo alle persone che lavorano in una determinata azienda o che frequentano una certa scuola o che vivono in una determinata casa. Quindi ritieni che la validazione solo IP valga il rischio aggiuntivo. Anche in questo caso, non puoi garantire che i tuoi dati stiano andando nel posto giusto.

Un esempio di wireline che posso pensare è questo. Diciamo che sono un abbonato internet via cavo e voglio intercettare il traffico IP del mio vicino. Il nostro fornitore di servizi via cavo utilizza DHCP per assegnare gli indirizzi a noi da un pool di indirizzi riservati per l'indirizzamento IP dinamico. Concettualmente, posso intercettare il suo indirizzo scoprendo il suo indirizzo IP; scoprire il suo indirizzo MAC; impostando il mio indirizzo MAC come clone del suo indirizzo MAC; riavviare il modem via cavo (ad esempio interrompendo l'alimentazione o il cavo di casa sua); emettere una richiesta DHCP.

Poiché molti server DHCP di solito cercano di assegnare ai MAC lo stesso IP che avevano in precedenza, il fornitore di servizi via cavo assegnerà il tuo IP a me. Ora questo non funzionerà per sempre - il fornitore di servizi via cavo alla fine vedrà una collisione dell'indirizzo IP e indagherà sul problema. Ma a quel punto potrei aver già rubato i tuoi dati.

    
risposta data 29.03.2012 - 21:12
fonte
-1

A spoofed IP address cannot receive an answer from your server

Questo è vero al 100%. La risposta a un TCP non può essere inviata se l'indirizzo IP non è effettivamente l'indirizzo IP valido.

When behind a proxy or router, is there a related way that allows me to identify the user, i.e. some Forwarded-By (or what's it called) header?

Non capisco lo scopo di questa domanda. Se sei dietro un router, l'indirizzo IP dell'utente è ciò che l'hardware l'ha assegnato. Quindi qualsiasi informazione di identità sarebbe quella informazione e non le informazioni reali che chiunque altro vedrebbe al di fuori della tua rete.

What would you recommend provided the requirement is to be able to configure this IP-based (or related)?

Che cos'è esattamente il requisito?

I'm particularly interested by the second item. According to Wikipedia, it is very hard but not impossible to catch the answer packet of a spoofed IP address. It doesn't specify what's needed though.

Ciò richiede che tu sia tra il server e il client. Altrimenti tutte le risposte vanno effettivamente all'indirizzo IP sul quale il server pensa di dover andare, e dato che in realtà non hai quell'indirizzo IP, non riceverai quell'indirizzo ip. Trovandoti nel mezzo, ricevi il pacchetto (in realtà tutti i pacchetti è un'altra cosa tutti insieme) e sei in grado di rispondere a detto pacchetto.

Altrimenti alla fine il server vorrà che qualsiasi connessione TCP si dimentichi di te.

Una volta che ogni singolo dispositivo elettronico connesso a Internet ha un indirizzo IPv6 POTRAI essere in grado di utilizzare un indirizzo IP per verificare un "dispositivo" ma non indicare mai l'utente stesso. È improbabile che ciò accada mai per molte ragioni. IPv4 è in circolazione da 20-30 anni, il che significa che ci sono ancora più indirizzi IPv6, quindi dispositivi realizzati in quel momento però: $

    
risposta data 29.03.2012 - 21:13
fonte

Leggi altre domande sui tag