How does the ProofMark system source trusted time? How accurate is it?
Each ProofMark has a timestamp indicating the time that the ProofMark was issued. The timestamp is created using Universal Coordinated Time (UTC), with precision to the nearest millisecond. Within a ProofMark Server, timestamps are obtained from a trusted Time Source (commonly via the Network Time Protocol, NTP, although more robust mechanisms are supported). Times are calculated via a time biasing mechanism, which obtains the time from the trusted time source periodically and uses a local hardware timer in the interim. If the trusted time cannot be obtained, the ProofMark server will not issue ProofMarks until the trusted time can be reestablished. The system clock, which is vulnerable to tampering, is never used as a source of time. Every timestamp has an associated accuracy, in milliseconds, which is reported along with the timestamp in every issued ProofMark. In a typical configuration, accuracy within 100 milliseconds of the Atomic clock is possible. If the Time Source is not running within its specified tolerance, a Stale Time Exception occurs, which prevents the creation of ProofMarks.