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

上述程序中计算了时间差。这些计算有助于取证调查。获得的网络数据与硬盘上找到的数据分析在根本上是不同的。

时区差异或获取准确的时区有助于收集证据,以通过此协议捕获消息。

广告