📜  Python取证-网络时间协议

📅  最后修改于: 2020-11-06 05:31:28             🧑  作者: Mango


通过网络时间协议(NTP)完成了最广泛使用的用于同步时间的协议,该协议已被广泛接受为实践。

NTP使用用户数据报协议(UDP),该协议使用最短的时间在希望与给定时间源同步的服务器和客户端之间通信数据包。

网络时间协议

网络时间协议的功能如下-

  • 默认服务器端口是123。

  • 该协议包含许多与国家实验室同步的可访问时间服务器。

  • NTP协议标准受IETF管辖,提议的标准为RFC 5905,标题为“网络时间协议版本4:协议和算法规范” [NTP RFC]

  • 操作系统,程序和应用程序使用NTP以适当的方式同步时间。

在本章中,我们将重点介绍NTP与Python的结合使用,这在第三方Python库ntplib中是可行的。该库有效地处理了繁重的工作,将结果与我的本地系统时钟进行了比较。

安装NTP库

ntplib可从https:// pypi下载。 Python.org / pypi / ntplib / ,如下图所示。

该库借助可以转换NTP协议字段的方法,为NTP服务器提供了一个简单的接口。这有助于访问其他键值,例如leap秒。

安装NTP库

以下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;

上面的程序将产生以下输出。

使用NTP输出

在上述程序中计算出时间差。这些计算有助于法医调查。获得的网络数据从根本上不同于对硬盘驱动器上发现的数据的分析。

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