Ktpass和KTab的主要用法

来源:互联网 时间:1970-01-01

不少人都没搞清楚Ktpass跟Ktab的用法,特此写一篇文章来叙说一下。
我假设你对Kerberos有所认识,可以读我的一篇文章<Weblogic Security In Action>中篇,里面初步介绍了Kerberos协议(基于Windows KDC)。
在Kerberos中,安全性完全是依赖于Share Secret,也就是,KDC跟Kerberos Service之间都共享着一条Key,Ktpass这个命令行工具承担着这样一个角色,它能够将非Windows Kerberos服务配置一个Service Principal,通常类似于HTTP/[email protected],并且同时生成一个Keytbab,这样做的目的是在Windows域中的KDC和非Windows的服务(Kerberos Service)建立一种安全的信任关系,Keytab文件中就是存放着那条非常重要的跟KDC打交道的Secret Key。

你更改了Keytab中的Key,就必须同时更改Kerberos database中的Key。操作Keytab,JDK提供了一个很好的工具叫做KTab。


首先,在Windows域控制器上创建一个用户tomcat2005, 这是一个Windows的用户,我们使用Ktpass将一个Kerberos service (HTTP/[email protected])Mapping到这个用户上面。Ktpass会修改当前用户在Windows AD中的用户登录名,你可以用setspn -L tomcat2005来查看究竟有多少Service Principal绑定到tomcat2005上。


C:/>ktpass -princ HTTP/[email protected] -mapuser tomcat2005 -pass tomcat2005 -out tomcat2005_keytab -crypto des-cbc-md5
Successfully mapped HTTP/tomcat to tomcat2005.
Key created.
Output keytab to tomcat2005_keytab:

Keytab version: 0x502
keysize 50 HTTP/[email protected] ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x3 (DES-CBC-MD5) keylength 8 (0xb64540dace6e70d3)
Account has been set for DES-only encryption.


接着,执行,目的是往keytab上面增加新的service principal。
C:/>ktab -k tomcat2005_keytab -a HTTP/[email protected]
Password for HTTP/[email protected]:tomcat2005
Done!
Service key for HTTP/[email protected] is saved in C://tomcat2005_keytab

你可能问,Ktpass和Ktab都往keytab文件两面写Key,其实,他们都是写同样的Key,只不过Ktpass还有一个AD帐号Set SPN Name的作用。

还可以通过ktab -l -k tomcat2005_keytab, 来看看里面究竟有针对什么Service的Key

C:/>ktab -l -k tomcat2005_keytab
Keytab name: C://tomcat2005_keytab
KVNO Principal
--------------------------------
4 HTTP/[email protected]

KVNO是Service Key的更新序号,不需要理会,关键的是Principal。



相关阅读:
Top