Kum*_*mar 5 java security kerberos
这可能是一个愚蠢的问题,但我想知道为什么会发生......
我有一个用于 kerberos 身份验证的密钥表文件。我想使用 ktab 命令列出 keytab 文件中包含的 kvno 和主体名称。假设我的密钥表文件是 kumar.keytab
ktab -l -k kumar.keytab
Run Code Online (Sandbox Code Playgroud)
执行上述命令时,会显示kvno和principal 5次。
Keytab name: kumar.keytab
KVNO Principal
---- ----------------------------
3 Kumar/hostname@KUMAR.COM
3 Kumar/hostname@KUMAR.COM
3 Kumar/hostname@KUMAR.COM
3 Kumar/hostname@KUMAR.COM
3 Kumar/hostname@KUMAR.COM
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么它显示相同的值 5 次?
帮助将不胜感激。
谢谢,
使用 Java 的 ktab,您可以指定“-e”和“-t”参数,让它显示加密类型和时间戳。“-help”参数将显示更多信息。
C:\Users\test>ktab -l -e -t
Keytab name: C:\Users\test\krb5.keytab
KVNO Timestamp Principal
---- -------------- ---------------------------------------------------
4 25/05/17 07:56 test@TEST.COM (17:AES128 CTS mode with HMAC SHA1-96)
4 25/05/17 07:56 test@TEST.COM (16:DES3 CBC mode with SHA1-KD)
4 25/05/17 07:56 test@TEST.COM (23:RC4 with HMAC)
Run Code Online (Sandbox Code Playgroud)
我的经验是,java kerberos 工具通常不完整和/或损坏。如果您使用 MIT 或 Heimdal 库中的 kerberos 工具,您将确切地看到这 4 个版本是什么。
例如,使用ktutil listHeimdal Kerberos 库中的命令,您将获得:
FILE:/etc/krb5.keytab:
Vno Type Principal Aliases
6 aes256-cts-hmac-sha1-96 host/test.com@TEST.COM
6 arcfour-hmac-md5 host/test.com@TEST.COM
Run Code Online (Sandbox Code Playgroud)
密钥表包含每个密钥版本号、加密类型和主体名称的条目。所有这三者都必须达成一致,kerberos 协议才能发挥作用。Kerberos 支持多种加密类型,协议的一部分是协商使用哪种加密类型。这使得较新版本的软件可以支持没有所有最新加密的旧客户端。