Come utilizzare HTTPS per server il cui IP e nome di dominio cambiano, potenzialmente frequentemente?

2

Abbiamo dispositivi (pensiamo a "Internet of Things") su cui è installato un server HTTP. Questi dispositivi possono cambiare il loro IP e il nome di dominio abbastanza frequentemente (o non hanno alcun nome di dominio). Hanno un GUID però.

I client che comunicano con questo server HTTP non sono tutti sotto il nostro controllo: potrebbero essere browser comuni.

C'è un modo per utilizzare HTTPS in questa situazione, senza forzare l'utente a

  • Accetta un certificato non valido
  • Aggiungi la nostra CA al loro negozio di fiducia
  • Fai qualcos'altro che sembra strano?

La risposta cambia se abbiamo il controllo sul client (un'app)?

In passato questo problema è stato risolto utilizzando un server in Internet a cui sono collegati sia il client che il dispositivo e quali messaggi inoltrati.

    
posta Jost 05.11.2015 - 08:19
fonte

1 risposta

1

Il certificato viene utilizzato per verificare che un client stia parlando con l'endpoint previsto e non con un approccio man-in-the-middle. Se l'indirizzo IP e il nome host cambiano di frequente, ciò significa che non possono essere utilizzati per l'identificazione.

... not all under our control - they might be common browsers.

I browser si aspettano di avere un nome host costante, anche se i certificati erano un'eccezione esplicita. Pertanto, i browser comuni non possono essere utilizzati se il nome host cambia frequentemente.

Does the answer change if we have control over the client (an app)?

In questo caso è possibile utilizzare il blocco di certificati / chiave pubblica, ovvero l'applicazione non si aspetta che un certificato sia firmato da una CA affidabile in cui il certificato corrisponda al nome host ma invece si aspetta un certificato specifico o almeno una chiave pubblica specifica. Ovviamente questa aspettativa deve essere codificata nell'applicazione.

Un'altra opzione potrebbe essere quella di aggirare il problema della modifica dei nomi host fornendo il proprio servizio DNS e fornendo nomi host costanti all'interno del proprio dominio (ad esempio foobar.customer.example.com ). Ma questo richiederebbe che ogni dispositivo annunci qualsiasi modifica del nome host al tuo server DNS in modo che l'alias CNAME appropriato possa essere configurato e che i client abbiano bisogno di una connessione Internet per connettersi al dispositivo anche se il dispositivo si trova nello stesso rete locale.

    
risposta data 05.11.2015 - 09:23
fonte

Leggi altre domande sui tag