Kerberos ktutil, quali tipi di crittografia sono disponibili?


9

Sto tentando di creare un keytab usando ktutil. Posso scegliere il tipo di crittografia, ma la ktutilpagina man non offre un elenco di possibili scelte. Inoltre non so quale metodo di crittografia sia il migliore! Come posso scoprirli entrambi? Voglio la crittografia più potente disponibile.

$ ktutil
> add_entry -password -p me@DOMAIN.COM -k 1 -e [what goes here?!]

Risposte:


8

La soluzione ktutil fornita da 84104 è corretta se si sta tentando di creare un keytab per un servizio. È una pessima idea per un keytab che si desidera utilizzare per un processo automatizzato in quanto randomizzerà la password e renderà l'account inutilizzabile senza il keytab.

Se stai usando il keytab come archivio di password per alimentare kinit per automatizzare un processo, ti suggerirei di usare qualunque enctype che ottieni quando esegui kinit usando una password.

klist -e

elencherà un sacco di cose la linea che vuoi è questa. Usa l'etipo elencato con ktutil.

    Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96

Attenzione, questo uso di ktutil è esattamente lo stesso della memorizzazione della password in un file di testo chiaro, chiunque sia in grado di leggere il keytab può impersonare la tua identità nel sistema. Anche questi comandi sono la versione MIT, heimdal ktutil e klist sono in qualche modo diversi (Heimdal è la versione Kerberos utilizzata nelle recenti versioni di OS X)


1
E nonostante tu voglia utilizzare la crittografia più potente, assicurati di utilizzare solo la crittografia forte quanto il tuo server Kerberos supporta e è configurato per accettare.
Ryan Bolger,

3

Non utilizzare a ktutilmeno che non si stia tentando di creare un keytab da un keytab esistente. Usa kadmininvece.

# kadmin -p user/admin
Password for user/admin@EXAMPLE.COM:
kadmin: add_principal -randkey service/server.example.com
WARNING: no policy specified for service/server.example.com@EXAMPLE.COM; defaulting to no policy
Principal "service/server.example.com@EXAMPLE.COM" created.
kadmin:  ktadd -k /etc/service/service.keytab service/server.example.com
Entry for principal service/server.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab
Entry for principal service/server.example.com with kvno 2, encryption type camellia256-cts-cmac added to keytab
kadmin: quit

A seconda dei tuoi kdc kdc.confpotresti finire con una crittografia diversa: tipi di sale. L'elenco predefinito è:

aes256-cts-hmac-sha1-96:normal
aes128-cts-hmac-sha1-96:normal
des3-cbc-sha1:normal
arc‐four-hmac-md5:normal

Puoi anche limitare (o espandere) gli enctype usati nel keytab quando lo crei usando -ee specificando i tipi desiderati.


Se si sta tentando di creare un keytab da un keytab esistente:

# kutil
ktutil: read_kt /etc/krb5.keytab
ktutil:  l -e
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    6   host/server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2    6   host/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)
   3    3   HTTP/server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   4    3   HTTP/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)
ktutil: delete_entry 1
ktutil:  l -e
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    6   host/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)
   2    3   HTTP/server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   3    3   HTTP/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)
ktutil: delete_entry 1
ktutil:  l -e
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    3   HTTP/server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
   2    3   HTTP/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)
ktutil: write_kt /etc/httpd/http.keytab
ktutil: quit
# klist -ke /etc/httpd/http.keytab
Keytab name: FILE:/etc/httpd/http.keytab
KVNO Principal
---- ---------------------------------------------------------------------
    3   HTTP/server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
    3   HTTP/server.example.com@EXAMPLE.COM (camellia256-cts-cmac)

3
Sto eseguendo l'autenticazione su un server Windows Active Directory e l'utilizzo di kadmin non è possibile.
Dylan Klomparens,

"Non usare ktutil a meno che tu non stia provando a creare un keytab da un keytab esistente. Usa invece kadmin." - chiariresti perché? È solo per assicurarsi che vengano creati anche i nomi dei principi?
Samuel Harmer,

@ Styne666 Lo spazio chiave di -randkey è maggiore dello spazio chiave di tutte le chiavi in ​​grado di digitare.
84104
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.