[ntpwg] Stronger symmetric NTP authentication
David L. Mills
mills at udel.edu
Thu Dec 11 13:39:13 UTC 2008
Danny,
I repeat. Whatever is in OpenSSL, specifically the NID for each
algorithm, is transparent and NTP could in principle support any of them.
Dave
Danny Mayer wrote:
>David L. Mills wrote:
>
>
>>Danny,
>>
>>I don't understand your objection. There already is a different NID for
>>each algorithm and a matching ASCII string defined in the OpenSSL
>>library. In the scheme I proposed the operator selects NIDs for 16-octet
>>or 20-octet digests or both. Normally the client would select one
>>16-octet MD5 and one 20-octet SHA or whatever as defaults. The server
>>would select either based on the client request digest size and reply
>>with the same NID. This is the same paradigm as selecting the version
>>number when replying to a client request.
>>
>>
>>
>
>What I mean is that the ID's need to be specific algorithm identifiers,
>that's all. SHA-1 comes in different flavors and strengths, for example.
>The protocol just needs to understand what the specific algorithm is. I
>have no problem with the rest.
>
>Danny
>
>
>
>>The scheme I suggested is a natural extension, providing multiple NIDs
>>when more than one NID for each digest size is available. Most operators
>>not care to use it, but it would support a more complicated setup should
>>some diversity remain in the digest proponent community.
>>
>>Dave
>>
>>Danny Mayer wrote:
>>
>>
>>
>>>David L. Mills wrote:
>>>
>>>
>>>
>>>
>>>>Brian,
>>>>
>>>>The new interleaved modes aren't in the specification either. However,
>>>>servers and clients automatically back out of these modes if the server
>>>>or client is not equipped for them. So, the operation is completely
>>>>transparent. The current development version supporting these modes is
>>>>on all our public and private servers and clients. Yes, it is in the web
>>>>document collection and further described in the white paper on the NTP
>>>>Project Page.
>>>>
>>>>A similar thing can be done for 20-octet digests. The original plan for
>>>>this was formulated several years ago. The parsing rules provide for
>>>>8-octet (DES), 16-octet (MD5) and 20-octet (SHA) digests. This does not
>>>>change the specification other than to require extension fields to have
>>>>a minimum of two 32-bit words with 16-octet digests. A simple extension
>>>>field test would even detect an extension field of only one word.
>>>>
>>>>The parsing rules detect the digest as a function of the number of words
>>>>following the NTP payload including extension fields):
>>>>
>>>>0 none (no extension fields)
>>>>1 crypto-NAK
>>>>2 invalid
>>>>3 DES (no extension fields)
>>>>4 invalid
>>>>5 MD5 minimum extension field two words)
>>>>6 SHA (minimum extension field one word)
>>>>7 or more extension field
>>>>
>>>>For all extension fields now defined the minimum extension field length
>>>>is two words.
>>>>
>>>>
>>>>
>>>>
>>>This won't work since each digest algorithm will give a different digest
>>>output and you should not assume that the length is sufficient to tell
>>>you the difference. You actually need different id's for each digest
>>>algorithm.
>>>
>>>Danny
>>>
>>>
>>>
>>>
>>>>The interoperability and configuration rules are proposed as follows:
>>>>
>>>>A host is configured to support specified algorithms for both 16- and
>>>>20-octet digests. This includes all algorithms supported by the OpenSSL
>>>>library with the expected defaults. A new configuration command
>>>>
>>>>digest <NID> ...
>>>>
>>>>Where NID is consistent with OpenSSL NIDs used in the crypto command.
>>>>There can be one NID or several in a circular list. The digest size is
>>>>implicit in the NID. The client and symmetric peer maintains a pointer
>>>>to the current NID. When a digest arrives, the first NID with matching
>>>>digest size is used for subsequent packets. In case of crypto NAK, the
>>>>next NID on the list is used, whether that be 16 or 20 octets. In
>>>>principle, the list could be populated with all OpenSSL digest NIDs and
>>>>a caller with any of them would clank around until a matching pair was
>>>>found.
>>>>
>>>>Operation with a stateless server with lots of clients would be somewhat
>>>>messy with a mixture of clients using different NIDs. Normally there
>>>>would be one NID for 16-octet digests and another for 20-octet digests.
>>>>The server would select either depending on the client request and use
>>>>the same one for the server reply.
>>>>
>>>>Note the digest size determines the size of the key material prepended
>>>>by the keyed-MD5 operation defined by the RFC. So far as I know, a
>>>>similar operation has not been defined for digests other than MD5, but
>>>>the extension is obvious.
>>>>
>>>>Dave
>>>>
>>>>
>>>>
>>>>
>>_______________________________________________
>>ntpwg mailing list
>>ntpwg at lists.ntp.org
>>https://lists.ntp.org/mailman/listinfo/ntpwg
>>
>>
>>
>>
>
>
>
More information about the ntpwg
mailing list