2011-10-12 59 views
1

我的應用程序需要定期訪問一個可信的時間源,所以不能依賴系統時間,因爲這個可以很容易地被用戶修改或者發生故障等。我的第一個想法是靜態鏈接到libntp(來自ntp.org)並使用它的功能,這是一個好主意嗎?如何在應用程序中獲得值得信賴的時間,ntp也許?

Libntp看起來有點複雜的框架,是否有一些更簡單的客戶端實現(最好是ANSI C,因爲應用程序需要用於不同的平臺......但如果可以用gcc/MS VS編譯,也可以是Cpp)?

是否有其他替代ntp?

謝謝!

編輯:添加一些更多的信息.​​..重要的是,可信時間服務器的值不能被修改(可以說,攻擊者修改受信任的時間服務器的響應和應用程序接受假時間)。我開始查看ntp並看到它處理這個問題。現在的問題是我應該使用ntp.org的ntp源作爲起點,還是有一些簡單的客戶端實現?理想情況下,我應該使用來自ntp.org源的哪些模塊/源文件的指針用於僅客戶端實現,以及哪個頭文件顯示我需要使用的API,例如調用getTrustedTime()...等。

+3

如果你不能信任操作系統...所有的賭注都關閉。 OS可以配置爲保護系統時間。另外,網絡連接可能並不總是存在。您是否嘗試實施許可證保護?如果是這樣,請在您的文章中澄清 – sehe

+0

它必須有多準確? 1或2秒關閉可以嗎?或者它具有毫秒精度? –

+0

我的應用程序不信任操作系統時間,但需要(定期)網絡連接(實際上與許可證保護相關)。至於準確性,最多幾分鐘就可以。 –

回答

0

如果您可以依賴於網絡連接,則您的應用程序可能會詢問遠程服務器的時間,也可能通過簽名或加密的連接。

相關問題