From: Francis Dupont Date: Thu, 19 Aug 2021 13:09:51 +0000 (+0200) Subject: [#2018] Added protocols with ref and schemas X-Git-Tag: Kea-1.9.11~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c407640dec70b86bb6d0ba19a4acdf773e2031fa;p=thirdparty%2Fkea.git [#2018] Added protocols with ref and schemas --- diff --git a/doc/sphinx/Makefile.am b/doc/sphinx/Makefile.am index 96cba12ded..86bec84b99 100644 --- a/doc/sphinx/Makefile.am +++ b/doc/sphinx/Makefile.am @@ -137,6 +137,12 @@ EXTRA_DIST += uml/requestLease4.uml EXTRA_DIST += uml/select4.png EXTRA_DIST += uml/select4.svg EXTRA_DIST += uml/select4.uml +EXTRA_DIST += uml/tkey.png +EXTRA_DIST += uml/tkey.svg +EXTRA_DIST += uml/tkey.uml +EXTRA_DIST += uml/update.png +EXTRA_DIST += uml/update.svg +EXTRA_DIST += uml/update.uml PDFLATEX_AND_OPTS=$(PDFLATEX) -interaction nonstopmode diff --git a/doc/sphinx/arm/ext-gss-tsig.rst b/doc/sphinx/arm/ext-gss-tsig.rst index 27c957e00d..47aa6aaad4 100644 --- a/doc/sphinx/arm/ext-gss-tsig.rst +++ b/doc/sphinx/arm/ext-gss-tsig.rst @@ -9,9 +9,8 @@ GSS-TSIG GSS-TSIG Overview ----------------- -Kea provides a support for DNS updates (as defined in `RFC 2136 `__), -which can be protected using Transaction Signatures (or TSIG) as defined in -`RFC 2845 `__). This protection +Kea provides a support for DNS updates, which can be protected using +Transaction Signatures (or TSIG). This protection is often adequate. However, some systems, in particular Active Directory (AD) on Microsoft Windows systems, chose to adopt more complex GSS-TSIG approach that offers additional capabilities as using negotiated dynamic keys. @@ -22,6 +21,39 @@ The GSS-TSIG is defined in `RFC 3645 `__. The GSS-TSIG protocol itself is an implementation of generic GSS-API v2 services, defined in `RFC 2743 `__. +More exactly many protocols are involved: + - Kerberos 5 `RFC 4120 `__ which + provides the security framework + - GSS-API (Generic Security Services Application Program Interface) + `RFC 2743 `__ for the API, + `RFC 2744 `__ for C bindings and + `RFC 4121 `__ for the application + to Kerberos 5 + - SPNEGO (Simple and Protected GSS-API Negotiation Mechanism) + `RFC 4178 `__ for the negotation + - DNS update `RFC 2136 `__ + - TSIG (Secret Key Transaction Authentication for DNS) + `RFC 8945 `__ which + protects DNS exchanges + - Secure Domain Name System (DNS) Dynamic Update + `RFC 3007 `__ which is the + application of TSIG to the DNS update protection + - TKEY (Secret Key Establishment for DNS) + `RFC 2930 `__ which establishes + secret keys for TSIG by transmitting crypto payloads between DNS + parties + - GSS-TSIG `RFC 3645 `__ which + is the application of GSS-API to TSIG + +To summary GSS-API for Kerberos 5 with SPNEGO and TKEY are used to +negotiate a security context between the Kea D2 server and a DNS server: + +.. figure:: ../uml/tkey.* + +The security context is used by GSS-TSIG to protect updates: + +.. figure:: ../uml/update.* + The Kea implementation of GSS-TSIG uses a GSS-API for Kerberos 5 with SPNEGO library. Two implementations meet this criteria: MIT Kerberos 5 and the Heimdal libraries. diff --git a/doc/sphinx/uml/tkey.png b/doc/sphinx/uml/tkey.png new file mode 100644 index 0000000000..c10ec7cf08 Binary files /dev/null and b/doc/sphinx/uml/tkey.png differ diff --git a/doc/sphinx/uml/tkey.svg b/doc/sphinx/uml/tkey.svg new file mode 100644 index 0000000000..6bfb43f03d --- /dev/null +++ b/doc/sphinx/uml/tkey.svg @@ -0,0 +1,21 @@ +TKEY Exchange (GSS-TSIG hook)Kea D2 serverKea D2 serverDNS serverDNS serverTKEY requestTKEY response (signed) \ No newline at end of file diff --git a/doc/sphinx/uml/tkey.uml b/doc/sphinx/uml/tkey.uml new file mode 100644 index 0000000000..4cc33e58b7 --- /dev/null +++ b/doc/sphinx/uml/tkey.uml @@ -0,0 +1,11 @@ +@startuml + +title TKEY Exchange (GSS-TSIG hook) + +participant "Kea D2 server" as Kea +participant "DNS server" as DNS + +Kea -> DNS: TKEY request +DNS -> Kea: TKEY response (signed) + +@enduml diff --git a/doc/sphinx/uml/update.png b/doc/sphinx/uml/update.png new file mode 100644 index 0000000000..9b0520e732 Binary files /dev/null and b/doc/sphinx/uml/update.png differ diff --git a/doc/sphinx/uml/update.svg b/doc/sphinx/uml/update.svg new file mode 100644 index 0000000000..7fb4947414 --- /dev/null +++ b/doc/sphinx/uml/update.svg @@ -0,0 +1,21 @@ +DNS Update Exchange (GSS-TSIG hook)Kea D2 serverKea D2 serverDNS serverDNS serverDNS update request (signed)DNS update response (signed) \ No newline at end of file diff --git a/doc/sphinx/uml/update.uml b/doc/sphinx/uml/update.uml new file mode 100644 index 0000000000..9738f30ade --- /dev/null +++ b/doc/sphinx/uml/update.uml @@ -0,0 +1,11 @@ +@startuml + +title DNS Update Exchange (GSS-TSIG hook) + +participant "Kea D2 server" as Kea +participant "DNS server" as DNS + +Kea -> DNS: DNS update request (signed) +DNS -> Kea: DNS update response (signed) + +@enduml