Skip to content

torspec references UTC, but tor uses unix time (leap second handling)

When the various torspec documents specify time, they refer to UTC. But the implementations used by at least Linux, *BSD and OS X are based on the Unix time epoch.

This makes a difference to how leap seconds are handled: UTC includes leap seconds, but unix time excludes them.

We should:

  • ensure that none of the security properties of tor depend on leap seconds either being present or absent, either individually or in aggregate:
  • every minute is not 60 seconds long (and equivalently for hour, day, week)
  • some epoch times can repeat or be missing
  • UTC and Unix time differ by approximately 30 seconds
  • check how the current Linux, BSD, Windows and OS X implementations handle leap seconds (in roughly that order of priority)
  • consider and document tor's handling of leap seconds

See:

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information