ntp_auth(index.php) - phpMan

ntp_auth(5)                   File Formats Manual                  ntp_auth(5)

NAME
       ntp_auth - Authentication Options

INTRODUCTION
       This page describes the various cryptographic authentication provisions
       in NTPv4. Details about the  configuration  commands  and  options  are
       given  on  the  Configuration Options page. Details about the automatic
       server discovery schemes are described on the Automatic Server  Discov-
       ery  Schemes  page.  Additional information is available in the papers,
       reports, memoranda and  briefings  cited  on  the   NTP  Project  page.
       Authentication support allows the NTP client to verify that servers are
       in fact known and trusted and not intruders intending  accidentally  or
       intentionally to masquerade as a legitimate server.
        The  NTPv3  specification RFC-1305 defines a scheme properly described
       as symmetric key cryptography. It uses  the  Data  Encryption  Standard
       (DES)  algorithm  operating in cipher-block chaining (CBC) mode. Subse-
       quently, this scheme was replaced by the RSA  Message  Digest  5  (MD5)
       algorithm  commonly  called keyed-MD5. Either algorithm computes a mes-
       sage digest or one-way hash which can be used to verify the client  has
       the  same  key and key identifier as the server. If the OpenSSL crypto-
       graphic library is installed, support is available for  all  algorithms
       included  in the library. Note however, if conformance to FIPS 140-2 is
       required, only a limited subset of these algorithms is available.
       NTPv4 includes the NTPv3 scheme and optionally a new  scheme  based  on
       public  key cryptography and called Autokey. Public key cryptography is
       generally considered more secure than symmetric key cryptography, since
       the  security is based on private and public values which are generated
       by each participant and where the  private  value  is  never  revealed.
       Autokey  uses  X.509 public certificates, which can be produced by com-
       mercial services, utility programs in the OpenSSL software  library  or
       the ntp-keygen utility program in the NTP software distribution.
       While the algorithms for MD5 symmetric key cryptography are included in
       the NTPv4 software distribution, modern algorithms  for  symmetric  key
       and public key cryptograpny requires the OpenSSL software library to be
       installed before building the NTP distribution. This library is  avail-
       able  from http://www.openssl.org and can be installed using the proce-
       dures outlined in the Building and Installing  the  Distribution  page.
       Once  installed,  the configure and build process automatically detects
       the library and links the library routines required.
       Note that according to US law, NTP binaries including  OpenSSL  library
       components,  including  the  OpenSSL library itself, cannot be exported
       outside the US without license from  the  US  Department  of  Commerce.
       Builders  outside  the  US  are  advised  to obtain the OpenSSL library
       directly from OpenSSL, which is outside the US, and build  outside  the
       US.
       Authentication  is configured separately for each association using the
       key or autokey option of the server configuration command, as described
       in the Server Options page, and the options described on this page. The
       ntp-keygen page describes the files required for the various  authenti-
       cation  schemes.  Further  details  are  in  the  briefings, papers and
       reports at the NTP project page linked from www.ntp.org.

