<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://k5wiki.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vanrein</id>
		<title>K5Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://k5wiki.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vanrein"/>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki/Special:Contributions/Vanrein"/>
		<updated>2026-04-09T00:54:14Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5932</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5932"/>
				<updated>2018-02-14T11:08:36Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KXOVER''' as a name for the Kerberos Realm Crossover protocol proposed on this page.  The Dutch may pronounce KXOVER als [https://commons.wikimedia.org/w/index.php?search=klaarover&amp;amp;title=Special:Search&amp;amp;go=Go&amp;amp;searchToken=bqm1p8pg5lgu1pqzrf7cbbqur klaar-over], after the street-crossing public service (for school children).&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KXOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Our proposal for a TLS-KDH cipher suite, combining Kerberos authentication with ECDHE key agreement already withstands Quantum Computer attacks.  It is an interesting pair with KXOVER, as the two allow Kerberos for many protocols across the Internet.&lt;br /&gt;
&lt;br /&gt;
KXOVER can utterly destroy the resistence to Quantum Computing for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5931</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5931"/>
				<updated>2018-02-14T11:06:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KXOVER''' as a name for the Kerberos Realm Crossover protocol proposed on this page.  The Dutch may pronounce KXOVER als [https://commons.wikimedia.org/w/index.php?search=klaarover&amp;amp;title=Special:Search&amp;amp;go=Go&amp;amp;searchToken=bqm1p8pg5lgu1pqzrf7cbbqur klaar-over], after the street-crossing public service (for school children).&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KXOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5930</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5930"/>
				<updated>2018-02-14T11:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KXOVER''' as a name for the Kerberos Realm Crossover protocol proposed on this page.  The Dutch may pronounce KXOVER als [https://commons.wikimedia.org/w/index.php?search=klaarover&amp;amp;title=Special:Search&amp;amp;go=Go&amp;amp;searchToken=bqm1p8pg5lgu1pqzrf7cbbqur klaar-over], after the street-crossing public service, especially around schools and near opening and closing times of these schools.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KXOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5929</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5929"/>
				<updated>2018-02-14T11:04:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.  The Dutch may pronounce KXOVER als [https://commons.wikimedia.org/w/index.php?search=klaarover&amp;amp;title=Special:Search&amp;amp;go=Go&amp;amp;searchToken=bqm1p8pg5lgu1pqzrf7cbbqur klaar-over], after the street-crossing public service, especially around schools and near opening and closing times of these schools.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5928</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5928"/>
				<updated>2018-02-14T11:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.  The Dutch may pronounce KXOVER als &amp;quot;Klaar-Over&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5927</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5927"/>
				<updated>2018-02-14T11:00:55Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [https://en.wikipedia.org/wiki/Grover%27s_algorithm Grover's algorithm] &amp;amp;mdash; but at least [https://en.wikipedia.org/wiki/Shor%27s_algorithm Shor's algorithm], which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5926</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5926"/>
				<updated>2018-02-14T10:58:17Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [Grover's algorithm](https://en.wikipedia.org/wiki/Grover%27s_algorithm) &amp;amp;mdash; but at least [Shor's algorithm](https://en.wikipedia.org/wiki/Shor%27s_algorithm), which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.  But given that such trust does not usually come overnight in crypto, it is still a good idea to work on the gathering of entropy.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5925</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5925"/>
				<updated>2018-02-14T10:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [Grover's algorithm](https://en.wikipedia.org/wiki/Grover%27s_algorithm) &amp;amp;mdash; but at least [Shor's algorithm](https://en.wikipedia.org/wiki/Shor%27s_algorithm), which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
In addition to these defenses, it is a good idea to incorporate a key exchange algorithm that withstands Quantum Computing as soon as it can be trusted.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5924</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5924"/>
				<updated>2018-02-14T10:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge.  We do need to make our twice twice as long as the customary 128 bit on account of [Grover's algorithm](https://en.wikipedia.org/wiki/Grover%27s_algorithm) &amp;amp;mdash; but at least [Shor's algorithm](https://en.wikipedia.org/wiki/Shor%27s_algorithm), which is devastating for public key crypto, has no grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER can utterly destroy these advantages for any traffic between a different client realm and server realm.  This problem is the same as what HTTPS and co have to face, but again Kerberos holds better cards, mostly because KXOVER is run between servers in a mutual relationship, rather than between a client and a server.&lt;br /&gt;
&lt;br /&gt;
In practice, we might assume that passive observers cannot scan all traffic that passes between all systems.  Based on this, if we can get only piece of salt across without it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  There are so many fresh keys floating around in any Kerberos system that we have a lot of material of good entropy staring at us.  Using this cleverly to build up entropy for a fresh exchange may be useful, especially when manual keying is at the foundation of at least one of the entropy sources.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5923</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5923"/>
				<updated>2018-02-10T21:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Beyond Quantum Computing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that its key exchange infrastructure will hold up against quantum computers according to our current knowledge, as long as we double key sizes on account of [Grover's algorithm](https://en.wikipedia.org/wiki/Grover%27s_algorithm) &amp;amp;mdash; but at least [Shor's algorithm](https://en.wikipedia.org/wiki/Shor%27s_algorithm) has not grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER cat utterly destroy these advantages for any traffic between a differnet client realm and server realm.  This problem cannot be fixed in general.&lt;br /&gt;
&lt;br /&gt;
In practice though, it may be assumed that passive observers don't scan all traffic that passes between systems, and as a result, if we can get only piece of salt across withoug it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  This is easy because the parties involved in the exchange are interested in encryption, and would fend off anything immature or unstable.&lt;br /&gt;
&lt;br /&gt;
The tickets provided to clients all hold an (encrypted) encryption key, which is KDC_geenrated and unique to the session at hand.  It would be interesting to see cryptographer's response to reoccur, whether or not it i s ncidered useful :-)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5922</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5922"/>
				<updated>2018-02-10T21:49:23Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: edits to sharpen the oproject describtion and poject status.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Beyond Quantum Computing==&lt;br /&gt;
&lt;br /&gt;
Kerberos has an important advantage over public-key schemes, namely that it will hold up against quantum computers according to our current knowledge, as long as we double key sizes on account of [Grover's algorithm](https://en.wikipedia.org/wiki/Grover%27s_algorithm) &amp;amp;mdash; but at least [Shor's algorithm](https://en.wikipedia.org/wiki/Shor%27s_algorithm) has not grip on it.&lt;br /&gt;
&lt;br /&gt;
Using KXOVER cat utterly destroy these advantages for any traffic between a differnet client realm and server realm.  This problem cannot be fixed in general.&lt;br /&gt;
&lt;br /&gt;
In practice though, it may be assumed that passive observers don't scan all traffic that passes between systems, and as a result, if we can get only piece of salt across withoug it being stored, we can base our next key agreement on that, rather than just on the ECDH primitives.  This is easy because the parties involved in the exchange are interested in encryption, and would fend off anything immature or unstable.&lt;br /&gt;
&lt;br /&gt;
The tickets provided to clients all hold an (encrypted) encryption key, which is KDC_geenrated and unique to the session at hand.  It would be interesting to see cryptographer's response to reoccur, whether or not it i s ncidered useful :-)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5613</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5613"/>
				<updated>2016-03-08T15:17:11Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 19] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5612</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5612"/>
				<updated>2016-03-08T09:20:16Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 18] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 17] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5611</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5611"/>
				<updated>2016-03-08T08:28:05Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 17] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, the free tags being 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5610</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5610"/>
				<updated>2016-03-08T08:27:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 17] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos, namely 17, 18, 19, 23, 24.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5609</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5609"/>
				<updated>2016-03-08T08:26:33Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION 17] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION 18] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.  (The tags were found free after looking for them in all RFCs that mention Kerberos.)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5608</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5608"/>
				<updated>2016-03-08T08:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
We learnt that the AS-REP is unsuitable for communication between KDC's, and propose to use [APPLICATION XX] for it.  To properly mirror the situation, as well as to get a better message routing to the backend, we propose to use [APPLICATION XX] for a message that replaces the AS-REQ between KDCs.  These new messages also help us to be more to the point in the protocol specification than we could be within the PKINIT framework.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5591</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5591"/>
				<updated>2016-01-19T16:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a (KRB5_PRIV or local &amp;amp; unencrypted) message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5590</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5590"/>
				<updated>2016-01-19T15:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC creates a KRB5_PRIV message with the TGS_REQ from the client and sends it to the local KXOVER deamon.&lt;br /&gt;
# The KXOVER deamon extracts the server name from the request, and looks in DNS.&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER daemon extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 _kerberos TXT] record describing the remote realm for the server name&lt;br /&gt;
# If the remote realm is already known, and its key is still valid for long enough, the local KXOVER deamon returns the referral TGT to the client directly (or through the KDC)&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts an SRV record describing the address and port of the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KXOVER deamon extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KXOVER daemon initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KXOVER daemon validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate; the PKINIT received by the remote KDC contains the PA-KXOVER in its PA-DATA&lt;br /&gt;
# The remote KDC sends the PKINIT request to the remote KXOVER deamon&lt;br /&gt;
# The remote KXOVER deamon validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local and remote KXOVER deamons agree on a symmetric key using Elliptic Curve Diffie-Hellman cryptography; they also agree on a timeout for this key and store it for that period of time&lt;br /&gt;
# The local KXOVER deamon returns a ticket referral to the client (directly or through the KDC) so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity.&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
The KDC code has to be modified in order to allow the redirection of cross-over requests to the KXOVER deamon, and if responses are passed back through the KDC, relay those back to the user.&lt;br /&gt;
&lt;br /&gt;
The KDC admin must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process.&lt;br /&gt;
The KDC admin has to create a principal for the deamon in the database in order to allow secure communication between the KDC and the deamon.&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5562</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5562"/>
				<updated>2015-09-15T14:07:14Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Past Controversy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server or domain that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client that finds realms through KREALM records may treat them as overrides for anything else it would otherwise try -- when it finds KREALM records, that is&lt;br /&gt;
* The client that looks for KREALM records may (at some point in the future) decide to discard other methods, perhaps exempting the the client's login realm&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and [https://tools.ietf.org/html/rfc6806#section-9 Cross-Realm Routing] suggestions&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on all client networks)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5561</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5561"/>
				<updated>2015-09-15T14:02:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Policy Choices for this Mechanism */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client that finds realms through KREALM records may treat them as overrides for anything else it would otherwise try -- when it finds KREALM records, that is&lt;br /&gt;
* The client that looks for KREALM records may (at some point in the future) decide to discard other methods, perhaps exempting the the client's login realm&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and [https://tools.ietf.org/html/rfc6806#section-9 Cross-Realm Routing] suggestions&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on all client networks)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5560</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5560"/>
				<updated>2015-09-15T08:50:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and [https://tools.ietf.org/html/rfc6806#section-9 Cross-Realm Routing] suggestions&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on all client networks)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5559</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5559"/>
				<updated>2015-09-15T08:43:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Policy Choices for this Mechanism */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and [https://tools.ietf.org/html/rfc6806#section-9 Cross-Realm Routing] suggestions&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5558</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5558"/>
				<updated>2015-09-15T08:43:13Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Policy Choices for this Mechanism */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and [https://tools.ietf.org/html/rfc6806#section-9 Cross-Realm Routing suggestions]&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5557</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5557"/>
				<updated>2015-09-15T08:40:16Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Policy Choices for this Mechanism */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The client, if it doesn't process KREALM records itself, may delegate to the KDC by accepting canonicalisation and Server Referrals&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5556</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5556"/>
				<updated>2015-09-15T08:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the realm name&lt;br /&gt;
# When multiple KREALM records exist, then each suggests an alternative realm name to try&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5555</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5555"/>
				<updated>2015-09-15T08:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
* Until they do, [https://tools.ietf.org/html/rfc3597 Handling of Unknown DNS RRtypes] can be used&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5554</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5554"/>
				<updated>2015-09-15T08:35:56Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Past Controversy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
These points kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5553</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5553"/>
				<updated>2015-09-15T08:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
This point kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which may not be completely reliable on every network)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5552</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5552"/>
				<updated>2015-09-15T08:20:28Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Past Controversy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
This point kept coming up, and so we have decided to not iterate upward along the DNS hierarchy at all.  Every server that wants to specify a Kerberos realm should set it up alongside the servername.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which is not a solid thing to build on)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5551</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5551"/>
				<updated>2015-09-15T07:25:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.  Having said that, a client that loads its own libunbound or other secure resolver may still succeed on most networks.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
This has now been overcome by specifying a secure manner of upward iteration through the DNS hierarchy.  When no KREALM record is found, then before iterating in upward direction, a test is made whether a SOA record exists at that point.  This can be efficienty seen by looking at the NSEC/NSEC3 secure denial for the KREALM query, which holds a type bit map.&lt;br /&gt;
&lt;br /&gt;
By not allowing the upward iteration to move beyond the zone apex for the zone holding the originally sought DNS name, we can assume that there is no change of operational control for the zone.  There is a bit of impact administratively, when multiple DNS zones are covered by one Kerberos realm; all covered zones must then publish their own KREALM records.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which is not a solid thing to build on)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5550</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5550"/>
				<updated>2015-09-15T07:24:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response or denial through DNSSEC.&lt;br /&gt;
# '''We dropped the following, as we couldn't agree on it:''' The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
The DNS client mentioned above will usually be the KDC, which may be assumed to be setup to validate DNSSEC properly.  For clients, this is less likely, less reliable and may fail in various contexts due to mediocre DNS infrastructure at end points.&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
This has now been overcome by specifying a secure manner of upward iteration through the DNS hierarchy.  When no KREALM record is found, then before iterating in upward direction, a test is made whether a SOA record exists at that point.  This can be efficienty seen by looking at the NSEC/NSEC3 secure denial for the KREALM query, which holds a type bit map.&lt;br /&gt;
&lt;br /&gt;
By not allowing the upward iteration to move beyond the zone apex for the zone holding the originally sought DNS name, we can assume that there is no change of operational control for the zone.  There is a bit of impact administratively, when multiple DNS zones are covered by one Kerberos realm; all covered zones must then publish their own KREALM records.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which is not a solid thing to build on)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5547</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5547"/>
				<updated>2015-09-11T10:08:51Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 KREALM] record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KDC validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5546</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5546"/>
				<updated>2015-09-11T10:08:26Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a [[https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 KREALM]] record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KDC validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5542</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5542"/>
				<updated>2015-09-03T17:52:58Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KDC validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the remote KDC's agreed key validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5541</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5541"/>
				<updated>2015-09-03T17:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KDC validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the local KDC's certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the interKDC key's agreed validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5540</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5540"/>
				<updated>2015-09-03T17:50:49Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The local KDC validates the remote KDC through the TLSA record representing the remote KDC's PKINIT certificate&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the interKDC key's agreed validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5539</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5539"/>
				<updated>2015-09-03T17:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Without caring for DNSSEC, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the interKDC key's agreed validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5538</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5538"/>
				<updated>2015-09-03T17:48:54Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and its key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm; this ticket is not valid beyond the interKDC key's agreed validity&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5537</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5537"/>
				<updated>2015-09-03T17:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Mechanics of the Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and ots key is still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5536</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5536"/>
				<updated>2015-09-03T15:02:03Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: Resolved past controversy with different mechanism (iteration, but being clever about SOA records)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response through DNSSEC.&lt;br /&gt;
