xref: /freebsd/contrib/ntp/util/ntp-keygen-opts.def (revision c7a33fe37d7688cb21c743f68256680e003210ad)
1ea906c41SOllivier Robert/* -*- Mode: Text -*- */
2ea906c41SOllivier Robert
3ea906c41SOllivier Robertautogen definitions options;
4ea906c41SOllivier Robert
5ea906c41SOllivier Robert#include copyright.def
6ea906c41SOllivier Robert#include homerc.def
7ea906c41SOllivier Robert#include autogen-version.def
8ea906c41SOllivier Robert
9ea906c41SOllivier Robertprog-name      = "ntp-keygen";
10*c7a33fe3SAlexander Ziaeeprog-title     = "create a Network Time Protocol host key";
11ea906c41SOllivier Robertpackage        = ntp;
12ea906c41SOllivier Robert
13ea906c41SOllivier Robertinclude        = '#include <stdlib.h>';
14ea906c41SOllivier Robert#include       version.def
15ea906c41SOllivier Robert
16ea906c41SOllivier Robertflag = {
172b15cb3dSCy Schubert    value     = b;
182b15cb3dSCy Schubert    name      = imbits;
192b15cb3dSCy Schubert    arg-type  = number;
202b15cb3dSCy Schubert    arg-name  = imbits;
212b15cb3dSCy Schubert    arg-range = '256->2048';
222b15cb3dSCy Schubert    ifdef     = AUTOKEY;
232b15cb3dSCy Schubert    descrip   = "identity modulus bits";
242b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
25a466cc55SCy Schubert	The number of bits in the identity modulus.  The default is 512.
262b15cb3dSCy Schubert	_EndOfDoc_;
272b15cb3dSCy Schubert};
282b15cb3dSCy Schubert
292b15cb3dSCy Schubertflag = {
30ea906c41SOllivier Robert    value     = c;
312b15cb3dSCy Schubert    name      = certificate;
32ea906c41SOllivier Robert    arg-type  = string;
33ea906c41SOllivier Robert    arg-name  = scheme;
342b15cb3dSCy Schubert    ifdef     = AUTOKEY;
35ea906c41SOllivier Robert    descrip   = "certificate scheme";
36ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
372b15cb3dSCy Schubert	scheme is one of
3809100258SXin LI	RSA-MD2, RSA-MD5, RSA-MDC2, RSA-SHA, RSA-SHA1, RSA-RIPEMD160,
392b15cb3dSCy Schubert	DSA-SHA, or DSA-SHA1.
402b15cb3dSCy Schubert
4109100258SXin LI	Select the certificate signature encryption/message digest scheme.
422b15cb3dSCy Schubert	Note that RSA schemes must be used with a RSA sign key and DSA
432b15cb3dSCy Schubert	schemes must be used with a DSA sign key.  The default without
442b15cb3dSCy Schubert	this option is RSA-MD5.
452b15cb3dSCy Schubert	_EndOfDoc_;
462b15cb3dSCy Schubert};
472b15cb3dSCy Schubert
482b15cb3dSCy Schubertflag = {
492b15cb3dSCy Schubert    value     = C;
502b15cb3dSCy Schubert    name      = cipher;
512b15cb3dSCy Schubert    arg-type  = string;
522b15cb3dSCy Schubert    arg-name  = cipher;
532b15cb3dSCy Schubert    ifdef     = AUTOKEY;
542b15cb3dSCy Schubert    descrip   = "privatekey cipher";
552b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
562b15cb3dSCy Schubert	Select the cipher which is used to encrypt the files containing
572b15cb3dSCy Schubert	private keys.  The default is three-key triple DES in CBC mode,
5809100258SXin LI	equivalent to "@code{-C des-ede3-cbc}".  The openssl tool lists ciphers
592b15cb3dSCy Schubert	available in "@code{openssl -h}" output.
60ea906c41SOllivier Robert	_EndOfDoc_;
61ea906c41SOllivier Robert};
62ea906c41SOllivier Robert
63ea906c41SOllivier Robert#include       debug-opt.def
64ea906c41SOllivier Robert
65ea906c41SOllivier Robertflag = {
66ea906c41SOllivier Robert    value     = e;
672b15cb3dSCy Schubert    name      = id-key;
682b15cb3dSCy Schubert    ifdef     = AUTOKEY;
692b15cb3dSCy Schubert    descrip   = "Write IFF or GQ identity keys";
70ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
7109100258SXin LI	Write the public parameters from the IFF or GQ client keys to
7209100258SXin LI	the standard output.
7309100258SXin LI	This is intended for automatic key distribution by email.
74ea906c41SOllivier Robert	_EndOfDoc_;
75ea906c41SOllivier Robert};
76ea906c41SOllivier Robert
77ea906c41SOllivier Robertflag = {
78ea906c41SOllivier Robert    value     = G;
792b15cb3dSCy Schubert    name      = gq-params;
802b15cb3dSCy Schubert    ifdef     = AUTOKEY;
81ea906c41SOllivier Robert    descrip   = "Generate GQ parameters and keys";
82ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
832b15cb3dSCy Schubert	Generate parameters and keys for the GQ identification scheme,
842b15cb3dSCy Schubert	obsoleting any that may exist.
85ea906c41SOllivier Robert	_EndOfDoc_;
86ea906c41SOllivier Robert};
87ea906c41SOllivier Robert
88ea906c41SOllivier Robertflag = {
89ea906c41SOllivier Robert    value     = H;
902b15cb3dSCy Schubert    name      = host-key;
912b15cb3dSCy Schubert    ifdef     = AUTOKEY;
92ea906c41SOllivier Robert    descrip   = "generate RSA host key";
93ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
942b15cb3dSCy Schubert	Generate new host keys, obsoleting any that may exist.
95ea906c41SOllivier Robert	_EndOfDoc_;
96ea906c41SOllivier Robert};
97ea906c41SOllivier Robert
98ea906c41SOllivier Robertflag = {
99ea906c41SOllivier Robert    value     = I;
1002b15cb3dSCy Schubert    name      = iffkey;
1012b15cb3dSCy Schubert    ifdef     = AUTOKEY;
102ea906c41SOllivier Robert    descrip   = "generate IFF parameters";
103ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1042b15cb3dSCy Schubert	Generate parameters for the IFF identification scheme, obsoleting
1052b15cb3dSCy Schubert	any that may exist.
106ea906c41SOllivier Robert	_EndOfDoc_;
107ea906c41SOllivier Robert};
108ea906c41SOllivier Robert
109ea906c41SOllivier Robertflag = {
110ea906c41SOllivier Robert    value     = i;
1112b15cb3dSCy Schubert    name      = ident;
1122b15cb3dSCy Schubert    ifdef     = AUTOKEY;
1132b15cb3dSCy Schubert    arg-type  = string;
1142b15cb3dSCy Schubert    arg-name  = group;
1152b15cb3dSCy Schubert    descrip   = "set Autokey group name";
116ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1172b15cb3dSCy Schubert	Set the optional Autokey group name to name.  This is used in
1182b15cb3dSCy Schubert	the file name of IFF, GQ, and MV client parameters files.  In
1192b15cb3dSCy Schubert	that role, the default is the host name if this option is not
1202b15cb3dSCy Schubert	provided.  The group name, if specified using @code{-i/--ident} or
12109100258SXin LI	using @code{-s/--subject-name} following an '@code{@@}' character,
12209100258SXin LI	is also a part of the self-signed host certificate subject and
12309100258SXin LI	issuer names in the form @code{host@@group} and should match the
12409100258SXin LI	'@code{crypto ident}' or '@code{server ident}' configuration in the
12509100258SXin LI	@code{ntpd} configuration file.
126ea906c41SOllivier Robert	_EndOfDoc_;
127ea906c41SOllivier Robert};
128ea906c41SOllivier Robert
129ea906c41SOllivier Robertflag = {
1302b15cb3dSCy Schubert    value     = l;
1312b15cb3dSCy Schubert    name      = lifetime;
1322b15cb3dSCy Schubert    ifdef     = AUTOKEY;
1332b15cb3dSCy Schubert    arg-type  = number;
1342b15cb3dSCy Schubert    arg-name  = lifetime;
1352b15cb3dSCy Schubert    descrip   = "set certificate lifetime";
1362b15cb3dSCy Schubert    doc = <<-  _EndOfDoc_
1372b15cb3dSCy Schubert	Set the certificate expiration to lifetime days from now.
1382b15cb3dSCy Schubert	_EndOfDoc_;
1392b15cb3dSCy Schubert};
1402b15cb3dSCy Schubert
1412b15cb3dSCy Schubertflag = {
142ea906c41SOllivier Robert    value     = m;
1432b15cb3dSCy Schubert    name      = modulus;
144ea906c41SOllivier Robert    arg-type  = number;
145ea906c41SOllivier Robert    arg-name  = modulus;
146ea906c41SOllivier Robert    arg-range = '256->2048';
1472b15cb3dSCy Schubert    ifdef     = AUTOKEY;
14809100258SXin LI    descrip   = "prime modulus";
149ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1502b15cb3dSCy Schubert	The number of bits in the prime modulus.  The default is 512.
151ea906c41SOllivier Robert	_EndOfDoc_;
152ea906c41SOllivier Robert};
153ea906c41SOllivier Robert
154ea906c41SOllivier Robertflag = {
15509100258SXin LI    value     = M;
15609100258SXin LI    name      = md5key;
15709100258SXin LI    descrip   = "generate symmetric keys";
15809100258SXin LI    doc = <<-  _EndOfDoc_
15909100258SXin LI	Generate symmetric keys, obsoleting any that may exist.
16009100258SXin LI	_EndOfDoc_;
16109100258SXin LI};
16209100258SXin LI
16309100258SXin LIflag = {
164ea906c41SOllivier Robert    value     = P;
1652b15cb3dSCy Schubert    name      = pvt-cert;
1662b15cb3dSCy Schubert    ifdef     = AUTOKEY;
167ea906c41SOllivier Robert    descrip   = "generate PC private certificate";
168ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1692b15cb3dSCy Schubert	Generate a private certificate.  By default, the program generates
1702b15cb3dSCy Schubert	public certificates.
171ea906c41SOllivier Robert	_EndOfDoc_;
172ea906c41SOllivier Robert};
173ea906c41SOllivier Robert
174ea906c41SOllivier Robertflag = {
175ea906c41SOllivier Robert    value     = p;
1762b15cb3dSCy Schubert    name      = password;	// was: pvt-passwd;
1772b15cb3dSCy Schubert    ifdef     = AUTOKEY;
178ea906c41SOllivier Robert    arg-type  = string;
179ea906c41SOllivier Robert    arg-name  = passwd;
1802b15cb3dSCy Schubert    descrip   = "local private password";
181ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1822b15cb3dSCy Schubert	Local files containing private data are encrypted with the
1832b15cb3dSCy Schubert	DES-CBC algorithm and the specified password.  The same password
1842b15cb3dSCy Schubert	must be specified to the local ntpd via the "crypto pw password"
1852b15cb3dSCy Schubert	configuration command.  The default password is the local
1862b15cb3dSCy Schubert	hostname.
187ea906c41SOllivier Robert	_EndOfDoc_;
188ea906c41SOllivier Robert};
189ea906c41SOllivier Robert
190ea906c41SOllivier Robertflag = {
191ea906c41SOllivier Robert    value     = q;
1922b15cb3dSCy Schubert    name      = export-passwd;	// Was: get-pvt-passwd;
1932b15cb3dSCy Schubert    ifdef     = AUTOKEY;
194ea906c41SOllivier Robert    arg-type  = string;
195ea906c41SOllivier Robert    arg-name  = passwd;
1962b15cb3dSCy Schubert    descrip   = "export IFF or GQ group keys with password";
197ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
1982b15cb3dSCy Schubert	Export IFF or GQ identity group keys to the standard output,
1992b15cb3dSCy Schubert	encrypted with the DES-CBC algorithm and the specified password.
2002b15cb3dSCy Schubert	The same password must be specified to the remote ntpd via the
2012b15cb3dSCy Schubert	"crypto pw password" configuration command.  See also the option
2022b15cb3dSCy Schubert	--id-key (-e) for unencrypted exports.
203ea906c41SOllivier Robert	_EndOfDoc_;
204ea906c41SOllivier Robert};
205ea906c41SOllivier Robert
206ea906c41SOllivier Robertflag = {
20709100258SXin LI    value     = s;
20809100258SXin LI    name      = subject-name;
20909100258SXin LI    arg-type  = string;
21009100258SXin LI    arg-name  = host@group;
21109100258SXin LI    ifdef     = AUTOKEY;
21209100258SXin LI    descrip   = "set host and optionally group name";
21309100258SXin LI    doc = <<-  _EndOfDoc_
21409100258SXin LI	Set the Autokey host name, and optionally, group name specified
21509100258SXin LI	following an '@code{@@}' character.  The host name is used in the file
21609100258SXin LI	name of generated host and signing certificates, without the
21709100258SXin LI	group name.  The host name, and if provided, group name are used
21809100258SXin LI	in @code{host@@group} form for the host certificate subject and issuer
21909100258SXin LI	fields.  Specifying '@code{-s @@group}' is allowed, and results in
22009100258SXin LI	leaving the host name unchanged while appending @code{@@group} to the
22109100258SXin LI	subject and issuer fields, as with @code{-i group}.  The group name, or
22209100258SXin LI	if not provided, the host name are also used in the file names
22309100258SXin LI	of IFF, GQ, and MV client parameter files.
22409100258SXin LI		_EndOfDoc_;
22509100258SXin LI};
22609100258SXin LI
22709100258SXin LIflag = {
228ea906c41SOllivier Robert    value     = S;
2292b15cb3dSCy Schubert    name      = sign-key;
230ea906c41SOllivier Robert    arg-type  = string;
231ea906c41SOllivier Robert    arg-name  = sign;
2322b15cb3dSCy Schubert    ifdef     = AUTOKEY;
233ea906c41SOllivier Robert    descrip   = "generate sign key (RSA or DSA)";
234ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2352b15cb3dSCy Schubert	Generate a new sign key of the designated type, obsoleting any
2362b15cb3dSCy Schubert	that may exist.  By default, the program uses the host key as the
2372b15cb3dSCy Schubert	sign key.
238ea906c41SOllivier Robert	_EndOfDoc_;
239ea906c41SOllivier Robert};
240ea906c41SOllivier Robert
241ea906c41SOllivier Robertflag = {
242ea906c41SOllivier Robert    value     = T;
2432b15cb3dSCy Schubert    name      = trusted-cert;
2442b15cb3dSCy Schubert    ifdef     = AUTOKEY;
245ea906c41SOllivier Robert    descrip   = "trusted certificate (TC scheme)";
246ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2472b15cb3dSCy Schubert	Generate a trusted certificate.  By default, the program generates
2482b15cb3dSCy Schubert	a non-trusted certificate.
249ea906c41SOllivier Robert	_EndOfDoc_;
250ea906c41SOllivier Robert};
251ea906c41SOllivier Robert
252ea906c41SOllivier Robertflag = {
253ea906c41SOllivier Robert    value     = V;
2542b15cb3dSCy Schubert    name      = mv-params;
255ea906c41SOllivier Robert    arg-type  = number;
256ea906c41SOllivier Robert    arg-name  = num;
2572b15cb3dSCy Schubert    ifdef     = AUTOKEY;
258ea906c41SOllivier Robert    descrip   = "generate <num> MV parameters";
259ea906c41SOllivier Robert    doc = <<-  _EndOfDoc_
2602b15cb3dSCy Schubert	Generate parameters and keys for the Mu-Varadharajan (MV)
2612b15cb3dSCy Schubert	identification scheme.
262ea906c41SOllivier Robert	_EndOfDoc_;
263ea906c41SOllivier Robert};
264ea906c41SOllivier Robert
265ea906c41SOllivier Robertflag = {
266ea906c41SOllivier Robert    value     = v;
2672b15cb3dSCy Schubert    name      = mv-keys;
268ea906c41SOllivier Robert    arg-type  = number;
269ea906c41SOllivier Robert    arg-name  = num;
2702b15cb3dSCy Schubert    ifdef     = AUTOKEY;
271ea906c41SOllivier Robert    descrip   = "update <num> MV keys";
272ea906c41SOllivier Robert};
273ea906c41SOllivier Robert
2742b15cb3dSCy Schubert/* explain: Additional information whenever the usage routine is invoked */
2752b15cb3dSCy Schubertexplain = <<- _END_EXPLAIN
2762b15cb3dSCy Schubert	_END_EXPLAIN;
2772b15cb3dSCy Schubert
2782b15cb3dSCy Schubertdoc-section	= {
2792b15cb3dSCy Schubert  ds-type	= 'DESCRIPTION';
2802b15cb3dSCy Schubert  ds-format	= 'mdoc';
2812b15cb3dSCy Schubert  ds-text	= <<- _END_PROG_MDOC_DESCRIP
2822b15cb3dSCy SchubertThis program generates cryptographic data files used by the NTPv4
2832b15cb3dSCy Schubertauthentication and identification schemes.
28409100258SXin LIIt can generate message digest keys used in symmetric key cryptography and,
28509100258SXin LIif the OpenSSL software library has been installed, it can generate host keys,
28609100258SXin LIsigning keys, certificates, and identity keys and parameters used in Autokey
28709100258SXin LIpublic key cryptography.
2882b15cb3dSCy SchubertThese files are used for cookie encryption,
28909100258SXin LIdigital signature, and challenge/response identification algorithms
2902b15cb3dSCy Schubertcompatible with the Internet standard security infrastructure.
2912b15cb3dSCy Schubert.Pp
29209100258SXin LIThe message digest symmetric keys file is generated in a format
29309100258SXin LIcompatible with NTPv3.
29409100258SXin LIAll other files are in PEM-encoded printable ASCII format,
29509100258SXin LIso they can be embedded as MIME attachments in email to other sites
2962b15cb3dSCy Schubertand certificate authorities.
2972b15cb3dSCy SchubertBy default, files are not encrypted.
2982b15cb3dSCy Schubert.Pp
29909100258SXin LIWhen used to generate message digest symmetric keys, the program
30009100258SXin LIproduces a file containing ten pseudo-random printable ASCII strings
30109100258SXin LIsuitable for the MD5 message digest algorithm included in the
30209100258SXin LIdistribution.
3032b15cb3dSCy SchubertIf the OpenSSL library is installed, it produces an additional ten
30409100258SXin LIhex-encoded random bit strings suitable for SHA1, AES-128-CMAC, and
30509100258SXin LIother message digest algorithms.
30609100258SXin LIThe message digest symmetric keys file must be distributed and stored
3072b15cb3dSCy Schubertusing secure means beyond the scope of NTP itself.
3082b15cb3dSCy SchubertBesides the keys used for ordinary NTP associations, additional keys
3092b15cb3dSCy Schubertcan be defined as passwords for the
3102b15cb3dSCy Schubert.Xr ntpq 1ntpqmdoc
3112b15cb3dSCy Schubertand
3122b15cb3dSCy Schubert.Xr ntpdc 1ntpdcmdoc
3132b15cb3dSCy Schubertutility programs.
3142b15cb3dSCy Schubert.Pp
3152b15cb3dSCy SchubertThe remaining generated files are compatible with other OpenSSL
3162b15cb3dSCy Schubertapplications and other Public Key Infrastructure (PKI) resources.
3172b15cb3dSCy SchubertCertificates generated by this program are compatible with extant
3182b15cb3dSCy Schubertindustry practice, although some users might find the interpretation of
3192b15cb3dSCy SchubertX509v3 extension fields somewhat liberal.
3202b15cb3dSCy SchubertHowever, the identity keys are probably not compatible with anything
3212b15cb3dSCy Schubertother than Autokey.
3222b15cb3dSCy Schubert.Pp
3232b15cb3dSCy SchubertSome files used by this program are encrypted using a private password.
3242b15cb3dSCy SchubertThe
3252b15cb3dSCy Schubert.Fl p
32609100258SXin LIoption specifies the read password for local encrypted files and the
3272b15cb3dSCy Schubert.Fl q
32809100258SXin LIoption the write password for encrypted files sent to remote sites.
3292b15cb3dSCy SchubertIf no password is specified, the host name returned by the Unix
33009100258SXin LI.Xr hostname 1
33109100258SXin LIcommand, normally the DNS name of the host, is used as the the default read
33209100258SXin LIpassword, for convenience.
33309100258SXin LIThe
33409100258SXin LI.Nm
33509100258SXin LIprogram prompts for the password if it reads an encrypted file
33609100258SXin LIand the password is missing or incorrect.
33709100258SXin LIIf an encrypted file is read successfully and
33809100258SXin LIno write password is specified, the read password is used
33909100258SXin LIas the write password by default.
3402b15cb3dSCy Schubert.Pp
3412b15cb3dSCy SchubertThe
34209100258SXin LI.Cm pw
3432b15cb3dSCy Schubertoption of the
34409100258SXin LI.Ic crypto
34509100258SXin LI.Xr ntpd 1ntpdmdoc
3462b15cb3dSCy Schubertconfiguration command specifies the read
3472b15cb3dSCy Schubertpassword for previously encrypted local files.
34809100258SXin LIThis must match the local read password used by this program.
3492b15cb3dSCy SchubertIf not specified, the host name is used.
35009100258SXin LIThus, if files are generated by this program without an explicit password,
3512b15cb3dSCy Schubertthey can be read back by
35209100258SXin LI.Xr ntpd 1ntpdmdoc
35309100258SXin LIwithout specifying an explicit password but only on the same host.
35409100258SXin LIIf the write password used for encryption is specified as the host name,
35509100258SXin LIthese files can be read by that host with no explicit password.
3562b15cb3dSCy Schubert.Pp
3572b15cb3dSCy SchubertNormally, encrypted files for each host are generated by that host and
3582b15cb3dSCy Schubertused only by that host, although exceptions exist as noted later on
3592b15cb3dSCy Schubertthis page.
3602b15cb3dSCy SchubertThe symmetric keys file, normally called
36109100258SXin LI.Pa ntp.keys ,
3622b15cb3dSCy Schubertis usually installed in
3632b15cb3dSCy Schubert.Pa /etc .
3642b15cb3dSCy SchubertOther files and links are usually installed in
3652b15cb3dSCy Schubert.Pa /usr/local/etc ,
3662b15cb3dSCy Schubertwhich is normally in a shared filesystem in
3672b15cb3dSCy SchubertNFS-mounted networks and cannot be changed by shared clients.
36809100258SXin LIIn these cases, NFS clients can specify the files in another
36909100258SXin LIdirectory such as
37009100258SXin LI.Pa /etc
37109100258SXin LIusing the
37209100258SXin LI.Ic keysdir
37309100258SXin LI.Xr ntpd 1ntpdmdoc
37409100258SXin LIconfiguration file command.
3752b15cb3dSCy Schubert.Pp
3762b15cb3dSCy SchubertThis program directs commentary and error messages to the standard
3772b15cb3dSCy Schuberterror stream
37809100258SXin LI.Pa stderr
3792b15cb3dSCy Schubertand remote files to the standard output stream
38009100258SXin LI.Pa stdout
3812b15cb3dSCy Schubertwhere they can be piped to other applications or redirected to files.
3822b15cb3dSCy SchubertThe names used for generated files and links all begin with the
3832b15cb3dSCy Schubertstring
38409100258SXin LI.Pa ntpkey\&*
3852b15cb3dSCy Schubertand include the file type, generating host and filestamp,
3862b15cb3dSCy Schubertas described in the
38709100258SXin LI.Sx "Cryptographic Data Files"
3882b15cb3dSCy Schubertsection below.
38909100258SXin LI
3902b15cb3dSCy Schubert.Ss Running the Program
39109100258SXin LIThe safest way to run the
39209100258SXin LI.Nm
39309100258SXin LIprogram is logged in directly as root.
39409100258SXin LIThe recommended procedure is change to the
39509100258SXin LI.Ar keys
39609100258SXin LIdirectory, usually
39709100258SXin LI.Pa /usr/local/etc ,
39809100258SXin LIthen run the program.
39909100258SXin LI.Pp
4002b15cb3dSCy SchubertTo test and gain experience with Autokey concepts, log in as root and
40109100258SXin LIchange to the
40209100258SXin LI.Ar keys
40309100258SXin LIdirectory, usually
40409100258SXin LI.Pa /usr/local/etc .
4052b15cb3dSCy SchubertWhen run for the first time, or if all files with names beginning with
40609100258SXin LI.Pa ntpkey\&*
4072b15cb3dSCy Schuberthave been removed, use the
4082b15cb3dSCy Schubert.Nm
40909100258SXin LIcommand without arguments to generate a default
41009100258SXin LI.Cm RSA
41109100258SXin LIhost key and matching
41209100258SXin LI.Cm RSA-MD5
41309100258SXin LIcertificate file with expiration date one year hence,
41409100258SXin LIwhich is all that is necessary in many cases.
41509100258SXin LIThe program also generates soft links from the generic names
41609100258SXin LIto the respective files.
4172b15cb3dSCy SchubertIf run again without options, the program uses the
41809100258SXin LIexisting keys and parameters and generates a new certificate file with
41909100258SXin LInew expiration date one year hence, and soft link.
42009100258SXin LI.Pp
42109100258SXin LIThe host key is used to encrypt the cookie when required and so must be
42209100258SXin LI.Cm RSA
42309100258SXin LItype.
42409100258SXin LIBy default, the host key is also the sign key used to encrypt signatures.
42509100258SXin LIWhen necessary, a different sign key can be specified and this can be
42609100258SXin LIeither
42709100258SXin LI.Cm RSA
42809100258SXin LIor
42909100258SXin LI.Cm DSA
43009100258SXin LItype.
43109100258SXin LIBy default, the message digest type is
43209100258SXin LI.Cm MD5 ,
43309100258SXin LIbut any combination
43409100258SXin LIof sign key type and message digest type supported by the OpenSSL library
43509100258SXin LIcan be specified, including those using the
43609100258SXin LI.Cm AES128CMAC , MD2 , MD5 , MDC2 , SHA , SHA1
43709100258SXin LIand
43809100258SXin LI.Cm RIPE160
43909100258SXin LImessage digest algorithms.
44009100258SXin LIHowever, the scheme specified in the certificate must be compatible
44109100258SXin LIwith the sign key.
44209100258SXin LICertificates using any digest algorithm are compatible with
44309100258SXin LI.Cm RSA
44409100258SXin LIsign keys;
44509100258SXin LIhowever, only
44609100258SXin LI.Cm SHA
44709100258SXin LIand
44809100258SXin LI.Cm SHA1
44909100258SXin LIcertificates are compatible with
45009100258SXin LI.Cm DSA
45109100258SXin LIsign keys.
45209100258SXin LI.Pp
45309100258SXin LIPrivate/public key files and certificates are compatible with
45409100258SXin LIother OpenSSL applications and very likely other libraries as well.
45509100258SXin LICertificates or certificate requests derived from them should be compatible
45609100258SXin LIwith extant industry practice, although some users might find
45709100258SXin LIthe interpretation of X509v3 extension fields somewhat liberal.
45809100258SXin LIHowever, the identification parameter files, although encoded
45909100258SXin LIas the other files, are probably not compatible with anything other than Autokey.
46009100258SXin LI.Pp
46109100258SXin LIRunning the program as other than root and using the Unix
46209100258SXin LI.Xr su 1
46309100258SXin LIcommand
46409100258SXin LIto assume root may not work properly, since by default the OpenSSL library
46509100258SXin LIlooks for the random seed file
46609100258SXin LI.Pa .rnd
46709100258SXin LIin the user home directory.
46809100258SXin LIHowever, there should be only one
46909100258SXin LI.Pa .rnd ,
47009100258SXin LImost conveniently
47109100258SXin LIin the root directory, so it is convenient to define the
47209100258SXin LI.Ev RANDFILE
47309100258SXin LIenvironment variable used by the OpenSSL library as the path to
47409100258SXin LI.Pa .rnd .
47509100258SXin LI.Pp
47609100258SXin LIInstalling the keys as root might not work in NFS-mounted
47709100258SXin LIshared file systems, as NFS clients may not be able to write
47809100258SXin LIto the shared keys directory, even as root.
47909100258SXin LIIn this case, NFS clients can specify the files in another
48009100258SXin LIdirectory such as
48109100258SXin LI.Pa /etc
48209100258SXin LIusing the
48309100258SXin LI.Ic keysdir
48409100258SXin LI.Xr ntpd 1ntpdmdoc
48509100258SXin LIconfiguration file command.
48609100258SXin LIThere is no need for one client to read the keys and certificates
48709100258SXin LIof other clients or servers, as these data are obtained automatically
48809100258SXin LIby the Autokey protocol.
48909100258SXin LI.Pp
49009100258SXin LIOrdinarily, cryptographic files are generated by the host that uses them,
49109100258SXin LIbut it is possible for a trusted agent (TA) to generate these files
49209100258SXin LIfor other hosts; however, in such cases files should always be encrypted.
49309100258SXin LIThe subject name and trusted name default to the hostname
49409100258SXin LIof the host generating the files, but can be changed by command line options.
49509100258SXin LIIt is convenient to designate the owner name and trusted name
49609100258SXin LIas the subject and issuer fields, respectively, of the certificate.
49709100258SXin LIThe owner name is also used for the host and sign key files,
49809100258SXin LIwhile the trusted name is used for the identity files.
49909100258SXin LI.Pp
50009100258SXin LIAll files are installed by default in the keys directory
50109100258SXin LI.Pa /usr/local/etc ,
50209100258SXin LIwhich is normally in a shared filesystem
50309100258SXin LIin NFS-mounted networks.
50409100258SXin LIThe actual location of the keys directory
50509100258SXin LIand each file can be overridden by configuration commands,
50609100258SXin LIbut this is not recommended.
50709100258SXin LINormally, the files for each host are generated by that host
50809100258SXin LIand used only by that host, although exceptions exist
50909100258SXin LIas noted later on this page.
51009100258SXin LI.Pp
51109100258SXin LINormally, files containing private values,
51209100258SXin LIincluding the host key, sign key and identification parameters,
51309100258SXin LIare permitted root read/write-only;
51409100258SXin LIwhile others containing public values are permitted world readable.
51509100258SXin LIAlternatively, files containing private values can be encrypted
51609100258SXin LIand these files permitted world readable,
51709100258SXin LIwhich simplifies maintenance in shared file systems.
51809100258SXin LISince uniqueness is insured by the
51909100258SXin LI.Ar hostname
52009100258SXin LIand
52109100258SXin LI.Ar filestamp
52209100258SXin LIfile name extensions, the files for an NTP server and
52309100258SXin LIdependent clients can all be installed in the same shared directory.
52409100258SXin LI.Pp
52509100258SXin LIThe recommended practice is to keep the file name extensions
52609100258SXin LIwhen installing a file and to install a soft link
52709100258SXin LIfrom the generic names specified elsewhere on this page
52809100258SXin LIto the generated files.
52909100258SXin LIThis allows new file generations to be activated simply
53009100258SXin LIby changing the link.
53109100258SXin LIIf a link is present,
53209100258SXin LI.Xr ntpd 1ntpdmdoc
53309100258SXin LIfollows it to the file name to extract the
53409100258SXin LI.Ar filestamp .
53509100258SXin LIIf a link is not present,
53609100258SXin LI.Xr ntpd 1ntpdmdoc
53709100258SXin LIextracts the
53809100258SXin LI.Ar filestamp
53909100258SXin LIfrom the file itself.
54009100258SXin LIThis allows clients to verify that the file and generation times
54109100258SXin LIare always current.
54209100258SXin LIThe
54309100258SXin LI.Nm
54409100258SXin LIprogram uses the same
54509100258SXin LI.Ar filestamp
54609100258SXin LIextension for all files generated
54709100258SXin LIat one time, so each generation is distinct and can be readily
54809100258SXin LIrecognized in monitoring data.
5492b15cb3dSCy Schubert.Pp
5502b15cb3dSCy SchubertRun the command on as many hosts as necessary.
5512b15cb3dSCy SchubertDesignate one of them as the trusted host (TH) using
5522b15cb3dSCy Schubert.Nm
5532b15cb3dSCy Schubertwith the
5542b15cb3dSCy Schubert.Fl T
5552b15cb3dSCy Schubertoption and configure it to synchronize from reliable Internet servers.
5562b15cb3dSCy SchubertThen configure the other hosts to synchronize to the TH directly or
5572b15cb3dSCy Schubertindirectly.
5582b15cb3dSCy SchubertA certificate trail is created when Autokey asks the immediately
5592b15cb3dSCy Schubertascendant host towards the TH to sign its certificate, which is then
5602b15cb3dSCy Schubertprovided to the immediately descendant host on request.
5612b15cb3dSCy SchubertAll group hosts should have acyclic certificate trails ending on the TH.
5622b15cb3dSCy Schubert.Pp
5632b15cb3dSCy SchubertThe host key is used to encrypt the cookie when required and so must be
5642b15cb3dSCy SchubertRSA type.
5652b15cb3dSCy SchubertBy default, the host key is also the sign key used to encrypt
5662b15cb3dSCy Schubertsignatures.
5672b15cb3dSCy SchubertA different sign key can be assigned using the
5682b15cb3dSCy Schubert.Fl S
56909100258SXin LIoption and this can be either
57009100258SXin LI.Cm RSA
57109100258SXin LIor
57209100258SXin LI.Cm DSA
57309100258SXin LItype.
5742b15cb3dSCy SchubertBy default, the signature
57509100258SXin LImessage digest type is
57609100258SXin LI.Cm MD5 ,
57709100258SXin LIbut any combination of sign key type and
5782b15cb3dSCy Schubertmessage digest type supported by the OpenSSL library can be specified
5792b15cb3dSCy Schubertusing the
5802b15cb3dSCy Schubert.Fl c
5812b15cb3dSCy Schubertoption.
58209100258SXin LI.Pp
5832b15cb3dSCy SchubertThe rules say cryptographic media should be generated with proventic
5842b15cb3dSCy Schubertfilestamps, which means the host should already be synchronized before
5852b15cb3dSCy Schubertthis program is run.
5862b15cb3dSCy SchubertThis of course creates a chicken-and-egg problem
5872b15cb3dSCy Schubertwhen the host is started for the first time.
5882b15cb3dSCy SchubertAccordingly, the host time
5892b15cb3dSCy Schubertshould be set by some other means, such as eyeball-and-wristwatch, at
5902b15cb3dSCy Schubertleast so that the certificate lifetime is within the current year.
5912b15cb3dSCy SchubertAfter that and when the host is synchronized to a proventic source, the
5922b15cb3dSCy Schubertcertificate should be re-generated.
5932b15cb3dSCy Schubert.Pp
5942b15cb3dSCy SchubertAdditional information on trusted groups and identity schemes is on the
5952b15cb3dSCy Schubert.Dq Autokey Public-Key Authentication
5962b15cb3dSCy Schubertpage.
5972b15cb3dSCy Schubert.Pp
5982b15cb3dSCy SchubertFile names begin with the prefix
59909100258SXin LI.Pa ntpkey Ns _
60009100258SXin LIand end with the suffix
60109100258SXin LI.Pa _ Ns Ar hostname . Ar filestamp ,
6022b15cb3dSCy Schubertwhere
6032b15cb3dSCy Schubert.Ar hostname
6042b15cb3dSCy Schubertis the owner name, usually the string returned
60509100258SXin LIby the Unix
60609100258SXin LI.Xr hostname 1
60709100258SXin LIcommand, and
6082b15cb3dSCy Schubert.Ar filestamp
6092b15cb3dSCy Schubertis the NTP seconds when the file was generated, in decimal digits.
6102b15cb3dSCy SchubertThis both guarantees uniqueness and simplifies maintenance
6112b15cb3dSCy Schubertprocedures, since all files can be quickly removed
6122b15cb3dSCy Schubertby a
61309100258SXin LI.Ic rm Pa ntpkey\&*
6142b15cb3dSCy Schubertcommand or all files generated
6152b15cb3dSCy Schubertat a specific time can be removed by a
61609100258SXin LI.Ic rm Pa \&* Ns Ar filestamp
6172b15cb3dSCy Schubertcommand.
6182b15cb3dSCy SchubertTo further reduce the risk of misconfiguration,
6192b15cb3dSCy Schubertthe first two lines of a file contain the file name
6202b15cb3dSCy Schubertand generation date and time as comments.
6212b15cb3dSCy Schubert
62209100258SXin LI.Ss Trusted Hosts and Groups
6232b15cb3dSCy SchubertEach cryptographic configuration involves selection of a signature scheme
6242b15cb3dSCy Schubertand identification scheme, called a cryptotype,
6252b15cb3dSCy Schubertas explained in the
6262b15cb3dSCy Schubert.Sx Authentication Options
6272b15cb3dSCy Schubertsection of
6282b15cb3dSCy Schubert.Xr ntp.conf 5 .
62909100258SXin LIThe default cryptotype uses
63009100258SXin LI.Cm RSA
63109100258SXin LIencryption,
63209100258SXin LI.Cm MD5
63309100258SXin LImessage digest
63409100258SXin LIand
63509100258SXin LI.Cm TC
63609100258SXin LIidentification.
6372b15cb3dSCy SchubertFirst, configure a NTP subnet including one or more low-stratum
6382b15cb3dSCy Schuberttrusted hosts from which all other hosts derive synchronization
6392b15cb3dSCy Schubertdirectly or indirectly.
6402b15cb3dSCy SchubertTrusted hosts have trusted certificates;
6412b15cb3dSCy Schubertall other hosts have nontrusted certificates.
6422b15cb3dSCy SchubertThese hosts will automatically and dynamically build authoritative
6432b15cb3dSCy Schubertcertificate trails to one or more trusted hosts.
6442b15cb3dSCy SchubertA trusted group is the set of all hosts that have, directly or indirectly,
6452b15cb3dSCy Schuberta certificate trail ending at a trusted host.
6462b15cb3dSCy SchubertThe trail is defined by static configuration file entries
6472b15cb3dSCy Schubertor dynamic means described on the
6482b15cb3dSCy Schubert.Sx Automatic NTP Configuration Options
6492b15cb3dSCy Schubertsection of
6502b15cb3dSCy Schubert.Xr ntp.conf 5 .
6512b15cb3dSCy Schubert.Pp
6522b15cb3dSCy SchubertOn each trusted host as root, change to the keys directory.
6532b15cb3dSCy SchubertTo insure a fresh fileset, remove all
65409100258SXin LI.Pa ntpkey
6552b15cb3dSCy Schubertfiles.
6562b15cb3dSCy SchubertThen run
6572b15cb3dSCy Schubert.Nm
6582b15cb3dSCy Schubert.Fl T
6592b15cb3dSCy Schubertto generate keys and a trusted certificate.
6602b15cb3dSCy SchubertOn all other hosts do the same, but leave off the
6612b15cb3dSCy Schubert.Fl T
6622b15cb3dSCy Schubertflag to generate keys and nontrusted certificates.
6632b15cb3dSCy SchubertWhen complete, start the NTP daemons beginning at the lowest stratum
6642b15cb3dSCy Schubertand working up the tree.
6652b15cb3dSCy SchubertIt may take some time for Autokey to instantiate the certificate trails
6662b15cb3dSCy Schubertthroughout the subnet, but setting up the environment is completely automatic.
6672b15cb3dSCy Schubert.Pp
6682b15cb3dSCy SchubertIf it is necessary to use a different sign key or different digest/signature
6692b15cb3dSCy Schubertscheme than the default, run
6702b15cb3dSCy Schubert.Nm
6712b15cb3dSCy Schubertwith the
6722b15cb3dSCy Schubert.Fl S Ar type
6732b15cb3dSCy Schubertoption, where
6742b15cb3dSCy Schubert.Ar type
6752b15cb3dSCy Schubertis either
6762b15cb3dSCy Schubert.Cm RSA
6772b15cb3dSCy Schubertor
6782b15cb3dSCy Schubert.Cm DSA .
67909100258SXin LIThe most frequent need to do this is when a
68009100258SXin LI.Cm DSA Ns -signed
68109100258SXin LIcertificate is used.
6822b15cb3dSCy SchubertIf it is necessary to use a different certificate scheme than the default,
6832b15cb3dSCy Schubertrun
6842b15cb3dSCy Schubert.Nm
6852b15cb3dSCy Schubertwith the
6862b15cb3dSCy Schubert.Fl c Ar scheme
6872b15cb3dSCy Schubertoption and selected
6882b15cb3dSCy Schubert.Ar scheme
6892b15cb3dSCy Schubertas needed.
69009100258SXin LIIf
6912b15cb3dSCy Schubert.Nm
6922b15cb3dSCy Schubertis run again without these options, it generates a new certificate
69309100258SXin LIusing the same scheme and sign key, and soft link.
6942b15cb3dSCy Schubert.Pp
6952b15cb3dSCy SchubertAfter setting up the environment it is advisable to update certificates
6962b15cb3dSCy Schubertfrom time to time, if only to extend the validity interval.
6972b15cb3dSCy SchubertSimply run
6982b15cb3dSCy Schubert.Nm
6992b15cb3dSCy Schubertwith the same flags as before to generate new certificates
70009100258SXin LIusing existing keys, and soft links.
7012b15cb3dSCy SchubertHowever, if the host or sign key is changed,
7022b15cb3dSCy Schubert.Xr ntpd 1ntpdmdoc
7032b15cb3dSCy Schubertshould be restarted.
7042b15cb3dSCy SchubertWhen
7052b15cb3dSCy Schubert.Xr ntpd 1ntpdmdoc
7062b15cb3dSCy Schubertis restarted, it loads any new files and restarts the protocol.
7072b15cb3dSCy SchubertOther dependent hosts will continue as usual until signatures are refreshed,
7082b15cb3dSCy Schubertat which time the protocol is restarted.
70909100258SXin LI
7102b15cb3dSCy Schubert.Ss Identity Schemes
7112b15cb3dSCy SchubertAs mentioned on the Autonomous Authentication page,
71209100258SXin LIthe default
71309100258SXin LI.Cm TC
71409100258SXin LIidentity scheme is vulnerable to a middleman attack.
7152b15cb3dSCy SchubertHowever, there are more secure identity schemes available,
71609100258SXin LIincluding
71709100258SXin LI.Cm PC , IFF , GQ
71809100258SXin LIand
71909100258SXin LI.Cm MV
72009100258SXin LIschemes described below.
7212b15cb3dSCy SchubertThese schemes are based on a TA, one or more trusted hosts
7222b15cb3dSCy Schubertand some number of nontrusted hosts.
7232b15cb3dSCy SchubertTrusted hosts prove identity using values provided by the TA,
7242b15cb3dSCy Schubertwhile the remaining hosts prove identity using values provided
7252b15cb3dSCy Schubertby a trusted host and certificate trails that end on that host.
7262b15cb3dSCy SchubertThe name of a trusted host is also the name of its sugroup
7272b15cb3dSCy Schubertand also the subject and issuer name on its trusted certificate.
7282b15cb3dSCy SchubertThe TA is not necessarily a trusted host in this sense, but often is.
7292b15cb3dSCy Schubert.Pp
7302b15cb3dSCy SchubertIn some schemes there are separate keys for servers and clients.
7312b15cb3dSCy SchubertA server can also be a client of another server,
7322b15cb3dSCy Schubertbut a client can never be a server for another client.
7332b15cb3dSCy SchubertIn general, trusted hosts and nontrusted hosts that operate
7342b15cb3dSCy Schubertas both server and client have parameter files that contain
7352b15cb3dSCy Schubertboth server and client keys.
7362b15cb3dSCy SchubertHosts that operate
7372b15cb3dSCy Schubertonly as clients have key files that contain only client keys.
7382b15cb3dSCy Schubert.Pp
7392b15cb3dSCy SchubertThe PC scheme supports only one trusted host in the group.
7402b15cb3dSCy SchubertOn trusted host alice run
7412b15cb3dSCy Schubert.Nm
7422b15cb3dSCy Schubert.Fl P
7432b15cb3dSCy Schubert.Fl p Ar password
7442b15cb3dSCy Schubertto generate the host key file
74509100258SXin LI.Pa ntpkey Ns _ Cm RSA Pa key_alice. Ar filestamp
7462b15cb3dSCy Schubertand trusted private certificate file
74709100258SXin LI.Pa ntpkey Ns _ Cm RSA-MD5 _ Pa cert_alice. Ar filestamp ,
74809100258SXin LIand soft links.
7492b15cb3dSCy SchubertCopy both files to all group hosts;
7502b15cb3dSCy Schubertthey replace the files which would be generated in other schemes.
75109100258SXin LIOn each host
75209100258SXin LI.Ar bob
75309100258SXin LIinstall a soft link from the generic name
7542b15cb3dSCy Schubert.Pa ntpkey_host_ Ns Ar bob
7552b15cb3dSCy Schubertto the host key file and soft link
7562b15cb3dSCy Schubert.Pa ntpkey_cert_ Ns Ar bob
7572b15cb3dSCy Schubertto the private certificate file.
7582b15cb3dSCy SchubertNote the generic links are on bob, but point to files generated
7592b15cb3dSCy Schubertby trusted host alice.
7602b15cb3dSCy SchubertIn this scheme it is not possible to refresh
7612b15cb3dSCy Schuberteither the keys or certificates without copying them
76209100258SXin LIto all other hosts in the group, and recreating the soft links.
7632b15cb3dSCy Schubert.Pp
76409100258SXin LIFor the
76509100258SXin LI.Cm IFF
76609100258SXin LIscheme proceed as in the
76709100258SXin LI.Cm TC
76809100258SXin LIscheme to generate keys
7692b15cb3dSCy Schubertand certificates for all group hosts, then for every trusted host in the group,
77009100258SXin LIgenerate the
77109100258SXin LI.Cm IFF
77209100258SXin LIparameter file.
7732b15cb3dSCy SchubertOn trusted host alice run
7742b15cb3dSCy Schubert.Nm
7752b15cb3dSCy Schubert.Fl T
7762b15cb3dSCy Schubert.Fl I
7772b15cb3dSCy Schubert.Fl p Ar password
7782b15cb3dSCy Schubertto produce her parameter file
77909100258SXin LI.Pa ntpkey_IFFpar_alice. Ns Ar filestamp ,
7802b15cb3dSCy Schubertwhich includes both server and client keys.
7812b15cb3dSCy SchubertCopy this file to all group hosts that operate as both servers
7822b15cb3dSCy Schubertand clients and install a soft link from the generic
78309100258SXin LI.Pa ntpkey_iff_alice
7842b15cb3dSCy Schubertto this file.
7852b15cb3dSCy SchubertIf there are no hosts restricted to operate only as clients,
7862b15cb3dSCy Schubertthere is nothing further to do.
78709100258SXin LIAs the
78809100258SXin LI.Cm IFF
78909100258SXin LIscheme is independent
7902b15cb3dSCy Schubertof keys and certificates, these files can be refreshed as needed.
7912b15cb3dSCy Schubert.Pp
7922b15cb3dSCy SchubertIf a rogue client has the parameter file, it could masquerade
7932b15cb3dSCy Schubertas a legitimate server and present a middleman threat.
7942b15cb3dSCy SchubertTo eliminate this threat, the client keys can be extracted
7952b15cb3dSCy Schubertfrom the parameter file and distributed to all restricted clients.
7962b15cb3dSCy SchubertAfter generating the parameter file, on alice run
7972b15cb3dSCy Schubert.Nm
7982b15cb3dSCy Schubert.Fl e
79909100258SXin LIand pipe the output to a file or email program.
80009100258SXin LICopy or email this file to all restricted clients.
8012b15cb3dSCy SchubertOn these clients install a soft link from the generic
80209100258SXin LI.Pa ntpkey_iff_alice
8032b15cb3dSCy Schubertto this file.
8042b15cb3dSCy SchubertTo further protect the integrity of the keys,
8052b15cb3dSCy Schuberteach file can be encrypted with a secret password.
8062b15cb3dSCy Schubert.Pp
80709100258SXin LIFor the
80809100258SXin LI.Cm GQ
80909100258SXin LIscheme proceed as in the
81009100258SXin LI.Cm TC
81109100258SXin LIscheme to generate keys
8122b15cb3dSCy Schubertand certificates for all group hosts, then for every trusted host
81309100258SXin LIin the group, generate the
81409100258SXin LI.Cm IFF
81509100258SXin LIparameter file.
8162b15cb3dSCy SchubertOn trusted host alice run
8172b15cb3dSCy Schubert.Nm
8182b15cb3dSCy Schubert.Fl T
8192b15cb3dSCy Schubert.Fl G
8202b15cb3dSCy Schubert.Fl p Ar password
8212b15cb3dSCy Schubertto produce her parameter file
82209100258SXin LI.Pa ntpkey_GQpar_alice. Ns Ar filestamp ,
8232b15cb3dSCy Schubertwhich includes both server and client keys.
8242b15cb3dSCy SchubertCopy this file to all group hosts and install a soft link
8252b15cb3dSCy Schubertfrom the generic
82609100258SXin LI.Pa ntpkey_gq_alice
8272b15cb3dSCy Schubertto this file.
82809100258SXin LIIn addition, on each host
82909100258SXin LI.Ar bob
83009100258SXin LIinstall a soft link
8312b15cb3dSCy Schubertfrom generic
8322b15cb3dSCy Schubert.Pa ntpkey_gq_ Ns Ar bob
8332b15cb3dSCy Schubertto this file.
83409100258SXin LIAs the
83509100258SXin LI.Cm GQ
83609100258SXin LIscheme updates the
83709100258SXin LI.Cm GQ
83809100258SXin LIparameters file and certificate
8392b15cb3dSCy Schubertat the same time, keys and certificates can be regenerated as needed.
8402b15cb3dSCy Schubert.Pp
84109100258SXin LIFor the
84209100258SXin LI.Cm MV
84309100258SXin LIscheme, proceed as in the
84409100258SXin LI.Cm TC
84509100258SXin LIscheme to generate keys
8462b15cb3dSCy Schubertand certificates for all group hosts.
8472b15cb3dSCy SchubertFor illustration assume trish is the TA, alice one of several trusted hosts
8482b15cb3dSCy Schubertand bob one of her clients.
8492b15cb3dSCy SchubertOn TA trish run
8502b15cb3dSCy Schubert.Nm
8512b15cb3dSCy Schubert.Fl V Ar n
8522b15cb3dSCy Schubert.Fl p Ar password ,
8532b15cb3dSCy Schubertwhere
8542b15cb3dSCy Schubert.Ar n
8552b15cb3dSCy Schubertis the number of revokable keys (typically 5) to produce
8562b15cb3dSCy Schubertthe parameter file
85709100258SXin LI.Pa ntpkeys_MVpar_trish. Ns Ar filestamp
8582b15cb3dSCy Schubertand client key files
85909100258SXin LI.Pa ntpkeys_MVkey Ns Ar d _ Pa trish. Ar filestamp
8602b15cb3dSCy Schubertwhere
8612b15cb3dSCy Schubert.Ar d
8622b15cb3dSCy Schubertis the key number (0 \&<
8632b15cb3dSCy Schubert.Ar d
8642b15cb3dSCy Schubert\&<
8652b15cb3dSCy Schubert.Ar n ) .
8662b15cb3dSCy SchubertCopy the parameter file to alice and install a soft link
8672b15cb3dSCy Schubertfrom the generic
86809100258SXin LI.Pa ntpkey_mv_alice
8692b15cb3dSCy Schubertto this file.
8702b15cb3dSCy SchubertCopy one of the client key files to alice for later distribution
8712b15cb3dSCy Schubertto her clients.
87209100258SXin LIIt does not matter which client key file goes to alice,
8732b15cb3dSCy Schubertsince they all work the same way.
87409100258SXin LIAlice copies the client key file to all of her clients.
8752b15cb3dSCy SchubertOn client bob install a soft link from generic
87609100258SXin LI.Pa ntpkey_mvkey_bob
8772b15cb3dSCy Schubertto the client key file.
87809100258SXin LIAs the
87909100258SXin LI.Cm MV
88009100258SXin LIscheme is independent of keys and certificates,
8812b15cb3dSCy Schubertthese files can be refreshed as needed.
88209100258SXin LI
8832b15cb3dSCy Schubert.Ss Command Line Options
8842b15cb3dSCy Schubert.Bl -tag -width indent
88509100258SXin LI.It Fl b Fl -imbits Ns = Ar modulus
88609100258SXin LISet the number of bits in the identity modulus for generating identity keys to
88709100258SXin LI.Ar modulus
88809100258SXin LIbits.
88909100258SXin LIThe number of bits in the identity modulus defaults to 256, but can be set to
89009100258SXin LIvalues from 256 to 2048 (32 to 256 octets).
89109100258SXin LIUse the larger moduli with caution, as this can consume considerable computing
89209100258SXin LIresources and increases the size of authenticated packets.
89309100258SXin LI.It Fl c Fl -certificate Ns = Ar scheme
89409100258SXin LISelect certificate signature encryption/message digest scheme.
8952b15cb3dSCy SchubertThe
8962b15cb3dSCy Schubert.Ar scheme
8972b15cb3dSCy Schubertcan be one of the following:
89809100258SXin LI.Cm RSA-MD2 , RSA-MD5 , RSA-MDC2 , RSA-SHA , RSA-SHA1 , RSA-RIPEMD160 , DSA-SHA ,
8992b15cb3dSCy Schubertor
9002b15cb3dSCy Schubert.Cm DSA-SHA1 .
90109100258SXin LINote that
90209100258SXin LI.Cm RSA
90309100258SXin LIschemes must be used with an
90409100258SXin LI.Cm RSA
90509100258SXin LIsign key and
90609100258SXin LI.Cm DSA
90709100258SXin LIschemes must be used with a
90809100258SXin LI.Cm DSA
90909100258SXin LIsign key.
9102b15cb3dSCy SchubertThe default without this option is
9112b15cb3dSCy Schubert.Cm RSA-MD5 .
91209100258SXin LIIf compatibility with FIPS 140-2 is required, either the
91309100258SXin LI.Cm DSA-SHA
91409100258SXin LIor
91509100258SXin LI.Cm DSA-SHA1
91609100258SXin LIscheme must be used.
91709100258SXin LI.It Fl C Fl -cipher Ns = Ar cipher
91809100258SXin LISelect the OpenSSL cipher to encrypt the files containing private keys.
91909100258SXin LIThe default without this option is three-key triple DES in CBC mode,
92009100258SXin LI.Cm des-ede3-cbc .
92109100258SXin LIThe
92209100258SXin LI.Ic openssl Fl h
92309100258SXin LIcommand provided with OpenSSL displays available ciphers.
92409100258SXin LI.It Fl d Fl -debug-level
92509100258SXin LIIncrease debugging verbosity level.
9262b15cb3dSCy SchubertThis option displays the cryptographic data produced in eye-friendly billboards.
92709100258SXin LI.It Fl D Fl -set-debug-level Ns = Ar level
92809100258SXin LISet the debugging verbosity to
92909100258SXin LI.Ar level .
93009100258SXin LIThis option displays the cryptographic data produced in eye-friendly billboards.
93109100258SXin LI.It Fl e Fl -id-key
93209100258SXin LIWrite the
93309100258SXin LI.Cm IFF
93409100258SXin LIor
93509100258SXin LI.Cm GQ
93609100258SXin LIpublic parameters from the
93709100258SXin LI.Ar IFFkey or GQkey
93809100258SXin LIclient keys file previously specified
93909100258SXin LIas unencrypted data to the standard output stream
94009100258SXin LI.Pa stdout .
94109100258SXin LIThis is intended for automatic key distribution by email.
94209100258SXin LI.It Fl G Fl -gq-params
94309100258SXin LIGenerate a new encrypted
94409100258SXin LI.Cm GQ
94509100258SXin LIparameters and key file for the Guillou-Quisquater (GQ) identity scheme.
94609100258SXin LIThis option is mutually exclusive with the
94709100258SXin LI.Fl I
94809100258SXin LIand
94909100258SXin LI.Fl V
95009100258SXin LIoptions.
95109100258SXin LI.It Fl H Fl -host-key
95209100258SXin LIGenerate a new encrypted
95309100258SXin LI.Cm RSA
95409100258SXin LIpublic/private host key file.
95509100258SXin LI.It Fl I Fl -iffkey
95609100258SXin LIGenerate a new encrypted
95709100258SXin LI.Cm IFF
95809100258SXin LIkey file for the Schnorr (IFF) identity scheme.
95909100258SXin LIThis option is mutually exclusive with the
96009100258SXin LI.Fl G
96109100258SXin LIand
96209100258SXin LIFl V
96309100258SXin LIoptions.
96409100258SXin LI.It Fl i Fl -ident Ns = Ar group
96509100258SXin LISet the optional Autokey group name to
96609100258SXin LI.Ar group .
96709100258SXin LIThis is used in the identity scheme parameter file names of
96809100258SXin LI.Cm IFF , GQ ,
96909100258SXin LIand
97009100258SXin LI.Cm MV
97109100258SXin LIclient parameters files.
97209100258SXin LIIn that role, the default is the host name if no group is provided.
97309100258SXin LIThe group name, if specified using
97409100258SXin LI.Fl i
97509100258SXin LIor
97609100258SXin LI.Fl s
97709100258SXin LIfollowing an
97809100258SXin LI.Ql @@
97909100258SXin LIcharacter, is also used in certificate subject and issuer names in the form
98009100258SXin LI.Ar host @@ group
98109100258SXin LIand should match the group specified via
98209100258SXin LI.Ic crypto Cm ident
98309100258SXin LIor
98409100258SXin LI.Ic server Cm ident
98509100258SXin LIin the ntpd configuration file.
98609100258SXin LI.It Fl l Fl -lifetime Ns = Ar days
98709100258SXin LISet the lifetime for certificate expiration to
98809100258SXin LI.Ar days .
98909100258SXin LIThe default lifetime is one year (365 days).
99009100258SXin LI.It Fl m Fl -modulus Ns = Ar bits
99109100258SXin LISet the number of bits in the prime modulus for generating files to
99209100258SXin LI.Ar bits .
99309100258SXin LIThe modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
99409100258SXin LIUse the larger moduli with caution, as this can consume considerable computing
99509100258SXin LIresources and increases the size of authenticated packets.
99609100258SXin LI.It Fl M Fl -md5key
99709100258SXin LIGenerate a new symmetric keys file containing 10
99809100258SXin LI.Cm MD5
99909100258SXin LIkeys, and if OpenSSL is available, 10
100009100258SXin LI.Cm SHA
100109100258SXin LIkeys.
100209100258SXin LIAn
100309100258SXin LI.Cm MD5
100409100258SXin LIkey is a string of 20 random printable ASCII characters, while a
100509100258SXin LI.Cm SHA
100609100258SXin LIkey is a string of 40 random hex digits.
100709100258SXin LIThe file can be edited using a text editor to change the key type or key content.
100809100258SXin LIThis option is mutually exclusive with all other options.
100909100258SXin LI.It Fl p Fl -password Ns = Ar passwd
101009100258SXin LISet the password for reading and writing encrypted files to
101109100258SXin LI.Ar passwd .
101209100258SXin LIThese include the host, sign and identify key files.
101309100258SXin LIBy default, the password is the string returned by the Unix
101409100258SXin LI.Ic hostname
101509100258SXin LIcommand.
101609100258SXin LI.It Fl P Fl -pvt-cert
101709100258SXin LIGenerate a new private certificate used by the
101809100258SXin LI.Cm PC
101909100258SXin LIidentity scheme.
10202b15cb3dSCy SchubertBy default, the program generates public certificates.
102109100258SXin LINote: the PC identity scheme is not recommended for new installations.
102209100258SXin LI.It Fl q Fl -export-passwd Ns = Ar passwd
102309100258SXin LISet the password for writing encrypted
102409100258SXin LI.Cm IFF , GQ and MV
102509100258SXin LIidentity files redirected to
102609100258SXin LI.Pa stdout
102709100258SXin LIto
102809100258SXin LI.Ar passwd .
102909100258SXin LIIn effect, these files are decrypted with the
103009100258SXin LI.Fl p
103109100258SXin LIpassword, then encrypted with the
103209100258SXin LI.Fl q
103309100258SXin LIpassword.
103409100258SXin LIBy default, the password is the string returned by the Unix
103509100258SXin LI.Ic hostname
103609100258SXin LIcommand.
103709100258SXin LI.It Fl s Fl -subject-key Ns = Ar Oo host Oc Op @@ Ar group
103809100258SXin LISpecify the Autokey host name, where
103909100258SXin LI.Ar host
104009100258SXin LIis the optional host name and
104109100258SXin LI.Ar group
104209100258SXin LIis the optional group name.
104309100258SXin LIThe host name, and if provided, group name are used in
104409100258SXin LI.Ar host @@ group
104509100258SXin LIform as certificate subject and issuer.
104609100258SXin LISpecifying
104709100258SXin LI.Fl s @@ Ar group
104809100258SXin LIis allowed, and results in leaving the host name unchanged, as with
104909100258SXin LI.Fl i Ar group .
105009100258SXin LIThe group name, or if no group is provided, the host name are also used in the
105109100258SXin LIfile names of
105209100258SXin LI.Cm IFF , GQ ,
105309100258SXin LIand
105409100258SXin LI.Cm MV
105509100258SXin LIidentity scheme client parameter files.
105609100258SXin LIIf
105709100258SXin LI.Ar host
105809100258SXin LIis not specified, the default host name is the string returned by the Unix
105909100258SXin LI.Ic hostname
106009100258SXin LIcommand.
106109100258SXin LI.It Fl S Fl -sign-key Ns = Op Cm RSA | DSA
106209100258SXin LIGenerate a new encrypted public/private sign key file of the specified type.
106309100258SXin LIBy default, the sign key is the host key and has the same type.
106409100258SXin LIIf compatibility with FIPS 140-2 is required, the sign key type must be
106509100258SXin LI.Cm DSA .
106609100258SXin LI.It Fl T Fl -trusted-cert
10672b15cb3dSCy SchubertGenerate a trusted certificate.
10682b15cb3dSCy SchubertBy default, the program generates a non-trusted certificate.
106909100258SXin LI.It Fl V Fl -mv-params Ar nkeys
107009100258SXin LIGenerate
107109100258SXin LI.Ar nkeys
107209100258SXin LIencrypted server keys and parameters for the Mu-Varadharajan (MV)
107309100258SXin LIidentity scheme.
107409100258SXin LIThis option is mutually exclusive with the
107509100258SXin LI.Fl I
107609100258SXin LIand
107709100258SXin LI.Fl G
107809100258SXin LIoptions.
107909100258SXin LINote: support for this option should be considered a work in progress.
10802b15cb3dSCy Schubert.El
108109100258SXin LI
10822b15cb3dSCy Schubert.Ss Random Seed File
10832b15cb3dSCy SchubertAll cryptographically sound key generation schemes must have means
10842b15cb3dSCy Schubertto randomize the entropy seed used to initialize
10852b15cb3dSCy Schubertthe internal pseudo-random number generator used
10862b15cb3dSCy Schubertby the library routines.
10872b15cb3dSCy SchubertThe OpenSSL library uses a designated random seed file for this purpose.
10882b15cb3dSCy SchubertThe file must be available when starting the NTP daemon and
10892b15cb3dSCy Schubert.Nm
10902b15cb3dSCy Schubertprogram.
10912b15cb3dSCy SchubertIf a site supports OpenSSL or its companion OpenSSH,
10922b15cb3dSCy Schubertit is very likely that means to do this are already available.
10932b15cb3dSCy Schubert.Pp
10942b15cb3dSCy SchubertIt is important to understand that entropy must be evolved
10952b15cb3dSCy Schubertfor each generation, for otherwise the random number sequence
10962b15cb3dSCy Schubertwould be predictable.
10972b15cb3dSCy SchubertVarious means dependent on external events, such as keystroke intervals,
10982b15cb3dSCy Schubertcan be used to do this and some systems have built-in entropy sources.
10992b15cb3dSCy SchubertSuitable means are described in the OpenSSL software documentation,
11002b15cb3dSCy Schubertbut are outside the scope of this page.
11012b15cb3dSCy Schubert.Pp
11022b15cb3dSCy SchubertThe entropy seed used by the OpenSSL library is contained in a file,
11032b15cb3dSCy Schubertusually called
110409100258SXin LI.Pa .rnd ,
11052b15cb3dSCy Schubertwhich must be available when starting the NTP daemon
11062b15cb3dSCy Schubertor the
11072b15cb3dSCy Schubert.Nm
11082b15cb3dSCy Schubertprogram.
11092b15cb3dSCy SchubertThe NTP daemon will first look for the file
11102b15cb3dSCy Schubertusing the path specified by the
111109100258SXin LI.Cm randfile
11122b15cb3dSCy Schubertsubcommand of the
11132b15cb3dSCy Schubert.Ic crypto
11142b15cb3dSCy Schubertconfiguration command.
11152b15cb3dSCy SchubertIf not specified in this way, or when starting the
11162b15cb3dSCy Schubert.Nm
11172b15cb3dSCy Schubertprogram,
11182b15cb3dSCy Schubertthe OpenSSL library will look for the file using the path specified
11192b15cb3dSCy Schubertby the
11202b15cb3dSCy Schubert.Ev RANDFILE
11212b15cb3dSCy Schubertenvironment variable in the user home directory,
11222b15cb3dSCy Schubertwhether root or some other user.
11232b15cb3dSCy SchubertIf the
11242b15cb3dSCy Schubert.Ev RANDFILE
11252b15cb3dSCy Schubertenvironment variable is not present,
11262b15cb3dSCy Schubertthe library will look for the
112709100258SXin LI.Pa .rnd
11282b15cb3dSCy Schubertfile in the user home directory.
112909100258SXin LISince both the
113009100258SXin LI.Nm
113109100258SXin LIprogram and
113209100258SXin LI.Xr ntpd 1ntpdmdoc
113309100258SXin LIdaemon must run as root, the logical place to put this file is in
113409100258SXin LI.Pa /.rnd
113509100258SXin LIor
113609100258SXin LI.Pa /root/.rnd .
11372b15cb3dSCy SchubertIf the file is not available or cannot be written,
11382b15cb3dSCy Schubertthe daemon exits with a message to the system log and the program
11392b15cb3dSCy Schubertexits with a suitable error message.
114009100258SXin LI
11412b15cb3dSCy Schubert.Ss Cryptographic Data Files
114209100258SXin LIAll file formats begin with two nonencrypted lines.
114309100258SXin LIThe first line contains the file name, including the generated host name
114409100258SXin LIand filestamp, in the format
114509100258SXin LI.Pa ntpkey_ Ns Ar key _ Ar name . Ar filestamp ,
114609100258SXin LIwhere
114709100258SXin LI.Ar key
114809100258SXin LIis the key or parameter type,
114909100258SXin LI.Ar name
115009100258SXin LIis the host or group name and
115109100258SXin LI.Ar filestamp
115209100258SXin LIis the filestamp (NTP seconds) when the file was created.
115309100258SXin LIBy convention,
115409100258SXin LI.Ar key
115509100258SXin LInames in generated file names include both upper and lower case
115609100258SXin LIcharacters, while
115709100258SXin LI.Ar key
115809100258SXin LInames in generated link names include only lower case characters.
115909100258SXin LIThe filestamp is not used in generated link names.
116009100258SXin LIThe second line contains the datestamp in conventional Unix
116109100258SXin LI.Pa date
116209100258SXin LIformat.
116309100258SXin LILines beginning with
116409100258SXin LI.Ql #
116509100258SXin LIare considered comments and ignored by the
11662b15cb3dSCy Schubert.Nm
11672b15cb3dSCy Schubertprogram and
11682b15cb3dSCy Schubert.Xr ntpd 1ntpdmdoc
11692b15cb3dSCy Schubertdaemon.
11702b15cb3dSCy Schubert.Pp
117109100258SXin LIThe remainder of the file contains cryptographic data, encoded first using ASN.1
117209100258SXin LIrules, then encrypted if necessary, and finally written in PEM-encoded
117309100258SXin LIprintable ASCII text, preceded and followed by MIME content identifier lines.
117409100258SXin LI.Pp
117509100258SXin LIThe format of the symmetric keys file, ordinarily named
117609100258SXin LI.Pa ntp.keys ,
117709100258SXin LIis somewhat different than the other files in the interest of backward compatibility.
117809100258SXin LIOrdinarily, the file is generated by this program, but it can be constructed
117909100258SXin LIand edited using an ordinary text editor.
118009100258SXin LI.Bd -literal -unfilled -offset center
118109100258SXin LI# ntpkey_MD5key_bk.ntp.org.3595864945
118209100258SXin LI# Thu Dec 12 19:22:25 2013
118309100258SXin LI
118409100258SXin LI1  MD5 L";Nw<\`.I<f4U0)247"i  # MD5 key
118509100258SXin LI2  MD5 &>l0%XXK9O'51VwV<xq~  # MD5 key
118609100258SXin LI3  MD5 lb4zLW~d^!K:]RsD'qb6  # MD5 key
118709100258SXin LI4  MD5 Yue:tL[+vR)M\`n~bY,'?  # MD5 key
118809100258SXin LI5  MD5 B;fx'Kgr/&4ZTbL6=RxA  # MD5 key
118909100258SXin LI6  MD5 4eYwa\`o@}3i@@@@V@@..R9!l  # MD5 key
119009100258SXin LI7  MD5 \`A.([h+;wTQ|xfi%Sn_!  # MD5 key
119109100258SXin LI8  MD5 45:V,r4]l6y^JH6"Sh?F  # MD5 key
119209100258SXin LI9  MD5 3-5vcn*6l29DS?Xdsg)*  # MD5 key
119309100258SXin LI10 MD5 2late4Me              # MD5 key
119409100258SXin LI11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c  # SHA1 key
119509100258SXin LI12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74  # SHA1 key
119609100258SXin LI13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9  # SHA1 key
119709100258SXin LI14 SHA  a5332809c8878dd3a5b918819108a111509aeceb  # SHA  key
119809100258SXin LI15 MD2  2fe16c88c760ff2f16d4267e36c1aa6c926e6964  # MD2  key
119909100258SXin LI16 MD4  b2691811dc19cfc0e2f9bcacd74213f29812183d  # MD4  key
120009100258SXin LI17 MD5  e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c  # MD5  key
120109100258SXin LI18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc  # MDC2 key
120209100258SXin LI19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2  # RIPEMD160 key
120309100258SXin LI20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878  # AES128CMAC key
120409100258SXin LI.Ed
120509100258SXin LI.D1 Figure 1. Typical Symmetric Key File
120609100258SXin LI.Pp
120709100258SXin LIFigure 1 shows a typical symmetric keys file used by the reference
120809100258SXin LIimplementation.
120909100258SXin LIFollowing the header the keys are entered one per line in the format
121009100258SXin LI.D1 Ar keyno Ar type Ar key
12112b15cb3dSCy Schubertwhere
12122b15cb3dSCy Schubert.Ar keyno
12134e1ef62aSXin LIis a positive integer in the range 1-65535;
12142b15cb3dSCy Schubert.Ar type
121509100258SXin LIis the key type for the message digest algorithm, which in the absence of the
121609100258SXin LIOpenSSL library must be
121709100258SXin LI.Cm MD5
121809100258SXin LIto designate the MD5 message digest algorithm;
121909100258SXin LIif the OpenSSL library is installed, the key type can be any
122009100258SXin LImessage digest algorithm supported by that library;
122109100258SXin LIhowever, if compatibility with FIPS 140-2 is required,
122209100258SXin LIthe key type must be either
122309100258SXin LI.Cm SHA
122409100258SXin LIor
122509100258SXin LI.Cm SHA1 ;
12262b15cb3dSCy Schubert.Ar key
12272b15cb3dSCy Schubertis the key itself,
122809100258SXin LIwhich is a printable ASCII string 20 characters or less in length:
122909100258SXin LIeach character is chosen from the 93 printable characters
123009100258SXin LIin the range 0x21 through 0x7e (
123109100258SXin LI.Ql !
123209100258SXin LIthrough
123309100258SXin LI.Ql ~
123409100258SXin LI\&) excluding space and the
123509100258SXin LI.Ql #
123609100258SXin LIcharacter, and terminated by whitespace or a
12372b15cb3dSCy Schubert.Ql #
12382b15cb3dSCy Schubertcharacter.
123909100258SXin LIAn OpenSSL key consists of a hex-encoded ASCII string of 40 characters, which
124009100258SXin LIis truncated as necessary.
12412b15cb3dSCy Schubert.Pp
12422b15cb3dSCy SchubertNote that the keys used by the
12432b15cb3dSCy Schubert.Xr ntpq 1ntpqmdoc
12442b15cb3dSCy Schubertand
12452b15cb3dSCy Schubert.Xr ntpdc 1ntpdcmdoc
12462b15cb3dSCy Schubertprograms
12472b15cb3dSCy Schubertare checked against passwords requested by the programs
12482b15cb3dSCy Schubertand entered by hand, so it is generally appropriate to specify these keys
12492b15cb3dSCy Schubertin human readable ASCII format.
12502b15cb3dSCy Schubert.Pp
12512b15cb3dSCy SchubertThe
12522b15cb3dSCy Schubert.Nm
125309100258SXin LIprogram generates a symmetric keys file
125409100258SXin LI.Pa ntpkey_MD5key_ Ns Ar hostname Ns . Ns Ar filestamp .
12552b15cb3dSCy SchubertSince the file contains private shared keys,
12562b15cb3dSCy Schubertit should be visible only to root and distributed by secure means
12572b15cb3dSCy Schubertto other subnet hosts.
12582b15cb3dSCy SchubertThe NTP daemon loads the file
12592b15cb3dSCy Schubert.Pa ntp.keys ,
12602b15cb3dSCy Schubertso
12612b15cb3dSCy Schubert.Nm
12622b15cb3dSCy Schubertinstalls a soft link from this name to the generated file.
12632b15cb3dSCy SchubertSubsequently, similar soft links must be installed by manual
12642b15cb3dSCy Schubertor automated means on the other subnet hosts.
12652b15cb3dSCy SchubertWhile this file is not used with the Autokey Version 2 protocol,
12662b15cb3dSCy Schubertit is needed to authenticate some remote configuration commands
12672b15cb3dSCy Schubertused by the
12682b15cb3dSCy Schubert.Xr ntpq 1ntpqmdoc
12692b15cb3dSCy Schubertand
12702b15cb3dSCy Schubert.Xr ntpdc 1ntpdcmdoc
12712b15cb3dSCy Schubertutilities.
12722b15cb3dSCy Schubert	_END_PROG_MDOC_DESCRIP;
12732b15cb3dSCy Schubert};
12742b15cb3dSCy Schubert
12752b15cb3dSCy Schubertdoc-section	= {
12762b15cb3dSCy Schubert  ds-type	= 'USAGE';
12772b15cb3dSCy Schubert  ds-format	= 'mdoc';
12782b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_USAGE
12792b15cb3dSCy Schubert	_END_MDOC_USAGE;
12802b15cb3dSCy Schubert};
12812b15cb3dSCy Schubert
12822b15cb3dSCy Schubertdoc-section	= {
12832b15cb3dSCy Schubert  ds-type	= 'NOTES';
12842b15cb3dSCy Schubert  ds-format	= 'mdoc';
12852b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_NOTES
12862b15cb3dSCy SchubertPortions of this document came from FreeBSD.
12872b15cb3dSCy Schubert	_END_MDOC_NOTES;
12882b15cb3dSCy Schubert};
12892b15cb3dSCy Schubert
12902b15cb3dSCy Schubertdoc-section	= {
12912b15cb3dSCy Schubert  ds-type	= 'BUGS';
12922b15cb3dSCy Schubert  ds-format	= 'mdoc';
12932b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_BUGS
129409100258SXin LIIt can take quite a while to generate some cryptographic values.
12952b15cb3dSCy Schubert.Pp
12962b15cb3dSCy SchubertPlease report bugs to http://bugs.ntp.org .
12972b15cb3dSCy Schubert	_END_MDOC_BUGS;
12982b15cb3dSCy Schubert};
1299