SYMMETRIC KEY CRYPTOGRAPHY
       The original RFC-1305 specification allows any one of  possibly  65,534
       keys  (excluding  zero),  each  distinguished  by  a  32-bit key ID, to
       authenticate an association. The  servers  and  clients  involved  must
       agree  on  the key, key ID and key type to authenticate NTP packets. If
       an NTP packet includes a message authentication code (MAC),  consisting
       of  a  key  ID  and  message  digest, it is accepted only if the key ID
       matches a trusted key and the message digest is verified with this key.
       Note that for historic reasons the message digest algorithm is not con-
       sistent with RFC-1828. The digest is computed directly  from  the  con-
       catenation  of  the key string followed by the packet contents with the
       exception of the MAC itself.
       Keys and related information are specified  in  a  keys  file,  usually
       called  ntp.keys,  which  must  be  distributed and stored using secure
       means beyond the scope of the NTP protocol  itself.  Besides  the  keys
       used  for  ordinary  NTP  associations,  additional keys can be used as
       passwords for the ntpq and  ntpdc  utility  programs.  Ordinarily,  the
       ntp.keys  file  is  generated  by the ntp-keygen program, but it can be
       constructed and edited using an ordinary text editor. The program  gen-
       erates pseudo-random keys, one key for each line. Each line consists of
       three fields, the key identifier as a decimal number from  1  to  65534
       inclusive,  a key type chosen from the keywords of the digest option of
       the crypto command, and a 20-character  printable  ASCII  string  or  a
       40-character hex string as the key itself.
       When ntpd is first started, it reads the key file specified by the keys
       command and installs the keys in the  key  cache.  However,  individual
       keys must be activated with the trustedkey configuration command before
       use. This allows, for instance, the installation  of  possibly  several
       batches  of  keys  and  then activating a key remotely using ntpdc. The
       requestkey command selects the key ID used  as  the  password  for  the
       ntpdc  utility, while the controlkey command selects the key ID used as
       the password for the ntpq utility.
       By default, the message digest algorithm is MD5  selected  by  the  key
       type  M in the keys file. However, if the OpenSSL library is installed,
       any message digest algorithm supported by that library can be used. The
       key  type  is selected as the algorithm name given in the OpenSSL docu-
       mentation. The key type is associated with the key and can be different
       for  different keys. The server and client must share the same key, key
       ID and key type and both must be trusted. Note that if  conformance  to
       FIPS  140-2  is  required, the message digest algorithm must conform to
       the Secure Hash Standard (SHS), which requires an  algorithm  from  the
       Secure  Hash  Algorithm (SHA) family, and the digital signature encryp-
       tion algorithm, if used, must conform to the Digital Signature Standard
       (DSS), which requires the Digital Signature Algorithm (DSA).
       In addition to the above means, ntpd now supports Microsoft Windows MS-
       SNTP authentication using Active Directory services. This  support  was
       contributed  by  the  Samba  Team  and  is  still in development. It is
       enabled using the mssntp flag of the restrict command described on  the
       Access Control Options page. Note: Potential users should be aware that
       these services involve a TCP connection to another process  that  could
       potentially  block,  denying  services  to other users. Therefore, this
       flag should be used only for a dedicated server with no  clients  other
       than MS-SNTP.

PUBLIC KEY CRYPTOGRAPHY
       NTPv4  supports the Autokey security protocol, which is based on public
       key cryptography. The Autokey  Version  2  protocol  described  on  the
       Autokey  Protocol  page  verifies  packet  integrity  using MD5 message
       digests and verifies the source using digital  signatures  and  any  of
       several  digest/signature  schemes. Optional identity schemes described
       on the Autokey Identity Schemes page are based on  cryptographic  chal-
       lenge/response exchanges. These schemes provide strong security against
       replay with or without message modification, spoofing,  masquerade  and
       most  forms of clogging attacks. These schemes are described along with
       an executive summary, current status, briefing slides and reading  list
       on the Autonomous Authentication page.
       Autokey  authenticates individual packets using cookies bound to the IP
       source and destination  addresses.  The  cookies  must  have  the  same
       addresses at both the server and client. For this reason operation with
       network address translation schemes is not possible. This reflects  the
       intended  robust  security  model  where  government  and corporate NTP
       servers are operated outside firewall perimeters.
       There are three timeouts associated with the Autokey  scheme.  The  key
       list  timeout,  which  defaults  to about 1.1 h, specifies the interval
       between generating new key lists. The revoke timeout, which defaults to
       about  36 h, specifies the interval between generating new private val-
       ues. The restart timeout, with default about 5 d, specifies the  inter-
       val between protocol restarts to refresh public values. In general, the
       behavior when these timeouts expire is not affected by the issues  dis-
       cussed on this page.

