我們常說的網絡時間協議 (NTP) 是一種非常古老的用于同步時間的Internet協議。至少自1985年以來,它一直是我們常用的計算機系統時間同步協議,它使連接到Internet的設備能夠與可靠的時間源保持時鐘同步,也就是時間相同。
NTP安全嗎?
遺憾的是,NTP很容易受到網絡中間人(MITM)攻擊。這是惡意行為者位于您和
NTP服務器之間、監聽對話、偽造消息并向您謊報時間的地方。這有多嚴重?由于許多過程都依賴于確定準確的時間,因此后果確實非常嚴重。它們可以包括:
建立加密會話的問題,例如傳輸層安全(TLS)
日志和交易上的時間戳不正確,可能支持欺詐活動或幫助掩飾其他犯罪行為
身份驗證問題、攻擊和身份驗證安全措施問(例如 Kerberos)
DNS安全(DNSSEC) 問題
NTP版本3引入了對使用預共享密鑰的對稱身份驗證的支持,但在現代人眼中這看起來非常過時。這意味著您必須將一個新的密鑰分發給您想與之交談的每個對等方。這在今天不太現實,尤其是在運行像大型公共NTP 服務時。
解決方案:網絡時間安全(NTS)
網絡時間安全(NTS)是Internet工程任務組的NTP工作組嘗試 將NTP身份驗證更改為更有用的東西。
NTS實際上是兩種協議:密鑰交換和擴展NTP。
首先,客戶端發起密鑰交換。在此交換中,它會獲得一些密鑰和一些稍后使用的cookie。cookie以只有服務器知道的形式包含密鑰。客戶端還獲取有關要查詢時間的服務器的信息。
接下來,客戶端向服務器查詢時間。它使用其中一個密鑰對其查詢進行簽名,并包括它從密鑰交換中獲得的一個cookie。
服務器知道如何解壓cookie,然后使用里面的密鑰來驗證查詢的簽名并對響應進行簽名。它還可以生成并發送一個新的cookie以及時間響應。
客戶端驗證傳入數據包上的簽名,然后可以設置時間,知道它是從正確的服務器發送的。它存儲新的cookie以供以后使用。
關于 cookie 處理的真正巧妙之處在于NTS服務器不必保存有關客戶端的任何狀態。