Se i certificati possono essere utilizzati per regolare l'accesso

2

Penso a un meccanismo in cui ho bisogno di autenticare il client e controllare l'accesso. Sto pensando di usare SSL per questo scopo. Voglio sapere se l'uso di SSL risolve il mio scopo.

Il mio problema è che il mio cosiddetto server ha solo una memoria limitata e potenza di elaborazione, ma in qualche modo può distribuire un SSL. Il mio client è un dispositivo mobile.

Quello che devo fare è stabilire una connessione SSL con il dispositivo incorporato. Per questo il mio dispositivo mobile deve essere autenticato prima con il dispositivo incorporato.

Le mie domande sono:

  1. Se l'autenticazione basata su certificato può farlo?
  2. Che cosa dovrebbero essere tutte le cose lì nel dispositivo incorporato?
  3. In che modo questa cosa si verifica in realtà?
  4. C'è qualche altro meccanismo che questo per un dispositivo incorporato?
posta user2315 31.05.2012 - 05:26
fonte

3 risposte

2

In genere un certificato implica che tu abbia preso una chiave pubblica e ottenuto un'autorità di certificazione per firmarla per convalidare l'identità. Non hai bisogno di questo secondo passo; hai solo bisogno di un elenco delle chiavi pubbliche che sei disposto ad accettare da utenti fidati. Ad esempio, in ssh hai un elenco di chiavi pubbliche attendibili che hai inserito in ~/.ssh/authorized_keys consentendo alle persone con le chiavi private associate di ssh nella macchina.

Ovviamente, potresti aver bisogno di un certificato SSL firmato per il tuo server, in modo che gli utenti possano verificare la tua identità.

    
risposta data 31.05.2012 - 06:10
fonte
2

Se l'autenticazione basata su certificato può farlo?

Un certificato può essere utilizzato per identificare un individuo. Tuttavia, un certificato non impone alcuna limitazione del controllo di accesso da solo. Il modo normale in cui funziona è creare un utente nel sistema e invece di creare una password (o in aggiunta utilizzata con una password) un certificato è associato all'account utente. L'applicazione o il sito Web o qualunque sia il collegamento del client devono quindi essere configurati per richiedere all'utente di fornire un certificato e possibilmente un nome utente.

Che cosa dovrebbero essere tutte le cose lì nel dispositivo incorporato?

Avresti bisogno di avere almeno: un certificato rilasciato a ciascun dispositivo client o utente un'applicazione / browser in grado di fornire un certificato come credenziale utente

Avresti anche molto probabilmente bisogno di: La catena di certificati del dispositivo / certificato utente installato La catena di certificati del server che stai collegando al dispositivo per installare

In che modo succede questa cosa?

L'autenticazione basata su certificato è ragionevolmente comune, tuttavia sia il client che le applicazioni server devono essere programmati per supportarlo. Se entrambi i client / server lo supportano, potrebbe non essere il modo predefinito in cui è configurato.

L'autenticazione del certificato può essere abbinata al dispositivo o associata all'utente. Se si esegue l'accoppiamento con un dispositivo, sarà necessario stabilire la funzionalità dell'applicazione per i nuovi dispositivi da aggiungere come dispositivo autorizzato per un utente specifico (utilizzato nelle nuove app per smart phone). Se il client utilizza un browser, un certificato utente è probabilmente l'opzione migliore. I browser desktop più recenti supportano automaticamente la richiesta all'utente di un certificato, ma questo potrebbe non essere il caso sul tuo dispositivo mobile.

C'è qualche altro meccanismo che questo per un dispositivo incorporato?

Si prega di chiarire. In termini di autenticazione ci sono molte opzioni, nome utente e password sono i più comuni con probabilmente il maggior supporto per i dispositivi mobili. Se il dispositivo mobile è uno smartphone e supporta JavaScript, sono disponibili opzioni come OpenId e OpenAuth.

Nota

Dato che hai menzionato che il server ha poca CPU e memoria, la crittografia SSL potrebbe aggiungere carico al tuo server.

Spero che ti aiuti.

    
risposta data 31.05.2012 - 13:31
fonte
0

Un certificato è un pacchetto che contiene una identità (un nome) e una chiave pubblica ; ed è firmato La verifica della firma garantisce che il pacchetto è autentico, ovvero la chiave pubblica è in realtà la chiave di proprietà dell'entità designata dal nome nel certificato. La verifica viene eseguita relativamente alla chiave pubblica di chiunque abbia firmato ("emesso") il certificato, e questa è una Autorità di certificazione (CA). È possibile conoscere la chiave pubblica della CA tramite un altro certificato, emesso da una CA superiore e così via. Devi iniziare da qualche parte, però, con una chiave pubblica per una "CA di primo livello" (nota come "root CA") che tu sai assolutamente (è integrata nel software).

Detto questo, SSL / TLS utilizza i certificati per l'autenticazione e può essere reciprocamente autenticato: sia il client che il il server può possedere una chiave privata e si mostrano reciprocamente i loro certificati. Vedi questa risposta per i dettagli.

Nel tuo caso, dovresti premere una chiave privata e il suo certificato nel dispositivo incorporato (o, meglio ancora, avere il dispositivo incorporato generare la propria coppia di chiavi, in modo che la chiave privata mai lo lascia); e ogni dispositivo mobile dovrebbe avere anche la sua chiave privata e un certificato, in cui il certificato deve contenere il nome del dispositivo mobile (o il nome del dispositivo mobile proprietario ). Quindi, dopo l'handshake SSL, la connessione è sicura, il dispositivo mobile è sicuro che dialoga con il dispositivo incorporato giusto e il dispositivo incorporato conosce in modo affidabile quale client è connesso (attraverso il nome nel certificato ).

Attenzione: autenticazione e autorizzazione non sono la stessa cosa. Che il dispositivo incorporato sappia chi è attualmente all'altro capo della linea non significa che a questa persona debba essere concesso l'accesso. In generale, i certificati non sono validi per l'autorizzazione, in quanto non consentono una revoca rapida e immediata dei diritti di accesso.

Per produrre certificati è necessario un PKI, ad esempio un software in grado di organizzare il processo di ricezione di "Richieste di certificati" e di trasformarlo in certificati. Farlo correttamente richiede un po 'di attenzione, con le procedure da seguire. Alcuni software possono guidarti; Di solito raccomando EJBCA , che è gratuito e opensource.

    
risposta data 07.01.2013 - 20:42
fonte

Leggi altre domande sui tag