NTP SECURE GROUPS
       NTP  secure  groups  are  used to define cryptographic compartments and
       security hierarchies. All hosts belonging to a secure  group  have  the
       same  group  name but different host names. The string specified in the
       host option of the crypto command is the name of the host and the  name
       used in the host key, sign key and certificate files. The string speci-
       fied in the ident option of the crypto command is the group name of all
       group  hosts  and  the name used in the identity files. The file naming
       conventions are described on the ntp-keygen page.
       Each group includes one or more trusted hosts (THs)  operating  at  the
       root,  or  lowest  stratum  in the group. The group name is used in the
       subject and issuer fields of the TH self-signed trusted certificate for
       these  hosts. The host name is used in the subject and issuer fields of
       the self-signed certificates for all other hosts.
       All group hosts are configured to provide an unbroken  path,  called  a
       certificate  trail, from each host, possibly via intermediate hosts and
       ending at a TH. When a host starts up,  it  recursively  retrieves  the
       certificates  along  the  trail in order to verify group membership and
       avoid masquerade and middleman attacks.
       Secure groups can be configured as hierarchies where a TH of one  group
       can  be a client of one or more other groups operating at a lower stra-
       tum. A certificate trail consist of a chain  of  hosts  starting  at  a
       client,  leading through secondary servers of progressively lower stra-
       tum and ending at a TH. In one scenario, groups RED and  GREEN  can  be
       cryptographically distinct, but both be clients of group BLUE operating
       at a lower stratum. In another scenario, group CYAN can be a client  of
       multiple  groups YELLOW and MAGENTA, both operating at a lower stratum.
       There are many other scenarios, but all must be configured  to  include
       only acyclic certificate trails.

IDENTITY SCHEMES AND CRYPTOTYPES
       All  configurations include a public/private host key pair and matching
       certificate. Absent an identity scheme, this is a  Trusted  Certificate
       (TC) scheme. There are three identity schemes, IFF, GQ and MV described
       on the Identity Schemes page. With these schemes  all  servers  in  the
       group  have  encrypted  server identity keys, while clients have nonen-
       crypted client  identity  parameters.  The  client  parameters  can  be
       obtained from a trusted agent (TA), usually one of the THs of the lower
       stratum group. Further  information  on  identity  schemes  is  on  the
       Autokey Identity Schemes page.
       A specific combination of authentication and identity schemes is called
       a cryptotype, which applies to clients and servers separately. A  group
       can  be configured using more than one cryptotype combination, although
       not all combinations are interoperable. Note however that some  crypto-
       type combinations may successfully intemperate with each other, but may
       not represent good security practice. The server and client cryptotypes
       are defined by the the following codes.

       NONE    A client or server is type NONE if authentication is not avail-
               able or not configured. Packets exchanged  between  client  and
               server have no MAC.
       AUTH    A  client or server is type AUTH if the key option is specified
               with the server configuration command and the client and server
               keys  are  compatible.  Packets  exchanged  between clients and
               servers have a MAC.
       PC      A client or server is type PC if the autokey option  is  speci-
               fied  with the server configuration command and compatible host
               key  and  private  certificate  files  are   present.   Packets
               exchanged between clients and servers have a MAC.
       TC      A  client  or server is type TC if the autokey option is speci-
               fied with the server configuration command and compatible  host
               key and public certificate files are present. Packets exchanged
               between clients and servers have a MAC.
       IDENT   A client or server is type IDENT if the autokey option is spec-
               ified with the server configuration command and compatible host
               key, public certificate and identity scheme files are  present.
               Packets exchanged between clients and servers have a MAC.
       The  compatible  cryptotypes  for clients and servers are listed in the
       following table.

       +------------------+---------+----------+---------+----------+---------+
       | Client/Server    |  NONE   |  AUTH    |   PC    |   TC     |  IDENT  |
       +------------------+---------+----------+---------+----------+---------+
       |     NONE         |  yes    |  yes*    |  yes*   |  yes*    |  yes*   |
       +------------------+---------+----------+---------+----------+---------+
       |     AUTH         |   no    |  yes     |   no    |   no     |   no    |
       +------------------+---------+----------+---------+----------+---------+
       |      PC          |   no    |   no     |  yes    |   no     |   no    |
       +------------------+---------+----------+---------+----------+---------+
       |      TC          |   no    |   no     |   no    |  yes     |   yes   |
       +------------------+---------+----------+---------+----------+---------+
       |     IDENT        |   no    |   no     |   no    |   no     |   yes   |
       +------------------+---------+----------+---------+----------+---------+
       * These combinations are not valid if the restriction list includes the
       notrust option.

