Kerberos ktutil,有哪些可用的加密方式?


9

我正在尝试使用制作密钥表ktutil。我可以选择加密类型,但是ktutil手册页没有列出可能的选择。我也不知道哪种加密方法是最好的!如何找到这两个?我想要最强大的加密。

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

Answers:


8

如果您尝试为服务创建密钥表,则由84104提供的ktutil解决方案是正确的。您想将密钥表用于某些自动化过程,这是一个糟糕的主意,因为它将使密码随机化,并使没有密钥表的帐户无法使用。

如果您使用keytab作为密码存储来馈送给kinit来使进程自动化,那么我建议您使用使用密码运行kinit时获得的任何enctype。

klist -e

会列出一堆东西,您想要的行就是这个。使用ktutil中列出的etype。

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

请注意,对ktutil的使用与将密码存储在明文文件中完全相同,任何可以读取密钥表的人都可以向系统冒充您的身份。这些命令也是MIT版本,heimdal ktutil和klist有所不同(Heimdal是最新OS X版本上使用的kerberos版本)。


1
而且,尽管您希望使用最强的加密,但请确保仅使用与Kerberos服务器支持并配置为可以接受的强度相同的加密。
瑞安·博尔杰

3

ktutil除非您尝试从现有的密钥表制作密钥表,否则不要使用。使用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)

3
我正在针对Windows Active Directory服务器进行身份验证,无法使用kadmin。
Dylan Klomparens 2014年

“除非尝试从现有密钥表制作密钥表,否则请不要使用ktutil。请改用kadmin。” -您能说明原因吗?是否只是要确保也创建了原则名称?
塞缪尔·哈默尔'18

@ Styne666 -randkey的键空间大于所有可键入键的键空间。
84104
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.