Kerberos ktutil, welche Arten von Verschlüsselung gibt es?


9

Ich versuche, ein Keytab mit zu erstellen ktutil. Ich kann den Verschlüsselungstyp auswählen, aber die ktutilManpage bietet keine Liste möglicher Auswahlmöglichkeiten. Ich weiß auch nicht, welche Verschlüsselungsmethode die beste ist! Wie kann ich beides herausfinden? Ich möchte die stärkste verfügbare Verschlüsselung.

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

Antworten:


8

Die von 84104 bereitgestellte ktutil-Lösung ist korrekt, wenn Sie versuchen, eine Keytab für einen Dienst zu erstellen. Es ist eine schreckliche Idee für ein Keytab, das Sie für einen automatisierten Prozess verwenden möchten, da es das Passwort zufällig sortiert und das Konto ohne das Keytab unbrauchbar macht.

Wenn Sie das Keytab als Kennwortspeicher verwenden, um es an kinit weiterzuleiten und einen Prozess zu automatisieren, würde ich empfehlen, dass Sie den Enctype verwenden, den Sie erhalten, wenn Sie kinit mit einem Kennwort ausführen.

klist -e

Ich werde eine Reihe von Dingen auflisten, die die gewünschte Zeile ist. Verwenden Sie den mit ktutil aufgelisteten Etype.

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

Seien Sie gewarnt, diese Verwendung von ktutil entspricht genau der Speicherung Ihres Passworts in einer Klartextdatei. Jeder, der die Keytab lesen kann, kann sich als Ihre Identität gegenüber dem System ausgeben. Diese Befehle sind auch die MIT-Version, heimdal ktutil und klist sind etwas unterschiedlich. (Heimdal ist die Kerberos-Version, die in neueren Versionen von OS X verwendet wird.)


1
Und obwohl Sie die stärkste Verschlüsselung verwenden möchten, stellen Sie sicher, dass Sie nur eine Verschlüsselung verwenden, die so stark ist, wie Ihr Kerberos-Server unterstützt und für die Akzeptanz konfiguriert ist.
Ryan Bolger

3

Verwenden ktutilSie diese Option nur, wenn Sie versuchen, ein Keytab aus einem vorhandenen Keytab zu erstellen. Verwenden Sie kadminstattdessen.

# 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

Abhängig von Ihren kdc's können kdc.confSie unterschiedliche Verschlüsselung erhalten: Salzarten. Die Standardliste lautet:

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

Sie können auch die in der Keytab verwendeten Enctypes einschränken (oder erweitern), indem Sie -edie gewünschten Typen verwenden und angeben .


Wenn Sie versuchen, ein Keytab aus einem vorhandenen Keytab zu erstellen:

# 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
Ich authentifiziere mich bei einem Windows Active Directory-Server und die Verwendung von kadmin ist nicht möglich.
Dylan Klomparens

"Verwenden Sie ktutil nur, wenn Sie versuchen, aus einem vorhandenen Keytab ein Keytab zu erstellen. Verwenden Sie stattdessen kadmin." - Würden Sie klarstellen, warum? Ist es nur um sicherzustellen, dass die Prinzipnamen auch erstellt werden?
Samuel Harmer

@ Styne666 Der Schlüsselraum von -randkey ist größer als der Schlüsselraum aller typfähigen Schlüssel.
84104
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.