CONFIGURATION
       Autokey  has  an  intimidating number of configuration options, most of
       which are not necessary in typical  scenarios.  The  simplest  scenario
       consists  of a TH where the host name of the TH is also the name of the
       group. For the simplest identity scheme TC, the TH generates  host  key
       and  trusted  certificate  files using the ntp-keygen -T command, while
       the remaining group hosts use the same command with no options to  gen-
       erate  the  host  key  and  public certificate files. All hosts use the
       crypto configuration command with no options. Configuration with  pass-
       words  is described in the ntp-keygen page. All group hosts are config-
       ured as an acyclic tree with root the TH.
       When an identity scheme is included, for example IFF, the TH  generates
       host  key,  trusted  certificate  and private server identity key files
       using the ntp-keygen -T -I -i group command, where group is  the  group
       name.  The  remaining  group  hosts  use the same command as above. All
       hosts use the crypto ident group configuration command.
       Hosts with no dependent clients can  retrieve  client  parameter  files
       from an archive or web page. The ntp-keygen can export these data using
       the -e option. Hosts with dependent clients  other  than  the  TH  must
       retrieve  copies  of  the server key files using secure means. The ntp-
       keygen can export these data using the -q option. In  either  case  the
       data  are  installed as a file and then renamed using the name given as
       the first line in the file, but without the filestamp.

EXAMPLES
       Consider a scenario involving three secure groups RED, GREEN and  BLUE.
       RED  and  BLUE are typical of national laboratories providing certified
       time to the Internet at large. As shown ion the figure, RED TH mort and
       BLUE  TH  macabre run NTP symmetric mode with each other for monitoring
       or backup. For the purpose of illustration, assume both THs are primary
       servers.  GREEN  is  typical  of a large university providing certified
       time to the campus community. GREEN TH howland is a broadcast client of
       both  RED  and BLUE. BLUE uses the IFF scheme, while both RED and GREEN
       use the GQ scheme, but with different keys. YELLOW is a client of GREEN
       and for purposes of illustration a TH for YELLOW.
       The BLUE TH macabre uses configuration commands
       crypto pw qqsv ident blue peer mort autokey broadcast address autokey
       where  qqsv is the password for macabre files and address is the broad-
       cast address for the local LAN. It generates BLUE files using the  com-
       mands
       ntp-keygen  -p  qqsv  -T  -G  -i  blue  ntp-keygen  -p  qqsv  -e  >ntp-
       key_gqpar_blue
       The first line generates the host, trusted certificate and  private  GQ
       server  keys file. The second generates the public GQ client parameters
       file, which can have any nonconflicting mnemonic name.
       The RED TH mort uses configuration commands
       crypto pw xxx ident red peer macabre autokey broadcast address autokey
       where xxx is the password for mort files. It generates RED files  using
       the commands
       ntp-keygen -p xxx -T -I -i red ntp-keygen -p xxx -e >ntpkey_iffpar_red
        The GREEN TH howland uses configuration commands
       crypto pw yyy ident green broadcastclient
       where  yyy  is the password for howland files. It generates GREEN files
       using the commands
       ntp-keygen  -p  yyy  -T  -G  -i  green  ntp-keygen  -p  yyy  -e   >ntp-
       key_gqpar_green ntp-keygen -p yyy -q zzz >zzz_ntpkey_gqkey_green
       The  first  two lines serve the same purpose as the preceding examples.
       The third line generates a copy of the private GREEN  server  file  for
       use on another server in the same group, say YELLOW, but encrypted with
       the zzz password.
       A client of GREEN, for example YELLOW, uses the configuration commands
       crypto pw abc ident green server howland autokey
       where abc is the password for its files. It generates files  using  the
       command
       ntp-keygen -p abc
       The  client  retrieves the client file for that group from a public ar-
       chive or web page using nonsecure means. In addition, each server in  a
       group retrieves the private server keys file from the TH of that group,
       but it is encrypted and so must be sent using secure means.  The  files
       are installed in the keys directory with name taken from the first line
       in the file, but without the filestamp.
       Note that if servers of different groups, in this case  RED  and  BLUE,
       share  the same broadcast media, each server must have client files for
       all groups other than its own, while each client must have client files
       for  all  groups. Note also that this scenario is for illustration only
       and probably would not be wise for practical use, as if one of  the  TH
       reference  clocks  fails, the certificate trail becomes cyclic. In such
       cases the symmetric path between RED and  BLUE,  each  in  a  different
       group, would not be a good idea.

