Python取證 - 網路時間協議



網路時間協議(NTP)是用於同步時間的最廣泛使用的協議,並且已被廣泛接受為一種實踐。

NTP使用使用者資料報協議(UDP),該協議使用最少的時間在希望與給定時間源同步的伺服器和客戶端之間通訊資料包。

Network Time Protocol

網路時間協議的功能如下:

  • 預設伺服器埠為123。

  • 該協議包含許多可訪問的時間伺服器,這些伺服器與國家實驗室同步。

  • NTP協議標準由IETF管理,建議標準為RFC 5905,標題為“網路時間協議版本4:協議和演算法規範”[NTP RFC]

  • 作業系統、程式和應用程式使用NTP以正確的方式同步時間。

在本章中,我們將重點關注NTP與Python的使用,這可以透過第三方Python庫ntplib實現。此庫有效地處理繁重的工作,並將結果與我的本地系統時鐘進行比較。

安裝NTP庫

ntplib可在https://pypi.python.org/pypi/ntplib/下載,如下圖所示。

該庫透過可以轉換NTP協議欄位的方法,為NTP伺服器提供了一個簡單的介面。這有助於訪問其他關鍵值,例如閏秒。

Installing the NTP Library

以下Python程式有助於理解NTP的使用。

import ntplib
import time

NIST = 'nist1-macon.macon.ga.us'
ntp = ntplib.NTPClient()
ntpResponse = ntp.request(NIST)

if (ntpResponse):
   now = time.time()
   diff = now-ntpResponse.tx_time
   print diff;

上述程式將產生以下輸出。

Using NTP Output

上述程式中計算了時間差。這些計算有助於取證調查。獲得的網路資料與硬碟上找到的資料分析在根本上是不同的。

時區差異或獲取準確的時區有助於收集證據,以透過此協議捕獲訊息。

廣告