29

I'm doing some analysis of TLS in different browsers (using Safari, Chrome, and Firefox) and have noticed that while Safari sends the correct unix timestamp, Chrome and Firefox send random values each time it send the ClientHello. Is this by design?

  • 4
    To the close voter...This is fundamentally a question about TLS implementation and as such should be on-topic here. – Xander Apr 2 '15 at 0:55
  • @Xander raises hand I was thinking this was a browser-specific question, and not so much a pure TLS question. Retracting vote. – schroeder Apr 2 '15 at 2:53
  • 1
    By the way, draft TLS 1.3 officially eliminates the timestamp thing, making the whole random value... random. – Matt Nordhoff Apr 2 '15 at 9:02
  • By the way, OpenSSL stopped sending the timestamp in 1.0.1f. – Matt Nordhoff Apr 2 '15 at 9:11
35

Yes, this is by design. The actual time is not important to TLS, and was only added to the ClientHello by the protocol as a protection against bad random number generation impacting the rest of the random data required as a part of the message.

Since it is not important, the protocol specifically states that it is not required to be the correct time*. The makers of some browsers have therefore decided to randomly skew the time portion of the random element in each ClientHello message they send.

A main reason for this is to aid in preventing tracking, an impetus which came from Tor - see the Mozilla post about this decision.


*RFC 2246/5246 § 7.4.1.2. Client hello:

Clocks are not required to be set correctly by the basic TLS Protocol;

  • 3
    What was the reason behind this? Preventing tracking? – Steve Sether Apr 2 '15 at 5:52
  • 3
    @SteveSether Yes. The impetus came from Tor. – Matt Nordhoff Apr 2 '15 at 9:27
  • "by be" -> "to be" – user49075 Apr 2 '15 at 10:55
  • Ah, cool, thanks! I read the section for gmt_unix_time in the protocol spec but I think I glanced over the part that says it's not required to be correct. Would you mind updating your answer to include the spec section that discusses it, for future visitors? – josh Apr 2 '15 at 17:01
  • 1
    @SteveSether the Client Hello is transfered in plaintext and each computer's clock is off by a specific amount (eg 12 ms) from an atomic clock reading. By seeing this time, one could in theory identify the source of an SSL request even though it went through an anonymous proxy such as Tor. – user1122069 Apr 3 '15 at 12:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.