AUTHENTICATION COMMANDS
       automax [logsec]
               Specifies the interval between regenerations of the session key
               list used with the Autokey protocol, as a power of  2  in  sec-
               onds.  Note  that the size of the key list for each association
               depends on this interval and the  current  poll  interval.  The
               default  interval is 12 (about 1.1 h). For poll intervals above
               the specified interval, a session key list with a single  entry
               will be regenerated for every message sent.
       controlkey keyid
               Specifies  the  key ID to use with the ntpq utility, which uses
               the standard protocol defined in RFC-1305. The  keyid  argument
               is  the key ID for a trusted key, where the value can be in the
               range 1 to 65534, inclusive.
       crypto [randfile file] [host name] [ident name] [pw password]
               This command requires the OpenSSL library. It activates  public
               key  cryptography  and  loads  the required host key and public
               certificate. If one or more files  are  left  unspecified,  the
               default  names are used as described below. Unless the complete
               path and name of the file are specified, the location of a file
               is relative to the keys directory specified in the keysdir con-
               figuration command or default  /etc/ntp/crypto.  Following  are
               the options.

               digest MD2 | MD4 | MD5 | MDC2 | RIPEMD160 | SHA | SHA1
                       Specify the message digest algorithm, with default MD5.
                       If the OpenSSL library is installed, name can be be any
                       message  digest  algorithm supported by the library not
                       exceeding 160 bits in length. However, all Autokey par-
                       ticipants  in an Autokey subnet must use the same algo-
                       rithm. Note that the Autokey message  digest  algorithm
                       is separate and distinct form the symmetric key message
                       digest algorithms. Note: If compliance with FIPS  140-2
                       is required, the algorithm must be ether SHA or SHA1.
               host name
                       Specifies  the  string used when constructing the names
                       for the host, sign and certificate files  generated  by
                       the ntp-keygen program with the -s name option.
               ident name
                       Specifies  the string used in constructing the identity
                       files generated by the ntp-keygen program with  the  -i
                       name option.
               pw password
                       Specifies  the  password  to  decrypt  files previously
                       encrypted by the ntp-keygen program with the -p option.
               randfile file
                       Specifies the location of the random seed file used  by
                       the  OpenSSL library. The defaults are described on the
                       ntp-keygen page.

       keys keyfile
               Specifies the complete path to the MD5 key file containing  the
               keys  and  key  IDs used by ntpd, ntpq and ntpdc when operating
               with symmetric key cryptography. This is the same operation  as
               the  -k  command  line option. Note that the directory path for
               Autokey media is specified by the keysdir command.
       keysdir pathK
               This command specifies the default directory path  for  Autokey
               cryptographic keys, parameters and certificates. The default is
               /etc/ntp/crypto. Note that the path for the symmetric keys file
               is specified by the keys command.
       requestkey keyid
               Specifies  the  key  ID  to use with the ntpdc utility program,
               which uses a proprietary protocol specific to this  implementa-
               tion of ntpd. The keyid argument is a key ID for a trusted key,
               in the range 1 to 65534, inclusive.
       revoke [logsec]
               Specifies the  interval  between  re-randomization  of  certain
               cryptographic  values used by the Autokey scheme, as a power of
               2 in seconds. These values need to  be  updated  frequently  in
               order  to  deflect  brute-force attacks on the algorithms; how-
               ever, updating some values is a relatively expensive operation.
               The  default  interval  is  17 (about 36 h). For poll intervals
               above the specified interval, the values will  be  updated  for
               every message sent.
       trustedkey [keyid | (lowid ... highid)] [...]
               Specifies  the  key ID(s) which are trusted for the purposes of
               authenticating peers with symmetric key cryptography.  Key  IDs
               used  to  authenticate ntpq and ntpdc operations must be listed
               here  and  additionally  be  enabled  with  controlkey   and/or
               requestkey.  The  authentication  procedure  for  time transfer
               require that both the local and remote NTP servers  employ  the
               same  key  ID  and  secret for this purpose, although different
               keys IDs may be used with different servers. Ranges of  trusted
               key  IDs may be specified: "trustedkey (1 ... 19) 1000 (100 ...
               199)" enables the lowest 120 key IDs which start with the digit
               1. The spaces surrounding the ellipsis are required when speci-
               fying a range.

