Kerberos ktutil, какие виды шифрования доступны?

9

Я пытаюсь сделать keytab используя ktutil. Я могу выбрать тип шифрования, но ktutilстраница руководства не предлагает список возможных вариантов. Я также не знаю, какой метод шифрования является лучшим! Как я могу узнать оба из них? Я хочу самое сильное доступное шифрование.

$ ktutil
> add_entry -password -p me@DOMAIN.COM -k 1 -e [what goes here?!]
Дилан Кломпаренс
источник

Ответы:

8

Решение ktutil, предоставленное 84104, является правильным, если вы пытаетесь создать keytab для службы. Это ужасная идея для ключевой таблицы, которую вы хотите использовать для какого-то автоматизированного процесса, поскольку она случайным образом вводит пароль и делает учетную запись непригодной для использования без ключевой таблицы.

Если вы используете keytab в качестве хранилища паролей для подачи в kinit для автоматизации процесса, я бы посоветовал вам использовать любой тип enctype, который вы получаете при запуске kinit с использованием пароля.

klist -e

будет перечислять кучу вещей, строка, которую вы хотите, это. Используйте etype, указанный в ktutil.

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

Имейте в виду, что использование ktutil - это то же самое, что и сохранение вашего пароля в открытом текстовом файле. Любой, кто сможет прочитать таблицу ключей, сможет выдать себя за вашу личность в системе. Также эти команды являются версией MIT, heimdal ktutil и klist несколько отличаются (Heimdal - версия kerberos, используемая в последних версиях OS X).

Фред Волшебная Чудо-Собака
источник
1
И несмотря на то, что вы хотите использовать самое надежное шифрование, убедитесь, что вы используете шифрование только в той степени, в которой ваш сервер Kerberos поддерживает и настроено на прием.
Райан Болджер
3

Не используйте, ktutilесли вы не пытаетесь сделать keytab из существующей keytab. Используйте kadminвместо этого.

# 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

В зависимости от ваших kdc, kdc.confвы можете использовать разные типы шифрования: соли. Список по умолчанию:

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

Вы также можете ограничить (или расширить) энктипы, используемые в таблице ключей при его создании, -eуказав нужные типы.


Если вы пытаетесь создать таблицу ключей из существующей таблицы ключей:

# 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)
84104
источник
3
Я аутентифицируюсь на сервере Windows Active Directory и использование kadmin невозможно.
Дилан Klomparens
«Не используйте ktutil, если вы не пытаетесь создать таблицу ключей из существующей таблицы ключей. Вместо этого используйте kadmin». - Не могли бы вы уточнить, почему? Это просто для того, чтобы убедиться, что имена принципов также созданы?
Сэмюэль Хармер
@ Styne666 Пространство клавиш -randkey больше, чем пространство клавиш всех печатаемых клавиш.
84104