client HTTPS "accoppiamento"

1

Sono stato reindirizzato qui da SuperUser, spero che la domanda sia appropriata.

Devo limitare l'utilizzo di un determinato sito a un numero limitato di clienti.

Inoltre, in realtà: vorrei consentire l'accesso da un numero limitato di dispositivi fisici (Win + Android).

Questo significa che dovrei generare certificati "dispositivo bloccato".

Qual è il modo migliore per generare e distribuire tali certificati?

Nota che:

  • La soluzione non dovrebbe essere specifica per il browser (se possibile, IE, FFox e Chrome sono minimi)
  • Il browser deve combinare il certificato con alcune impronte digitali dell'hardware prima di provare a utilizzarlo.
  • Non mi interessa se il certificato è invalidato dall'aggiornamento del sistema (sto perfettamente bene emettendone uno nuovo ... e cancellando il vecchio).
  • Il controllo dovrebbe essere eseguito "lato server".

Un commento SuperUser dice:

There is no binding of a certificate to a hardware.
If you want this you need to use certificates which 
are integrated into the hardware and cannot be extracted 
from there, i.e smartcards.

Le smartcard non sono una soluzione praticabile per me, ma potrebbe essere utilizzata una specie di equivalente USB, se necessario, a condizione che i dispositivi siano abbastanza economici (pochi USD / ciascuno).

In alternativa, potrei richiedere al browser di inviare alcune informazioni e provare a convalidare il Cliente per lì (qualcosa di simile a link accoppiato con un certificato personalizzato ). Funzionerebbe? In tal caso: di cosa avrei bisogno? Ci sono librerie che eseguono controlli simili sul lato server?

Ho cercato le "Domande simili" suggerite, ma non ho trovato qualcosa che assomigliasse al mio problema.

    
posta ZioByte 09.12.2015 - 00:10
fonte

3 risposte

2

Ciò di cui hai bisogno è HTTPS con autenticazione reciproca (il client autentica il server in base al suo archivio di certificati attendibili e il server autentica il client richiedendo un certificato client).

Dovresti inserire la chiave per il certificato client su una smart card o HSM equivalente in modo che non possa essere rubata se la macchina client è compromessa - non c'è altro modo. Se la tua incapacità di utilizzare le smart card è perché i client non hanno lettori, ci sono lettori USB disponibili. Ci sono anche lettori a forma di pendrive che prendono una mini smart card (lo stesso fattore di forma di una carta SIM) in modo da poter ordinare le tue carte PKI in quel formato e l'intera soluzione sembrerà proprio come un flash drive.

I lettori di schede funzionano bene con la maggior parte dei sistemi operativi, tra cui Windows, Mac, Linux e persino Android tramite una generica API USB ( devi fare in modo che la tua app personalizzata parli con il lettore, il sistema operativo non fornisce una libreria per questo).

Potresti utilizzare i certificati nel software, ma il materiale chiave sarà a rischio di essere rubato tramite malware, quindi una soluzione hardware è sicuramente più sicura.

Per i dispositivi BYOD, potrebbero essere già stati compromessi e una soluzione hardware non ti proteggerà completamente da un utente malintenzionato che utilizza la chiave maliziosamente mentre l'HSM o la scheda è inserita.

    
risposta data 10.12.2015 - 09:17
fonte
0

Mi spiace: basta rileggere la domanda e il fatto che sia di nuovo accesso al sito web, quindi ignorare la risposta di seguito (a meno che non si voglia ottenere informazioni sull'hardware con Java o qualcosa del genere).

Per quello che vale, Maplesoft (i venditori del programma di algebra simbolico Maple) gestiscono una situazione simile utilizzando un processo di attivazione online che genera un file di licenza legato all'indirizzo MAC del computer (e forse qualche altra informazione, ma MAC è il principale cosa).

L'acquirente riceve un codice che viene utilizzato per attivare, quindi la convalida / registrazione / revoca sul lato server e / o il conteggio di quante attivazioni l'acquirente ha fatto (acquisti tipici, ad esempio università, consentire più attivazioni per chiave) è possibile all'attivazione.

Il file di licenza viene controllato in fase di esecuzione, quindi lo spostamento dell'hardware non ti consente di utilizzare più copie di quelle che hai acquistato. La clonazione o semplicemente la modifica dell'indirizzo MAC su un altro dispositivo potrebbe, ma ci dovrebbero essere altre informazioni incorporate nel codice hash del file di licenza per impedirlo. O semplicemente rendere ogni chiave di attivazione utilizzabile una sola volta.

Le alternative come le smart card sono noiose per l'utente (e richiedono una distribuzione fisica). Se l'indirizzo MAC di un dispositivo Android è accessibile da un'app che non conosco, tuttavia, ma forse hanno un identificatore di dispositivo univoco (UUID) come gli iPhones che potrebbero essere usati al loro posto.

    
risposta data 10.12.2015 - 12:53
fonte
-1

Utilizza alcune VPN ricche di funzionalità. Ciò di cui hai bisogno non può essere reso portabile solo con browser + sistema operativo. Ci sono molte VPN che soddisfano le tue esigenze, in particolare la parte hardware / smartcard e il supporto Android.

La maggior parte delle VPN può essere configurata per applicarsi a un solo indirizzo IP (o pochi indirizzi IP) e consentire il traffico non protetto al resto, se non si vuole infastidire i client interrompendo il resto delle loro connessioni.

    
risposta data 09.12.2015 - 10:44
fonte

Leggi altre domande sui tag