ERROR CODES
       Errors can occur due to mismatched configurations, unexpected  protocol
       restarts, expired certificates and unfriendly people. In most cases the
       protocol state machine recovers automatically by retransmission,  time-
       out  and  restart,  where  necessary. Some errors are due to mismatched
       keys, digest schemes or identity  schemes  and  must  be  corrected  by
       installing  the correct media and/or correcting the configuration file.
       One of the most common errors is expired certificates,  which  must  be
       regenerated  and  signed  at least once per year using the ntp-keygen -
       generate public and private keys program.
       The following error codes are reported via the NTP control and monitor-
       ing  protocol  trap mechanism and to the cryptostats monitoring file if
       configured.

       101 bad field format or length
               The packet has invalid version, length or format.
       102 bad timestamp
               The packet timestamp is the same or older than the most  recent
               received.  This could be due to a replay or a server clock time
               step.
       103 bad filestamp
               The packet filestamp is the same or older than the most  recent
               received.  This  could be due to a replay or a key file genera-
               tion error.
       104 bad or missing public key
               The public key is missing, has incorrect format or is an unsup-
               ported type.
       105 unsupported digest type
               The server requires an unsupported digest/signature scheme.
       106 unsupported identity type
               The client or server has requested an identity scheme the other
               does not support.
       107 bad signature length
               The signature length does not match the current public key.
       108 signature not verified
               The message fails the signature check. It  could  be  bogus  or
               signed by a different private key.
       109 certificate not verified
               The certificate is invalid or signed with the wrong key.
       110 host certificate expired
               The old server certificate has expired.
       111 bad or missing cookie
               The cookie is missing, corrupted or bogus.
       112 bad or missing leapseconds table
               The leapseconds table is missing, corrupted or bogus.
       113 bad or missing certificate
               The certificate is missing, corrupted or bogus.
       114 bad or missing group key
               The identity key is missing, corrupt or bogus.
       115 protocol error
               The  protocol  state  machine  has  wedged  due  to  unexpected
               restart.

FILES
       See the ntp-keygen page. Note that provisions to load leap second  val-
       ues  from  the  NIST  files have been removed. These provisions are now
       available whether or not the OpenSSL library is available. However, the
       functions  that  can  download these values from servers remains avail-
       able.

SEE ALSO
       ntp.conf(5), ntpd(8)
       The official HTML documentation.
       This file was automatically generated from HTML source.


                                                                   ntp_auth(5)