La sezione 7.4.1.2 della RFC 5246 stabilisce che i 32 byte di random richiesti nei messaggi Client e Server Hello devono essere di 4 byte di tempo e 28 byte di random.
- Perché non possono essere 32 byte casuali?
- Qual è lo scopo di includere il valore temporale in esso?
La Spec dice anche che gli orologi non devono essere impostati correttamente per il protocollo TLS e come possiamo questo valore temporale non è usato per nessun altro scopo speciale e l'intero valore casuale (32 byte completi) è usato come tale per Master Secret derivazione.
The ClientHello message includes a random structure, which is used
later in the protocol.
struct {
uint32 gmt_unix_time;
opaque random_bytes[28];
} Random;
gmt_unix_time
The current time and date in standard UNIX 32-bit format
(seconds since the midnight starting Jan 1, 1970, UTC, ignoring
leap seconds) according to the sender's internal clock. Clocks
are not required to be set correctly by the basic TLS protocol;
higher-level or application protocols may define additional
requirements. Note that, for historical reasons, the data
element is named using GMT, the predecessor of the current
worldwide time base, UTC.
random_bytes
28 bytes generated by a secure random number generator.