Kerberos ktutil, que tipos de criptografia estão disponíveis?


9

Estou tentando fazer um keytab usando ktutil. Eu escolho o tipo de criptografia, mas a ktutilpágina de manual não oferece uma lista de opções possíveis. Também não sei qual método de criptografia é o melhor! Como posso descobrir os dois? Eu quero a criptografia mais forte disponível.

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

Respostas:


8

A solução ktutil fornecida pelo 84104 está correta se você estiver tentando criar um keytab para um serviço. É uma péssima idéia para um keytab que você deseja usar para algum processo automatizado, pois aleatoriza a senha e torna a conta inutilizável sem o keytab.

Se você estiver usando o keytab como um armazenamento de senhas para alimentar o kinit para automatizar um processo, sugiro que você use o tipo de código que obtiver ao executar o kinit usando uma senha.

klist -e

listará um monte de coisas que a linha que você deseja é essa. Use o etype listado no ktutil.

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

Esteja avisado, esse uso do ktutil é exatamente o mesmo que armazenar sua senha em um arquivo de texto não criptografado, qualquer pessoa que possa ler o keytab pode representar sua identidade ao sistema. Além disso, esses comandos são a versão do MIT, heimdal ktutil e klist são um pouco diferentes (Heimdal é a versão do kerberos usada nas versões recentes do OS X)


1
E, apesar de você querer usar a criptografia mais forte, verifique se você está usando criptografia tão forte quanto o servidor Kerberos suporta e está configurada para aceitar.
Ryan Bolger

3

Não use a ktutilmenos que esteja tentando fazer um keytab a partir de um keytab existente. Use em kadminvez disso.

# 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

Dependendo do seu kdc, kdc.confvocê pode acabar com uma criptografia diferente: tipos de sal. A lista padrão é:

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

Você também pode limitar (ou expandir) os tipos de código usados ​​no keytab ao criá-lo usando -ee especificando os tipos desejados.


Se você está tentando criar um keytab a partir de um keytab existente:

# 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
Estou autenticando em um servidor Windows Active Directory e não é possível usar o kadmin.
Dylan Klomparens

"Não use o ktutil, a menos que você esteja tentando criar um keytab a partir de um keytab existente. Use o kadmin." - você esclareceria por quê? É apenas para garantir que os nomes dos princípios também sejam criados?
Samuel Harmer

@ Styne666 O espaço das teclas -randkey é maior que o espaço das chaves de todas as teclas de digitação.
84104
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.