Kerberos per l'invio di segreti

5

Comprendo che Kerberos è utilizzato come protocollo di autenticazione. Tuttavia, sarebbe possibile ottenere un effetto simile a quello di Diffie-Hellman con Kerberos, cioè stabilire una chiave di sessione che può essere utilizzata per un'ulteriore crittografia dei dati da trasmettere, una volta eseguita l'autenticazione?

    
posta 01.02.2013 - 09:43
fonte

3 risposte

3

Kerberos è progettato per essere un puro protocollo di autenticazione. Realmente costruisce un ticket di sessione per dimostrare la tua identità al server, non è un protocollo di crittografia (come ad esempio SSL per esempio).

    
risposta data 01.02.2013 - 09:56
fonte
4

Sì, con alcuni avvertimenti. Come descritto in precedenza, l'autenticazione Kerberos condivide anche una chiave di sessione tra il client e il principal del server, che possono utilizzare per ulteriori comunicazioni. Un'altra risposta precedente affermava che "Kerberos non è un protocollo di crittografia", ma questo non è vero: il protocollo include messaggi specifici per l'invio di dati arbitrari protetti dalla chiave di sessione negoziata durante l'autenticazione (KRB_SAFE e KRB_PRIV). Il modo più comune per trarne vantaggio è tramite GSSAPI (che è il modo più comune di utilizzare Kerberos, piuttosto che tramite un'API specifica di Kerberos come quella di MIT Kerberos o Heimdal). Dopo aver creato un contesto di sicurezza GSSAPI, i peer possono utilizzare le routine gss_wrap() e gss_unwrap() per sigillare i dati per la trasmissione, con il solo controllo dell'integrità, o integrità e riservatezza (crittografia). Probabilmente l'esempio più comune di questo effettivamente utilizzato è tramite SASL, quando il client richiede l'installazione di un "livello di sicurezza" dopo l'autenticazione con il meccanismo GSSAPI / Kerberos.

Tieni presente, tuttavia, che a differenza di Diffie-Hellman non hai il segreto in avanti qui. Nel caso più semplice, il KDC genera la chiave di sessione, quindi è sempre stato noto a una parte diversa dai peer comunicanti. La chiave potrebbe essere in realtà una "sottochiave" generata da uno dei peer, che è meglio, ma è generata da un solo lato, rendendola vulnerabile agli attacchi Trojan o Bizantini a un lato, mentre Diffie-Hellman limita l'abilità di entrambi i lati controlla la chiave condivisa finale. In entrambi i casi, la chiave di sessione viene infine fissata sul cavo dalla chiave a lungo termine del server, che di solito si trova in un file keytab sul server e nel KDC e le comunicazioni registrate in precedenza saranno compromesse se ciò è rivelato più tardi.

    
risposta data 05.03.2014 - 06:53
fonte
3

Anche se non è comunemente usato per lo scopo, può farlo. Come effetto collaterale dell'autenticazione reciproca, i principal Kerberos condividono una chiave di sessione crittograficamente strong, che può essere utilizzata per ottenere riservatezza.

Kerberos contiene le primitive per lo scambio di dati crittografati (e autenticati) tra i principali. Sono esposti a un'applicazione come chiamate krb5_mk_priv () e krb5_rd_priv ().

Queste funzioni sono disponibili nelle implementazioni di MIT e Heimdal, almeno su sistemi basati su Linux e BSD. Tuttavia, non penso che Windows esponga queste funzioni.

    
risposta data 23.11.2013 - 05:33
fonte

Leggi altre domande sui tag