Python-forensics-network-time-protocol

提供:Dev Guides
移動先:案内検索

Pythonフォレンジック-ネットワークタイムプロトコル

時刻を同期するために最も広く使用されているプロトコルであり、実践として広く受け入れられているのは、Network Time Protocol(NTP)によって行われます。

NTPは、ユーザーデータグラムプロトコル(UDP)を使用します。UDPは、最小時間を使用して、指定されたタイムソースと同期したいサーバーとクライアント間でパケットを通信します。

ネットワークタイムプロトコル

ネットワークタイムプロトコルの機能は次のとおりです-

  • デフォルトのサーバーポートは123です。
  • このプロトコルは、国立研究所に同期された多くのアクセス可能なタイムサーバーで構成されています。
  • NTPプロトコル標準はIETFによって管理され、提案された標準は「Network Time Protocol Version 4:Protocol and Algorithms Specification」というタイトルのRFC 5905です[NTP RFC]
  • オペレーティングシステム、プログラム、およびアプリケーションは、NTPを使用して適切な方法で時刻を同期します。

この章では、サードパーティのPythonライブラリntplibから実行可能なPythonでのNTPの使用に焦点を当てます。 このライブラリは、結果を自分のローカルシステムクロックと比較する重い作業を効率的に処理します。

NTPライブラリのインストール

*ntplib* は、次の図に示すようにhttps://pypi.python.org/pypi/ntplib/からダウンロードできます。

このライブラリは、NTPプロトコルフィールドを変換できるメソッドの助けを借りて、NTPサーバーへのシンプルなインターフェイスを提供します。 これは、うるう秒などの他のキー値にアクセスするのに役立ちます。

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出力の使用

時間の差は、上記のプログラムで計算されます。 これらの計算は、法医学調査に役立ちます。 取得したネットワークデータは、ハードドライブで検出されたデータの分析とは根本的に異なります。

タイムゾーンの違いや正確なタイムゾーンの取得は、このプロトコルでメッセージをキャプチャするための証拠を収集するのに役立ちます。