]> git.ipfire.org Git - thirdparty/krb5.git/commit
Add PKINIT KDC support for freshness token 742/head
authorGreg Hudson <ghudson@mit.edu>
Mon, 12 Mar 2018 15:31:46 +0000 (11:31 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 19 Mar 2018 20:11:53 +0000 (16:11 -0400)
commit4a9050df0bc34bfb08ba24462d6e2514640f4b8e
tree7239714f726b279b5a070b35f5a9ea86d8cea0e3
parent085785362e01467cb25c79a90dcebfba9ea019d8
Add PKINIT KDC support for freshness token

Send a freshness token in the preauth hint list if PKINIT is
configured and the request padata indicates support.  Verify the
freshness token if the client includes one in a PKINIT request, and
log whether one was received.  If pkinit_require_freshness is set to
true in the realm config, reject non-anonymous requests which don't
contain a freshness token.

Add freshness token tests to t_pkinit.py with some related changes.
Remove client long-term keys after testing password preauth so we get
better error reporting when pkinit_require_freshness is set and a
token is not sent.  Remove ./responder invocations for test cases
which don't ask PKINIT responder questions, or else the responder
would fail now that it isn't being asked for the password.  Leave
anonymous PKINIT enabled after the anonymous tests so that we can use
it again when testing enforcement of pkinit_require_freshness.  Add
expected trace messages for the basic test, including one for
receiving a freshness token.  Add minimal expected trace messages for
the RSA test.

ticket: 8648
13 files changed:
doc/admin/conf_files/kdc_conf.rst
doc/admin/pkinit.rst
doc/appdev/refs/macros/index.rst
doc/formats/freshness_token.rst [new file with mode: 0644]
doc/formats/index.rst
src/include/krb5/kdcpreauth_plugin.h
src/include/krb5/krb5.hin
src/kdc/do_as_req.c
src/kdc/kdc_preauth.c
src/kdc/kdc_util.h
src/plugins/preauth/pkinit/pkinit.h
src/plugins/preauth/pkinit/pkinit_srv.c
src/tests/t_pkinit.py