# The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
This has now been overcome by specifying a secure manner of upward iteration through the DNS hierarchy.  When no KREALM record is found, then before iterating in upward direction, a test is made whether a SOA record exists at that point.  This can be efficienty seen by looking at the NSEC/NSEC3 secure denial for the KREALM query, which holds a type bit map.&lt;br /&gt;
&lt;br /&gt;
By not allowing the upward iteration to move beyond the zone apex for the zone holding the originally sought DNS name, we can assume that there is no change of operational control for the zone.  There is a bit of impact administratively, when multiple DNS zones are covered by one Kerberos realm; all covered zones must then publish their own KREALM records.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which is not a solid thing to build on)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5535</id>
		<title>Projects/KREALM</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/KREALM&amp;diff=5535"/>
				<updated>2015-09-03T12:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: New page: ''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables s...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos description records in DNS.  At present, there is no formally acceptable manner of deducing a realm name from a server name.  The KREALM record enables such translations, and possibly more.  The record's security hinges on DNSSEC.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [https://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
Actors: The Kerberos actor wanting to establish the realm name for a given server name is called the DNS client.  The server name is supported by a DNS zone run in a DNS server.&lt;br /&gt;
&lt;br /&gt;
# The DNS client requests the KREALM record for the sought server name, or otherwise a denial by the DNS server.&lt;br /&gt;
# The DNS client validates the response through DNSSEC.&lt;br /&gt;
# The DNS client may retry at a default location (usually the apex of the DNS zone) based on the location for a DNSKEY signing a denial.&lt;br /&gt;
# The DNS client will validate any such default location to be the same or a higher-up name in the DNS hierarchy.&lt;br /&gt;
# The DNS client interprets the KREALM record to find the r=REALMNAME record&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that rogue intermediates might add RRSIG records of their own, pointing to parts outside the DNS hierarchy for the requested server name.  This should be detected and ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Past Controversy==&lt;br /&gt;
&lt;br /&gt;
The default location has been subject of some controversy.  This was because:&lt;br /&gt;
&lt;br /&gt;
* The DNS does not formally define where a zone apex lies;&lt;br /&gt;
* Iterating upward may land up in a DNS zone under different operational control;&lt;br /&gt;
* Iterating upward is not an efficient use of the DNS.&lt;br /&gt;
&lt;br /&gt;
The solution is probably to not specify the zone apex as the fallback location, but the same location as where the DNSKEY records are.  In both cases, the RRSIG record(s) provide the location without iteration.  The choice for the same location as the DNSKEY for fallback is that&lt;br /&gt;
* It centralises spread-out parts of a zone into one place&lt;br /&gt;
* It is part of the same DNS zone&lt;br /&gt;
* The party controlling the DNSKEY records already has the ability to sabotage the KREALM setup, so no new dangers are introduced&lt;br /&gt;
* The party controlling the DNSKEY must also co-operate for KREALM records at the server name, doing that centrally for the zone is not different&lt;br /&gt;
* It can be verified to match the server name or lie upward from it&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The KDC may or may not want to find realms through KREALM records&lt;br /&gt;
* The client, provided that it can process DNSSEC, may want to find realms through KREALM records&lt;br /&gt;
* The server administrator may or may not choose to publish the realm, and possibly more, for the service and/or the realm&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* The KDC may process KREALM records, and for that purpose, rely on DNSSEC&lt;br /&gt;
* The Kerberos client might process KREALM records, and for that purpose, require DNSSEC to be operational (which is not a solid thing to build on)&lt;br /&gt;
&lt;br /&gt;
==Changes to DNS==&lt;br /&gt;
&lt;br /&gt;
* DNS servers would need to support KREALM records, as they do any other records&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
None.&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5534</id>
		<title>Project/TLS-KDH</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5534"/>
				<updated>2015-09-03T11:47:05Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete|Misnamed it, singular &amp;quot;Project/&amp;quot; used}}&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5533</id>
		<title>Project/TLS-KDH</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5533"/>
				<updated>2015-09-03T11:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/TLS-KDH&amp;diff=5532</id>
		<title>Projects/TLS-KDH</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/TLS-KDH&amp;diff=5532"/>
				<updated>2015-09-03T11:42:48Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: New page: ''This project introduces Kerberos tickets with Forward Secrecy as TLS CipherSuites.''  {{project-early}}  External project links: * [http://tls-kdh.arpa2.net/tls-kdh.html Project working ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos tickets with Forward Secrecy as TLS CipherSuites.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://tls-kdh.arpa2.net/tls-kdh.html Project working pages]&lt;br /&gt;
* [http://tls-kdh.arpa2.net/spec/tls-kdh-ID.html Specification]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/tls-kdh Discussion list]&lt;br /&gt;
&lt;br /&gt;
We use '''TLS-KDH''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
The TLS-KDH CipherSuite is a special way of using TLS:&lt;br /&gt;
&lt;br /&gt;
# The TLS client offers TLS-KDH CipherSuites in its ClientHello&lt;br /&gt;
# The TLS server selects a TLS-KDH CipherSuite in its ServerHello&lt;br /&gt;
# The TLS server sends no ServerCertificate&lt;br /&gt;
# The TLS server sends a ServerKeyExchange with a suitable Diffie-Hellman public key&lt;br /&gt;
# The TLS server may send a CertificateRequest to request a client identity (which the client may still refuse to supply)&lt;br /&gt;
# The TLS client chooses whether it will release its identity, or remain anonymous&lt;br /&gt;
# The TLS client looks for a service ticket in its local Kerberos infrastructure&lt;br /&gt;
# The TLS client sends a ClientKeyExchange holding a service ticket and a Diffie-Hellman public key response, encrypted to that ticket&lt;br /&gt;
# The TLS server accepts the service ticket and uses it to decrypt the Diffie-Hellman response&lt;br /&gt;
# Both now construct the shared secret, following normal Diffie-Hellman procedures for TLS&lt;br /&gt;
# Both now construct a proof of knowing the secret, thereby authentication to the other side&lt;br /&gt;
# Both now validate the other side before proceeding&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The server may or may not be equiped with a service ticket; this may depend on the server name&lt;br /&gt;
* The client may be willing to obtain a service ticket for all, some or no remote servers&lt;br /&gt;
* The client may be willing to provide its identity to all, some or no remote servers&lt;br /&gt;
* The KDC may be willing to provide service tickets for remote realms&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* None.  Although independent work on [Realm Crossover in the KDC] is bound to be useful.&lt;br /&gt;
&lt;br /&gt;
==Changes to TLS==&lt;br /&gt;
&lt;br /&gt;
* The changes to TLS do not disturb older TLS implementations&lt;br /&gt;
* The TLS-KDH CipherSuites require TLS version 1.2 or later&lt;br /&gt;
* Both TLS clients and servers must be extended to support the TLS-KDH CipherSuites&lt;br /&gt;
&lt;br /&gt;
We expect to offer early support to [http://www.gnutls.org GnuTLS] soon.  The [http://tlspool.arpa2.net TLS Pool] will also support TLS-KDH.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
See [http://tls-kdh.arpa2.net/related.html http://tls-kdh.arpa2.net/related.html]&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6112 RFC 6112] defines anonymous client tickets&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5531</id>
		<title>Project/TLS-KDH</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5531"/>
				<updated>2015-09-03T11:39:08Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos tickets with Forward Secrecy as TLS CipherSuites.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://tls-kdh.arpa2.net/tls-kdh.html Project working pages]&lt;br /&gt;
* [http://tls-kdh.arpa2.net/spec/tls-kdh-ID.html Specification]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/tls-kdh Discussion list]&lt;br /&gt;
&lt;br /&gt;
We use '''TLS-KDH''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
The TLS-KDH CipherSuite is a special way of using TLS:&lt;br /&gt;
&lt;br /&gt;
# The TLS client offers TLS-KDH CipherSuites in its ClientHello&lt;br /&gt;
# The TLS server selects a TLS-KDH CipherSuite in its ServerHello&lt;br /&gt;
# The TLS server sends no ServerCertificate&lt;br /&gt;
# The TLS server sends a ServerKeyExchange with a suitable Diffie-Hellman public key&lt;br /&gt;
# The TLS server may send a CertificateRequest to request a client identity (which the client may still refuse to supply)&lt;br /&gt;
# The TLS client chooses whether it will release its identity, or remain anonymous&lt;br /&gt;
# The TLS client looks for a service ticket in its local Kerberos infrastructure&lt;br /&gt;
# The TLS client sends a ClientKeyExchange holding a service ticket and a Diffie-Hellman public key response, encrypted to that ticket&lt;br /&gt;
# The TLS server accepts the service ticket and uses it to decrypt the Diffie-Hellman response&lt;br /&gt;
# Both now construct the shared secret, following normal Diffie-Hellman procedures for TLS&lt;br /&gt;
# Both now construct a proof of knowing the secret, thereby authentication to the other side&lt;br /&gt;
# Both now validate the other side before proceeding&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The server may or may not be equiped with a service ticket; this may depend on the server name&lt;br /&gt;
* The client may be willing to obtain a service ticket for all, some or no remote servers&lt;br /&gt;
* The client may be willing to provide its identity to all, some or no remote servers&lt;br /&gt;
* The KDC may be willing to provide service tickets for remote realms&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* None.  Although independent work on [Realm Crossover in the KDC] is bound to be useful.&lt;br /&gt;
&lt;br /&gt;
==Changes to TLS==&lt;br /&gt;
&lt;br /&gt;
* The changes to TLS do not disturb older TLS implementations&lt;br /&gt;
* The TLS-KDH CipherSuites require TLS version 1.2 or later&lt;br /&gt;
* Both TLS clients and servers must be extended to support the TLS-KDH CipherSuites&lt;br /&gt;
&lt;br /&gt;
We expect to offer early support to [http://www.gnutls.org GnuTLS] soon.  The [http://tlspool.arpa2.net TLS Pool] will also support TLS-KDH.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
See [http://tls-kdh.arpa2.net/related.html http://tls-kdh.arpa2.net/related.html]&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6112 RFC 6112] defines anonymous client tickets&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5530</id>
		<title>Project/TLS-KDH</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Project/TLS-KDH&amp;diff=5530"/>
				<updated>2015-09-03T11:38:04Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: New page: ''This project introduces Kerberos tickets with Forward Secrecy as TLS CipherSuites.''  {{project-early}}  External project links: * [http://tls-kdh.arpa2.net/tls-kdh.html Project working ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This project introduces Kerberos tickets with Forward Secrecy as TLS CipherSuites.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://tls-kdh.arpa2.net/tls-kdh.html Project working pages]&lt;br /&gt;
* [http://tls-kdh.arpa2.net/spec/tls-kdh-ID.html Specification]&lt;br /&gt;
&lt;br /&gt;
We use '''TLS-KDH''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
The TLS-KDH CipherSuite is a special way of using TLS:&lt;br /&gt;
&lt;br /&gt;
# The TLS client offers TLS-KDH CipherSuites in its ClientHello&lt;br /&gt;
# The TLS server selects a TLS-KDH CipherSuite in its ServerHello&lt;br /&gt;
# The TLS server sends no ServerCertificate&lt;br /&gt;
# The TLS server sends a ServerKeyExchange with a suitable Diffie-Hellman public key&lt;br /&gt;
# The TLS server may send a CertificateRequest to request a client identity (which the client may still refuse to supply)&lt;br /&gt;
# The TLS client chooses whether it will release its identity, or remain anonymous&lt;br /&gt;
# The TLS client looks for a service ticket in its local Kerberos infrastructure&lt;br /&gt;
# The TLS client sends a ClientKeyExchange holding a service ticket and a Diffie-Hellman public key response, encrypted to that ticket&lt;br /&gt;
# The TLS server accepts the service ticket and uses it to decrypt the Diffie-Hellman response&lt;br /&gt;
# Both now construct the shared secret, following normal Diffie-Hellman procedures for TLS&lt;br /&gt;
# Both now construct a proof of knowing the secret, thereby authentication to the other side&lt;br /&gt;
# Both now validate the other side before proceeding&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The server may or may not be equiped with a service ticket; this may depend on the server name&lt;br /&gt;
* The client may be willing to obtain a service ticket for all, some or no remote servers&lt;br /&gt;
* The client may be willing to provide its identity to all, some or no remote servers&lt;br /&gt;
* The KDC may be willing to provide service tickets for remote realms&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
* None.  Although independent work on [Realm Crossover in the KDC] is bound to be useful.&lt;br /&gt;
&lt;br /&gt;
==Changes to TLS==&lt;br /&gt;
&lt;br /&gt;
* The changes to TLS do not disturb older TLS implementations&lt;br /&gt;
* The TLS-KDH CipherSuites require TLS version 1.2 or later&lt;br /&gt;
* Both TLS clients and servers must be extended to support the TLS-KDH CipherSuites&lt;br /&gt;
&lt;br /&gt;
We expect to offer early support to [http://www.gnutls.org GnuTLS] soon.  The [http://tlspool.arpa2.net TLS Pool] will also support TLS-KDH.&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
See [http://tls-kdh.arpa2.net/related.html http://tls-kdh.arpa2.net/related.html]&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
See KREALM-XOVER.&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6112 RFC 6112] defines anonymous client tickets&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5529</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5529"/>
				<updated>2015-09-03T08:46:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Changes to Kerberos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
KDCs must support the above procedure.  They must accept servers accessing the PKINIT procedure.&lt;br /&gt;
&lt;br /&gt;
Clients must send the canonicalize(15) KDCOption; which do that and which don't?&lt;br /&gt;
&lt;br /&gt;
For AD/DC, a solution may be constructed with a trust relationship to an open source KDC and pointing to it with [https://technet.microsoft.com/en-us/library/cc784334(v=ws.10).aspx Name Suffix Routing] and using wildcard realm names.  (Perhaps * or otherwise *.com, *.org, ...)&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5528</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5528"/>
				<updated>2015-09-03T07:44:00Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
TODO: KDC changes&lt;br /&gt;
&lt;br /&gt;
TODO: Client changes, any???&lt;br /&gt;
&lt;br /&gt;
TODO: Include AD fallback to an external resolving component&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5527</id>
		<title>Projects/Realm Crossover between KDCs</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Projects/Realm_Crossover_between_KDCs&amp;diff=5527"/>
				<updated>2015-09-03T07:42:41Z</updated>
		
		<summary type="html">&lt;p&gt;Vanrein: /* Internet Drafts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Realm Crossover is the ability to connect Kerberos realms under potentially different operational control.  Although Kerberos supports mechanisms for connecting realms, this is based on manual key exchange in advance.  We use the term Realm Crossover here to indicate an automated process that can incorporate any remote party on the Internet.  The mechanism uses DNSSEC and DANE to secure a PKINIT process between KDCs that intend to collaborate; there is no need to change client code.''&lt;br /&gt;
&lt;br /&gt;
We use '''KREALM-XOVER''' as a name for the protocol proposed on this page.&lt;br /&gt;
&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
External project links:&lt;br /&gt;
* [http://realm-xover.arpa2.net/kerberos.html Project working pages]&lt;br /&gt;
* [http://lists.arpa2.org/mailman/listinfo/realm-xover Project mailing list]&lt;br /&gt;
&lt;br /&gt;
==Mechanics of the Project==&lt;br /&gt;
&lt;br /&gt;
# A client requests a sevice from its local KDC&lt;br /&gt;
# The local KDC finds that it does not define the requested service&lt;br /&gt;
# The local KDC extracts the server name from the request, and looks in DNS&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts a KREALM record describing the remote realm for the server name&lt;br /&gt;
# When the remote realm is already known, and still valid for long enough, the local KDC skips ahead to returning a ticket referral to the client&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the SRV records pointing to the remote KDC&lt;br /&gt;
# Demanding DNSSEC for security, the local KDC extracts the TLSA records for the remote KDC&lt;br /&gt;
# The local KDC initiates a PKINIT exchange with the remote KDC (using its own server certificate for PKINIT)&lt;br /&gt;
# The remote KDC receives the PKINIT request with a server certificate&lt;br /&gt;
# The remote KDC validates the requesting certificate through DNSSEC and SRV/TLSA records&lt;br /&gt;
# The local KDC and remote KDC agree on a symmetric key using Diffie-Hellman cryptography; they also agree on a timeout for this key&lt;br /&gt;
# The local KDC returns a ticket referral to the client, so a TGT for the remote realm&lt;br /&gt;
# The client understands the ticket referral as a hint to contact the remote realm&lt;br /&gt;
# The client looks up the SRV record for the remote KDC&lt;br /&gt;
# The client assumes that the KDC has established security, and therefore does not have to enforce DNSSEC validation&lt;br /&gt;
# The client requests a TGS from the remote KDC, using the remote realm name obtained from the ticket referral&lt;br /&gt;
&lt;br /&gt;
Note that the above process is not symmetric; the local KDC contains a client and the remote KDC contains a service.  The key exchanges is only setup for that direction; the opposite will often be supported as well, but would require a separate key exchange process.&lt;br /&gt;
&lt;br /&gt;
The one thing the '''client''' must permit, is accept ticket referrals.  This means that it should flag being open to those through the canonicalize(15) KDCOption flag.  This is not new. -- ''but is it available in practice?''&lt;br /&gt;
&lt;br /&gt;
The '''KDC code''' must implement the new flow, including strict reliance on DNSSEC without opt-out.  See [http://rickywiki.vanrein.org/doku.php?id=insisting-on-dnssec Insisting on DNSSEC] and [https://unbound.net/pipermail/unbound-users/2014-January/003113.html discussion].&lt;br /&gt;
&lt;br /&gt;
The '''KDC admin''' must publish the KDC's server-side PKINIT certificate in a TLSA record before enabling this process in the '''KDC configuration''' settings.&lt;br /&gt;
&lt;br /&gt;
==Policy Choices for this Mechanism==&lt;br /&gt;
&lt;br /&gt;
* The client makes a policy decision to support ticket referral through the canonicalize(15) KDCOption.&lt;br /&gt;
* The KDC may require X.509 PKI infrastructure on the Kerberos certificate (for instance, to enforce a federation).&lt;br /&gt;
* Any KDC may support client remote operation, and connect to remote realms on behalf of a local client.&lt;br /&gt;
* Any KDC may support service remote operation, and welcome remote clients to connect to reach a local service.&lt;br /&gt;
&lt;br /&gt;
==Changes to Kerberos==&lt;br /&gt;
&lt;br /&gt;
TODO: KDC changes&lt;br /&gt;
&lt;br /&gt;
TODO: Client changes, any???&lt;br /&gt;
&lt;br /&gt;
TODO: Include AD fallback to an external resolving component&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Comparison to Other Work==&lt;br /&gt;
&lt;br /&gt;
The current Kerberos infrastructure permits KDCs to link to one another, as well as assigning a KDC as a &amp;quot;certificate authority&amp;quot;.  The first construct provides a manually-secured method for ad-hoc links, the second permits larger structures such as federations to form.  Neither is suitable for binding together KDCs that have not been in contact before, and are therefore unsuitable to create a Kerberos facility that spans the Internet at large.  The fact that the method proposed here could not be formulated before has been the lack of a reliable, as in secure, DNS infrastructure.  With the advent of DNSSEC, this is now very well possible.&lt;br /&gt;
&lt;br /&gt;
Another proposal named PKCROSS exists to use the PKINIT exchange across realms, where a client uses an X.509 certificate to access a remote realm.  This X.509 certificate would have been previously obtained from a local realm, using the kx509 mechanism.  This approach therefore moves back and forth between X.509 and Kerberos, possibly more than once.  It relies on modifications in client code.&lt;br /&gt;
&lt;br /&gt;
==Related Projects==&lt;br /&gt;
&lt;br /&gt;
We propose KREALM-XOVER as a mechanism underneath TLS-KDH.  Using this combination, it would be possible to have interactions with web, mail, and many other services that are protected by Kerberos at the transport layer, so without interference from the application layer (the layer that includes JavaScript, and so, adverse advertisements).&lt;br /&gt;
&lt;br /&gt;
==Specifications==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc6806 RFC 6806] defines cross-realm referral tickets&lt;br /&gt;
* [http://tools.ietf.org/html/draft-vanrein-dnstxt-krb1 draft-vanrein-dnstxt-krb1] describes the KREALM record in DNS&lt;br /&gt;
* [https://tools.ietf.org/html/draft-williams-kitten-krb5-pkcross draft-williams-kitten-krb5-pkcross] describes the PKCROSS alternative&lt;/div&gt;</summary>
		<author><name>Vanrein</name></author>	</entry>

	</feed>