I need an unspoofable and accurate time source.
Short of setting up my own atomic clock (unless that's easier than it sounds) how could I accomplish this?
It's not that I don't trust the NTP pools; I don't have any assurance of who I am talking to.
feedback
|
|
One of the previous answers mentioned MD5 auth but failed to mention the pubkey authentication available in NTP4. Many national labs provide md5/autokey enabled time services. I do not understand what your threat model is; if someone is capable of and willing to spoof your GPS signal you have bigger issues than what time it is. That being said you could combine a local refclock using GPS or CDMA and then augment this time signal with authenticated time from some of the national labs that provide authenticated time services. This way if your GPS signal is spoofed you could still rely on the authenticated time from the national labs. GPS: For as little as $40 and some soldering you could set up a local GPS+PPS time source with a Sure Electronics GPS evaluation board. Occasionally you can find a CDMA refclock for fairly cheap on ebay if you can not receive a GPS signal in your data center. Authenticated NTP Service: NIST, NRC, and INRIM (national labs for US, Canada and Italy) provide MD5 authenticated time services. Unlike NIST and INRIM the CRC md5 service is not free. Autokey authenticated time service is available from OBSPM and INRIM (the french and italian national labs) and they provide this service for free. There are surely other national labs with authenticated time but you are going to need to google for them. Links for authenticated time from national labs: NIST: http://www.nist.gov/pml/div688/grp40/auth-ntp.cfm NRC: http://www.nrc-cnrc.gc.ca/eng/services/inms/calibration-services/time-frequency.html#Authenticated OBSPM: http://syrte.obspm.fr/informatique/ntp_infos.php https://syrte.obspm.fr/informatique/ntp_keys.php INRIM: | |||
|
feedback
|
|
My advice would be to trust NTP -- It's by no means secure, but I'm not aware of any major attack vectors, and it's as secure as your selection of peers (which are in tern as secure as your DNS resolution and your routing table). If you need to consider other alternatives here are a few (accuracy/security in parentheses):
| |||||||||||||
feedback
|
|
NTP isn't a secure protocol (well, there is an authentication mechanism, but it's not widely used, and MD5 auth isn't terribly secure) - no matter what internet time server you're talking to, you don't really know that you're talking to them. Trustworthiness of the pools aside (I don't like them because their strata are all over the place, NIST has good sources for internet NTP), internet NTP doesn't meet your requirement. A hardware clock on the local network is really the only way you can be assured that your connection isn't being intercepted - and even then, only if your local area network's security is able to assure you of that. | |||||||||||||||||
feedback
|
|
Well, purchase a meinberg with GPS sync. Those aren't too expensive. You should be able to trust that to some degree. http://www.meinberg.de. Or just buy a GPS sync device and hook it to a server. | |||||||||||||||
feedback
|
|
There are any number of secure time sources available on the Internet. Most of them work this way:
Verisign runs such a service over HTTPS. The URL is | |||||||||
feedback
|
|
The easiest way to secure who your NTP servers talk would to just use iptables. -A INPUT -s 0/0 -d 0/0 -p udp --source-port 123:123 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -s 0/0 -d 0/0 -p udp --destination-port 123:123 -m state --state NEW,ESTABLISHED -j ACCEPT A good resource for securing NTP across a couple of different devices can be found here. | |||||||||||||||||
feedback
|