Time is on my side - HITB · Time is on my side • NTP servers are deployed with open source NTP...
Transcript of Time is on my side - HITB · Time is on my side • NTP servers are deployed with open source NTP...
ForgingWirelessTimingSignalstoAttacktheNTPServer
Timeisonmyside
Timeisonmyside1
Yuwei Zheng @HITBHaoqi Shan @HITBFrom: Qihoo360 Unicorn Team
Maincontents
Timeisonmyside
• AbouttheNTPserver• TheNTPstratummode• Thereferenceclock• Forge radio clock signals• Forge GPS clock signals• AttackNTPserver
2
TheNTPstratummode
Timeisonmyside
• Stratum0Referenceclocks• Stratum1Primarytimeservers• Stratum2• Stratum3…• Stratum16
5
Thereferenceclock
Timeisonmyside
• ReferenceClockDriversintheopensourceNTPv4Type2Deprecated: wasTrak 8820GPSReceiverType3PSTI/Traconex 1020WWV/WWVHReceiver(WWV_PST)Type4Spectracom WWVB/GPSReceivers(WWVB_SPEC)Type5TrueTimeGPS/GOES/OMEGA Receivers(TRUETIME)Type6IRIGAudioDecoder(IRIG_AUDIO)Type7RadioCHUAudioDemodulator/Decoder(CHU)…Type39hopf GPS/DCF776039forPCI-Bus(HOPF_P)Type40JJYReceivers(JJY)Type41TrueTime 560IRIG-BDecoderType42ZyferGPStarplus ReceiverType43RIPENCCinterfaceforTrimblePalisadeType44NeoClock4X- DCF77/TDFseriallineType45Spectracom TSYNCPCIType46GPSDNGclientprotocol
7
Thereferenceclock
Timeisonmyside
Whydoesthestratum-1NTPserveruseradioclockandGPS?• Atomicclock,accurate,butexpensive• GPS• radioclock
8
Forgelongwavetimingsignals
Timeisonmyside
• DIYacircuittotransmitradioclocksignalssupportWWVB,JJY,DCF77,andMSF
12
WWVBencodingandmodulation
Timeisonmyside
• Different pulse width representdifferentdatabit
13
1 2 3 4t(s)
p
reduced
full
0.8s
marker 1 0 1
0.5s 0.5s0.2s
…
JJYencodingandmodulation
Timeisonmyside
Similar to the WWVB
17
1 2 3 4t(s)
p
reduced
full
0.8s
marker1 0 1
0.5s 0.5s0.2s
…
Longwavetimingsignaltransmitter
Timeisonmyside
• AboutAD9850DDSmodulesupportstooutput0-40Mhzwavesendsallradioclocksignalswithonecircuit
• Usearduino tocontrolad9850Ad9850seriallibraryforarduinohttps://github.com/F4GOJ/AD9850
20
Longwavetimingsignaltransmitter
Timeisonmyside
• AsimpleJJYtransmittervoidsendMark(){//Sendhighfor0.2secDDS.setfreq(freq,phase);delay(200);//Sendlowfor0.8secDDS.down();delay(800);return;
}
21
Longwavetimingsignaltransmitter
Timeisonmyside
• AsimpleJJYtransmittervoidsendBit1(){//Sendhighfor0.5secDDS.setfreq(freq,phase);delay(500);//Sendlowfor0.5secDDS.down();delay(500);return;
}
22
Longwavetimingsignaltransmitter
Timeisonmyside
• AsimpleJJYtransmittervoidsendBitZero(){//Sendhighfor0.8secDDS.setfreq(freq,phase);delay(800);//Sendlowfor0.2secDDS.down();delay(200);return;
}
23
Longwavetimingsignaltransmitter
Timeisonmyside
• GettheantennafromanJJYreceiver
L=1890uH.𝑓 = $
%& '(,for60khzcarrierC=3.6nF
Forthe77.5khzcarrier,C=2.2nF
24
Longwavetimingsignaltransmitter
Timeisonmyside26
• LongdistancetransmitterDesignapoweramplifierwithMOSFETIR540.
AttackGPSNTPreceiver
Timeisonmyside
• GPSreceiver• GPStechbriefing• GenerateGPSsignal• Haveatry• Upgradeattackalgorithm
27
GPStechbriefing
Timeisonmyside
• Complicatedprinciple• Butdoesn’tmatter,it’sopen-sourced• Defcon23“GPSSpoofing- LinHuang”
29
GPStechbriefing
Timeisonmyside30
Subframe 1 Subframe 2 Subframe 3 Subframe 4 Subframe 5
Time information Ephemeris
Setup an NTP server
HackingFemtocell
• Setup an NTP server using JJY as clocksource
35
server127.127.40.0mode1preferfudge 127.127.40.0flag1stratum0
AttacktheNTPserver
Timeisonmyside
• Canweinjectanytime?Thetimeoffsetmustbelessthan4hours.
• InjectatimethatisonehourslowthanrealtimeServercrashed!!!
38
AttacktheNTPserver
Timeisonmyside
• Canweinjectanytime?Ifthetimeoffsetismorethan1000s,theserverwillshutdown.
39
References
Timeisonmyside
•“GPS Spoofing – Huang Lin”• https://www.eecis.udel.edu/~mills/ntp/html/refclock.html• http://www.sundgren.se/1-recreation/2-electronics/dcf77_simulator.htm• https://github.com/F4GOJ/AD9850• https://github.com/sywcxx/gps-sim
47