Saber Zrelli wrote:

Hi ,

I would like to thank you, Ken, for these  explanations ,
and sorry to be a third man, I have some questions and comments about
cross-realm authentication.

* Ken Raeburn ([EMAIL PROTECTED]) wrote:

The telnet is to a host named foo.example1.com, in Kerberos realm EXAMPLE1.COM (which is what one would expect from the names, but that isn't *always* the way it's set up). "host/[EMAIL PROTECTED]" is the name of the service principal used by the telnet server.



How does the telnet client knows the service name that corresponds to the telnet server in the host foo.example1.com foo.example1.com <--> host/[EMAIL PROTECTED]


By convention the client expects the server to be using a service ticket with the host name it is trying to contact. All the "login" type services use the service name host, as the services are run by root, and in effect login in the user. So telnet, rlogin, ssh console login all use the host service name.

The trick then is how does the client determine what is the realm of the server
A database is needed to look up the realm. The krb5.conf file on the client
has the [domain_realm] section. There is a dns_lookup_realm (but this has
some security issues). There is some thing called referrals where the
client asks the user's KDC for a ticket, and the KDC says, its in this
other realm, go try it. And if the client application allows it, it could
let the user enter the full principal with realm. (SSPI on Windows allows
this.)

The point is the client and server applications agree on what
service principal will be used. Telnet uses host/<fqdn>@<realm>


"krbtgt/[EMAIL PROTECTED]" is created in both databases (that on the EXAMPLE KDC and that on the EXAMPLE1 KDC), and must have the same key in both.


Why does the krbtgt principals have to use same key, is it design choice for the cross-realm operations ?


Think of the remote KDC as a service, but it does not have a keytab file like other servives, it stores the cross realm principal and key in its database instead.

Note that if you want cross realm in the other direction, you would
create krbtgt/[EMAIL PROTECTED]         in both.


The telnet program run by the user on bar.example.com (no "host/bar.example.com" principal needs to exist anywhere, in this example) contacts the EXAMPLE.COM KDC, sending the user's ticket-granting ticket and requesting a ticket for the service krbtgt/[EMAIL PROTECTED] (not host/kdc.example1.com), which that KDC issues.


The kerberized telnet program knows that the host foo.exemple1.com is in the domain EXEMPLE1.COM according to the configuration file on the client's
krb5.conf file ? or is it translated automatically from the domain name example1.com


If not found [domain_realms} the default to to uppercasethe DNS domain
and assume this for the Kerberos realm. See above on refferrals etc.


Another way to think about it is: The ticket is essentially a message a KDC gives to the client to give to a server, which tells the server who the KDC thinks the client is. (With a bunch of encryption stuff happening to prevent forgery of the messages.) So, by way of the telnet (or ftp) client, the KDC for EXAMPLE.COM tells the KDC for EXAMPLE1.COM "this guy is [EMAIL PROTECTED]", so that second KDC produces another message telling the telnet server, "the KDC for EXAMPLE.COM says that this is [EMAIL PROTECTED]".

The messages always go by way of the client program; the KDCs don't talk to each other or to the telnet service.


from now , it's just comments about kerberos cross-realm operations ,

About kerberos corss-realm operations, I think that the fact that clients
communicate directly with foreign KDCs is not safe, IMHO the cross-realm
operations would be better if only the KDCs are involved to obtain service
ticket for the clients.




Don't see your problem. The client will only trust foreign KDCs if it gts
a ticket from its own KDC.



(By the way, this process can be repeated through KDCs for multiple realms, but don't think too much about that until you understand the two-realm case well.)


In the case where the KDCs involved in the cross-realm authentication does
not share keys, the protocol seems to be non optimal and the client is
involved whereas the KDCs could just communicate with each other in a
recursive manner and provide just the final result to the client.


If the KDCs don't share keys, you can't do cross realm. There must be a trusted path between the user's realm and the server's realm by having two or more realms share keys.


About roaming situations ,
If a client principal in realm R-A visits a foreign realm R-B , to be able
to access resources in R-A, the kerberos protocol have to proceed as if the
client was located in his home realm. This will involve several problems I
think. That is why maybe kerberos may not be adapted to roaming situations
and in access networks.


There is the "transited" field in tickets and the CA-PATH lsting what are the trusted paths through multipe realms, that I think address your concerns.



I would appreciate very much your comments.


Best Regards.


-- Saber ZRELLI <[EMAIL PROTECTED]> Japan Advanced Institute of Science and Technology Center of Information Science Shinoda Laboratory url : http://www.jaist.ac.jp/~zrelli gpg-id : 0x7119EA78

________________________________________________
Kerberos mailing list           Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos




--

 Douglas E. Engert  <[EMAIL PROTECTED]>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
________________________________________________
Kerberos mailing list           Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos

Reply via email to